ng-virtual-list 14.11.2 → 14.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/esm2020/lib/components/ng-list-item/base/base-virtual-list-item-component.mjs +7 -1
- package/esm2020/lib/components/ng-list-item/ng-virtual-list-item.component.mjs +2 -7
- package/esm2020/lib/components/ng-list-item/ng-virtual-list-item.module.mjs +3 -3
- package/esm2020/lib/components/ng-prerender-container/components/ng-prerender-list-item/ng-prerender-list-item.module.mjs +3 -3
- package/esm2020/lib/components/ng-scroll-bar/ng-scroll-bar.module.mjs +3 -3
- package/esm2020/lib/components/ng-scroll-view/ng-scroll-view.component.mjs +19 -8
- package/esm2020/lib/components/ng-scroller/ng-scroller.module.mjs +3 -3
- package/esm2020/lib/const/index.mjs +9 -1
- package/esm2020/lib/interfaces/index.mjs +1 -1
- package/esm2020/lib/interfaces/scrolling-settings.mjs +2 -0
- package/esm2020/lib/ng-virtual-list.component.mjs +90 -18
- package/fesm2015/ng-virtual-list.mjs +126 -31
- package/fesm2015/ng-virtual-list.mjs.map +1 -1
- package/fesm2020/ng-virtual-list.mjs +121 -30
- package/fesm2020/ng-virtual-list.mjs.map +1 -1
- package/lib/components/ng-list-item/base/base-virtual-list-item-component.d.ts +2 -0
- package/lib/components/ng-list-item/ng-virtual-list-item.component.d.ts +0 -2
- package/lib/components/ng-scroll-view/ng-scroll-view.component.d.ts +6 -1
- package/lib/const/index.d.ts +2 -1
- package/lib/interfaces/index.d.ts +2 -1
- package/lib/interfaces/scrolling-settings.d.ts +38 -0
- package/lib/ng-virtual-list.component.d.ts +16 -2
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ import { CdkScrollable } from '@angular/cdk/scrolling';
|
|
|
3
3
|
import { BehaviorSubject, filter, fromEvent, map, of, race, Subject, switchMap, takeUntil, tap } from 'rxjs';
|
|
4
4
|
import { ScrollerDirection } from './enums';
|
|
5
5
|
import { ANIMATOR_MIN_TIMESTAMP, Animator, easeOutQuad } from '../../utils/animator';
|
|
6
|
-
import { BEHAVIOR_INSTANT, DEFAULT_OVERSCROLL_ENABLED, DEFAULT_SCROLL_BEHAVIOR, INTERACTIVE, MOUSE_DOWN, MOUSE_MOVE, MOUSE_UP, TOUCH_END, TOUCH_MOVE, TOUCH_START, WHEEL, } from '../../const';
|
|
6
|
+
import { BEHAVIOR_INSTANT, DEFAULT_OVERSCROLL_ENABLED, DEFAULT_SCROLL_BEHAVIOR, DEFAULT_SCROLLING_SETTINGS, INTERACTIVE, MOUSE_DOWN, MOUSE_MOVE, MOUSE_UP, TOUCH_END, TOUCH_MOVE, TOUCH_START, WHEEL, } from '../../const';
|
|
7
7
|
import { ANIMATION_DURATION, AUTO, DURATION, FRICTION_FORCE, INSTANT, LEFT, MASS, MAX_DIST, MAX_DURATION, MAX_VELOCITY_TIMESTAMP, OVERSCROLL_START_ITERATION, SCROLL_EVENT, SCROLL_VIEW_NORMALIZE_VALUE_FROM_ZERO, SMOOTH, SPEED_SCALE, TOP, } from './const';
|
|
8
8
|
import { calculateDirection } from './utils';
|
|
9
9
|
import { BaseScrollView } from './base/base-scroll-view.component';
|
|
@@ -23,6 +23,8 @@ export class NgScrollView extends BaseScrollView {
|
|
|
23
23
|
this.$scrollBehavior = this._$scrollBehavior.asObservable();
|
|
24
24
|
this._$overscrollEnabled = new BehaviorSubject(DEFAULT_OVERSCROLL_ENABLED);
|
|
25
25
|
this.$overscrollEnabled = this._$overscrollEnabled.asObservable();
|
|
26
|
+
this._$scrollingSettings = new BehaviorSubject(DEFAULT_SCROLLING_SETTINGS);
|
|
27
|
+
this.$scrollingSettings = this._$scrollingSettings.asObservable();
|
|
26
28
|
this._normalizeValueFromZero = inject(SCROLL_VIEW_NORMALIZE_VALUE_FROM_ZERO);
|
|
27
29
|
this._$scroll = new Subject();
|
|
28
30
|
this.$scroll = this._$scroll.asObservable();
|
|
@@ -45,6 +47,12 @@ export class NgScrollView extends BaseScrollView {
|
|
|
45
47
|
}
|
|
46
48
|
}
|
|
47
49
|
get overscrollEnabled() { return this._$overscrollEnabled.getValue(); }
|
|
50
|
+
set scrollingSettings(v) {
|
|
51
|
+
if (this._$scrollingSettings.getValue() !== v) {
|
|
52
|
+
this._$scrollingSettings.next(v);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
get scrollingSettings() { return this._$scrollingSettings.getValue(); }
|
|
48
56
|
set delta(v) {
|
|
49
57
|
this._startPosition += v;
|
|
50
58
|
}
|
|
@@ -184,14 +192,14 @@ export class NgScrollView extends BaseScrollView {
|
|
|
184
192
|
}
|
|
185
193
|
calculateVelocity(offsets, delta, timestamp, indexOffset = 10) {
|
|
186
194
|
offsets.push([delta, timestamp < ANIMATOR_MIN_TIMESTAMP ? ANIMATOR_MIN_TIMESTAMP : timestamp]);
|
|
187
|
-
const len = offsets.length, startIndex = len > indexOffset ? len - indexOffset : 0, lastVSign = calculateDirection(offsets);
|
|
195
|
+
const len = offsets.length, startIndex = len > indexOffset ? len - indexOffset : 0, lastVSign = calculateDirection(offsets), speedScale = this.scrollingSettings?.speedScale ?? SPEED_SCALE;
|
|
188
196
|
let vSum = 0;
|
|
189
197
|
for (let i = startIndex, l = offsets.length; i < l; i++) {
|
|
190
198
|
const p0 = offsets[i];
|
|
191
199
|
if (lastVSign !== Math.sign(p0[0])) {
|
|
192
200
|
continue;
|
|
193
201
|
}
|
|
194
|
-
const v0 = (p0[1] !== 0 ? lastVSign * Math.abs(p0[0] / p0[1]) *
|
|
202
|
+
const v0 = (p0[1] !== 0 ? lastVSign * Math.abs(p0[0] / p0[1]) * speedScale : 0);
|
|
195
203
|
vSum += Math.sign(v0) * Math.pow(v0, 4) * .003;
|
|
196
204
|
}
|
|
197
205
|
const l = Math.min(offsets.length, indexOffset), v0 = l > 0 ? (vSum / l) : 0;
|
|
@@ -201,6 +209,7 @@ export class NgScrollView extends BaseScrollView {
|
|
|
201
209
|
velocities.push([delta, timestamp < ANIMATOR_MIN_TIMESTAMP ? ANIMATOR_MIN_TIMESTAMP : timestamp]);
|
|
202
210
|
const len = velocities.length, startIndex = len > indexOffset ? len - indexOffset : 0;
|
|
203
211
|
let aSum = 0, prevV0, iteration = 0, lastVSign = calculateDirection(velocities);
|
|
212
|
+
const mass = this.scrollingSettings?.mass ?? MASS;
|
|
204
213
|
for (let i = startIndex, l = velocities.length; i < l; i++) {
|
|
205
214
|
const v00 = prevV0, v01 = velocities[i];
|
|
206
215
|
if (lastVSign !== Math.sign(v01[0])) {
|
|
@@ -208,13 +217,13 @@ export class NgScrollView extends BaseScrollView {
|
|
|
208
217
|
}
|
|
209
218
|
if (v00) {
|
|
210
219
|
const a0 = timestamp < MAX_VELOCITY_TIMESTAMP ? (v00[1] !== 0 ? (lastVSign * Math.abs(Math.abs(v01[0]) - Math.abs(v00[0]))) / Math.abs(v00[1]) : 0) : 0.1;
|
|
211
|
-
aSum = (aSum *
|
|
220
|
+
aSum = (aSum * mass) + a0;
|
|
212
221
|
prevV0 = v01;
|
|
213
222
|
}
|
|
214
223
|
prevV0 = v01;
|
|
215
224
|
iteration++;
|
|
216
225
|
}
|
|
217
|
-
const a0 = aSum * FRICTION_FORCE;
|
|
226
|
+
const a0 = aSum * (this.scrollingSettings?.frictionalForce ?? FRICTION_FORCE);
|
|
218
227
|
return { a0 };
|
|
219
228
|
}
|
|
220
229
|
stopScrolling() {
|
|
@@ -225,7 +234,7 @@ export class NgScrollView extends BaseScrollView {
|
|
|
225
234
|
}
|
|
226
235
|
moveWithAcceleration(isVertical, position, v0, v, a0, timestamp) {
|
|
227
236
|
if (a0 !== 0 && timestamp < MAX_VELOCITY_TIMESTAMP) {
|
|
228
|
-
const dvSign = Math.sign(v), duration = DURATION, maxDuration = MAX_DURATION, maxDistance = dvSign *
|
|
237
|
+
const dvSign = Math.sign(v), mass = this.scrollingSettings?.mass ?? MASS, duration = DURATION, maxDuration = this.scrollingSettings?.maxDuration ?? MAX_DURATION, maxDist = this.scrollingSettings?.maxDistance ?? MAX_DIST, maxDistance = dvSign * maxDist, s = (dvSign * Math.abs((a0 * Math.pow(duration, 2)) * .5) / 1000) / mass, distance = Math.abs(s) < maxDist ? s : maxDistance, positionWithVelocity = position + (this._inversion ? -1 : 1) * distance, vmax = Math.max(Math.abs(v0), Math.abs(v)), ad = Math.abs(vmax !== 0 ? Math.sqrt(vmax) : 0) * 10 / mass, aDuration = ad < maxDuration ? ad : maxDuration, startPosition = isVertical ? this.y : this.x;
|
|
229
238
|
this.animate(startPosition, Math.round(positionWithVelocity), aDuration, easeOutQuad, true);
|
|
230
239
|
}
|
|
231
240
|
}
|
|
@@ -347,7 +356,7 @@ export class NgScrollView extends BaseScrollView {
|
|
|
347
356
|
}
|
|
348
357
|
}
|
|
349
358
|
NgScrollView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgScrollView, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
350
|
-
NgScrollView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NgScrollView, selector: "ng-scroll-view", inputs: { scrollBehavior: "scrollBehavior", overscrollEnabled: "overscrollEnabled" }, viewQueries: [{ propertyName: "cdkScrollable", first: true, predicate: ["scrollViewport"], descendants: true, read: CdkScrollable }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
359
|
+
NgScrollView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NgScrollView, selector: "ng-scroll-view", inputs: { scrollBehavior: "scrollBehavior", overscrollEnabled: "overscrollEnabled", scrollingSettings: "scrollingSettings" }, viewQueries: [{ propertyName: "cdkScrollable", first: true, predicate: ["scrollViewport"], descendants: true, read: CdkScrollable }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
351
360
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NgScrollView, decorators: [{
|
|
352
361
|
type: Component,
|
|
353
362
|
args: [{
|
|
@@ -361,5 +370,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
361
370
|
type: Input
|
|
362
371
|
}], overscrollEnabled: [{
|
|
363
372
|
type: Input
|
|
373
|
+
}], scrollingSettings: [{
|
|
374
|
+
type: Input
|
|
364
375
|
}] } });
|
|
365
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctc2Nyb2xsLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvY29tcG9uZW50cy9uZy1zY3JvbGwtdmlldy9uZy1zY3JvbGwtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsR0FDdEMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0csT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQVUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0YsT0FBTyxFQUNILGdCQUFnQixFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFDcEgsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxHQUM1QyxNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQ0gsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFDdkgsMEJBQTBCLEVBQUUsWUFBWSxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxHQUM1RyxNQUFNLFNBQVMsQ0FBQztBQUNqQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUVuRTs7Ozs7OztHQU9HO0FBS0gsTUFBTSxPQUFPLFlBQWEsU0FBUSxjQUFjO0lBNEM1QztRQUNJLEtBQUssRUFBRSxDQUFDO1FBekNGLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFpQix1QkFBdUIsQ0FBQyxDQUFDO1FBQ2pGLG9CQUFlLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBU3RELHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFVLDBCQUEwQixDQUFDLENBQUM7UUFDaEYsdUJBQWtCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBUzVELDRCQUF1QixHQUFHLE1BQU0sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBRXhFLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ25DLFlBQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXRDLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUN0QyxlQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUU5QyxtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUVqQixjQUFTLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUUzQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUV0Qix5QkFBb0IsR0FBVyxDQUFDLENBQUM7SUFRekMsQ0FBQztJQXhDRCxJQUNJLGNBQWMsQ0FBQyxDQUFpQjtRQUNoQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqQztJQUNMLENBQUM7SUFDRCxJQUFJLGNBQWMsS0FBSyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFJakUsSUFDSSxpQkFBaUIsQ0FBQyxDQUFVO1FBQzVCLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0wsQ0FBQztJQUNELElBQUksaUJBQWlCLEtBQUssT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBa0J2RSxJQUFJLEtBQUssQ0FBQyxDQUFTO1FBQ2YsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQU1ELGVBQWU7UUFDWCxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FDMUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDN0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNoQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFFLENBQUMsYUFBYSxDQUFDLENBQzdCLEVBQUUsUUFBUSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUNyQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUM3QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2hCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUUsQ0FBQyxhQUFhLENBQUMsQ0FDN0IsRUFBRSxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFFMUQsYUFBYSxDQUFDLElBQUksQ0FDZCxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUM3QixTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEIsT0FBTyxTQUFTLENBQWEsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDakUsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDL0IsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDN0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNKLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3JCLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFDaEUsUUFBUSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDdkMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLEVBQUUsUUFBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pJLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5RixDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUVkLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBYSxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUM3RSxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUNoQyxFQUNHLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQzVCLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQzdCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBRU4sUUFBUSxDQUFDLElBQUksQ0FDVCxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUM3QixTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEIsT0FBTyxTQUFTLENBQWEsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDdEUsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDN0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUM5QixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyQixNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBcUIsQ0FBQztnQkFDdkMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDeEMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQ3hCO2dCQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzdFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLGtCQUFrQixHQUFHLENBQUMsRUFDdEIsY0FBYyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFDbkQsT0FBTyxHQUFHLElBQUksS0FBSyxFQUFvQixFQUN2QyxVQUFVLEdBQUcsSUFBSSxLQUFLLEVBQW9CLEVBQzFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sU0FBUyxDQUFhLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3JFLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQzdCLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUMzQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ0osSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNWLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FDaEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO29CQUN6SCxrQkFBa0IsR0FBRyxVQUFVLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUNsRCxTQUFTLEdBQUcsT0FBTyxDQUFDO29CQUNwQixPQUFPLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBYSxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFhLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN6SSxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUM3QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ0osSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7d0JBQ3hCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFDdEIsU0FBUyxHQUFHLE9BQU8sR0FBRyxTQUFTLEVBQy9CLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLEVBQ2hFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7d0JBQ25FLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO3dCQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDNUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEtBQUssZ0JBQWdCLEVBQUU7NEJBQ3ZELE9BQU87eUJBQ1Y7d0JBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQzFFLENBQUMsQ0FBQyxDQUNMLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDTixDQUFDLENBQUMsQ0FDTCxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRWQsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFhLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzlFLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQ2hDLEVBQ0csY0FBYyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQzFCLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQzdCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBRU4sUUFBUSxDQUFDLElBQUksQ0FDVCxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUM3QixTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEIsT0FBTyxTQUFTLENBQWEsT0FBTyxFQUFFLFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDdkUsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDN0IsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDL0IsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNWLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDckIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQXFCLENBQUM7Z0JBQ3ZDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUN4QjtnQkFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM3RSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDckQsSUFBSSxrQkFBa0IsR0FBRyxDQUFDLEVBQ3RCLGNBQWMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFDL0csT0FBTyxHQUFHLElBQUksS0FBSyxFQUFvQixFQUFFLFVBQVUsR0FBRyxJQUFJLEtBQUssRUFBb0IsRUFDbkYsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDM0IsT0FBTyxTQUFTLENBQWEsTUFBTSxFQUFFLFVBQVUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDckUsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDN0IsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUN6QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ0osSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUIsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNWLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FDaEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO29CQUN6SCxrQkFBa0IsR0FBRyxVQUFVLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUNsRCxTQUFTLEdBQUcsT0FBTyxDQUFDO29CQUNwQixPQUFPLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBYSxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFhLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMzSSxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUM3QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ0osSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7d0JBQ3hCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFDdEIsU0FBUyxHQUFHLE9BQU8sR0FBRyxTQUFTLEVBQy9CLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDLEVBQ2hFLEVBQUUsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7d0JBQ25FLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO3dCQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDNUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLEtBQUssZ0JBQWdCLEVBQUU7NEJBQ3ZELE9BQU87eUJBQ1Y7d0JBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQzFFLENBQUMsQ0FBQyxDQUNMLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLENBQ0wsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDTixDQUFDLENBQUMsQ0FDTCxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxVQUFtQixFQUFFLENBQWdDLEVBQUUsU0FBa0IsRUFBRSxjQUFzQixFQUFFLFNBQWlCLEVBQzFJLGtCQUEwQixFQUFFLE9BQWdDLEVBQUUsVUFBbUM7UUFFakcsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFDL0ksVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsRUFDNUgsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUM3SCxTQUFTLEdBQUcsT0FBTyxHQUFHLFNBQVMsRUFBRSxXQUFXLEdBQUcsa0JBQWtCLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFHLFVBQVUsRUFDN0csRUFBRSxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVPLGdCQUFnQjtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3RDLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLHFCQUFxQixDQUFDLENBQVEsRUFBRSxHQUFXLEVBQUUsS0FBYTtRQUM5RCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRTtnQkFDZCxDQUFDLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3RCO1lBQ0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0gsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsMEJBQTBCLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUU7b0JBQ2QsQ0FBQyxDQUFDLHdCQUF3QixFQUFFLENBQUM7b0JBQzdCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztpQkFDdEI7YUFDSjtTQUNKO0lBQ0wsQ0FBQztJQUVPLGVBQWUsQ0FBQyxDQUFRO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFO2dCQUNkLENBQUMsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO2dCQUM3QixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDdEI7WUFDRCxPQUFPO1NBQ1Y7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUM3RDthQUFNO1lBQ0gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM1RDtJQUNMLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxPQUFnQyxFQUFFLEtBQWEsRUFBRSxTQUFpQixFQUFFLGNBQXNCLEVBQUU7UUFDbEgsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBRS9GLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsVUFBVSxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUgsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsS0FBSyxJQUFJLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyRCxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsSUFBSSxTQUFTLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDaEMsU0FBUzthQUNaO1lBRUQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRixJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDbEQ7UUFFRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0UsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxVQUFtQyxFQUFFLEtBQWEsRUFBRSxTQUFpQixFQUFFLGNBQXNCLEVBQUU7UUFDekgsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLEdBQUcsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2xHLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxHQUFHLEdBQUcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RixJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsTUFBb0MsRUFBRSxTQUFTLEdBQUcsQ0FBQyxFQUFFLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5RyxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hELE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxHQUFHLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLElBQUksU0FBUyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2pDLFNBQVM7YUFDWjtZQUNELElBQUksR0FBRyxFQUFFO2dCQUNMLE1BQU0sRUFBRSxHQUFHLFNBQVMsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDMUosSUFBSSxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxHQUFHLEdBQUcsQ0FBQzthQUNoQjtZQUNELE1BQU0sR0FBRyxHQUFHLENBQUM7WUFDYixTQUFTLEVBQUUsQ0FBQztTQUNmO1FBRUQsTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLGNBQWMsQ0FBQztRQUNqQyxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFUyxJQUFJLENBQUMsVUFBbUIsRUFBRSxRQUFnQixFQUFFLFdBQW9CLEtBQUssRUFBRSxhQUFzQixLQUFLLEVBQUUsYUFBc0IsSUFBSTtRQUNwSSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFUyxvQkFBb0IsQ0FBQyxVQUFtQixFQUFFLFFBQWdCLEVBQUUsRUFBVSxFQUFFLENBQVMsRUFBRSxFQUFVLEVBQUUsU0FBaUI7UUFDdEgsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLFNBQVMsR0FBRyxzQkFBc0IsRUFBRTtZQUNoRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUN2QixRQUFRLEdBQUcsUUFBUSxFQUFFLFdBQVcsR0FBRyxZQUFZLEVBQy9DLFdBQVcsR0FBRyxNQUFNLEdBQUcsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUN6RyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLG9CQUFvQixHQUFHLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLEVBQzVILElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUMxQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUMzRCxTQUFTLEdBQUcsRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQy9DLGFBQWEsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElB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QUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRVEsV0FBVztRQUNoQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFcEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDNUI7SUFDTCxDQUFDOzt5R0F6ZFEsWUFBWTs2RkFBWixZQUFZLHdPQUNnQixhQUFhLG9EQUh4QyxFQUFFOzJGQUVILFlBQVk7a0JBSnhCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFLEVBQUU7aUJBQ2Y7MEVBR1ksYUFBYTtzQkFEckIsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7Z0JBTWhELGNBQWM7c0JBRGpCLEtBQUs7Z0JBV0YsaUJBQWlCO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyLCBmcm9tRXZlbnQsIG1hcCwgb2YsIHJhY2UsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2Nyb2xsZXJEaXJlY3Rpb24gfSBmcm9tICcuL2VudW1zJztcclxuaW1wb3J0IHsgQU5JTUFUT1JfTUlOX1RJTUVTVEFNUCwgQW5pbWF0b3IsIEVhc2luZywgZWFzZU91dFF1YWQgfSBmcm9tICcuLi8uLi91dGlscy9hbmltYXRvcic7XHJcbmltcG9ydCB7XHJcbiAgICBCRUhBVklPUl9JTlNUQU5ULCBERUZBVUxUX09WRVJTQ1JPTExfRU5BQkxFRCwgREVGQVVMVF9TQ1JPTExfQkVIQVZJT1IsIElOVEVSQUNUSVZFLCBNT1VTRV9ET1dOLCBNT1VTRV9NT1ZFLCBNT1VTRV9VUCxcclxuICAgIFRPVUNIX0VORCwgVE9VQ0hfTU9WRSwgVE9VQ0hfU1RBUlQsIFdIRUVMLFxyXG59IGZyb20gJy4uLy4uL2NvbnN0JztcclxuaW1wb3J0IHsgSVNjcm9sbFRvUGFyYW1zIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHtcclxuICAgIEFOSU1BVElPTl9EVVJBVElPTiwgQVVUTywgRFVSQVRJT04sIEZSSUNUSU9OX0ZPUkNFLCBJTlNUQU5ULCBMRUZULCBNQVNTLCBNQVhfRElTVCwgTUFYX0RVUkFUSU9OLCBNQVhfVkVMT0NJVFlfVElNRVNUQU1QLFxyXG4gICAgT1ZFUlNDUk9MTF9TVEFSVF9JVEVSQVRJT04sIFNDUk9MTF9FVkVOVCwgU0NST0xMX1ZJRVdfTk9STUFMSVpFX1ZBTFVFX0ZST01fWkVSTywgU01PT1RILCBTUEVFRF9TQ0FMRSwgVE9QLFxyXG59IGZyb20gJy4vY29uc3QnO1xyXG5pbXBvcnQgeyBjYWxjdWxhdGVEaXJlY3Rpb24gfSBmcm9tICcuL3V0aWxzJztcclxuaW1wb3J0IHsgQmFzZVNjcm9sbFZpZXcgfSBmcm9tICcuL2Jhc2UvYmFzZS1zY3JvbGwtdmlldy5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIE5nU2Nyb2xsVmlld1xyXG4gKiBNYXhpbXVtIHBlcmZvcm1hbmNlIGZvciBleHRyZW1lbHkgbGFyZ2UgbGlzdHMuXHJcbiAqIEl0IGlzIGJhc2VkIG9uIGFsZ29yaXRobXMgZm9yIHZpcnR1YWxpemF0aW9uIG9mIHNjcmVlbiBvYmplY3RzLlxyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGpvbm55WC9uZy12aXJ0dWFsLWxpc3QvYmxvYi8xNC54L3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL2NvbXBvbmVudHMvbmctc2Nyb2xsLXZpZXcvbmctc2Nyb2xsLXZpZXcuY29tcG9uZW50LnRzXHJcbiAqIEBhdXRob3IgRXZnZW5paSBBbGV4YW5kcm92aWNoIEdyZWJlbm5pa292XHJcbiAqIEBlbWFpbCBkam9ubnl4QGdtYWlsLmNvbVxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ25nLXNjcm9sbC12aWV3JyxcclxuICAgIHRlbXBsYXRlOiAnJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nU2Nyb2xsVmlldyBleHRlbmRzIEJhc2VTY3JvbGxWaWV3IHtcclxuICAgIEBWaWV3Q2hpbGQoJ3Njcm9sbFZpZXdwb3J0JywgeyByZWFkOiBDZGtTY3JvbGxhYmxlIH0pXHJcbiAgICByZWFkb25seSBjZGtTY3JvbGxhYmxlOiBDZGtTY3JvbGxhYmxlIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIHByb3RlY3RlZCBfJHNjcm9sbEJlaGF2aW9yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTY3JvbGxCZWhhdmlvcj4oREVGQVVMVF9TQ1JPTExfQkVIQVZJT1IpO1xyXG4gICAgcmVhZG9ubHkgJHNjcm9sbEJlaGF2aW9yID0gdGhpcy5fJHNjcm9sbEJlaGF2aW9yLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgQElucHV0KClcclxuICAgIHNldCBzY3JvbGxCZWhhdmlvcih2OiBTY3JvbGxCZWhhdmlvcikge1xyXG4gICAgICAgIGlmICh0aGlzLl8kc2Nyb2xsQmVoYXZpb3IuZ2V0VmFsdWUoKSAhPT0gdikge1xyXG4gICAgICAgICAgICB0aGlzLl8kc2Nyb2xsQmVoYXZpb3IubmV4dCh2KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBnZXQgc2Nyb2xsQmVoYXZpb3IoKSB7IHJldHVybiB0aGlzLl8kc2Nyb2xsQmVoYXZpb3IuZ2V0VmFsdWUoKTsgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfJG92ZXJzY3JvbGxFbmFibGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihERUZBVUxUX09WRVJTQ1JPTExfRU5BQkxFRCk7XHJcbiAgICByZWFkb25seSAkb3ZlcnNjcm9sbEVuYWJsZWQgPSB0aGlzLl8kb3ZlcnNjcm9sbEVuYWJsZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IG92ZXJzY3JvbGxFbmFibGVkKHY6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAodGhpcy5fJG92ZXJzY3JvbGxFbmFibGVkLmdldFZhbHVlKCkgIT09IHYpIHtcclxuICAgICAgICAgICAgdGhpcy5fJG92ZXJzY3JvbGxFbmFibGVkLm5leHQodik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZ2V0IG92ZXJzY3JvbGxFbmFibGVkKCkgeyByZXR1cm4gdGhpcy5fJG92ZXJzY3JvbGxFbmFibGVkLmdldFZhbHVlKCk7IH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX25vcm1hbGl6ZVZhbHVlRnJvbVplcm8gPSBpbmplY3QoU0NST0xMX1ZJRVdfTk9STUFMSVpFX1ZBTFVFX0ZST01fWkVSTyk7XHJcblxyXG4gICAgcHJvdGVjdGVkIF8kc2Nyb2xsID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAgIHJlYWRvbmx5ICRzY3JvbGwgPSB0aGlzLl8kc2Nyb2xsLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIHByb3RlY3RlZCBfJHNjcm9sbEVuZCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgICByZWFkb25seSAkc2Nyb2xsRW5kID0gdGhpcy5fJHNjcm9sbEVuZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICBwcml2YXRlIF9zdGFydFBvc2l0aW9uID0gMDtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX2FuaW1hdG9yID0gbmV3IEFuaW1hdG9yKCk7XHJcblxyXG4gICAgcHJvdGVjdGVkIF9pbnRlcmFjdGl2ZSA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSBfb3ZlcnNjcm9sbEl0ZXJhdGlvbjogbnVtYmVyID0gMDtcclxuXHJcbiAgICBzZXQgZGVsdGEodjogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fc3RhcnRQb3NpdGlvbiArPSB2O1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIGNvbnN0ICR2aWV3cG9ydCA9IG9mKHRoaXMuc2Nyb2xsVmlld3BvcnQpLnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgICBmaWx0ZXIodiA9PiAhIXYpLFxyXG4gICAgICAgICAgICBtYXAodiA9PiB2IS5uYXRpdmVFbGVtZW50KSxcclxuICAgICAgICApLCAkY29udGVudCA9IG9mKHRoaXMuc2Nyb2xsQ29udGVudCkucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuXyR1bnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgIGZpbHRlcih2ID0+ICEhdiksXHJcbiAgICAgICAgICAgIG1hcCh2ID0+IHYhLm5hdGl2ZUVsZW1lbnQpLFxyXG4gICAgICAgICksICR3aGVlbEVtaXR0ZXIgPSB0aGlzLl9pbnZlcnNpb24gPyAkdmlld3BvcnQgOiAkY29udGVudDtcclxuXHJcbiAgICAgICAgJHdoZWVsRW1pdHRlci5waXBlKFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fJHVuc3Vic2NyaWJlKSxcclxuICAgICAgICAgICAgc3dpdGNoTWFwKGNvbnRlbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZyb21FdmVudDxXaGVlbEV2ZW50Pihjb250ZW50LCBXSEVFTCwgeyBwYXNzaXZlOiBmYWxzZSB9KS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLl9pbnRlcmFjdGl2ZSksXHJcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuXyR1bnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgICAgICAgICAgdGFwKGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc1ZlcnRpY2FsID0gdGhpcy5fJGlzVmVydGljYWwuZ2V0VmFsdWUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWl0U2Nyb2xsYWJsZUV2ZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tPdmVyc2Nyb2xsKGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3BTY3JvbGxpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsU2l6ZSA9IGlzVmVydGljYWwgPyB0aGlzLnNjcm9sbEhlaWdodCA6IHRoaXMuc2Nyb2xsV2lkdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFBvcyA9IGlzVmVydGljYWwgPyB0aGlzLnkgOiB0aGlzLngsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWx0YSA9IGlzVmVydGljYWwgPyBlLmRlbHRhWSA6IGUuZGVsdGFYLCBkcCA9IChzdGFydFBvcyArIGRlbHRhKSwgcG9zaXRpb24gPSBkcCA8IDAgPyAwIDogZHAgPiBzY3JvbGxTaXplID8gc2Nyb2xsU2l6ZSA6IGRwO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbCh7IFtpc1ZlcnRpY2FsID8gVE9QIDogTEVGVF06IHBvc2l0aW9uLCBiZWhhdmlvcjogSU5TVEFOVCwgdXNlckFjdGlvbjogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICkuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgICAgIGNvbnN0ICRtb3VzZVVwID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHdpbmRvdywgTU9VU0VfVVAsIHsgcGFzc2l2ZTogZmFsc2UgfSkucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuXyR1bnN1YnNjcmliZSksXHJcbiAgICAgICAgKSxcclxuICAgICAgICAgICAgJG1vdXNlRHJhZ0NhbmNlbCA9ICRtb3VzZVVwLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fJHVuc3Vic2NyaWJlKSxcclxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNNb3ZpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl8kZ3JhYmJpbmcubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgJGNvbnRlbnQucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuXyR1bnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcChjb250ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQ8TW91c2VFdmVudD4oY29udGVudCwgTU9VU0VfRE9XTiwgeyBwYXNzaXZlOiBmYWxzZSB9KS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcih2ID0+IHRoaXMuX2ludGVyYWN0aXZlKSxcclxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsT3ZlcnNjcm9sbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRHJhZ1N0YXJ0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcFNjcm9sbGluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoSU5URVJBQ1RJVkUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnZlcnNpb24gPSB0aGlzLl9pbnZlcnNpb24sIGlzVmVydGljYWwgPSB0aGlzLl8kaXNWZXJ0aWNhbC5nZXRWYWx1ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pc01vdmluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuXyRncmFiYmluZy5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGFydFBvc2l0aW9uID0gKGlzVmVydGljYWwgPyB0aGlzLnkgOiB0aGlzLngpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJldkNsaWVudFBvc2l0aW9uID0gMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0Q2xpZW50UG9zID0gaXNWZXJ0aWNhbCA/IGUuY2xpZW50WSA6IGUuY2xpZW50WCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMgPSBuZXcgQXJyYXk8W251bWJlciwgbnVtYmVyXT4oKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlbG9jaXRpZXMgPSBuZXcgQXJyYXk8W251bWJlciwgbnVtYmVyXT4oKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZSA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQ8TW91c2VFdmVudD4od2luZG93LCBNT1VTRV9NT1ZFLCB7IHBhc3NpdmU6IGZhbHNlIH0pLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fJHVuc3Vic2NyaWJlKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCgkbW91c2VEcmFnQ2FuY2VsKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcChlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrT3ZlcnNjcm9sbChlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcG9zaXRpb24sIGN1cnJlbnRQb3MsIGVuZFRpbWUsIHNjcm9sbERlbHRhIH0gPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uKGlzVmVydGljYWwsIGUsIGludmVyc2lvbiwgc3RhcnRDbGllbnRQb3MsIHN0YXJ0VGltZSwgcHJldkNsaWVudFBvc2l0aW9uLCBvZmZzZXRzLCB2ZWxvY2l0aWVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2Q2xpZW50UG9zaXRpb24gPSBjdXJyZW50UG9zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZShpc1ZlcnRpY2FsLCBwb3NpdGlvbiwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lID0gZW5kVGltZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmFjZShbZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHdpbmRvdywgTU9VU0VfVVAsIHsgcGFzc2l2ZTogZmFsc2UgfSksIGZyb21FdmVudDxNb3VzZUV2ZW50Pihjb250ZW50LCBNT1VTRV9VUCwgeyBwYXNzaXZlOiBmYWxzZSB9KV0pLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXAoZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbE92ZXJzY3JvbGwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZFRpbWUgPSBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IGVuZFRpbWUgLSBzdGFydFRpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB2MCB9ID0gdGhpcy5jYWxjdWxhdGVWZWxvY2l0eShvZmZzZXRzLCBzY3JvbGxEZWx0YSwgdGltZXN0YW1wKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGEwIH0gPSB0aGlzLmNhbGN1bGF0ZUFjY2VsZXJhdGlvbih2ZWxvY2l0aWVzLCB2MCwgdGltZXN0YW1wKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzTW92aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl8kZ3JhYmJpbmcubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fJHNjcm9sbEJlaGF2aW9yLmdldFZhbHVlKCkgPT09IEJFSEFWSU9SX0lOU1RBTlQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVXaXRoQWNjZWxlcmF0aW9uKGlzVmVydGljYWwsIHBvc2l0aW9uLCAwLCB2MCwgYTAsIHRpbWVzdGFtcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgICAgY29uc3QgJHRvdWNoVXAgPSBmcm9tRXZlbnQ8VG91Y2hFdmVudD4od2luZG93LCBUT1VDSF9FTkQsIHsgcGFzc2l2ZTogZmFsc2UgfSkucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuXyR1bnN1YnNjcmliZSksXHJcbiAgICAgICAgKSxcclxuICAgICAgICAgICAgJHRvdWNoQ2FuY2VsZXIgPSAkdG91Y2hVcC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuXyR1bnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzTW92aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fJGdyYWJiaW5nLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICRjb250ZW50LnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAoY29udGVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KGNvbnRlbnQsIFRPVUNIX1NUQVJULCB7IHBhc3NpdmU6IGZhbHNlIH0pLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuXyR1bnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuX2ludGVyYWN0aXZlKSxcclxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsT3ZlcnNjcm9sbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uRHJhZ1N0YXJ0KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcFNjcm9sbGluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoSU5URVJBQ1RJVkUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnZlcnNpb24gPSB0aGlzLl9pbnZlcnNpb24sIGlzVmVydGljYWwgPSB0aGlzLl8kaXNWZXJ0aWNhbC5nZXRWYWx1ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pc01vdmluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuXyRncmFiYmluZy5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zdGFydFBvc2l0aW9uID0gKGlzVmVydGljYWwgPyB0aGlzLnkgOiB0aGlzLngpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJldkNsaWVudFBvc2l0aW9uID0gMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0Q2xpZW50UG9zID0gaXNWZXJ0aWNhbCA/IGUudG91Y2hlc1tlLnRvdWNoZXMubGVuZ3RoIC0gMV0uY2xpZW50WSA6IGUudG91Y2hlc1tlLnRvdWNoZXMubGVuZ3RoIC0gMV0uY2xpZW50WCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldHMgPSBuZXcgQXJyYXk8W251bWJlciwgbnVtYmVyXT4oKSwgdmVsb2NpdGllcyA9IG5ldyBBcnJheTxbbnVtYmVyLCBudW1iZXJdPigpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZyb21FdmVudDxUb3VjaEV2ZW50Pih3aW5kb3csIFRPVUNIX01PVkUsIHsgcGFzc2l2ZTogZmFsc2UgfSkucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKCR0b3VjaENhbmNlbGVyKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcChlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrT3ZlcnNjcm9sbChlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcG9zaXRpb24sIGN1cnJlbnRQb3MsIGVuZFRpbWUsIHNjcm9sbERlbHRhIH0gPVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZVBvc2l0aW9uKGlzVmVydGljYWwsIGUsIGludmVyc2lvbiwgc3RhcnRDbGllbnRQb3MsIHN0YXJ0VGltZSwgcHJldkNsaWVudFBvc2l0aW9uLCBvZmZzZXRzLCB2ZWxvY2l0aWVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2Q2xpZW50UG9zaXRpb24gPSBjdXJyZW50UG9zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZShpc1ZlcnRpY2FsLCBwb3NpdGlvbiwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lID0gZW5kVGltZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmFjZShbZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KHdpbmRvdywgVE9VQ0hfRU5ELCB7IHBhc3NpdmU6IGZhbHNlIH0pLCBmcm9tRXZlbnQ8VG91Y2hFdmVudD4oY29udGVudCwgVE9VQ0hfRU5ELCB7IHBhc3NpdmU6IGZhbHNlIH0pXSkucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuXyR1bnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcChlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsT3ZlcnNjcm9sbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kVGltZSA9IERhdGUubm93KCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wID0gZW5kVGltZSAtIHN0YXJ0VGltZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHYwIH0gPSB0aGlzLmNhbGN1bGF0ZVZlbG9jaXR5KG9mZnNldHMsIHNjcm9sbERlbHRhLCB0aW1lc3RhbXApLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgYTAgfSA9IHRoaXMuY2FsY3VsYXRlQWNjZWxlcmF0aW9uKHZlbG9jaXRpZXMsIHYwLCB0aW1lc3RhbXApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNNb3ZpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuXyRncmFiYmluZy5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl8kc2Nyb2xsQmVoYXZpb3IuZ2V0VmFsdWUoKSA9PT0gQkVIQVZJT1JfSU5TVEFOVCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVdpdGhBY2NlbGVyYXRpb24oaXNWZXJ0aWNhbCwgcG9zaXRpb24sIDAsIHYwLCBhMCwgdGltZXN0YW1wKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2FsY3VsYXRlUG9zaXRpb24oaXNWZXJ0aWNhbDogYm9vbGVhbiwgZTogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQgfCBhbnksIGludmVyc2lvbjogYm9vbGVhbiwgc3RhcnRDbGllbnRQb3M6IG51bWJlciwgc3RhcnRUaW1lOiBudW1iZXIsXHJcbiAgICAgICAgcHJldkNsaWVudFBvc2l0aW9uOiBudW1iZXIsIG9mZnNldHM6IEFycmF5PFtudW1iZXIsIG51bWJlcl0+LCB2ZWxvY2l0aWVzOiBBcnJheTxbbnVtYmVyLCBudW1iZXJdPlxyXG4gICAgKSB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudFBvcyA9IGlzVmVydGljYWwgPyBlLnRvdWNoZXM/LltlLnRvdWNoZXM/Lmxlbmd0aCAtIDFdPy5jbGllbnRZIHx8IGUuY2xpZW50WSA6IGUudG91Y2hlcz8uW2UudG91Y2hlcz8ubGVuZ3RoIC0gMV0/LmNsaWVudFggfHwgZS5jbGllbnRYLFxyXG4gICAgICAgICAgICBzY3JvbGxTaXplID0gaXNWZXJ0aWNhbCA/IHRoaXMuc2Nyb2xsSGVpZ2h0IDogdGhpcy5zY3JvbGxXaWR0aCwgZGVsdGEgPSAoaW52ZXJzaW9uID8gLTEgOiAxKSAqIChzdGFydENsaWVudFBvcyAtIGN1cnJlbnRQb3MpLFxyXG4gICAgICAgICAgICBkcCA9IHRoaXMuX3N0YXJ0UG9zaXRpb24gKyBkZWx0YSwgcG9zaXRpb24gPSBNYXRoLnJvdW5kKGRwIDwgMCA/IDAgOiBkcCA+IHNjcm9sbFNpemUgPyBzY3JvbGxTaXplIDogZHApLCBlbmRUaW1lID0gRGF0ZS5ub3coKSxcclxuICAgICAgICAgICAgdGltZXN0YW1wID0gZW5kVGltZSAtIHN0YXJ0VGltZSwgc2Nyb2xsRGVsdGEgPSBwcmV2Q2xpZW50UG9zaXRpb24gPT09IDAgPyAwIDogcHJldkNsaWVudFBvc2l0aW9uIC0gY3VycmVudFBvcyxcclxuICAgICAgICAgICAgeyB2MCB9ID0gdGhpcy5jYWxjdWxhdGVWZWxvY2l0eShvZmZzZXRzLCBzY3JvbGxEZWx0YSwgdGltZXN0YW1wKTtcclxuICAgICAgICB0aGlzLmNhbGN1bGF0ZUFjY2VsZXJhdGlvbih2ZWxvY2l0aWVzLCB2MCwgdGltZXN0YW1wKTtcclxuICAgICAgICByZXR1cm4geyBwb3NpdGlvbiwgY3VycmVudFBvcywgZW5kVGltZSwgc2Nyb2xsRGVsdGEgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhbmNlbE92ZXJzY3JvbGwoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl8kb3ZlcnNjcm9sbEVuYWJsZWQuZ2V0VmFsdWUoKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX292ZXJzY3JvbGxJdGVyYXRpb24gPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hlY2tPdmVyc2Nyb2xsQnlBeGlzKGU6IEV2ZW50LCBwb3M6IG51bWJlciwgbGltaXQ6IG51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IHAgPSBNYXRoLmFicyhwb3MpO1xyXG4gICAgICAgIGlmIChwID4gMCAmJiBwIDwgbGltaXQpIHtcclxuICAgICAgICAgICAgaWYgKGUuY2FuY2VsYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9vdmVyc2Nyb2xsSXRlcmF0aW9uID0gMDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fb3ZlcnNjcm9sbEl0ZXJhdGlvbiA8IE9WRVJTQ1JPTExfU1RBUlRfSVRFUkFUSU9OKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9vdmVyc2Nyb2xsSXRlcmF0aW9uKys7XHJcbiAgICAgICAgICAgICAgICBpZiAoZS5jYW5jZWxhYmxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja092ZXJzY3JvbGwoZTogRXZlbnQpIHtcclxuICAgICAgICBpZiAoIXRoaXMuXyRvdmVyc2Nyb2xsRW5hYmxlZC5nZXRWYWx1ZSgpKSB7XHJcbiAgICAgICAgICAgIGlmIChlLmNhbmNlbGFibGUpIHtcclxuICAgICAgICAgICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5fJGlzVmVydGljYWwuZ2V0VmFsdWUoKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrT3ZlcnNjcm9sbEJ5QXhpcyhlLCB0aGlzLl95LCB0aGlzLnNjcm9sbEhlaWdodCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja092ZXJzY3JvbGxCeUF4aXMoZSwgdGhpcy5feCwgdGhpcy5zY3JvbGxXaWR0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2FsY3VsYXRlVmVsb2NpdHkob2Zmc2V0czogQXJyYXk8W251bWJlciwgbnVtYmVyXT4sIGRlbHRhOiBudW1iZXIsIHRpbWVzdGFtcDogbnVtYmVyLCBpbmRleE9mZnNldDogbnVtYmVyID0gMTApIHtcclxuICAgICAgICBvZmZzZXRzLnB1c2goW2RlbHRhLCB0aW1lc3RhbXAgPCBBTklNQVRPUl9NSU5fVElNRVNUQU1QID8gQU5JTUFUT1JfTUlOX1RJTUVTVEFNUCA6IHRpbWVzdGFtcF0pO1xyXG5cclxuICAgICAgICBjb25zdCBsZW4gPSBvZmZzZXRzLmxlbmd0aCwgc3RhcnRJbmRleCA9IGxlbiA+IGluZGV4T2Zmc2V0ID8gbGVuIC0gaW5kZXhPZmZzZXQgOiAwLCBsYXN0VlNpZ24gPSBjYWxjdWxhdGVEaXJlY3Rpb24ob2Zmc2V0cyk7XHJcbiAgICAgICAgbGV0IHZTdW0gPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBzdGFydEluZGV4LCBsID0gb2Zmc2V0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgcDAgPSBvZmZzZXRzW2ldO1xyXG4gICAgICAgICAgICBpZiAobGFzdFZTaWduICE9PSBNYXRoLnNpZ24ocDBbMF0pKSB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgdjAgPSAocDBbMV0gIT09IDAgPyBsYXN0VlNpZ24gKiBNYXRoLmFicyhwMFswXSAvIHAwWzFdKSAqIFNQRUVEX1NDQUxFIDogMCk7XHJcbiAgICAgICAgICAgIHZTdW0gKz0gTWF0aC5zaWduKHYwKSAqIE1hdGgucG93KHYwLCA0KSAqIC4wMDM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBsID0gTWF0aC5taW4ob2Zmc2V0cy5sZW5ndGgsIGluZGV4T2Zmc2V0KSwgdjAgPSBsID4gMCA/ICh2U3VtIC8gbCkgOiAwO1xyXG4gICAgICAgIHJldHVybiB7IHYwIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVBY2NlbGVyYXRpb24odmVsb2NpdGllczogQXJyYXk8W251bWJlciwgbnVtYmVyXT4sIGRlbHRhOiBudW1iZXIsIHRpbWVzdGFtcDogbnVtYmVyLCBpbmRleE9mZnNldDogbnVtYmVyID0gMTApIHtcclxuICAgICAgICB2ZWxvY2l0aWVzLnB1c2goW2RlbHRhLCB0aW1lc3RhbXAgPCBBTklNQVRPUl9NSU5fVElNRVNUQU1QID8gQU5JTUFUT1JfTUlOX1RJTUVTVEFNUCA6IHRpbWVzdGFtcF0pO1xyXG4gICAgICAgIGNvbnN0IGxlbiA9IHZlbG9jaXRpZXMubGVuZ3RoLCBzdGFydEluZGV4ID0gbGVuID4gaW5kZXhPZmZzZXQgPyBsZW4gLSBpbmRleE9mZnNldCA6IDA7XHJcbiAgICAgICAgbGV0IGFTdW0gPSAwLCBwcmV2VjA6IFtudW1iZXIsIG51bWJlcl0gfCB1bmRlZmluZWQsIGl0ZXJhdGlvbiA9IDAsIGxhc3RWU2lnbiA9IGNhbGN1bGF0ZURpcmVjdGlvbih2ZWxvY2l0aWVzKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gc3RhcnRJbmRleCwgbCA9IHZlbG9jaXRpZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHYwMCA9IHByZXZWMCwgdjAxID0gdmVsb2NpdGllc1tpXTtcclxuICAgICAgICAgICAgaWYgKGxhc3RWU2lnbiAhPT0gTWF0aC5zaWduKHYwMVswXSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh2MDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGEwID0gdGltZXN0YW1wIDwgTUFYX1ZFTE9DSVRZX1RJTUVTVEFNUCA/ICh2MDBbMV0gIT09IDAgPyAobGFzdFZTaWduICogTWF0aC5hYnMoTWF0aC5hYnModjAxWzBdKSAtIE1hdGguYWJzKHYwMFswXSkpKSAvIE1hdGguYWJzKHYwMFsxXSkgOiAwKSA6IDAuMTtcclxuICAgICAgICAgICAgICAgIGFTdW0gPSAoYVN1bSAqIE1BU1MpICsgYTA7XHJcbiAgICAgICAgICAgICAgICBwcmV2VjAgPSB2MDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHJldlYwID0gdjAxO1xyXG4gICAgICAgICAgICBpdGVyYXRpb24rKztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGEwID0gYVN1bSAqIEZSSUNUSU9OX0ZPUkNFO1xyXG4gICAgICAgIHJldHVybiB7IGEwIH07XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcFNjcm9sbGluZygpIHtcclxuICAgICAgICB0aGlzLl9hbmltYXRvci5zdG9wKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG1vdmUoaXNWZXJ0aWNhbDogYm9vbGVhbiwgcG9zaXRpb246IG51bWJlciwgYmxlbmRpbmc6IGJvb2xlYW4gPSBmYWxzZSwgdXNlckFjdGlvbjogYm9vbGVhbiA9IGZhbHNlLCBmaXJlVXBkYXRlOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsKHsgW2lzVmVydGljYWwgPyBUT1AgOiBMRUZUXTogcG9zaXRpb24sIGJlaGF2aW9yOiBJTlNUQU5ULCBibGVuZGluZywgdXNlckFjdGlvbiwgZmlyZVVwZGF0ZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgbW92ZVdpdGhBY2NlbGVyYXRpb24oaXNWZXJ0aWNhbDogYm9vbGVhbiwgcG9zaXRpb246IG51bWJlciwgdjA6IG51bWJlciwgdjogbnVtYmVyLCBhMDogbnVtYmVyLCB0aW1lc3RhbXA6IG51bWJlcikge1xyXG4gICAgICAgIGlmIChhMCAhPT0gMCAmJiB0aW1lc3RhbXAgPCBNQVhfVkVMT0NJVFlfVElNRVNUQU1QKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGR2U2lnbiA9IE1hdGguc2lnbih2KSxcclxuICAgICAgICAgICAgICAgIGR1cmF0aW9uID0gRFVSQVRJT04sIG1heER1cmF0aW9uID0gTUFYX0RVUkFUSU9OLFxyXG4gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2UgPSBkdlNpZ24gKiBNQVhfRElTVCwgcyA9IChkdlNpZ24gKiBNYXRoLmFicygoYTAgKiBNYXRoLnBvdyhkdXJhdGlvbiwgMikpICogLjUpIC8gMTAwMCkgLyBNQVNTLFxyXG4gICAgICAgICAgICAgICAgZGlzdGFuY2UgPSBNYXRoLmFicyhzKSA8IE1BWF9ESVNUID8gcyA6IG1heERpc3RhbmNlLCBwb3NpdGlvbldpdGhWZWxvY2l0eSA9IHBvc2l0aW9uICsgKHRoaXMuX2ludmVyc2lvbiA/IC0xIDogMSkgKiBkaXN0YW5jZSxcclxuICAgICAgICAgICAgICAgIHZtYXggPSBNYXRoLm1heChNYXRoLmFicyh2MCksIE1hdGguYWJzKHYpKSxcclxuICAgICAgICAgICAgICAgIGFkID0gTWF0aC5hYnModm1heCAhPT0gMCA/IE1hdGguc3FydCh2bWF4KSA6IDApICogMTAgLyBNQVNTLFxyXG4gICAgICAgICAgICAgICAgYUR1cmF0aW9uID0gYWQgPCBtYXhEdXJhdGlvbiA/IGFkIDogbWF4RHVyYXRpb24sXHJcbiAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uID0gaXNWZXJ0aWNhbCA/IHRoaXMueSA6IHRoaXMueDtcclxuICAgICAgICAgICAgdGhpcy5hbmltYXRlKHN0YXJ0UG9zaXRpb24sIE1hdGgucm91bmQocG9zaXRpb25XaXRoVmVsb2NpdHkpLCBhRHVyYXRpb24sIGVhc2VPdXRRdWFkLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG5vcm1hbGl6ZVZhbHVlKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICBjb25zdCBpc1ZlcnRpY2FsID0gdGhpcy5fJGRpcmVjdGlvbi5nZXRWYWx1ZSgpID09PSBTY3JvbGxlckRpcmVjdGlvbi5WRVJUSUNBTCxcclxuICAgICAgICAgICAgc3RhcnRPZmZzZXQgPSB0aGlzLl9ub3JtYWxpemVWYWx1ZUZyb21aZXJvID8gMCA6IHRoaXMuXyRzdGFydE9mZnNldC5nZXRWYWx1ZSgpLFxyXG4gICAgICAgICAgICBzY3JvbGxTaXplID0gaXNWZXJ0aWNhbCA/IHRoaXMuc2Nyb2xsSGVpZ2h0IDogdGhpcy5zY3JvbGxXaWR0aCxcclxuICAgICAgICAgICAgcmVzdWx0ID0gdmFsdWUgPD0gc3RhcnRPZmZzZXQgPyBzdGFydE9mZnNldCA6IHZhbHVlID4gc2Nyb2xsU2l6ZSA/IHNjcm9sbFNpemUgOiB2YWx1ZTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBhbmltYXRlKHN0YXJ0VmFsdWU6IG51bWJlciwgZW5kVmFsdWU6IG51bWJlciwgZHVyYXRpb24gPSBBTklNQVRJT05fRFVSQVRJT04sIGVhc2luZ0Z1bmN0aW9uOiBFYXNpbmcgPSBlYXNlT3V0UXVhZCxcclxuICAgICAgICB1c2VyQWN0aW9uOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgICAgICBjb25zdCBpc1ZlcnRpY2FsID0gdGhpcy5fJGRpcmVjdGlvbi5nZXRWYWx1ZSgpID09PSBTY3JvbGxlckRpcmVjdGlvbi5WRVJUSUNBTDtcclxuICAgICAgICB0aGlzLl9hbmltYXRvci5hbmltYXRlKHtcclxuICAgICAgICAgICAgc3RhcnRWYWx1ZSwgZW5kVmFsdWUsIGR1cmF0aW9uLFxyXG4gICAgICAgICAgICBlYXNpbmdGdW5jdGlvbixcclxuICAgICAgICAgICAgZ2V0UHJvcFZhbHVlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNWZXJ0aWNhbCA/IHRoaXMuX3kgOiB0aGlzLl94O1xyXG4gICAgICAgICAgICB9LCBvblVwZGF0ZTogKHsgdmFsdWUgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb3ZlKGlzVmVydGljYWwsIHZhbHVlLCBmYWxzZSwgdXNlckFjdGlvbik7XHJcbiAgICAgICAgICAgIH0sIG9uQ29tcGxldGU6ICh7IHZhbHVlIH0pID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMubW92ZShpc1ZlcnRpY2FsLCB2YWx1ZSwgZmFsc2UsIHVzZXJBY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fJHNjcm9sbEVuZC5uZXh0KHVzZXJBY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vbkFuaW1hdGlvbkNvbXBsZXRlKHZhbHVlKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25BbmltYXRpb25Db21wbGV0ZShwb3NpdGlvbjogbnVtYmVyKSB7IH1cclxuXHJcbiAgICBmaXJlU2Nyb2xsKHVzZXJBY3Rpb246IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIHRoaXMuc3RvcFNjcm9sbGluZygpO1xyXG4gICAgICAgIHRoaXMuXyR1cGRhdGVTY3JvbGxCYXIubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuZW1pdFNjcm9sbGFibGVFdmVudCgpO1xyXG4gICAgICAgIHRoaXMuZmlyZVNjcm9sbEV2ZW50KHVzZXJBY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHNjcm9sbExpbWl0cyh2YWx1ZT86IG51bWJlciB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHggPSB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiB0aGlzLl94LCB5ID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDogdGhpcy5feSwgaXNWZXJ0aWNhbCA9IHRoaXMuXyRpc1ZlcnRpY2FsLmdldFZhbHVlKCk7XHJcbiAgICAgICAgaWYgKGlzVmVydGljYWwpIHtcclxuICAgICAgICAgICAgY29uc3QgeXkgPSB0aGlzLm5vcm1hbGl6ZVZhbHVlKHkpO1xyXG4gICAgICAgICAgICBpZiAoeSAhPT0geXkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMueSA9IHl5O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCB4eCA9IHRoaXMubm9ybWFsaXplVmFsdWUoeCk7XHJcbiAgICAgICAgICAgIGlmICh4ICE9PSB4eCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy54ID0geHg7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgc2Nyb2xsKHBhcmFtczogSVNjcm9sbFRvUGFyYW1zKSB7XHJcbiAgICAgICAgY29uc3QgcG9zWCA9IHBhcmFtcy54IHx8IHBhcmFtcy5sZWZ0IHx8IDAsXHJcbiAgICAgICAgICAgIHBvc1kgPSBwYXJhbXMueSB8fCBwYXJhbXMudG9wIHx8IDAsXHJcbiAgICAgICAgICAgIHVzZXJBY3Rpb24gPSBwYXJhbXMudXNlckFjdGlvbiA/PyBmYWxzZSxcclxuICAgICAgICAgICAgZWFzZSA9IHBhcmFtcy5lYXNlIHx8IGVhc2VPdXRRdWFkLFxyXG4gICAgICAgICAgICBmaXJlVXBkYXRlID0gcGFyYW1zLmZpcmVVcGRhdGUgPz8gdHJ1ZSxcclxuICAgICAgICAgICAgYmVoYXZpb3IgPSBwYXJhbXMuYmVoYXZpb3IgPz8gSU5TVEFOVCxcclxuICAgICAgICAgICAgYmxlbmRpbmcgPSBwYXJhbXMuYmxlbmRpbmcgPz8gdHJ1ZSxcclxuICAgICAgICAgICAgZHVyYXRpb24gPSBwYXJhbXMuZHVyYXRpb24gPz8gQU5JTUFUSU9OX0RVUkFUSU9OLFxyXG4gICAgICAgICAgICBpc1ZlcnRpY2FsID0gdGhpcy5fJGRpcmVjdGlvbi5nZXRWYWx1ZSgpID09PSBTY3JvbGxlckRpcmVjdGlvbi5WRVJUSUNBTDtcclxuXHJcbiAgICAgICAgY29uc3QgeCA9IHRoaXMubm9ybWFsaXplVmFsdWUocG9zWCksXHJcbiAgICAgICAgICAgIHkgPSB0aGlzLm5vcm1hbGl6ZVZhbHVlKHBvc1kpLFxyXG4gICAgICAgICAgICBwcmV2WCA9IHRoaXMuX3gsXHJcbiAgICAgICAgICAgIHByZXZZID0gdGhpcy5feTtcclxuICAgICAgICBpZiAoYmVoYXZpb3IgPT09IEFVVE8gfHwgYmVoYXZpb3IgPT09IFNNT09USCkge1xyXG4gICAgICAgICAgICBpZiAoaXNWZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHByZXZZICE9PSB5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRlKHByZXZZLCB5LCBkdXJhdGlvbiwgZWFzZSwgdXNlckFjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJldlggIT09IHgpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGUocHJldlgsIHgsIGR1cmF0aW9uLCBlYXNlLCB1c2VyQWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl95ICE9PSB5KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXNWZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghYmxlbmRpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9wU2Nyb2xsaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFkoeSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy55ID0geTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRTY3JvbGxhYmxlRXZlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlyZVVwZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpcmVTY3JvbGxFdmVudCh1c2VyQWN0aW9uKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5feCAhPT0geCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghYmxlbmRpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9wU2Nyb2xsaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaFgoeCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy54ID0geDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtaXRTY3JvbGxhYmxlRXZlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlyZVVwZGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpcmVTY3JvbGxFdmVudCh1c2VyQWN0aW9uKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGVtaXRTY3JvbGxhYmxlRXZlbnQoKSB7XHJcbiAgICAgICAgaWYgKCEhdGhpcy5jZGtTY3JvbGxhYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2RrU2Nyb2xsYWJsZS5nZXRFbGVtZW50UmVmKCk/Lm5hdGl2ZUVsZW1lbnQ/LmRpc3BhdGNoRXZlbnQoU0NST0xMX0VWRU5UKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVmcmVzaFgodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IHNjcm9sbENvbnRlbnQgPSB0aGlzLnNjcm9sbENvbnRlbnQ/Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQ7XHJcbiAgICAgICAgc2Nyb2xsQ29udGVudC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlM2QoJHsodGhpcy5faW52ZXJzaW9uID8gMSA6IC0xKSAqIHZhbHVlfXB4LCAwLCAwKWA7XHJcbiAgICB9XHJcblxyXG4gICAgcmVmcmVzaFkodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IHNjcm9sbENvbnRlbnQgPSB0aGlzLnNjcm9sbENvbnRlbnQ/Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTERpdkVsZW1lbnQ7XHJcbiAgICAgICAgc2Nyb2xsQ29udGVudC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlM2QoMCwgJHsodGhpcy5faW52ZXJzaW9uID8gMSA6IC0xKSAqIHZhbHVlfXB4LCAwKWA7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGZpcmVTY3JvbGxFdmVudCh1c2VyQWN0aW9uOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fJHNjcm9sbC5uZXh0KHVzZXJBY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvbkRyYWdTdGFydCgpIHsgfVxyXG5cclxuICAgIHJlc2V0KG9mZnNldDogbnVtYmVyID0gMCkge1xyXG4gICAgICAgIHRoaXMuc3RvcFNjcm9sbGluZygpO1xyXG4gICAgICAgIHRoaXMubW92ZSh0aGlzLl8kaXNWZXJ0aWNhbC5nZXRWYWx1ZSgpLCBvZmZzZXQpO1xyXG4gICAgfVxyXG5cclxuICAgIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9hbmltYXRvcikge1xyXG4gICAgICAgICAgICB0aGlzLl9hbmltYXRvci5kaXNwb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
|
|
376
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctc2Nyb2xsLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvY29tcG9uZW50cy9uZy1zY3JvbGwtdmlldy9uZy1zY3JvbGwtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsR0FDdEMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0csT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQVUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0YsT0FBTyxFQUNILGdCQUFnQixFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFDaEosU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxHQUM1QyxNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQ0gsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFDdkgsMEJBQTBCLEVBQUUsWUFBWSxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FB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QkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUsRUFBRTtpQkFDZjswRUFHWSxhQUFhO3NCQURyQixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRTtnQkFNaEQsY0FBYztzQkFEakIsS0FBSztnQkFXRixpQkFBaUI7c0JBRHBCLEtBQUs7Z0JBV0YsaUJBQWlCO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyLCBmcm9tRXZlbnQsIG1hcCwgb2YsIHJhY2UsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2Nyb2xsZXJEaXJlY3Rpb24gfSBmcm9tICcuL2VudW1zJztcclxuaW1wb3J0IHsgQU5JTUFUT1JfTUlOX1RJTUVTVEFNUCwgQW5pbWF0b3IsIEVhc2luZywgZWFzZU91dFF1YWQgfSBmcm9tICcuLi8uLi91dGlscy9hbmltYXRvcic7XHJcbmltcG9ydCB7XHJcbiAgICBCRUhBVklPUl9JTlNUQU5ULCBERUZBVUxUX09WRVJTQ1JPTExfRU5BQkxFRCwgREVGQVVMVF9TQ1JPTExfQkVIQVZJT1IsIERFRkFVTFRfU0NST0xMSU5HX1NFVFRJTkdTLCBJTlRFUkFDVElWRSwgTU9VU0VfRE9XTiwgTU9VU0VfTU9WRSwgTU9VU0VfVVAsXHJcbiAgICBUT1VDSF9FTkQsIFRPVUNIX01PVkUsIFRPVUNIX1NUQVJULCBXSEVFTCxcclxufSBmcm9tICcuLi8uLi9jb25zdCc7XHJcbmltcG9ydCB7IElTY3JvbGxUb1BhcmFtcyB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgICBBTklNQVRJT05fRFVSQVRJT04sIEFVVE8sIERVUkFUSU9OLCBGUklDVElPTl9GT1JDRSwgSU5TVEFOVCwgTEVGVCwgTUFTUywgTUFYX0RJU1QsIE1BWF9EVVJBVElPTiwgTUFYX1ZFTE9DSVRZX1RJTUVTVEFNUCxcclxuICAgIE9WRVJTQ1JPTExfU1RBUlRfSVRFUkFUSU9OLCBTQ1JPTExfRVZFTlQsIFNDUk9MTF9WSUVXX05PUk1BTElaRV9WQUxVRV9GUk9NX1pFUk8sIFNNT09USCwgU1BFRURfU0NBTEUsIFRPUCxcclxufSBmcm9tICcuL2NvbnN0JztcclxuaW1wb3J0IHsgY2FsY3VsYXRlRGlyZWN0aW9uIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IEJhc2VTY3JvbGxWaWV3IH0gZnJvbSAnLi9iYXNlL2Jhc2Utc2Nyb2xsLXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSVNjcm9sbGluZ1NldHRpbmdzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XHJcblxyXG4vKipcclxuICogTmdTY3JvbGxWaWV3XHJcbiAqIE1heGltdW0gcGVyZm9ybWFuY2UgZm9yIGV4dHJlbWVseSBsYXJnZSBsaXN0cy5cclxuICogSXQgaXMgYmFzZWQgb24gYWxnb3JpdGhtcyBmb3IgdmlydHVhbGl6YXRpb24gb2Ygc2NyZWVuIG9iamVjdHMuXHJcbiAqIEBsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9Eam9ubnlYL25nLXZpcnR1YWwtbGlzdC9ibG9iLzE0LngvcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvY29tcG9uZW50cy9uZy1zY3JvbGwtdmlldy9uZy1zY3JvbGwtdmlldy5jb21wb25lbnQudHNcclxuICogQGF1dGhvciBFdmdlbmlpIEFsZXhhbmRyb3ZpY2ggR3JlYmVubmlrb3ZcclxuICogQGVtYWlsIGRqb25ueXhAZ21haWwuY29tXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbmctc2Nyb2xsLXZpZXcnLFxyXG4gICAgdGVtcGxhdGU6ICcnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdTY3JvbGxWaWV3IGV4dGVuZHMgQmFzZVNjcm9sbFZpZXcge1xyXG4gICAgQFZpZXdDaGlsZCgnc2Nyb2xsVmlld3BvcnQnLCB7IHJlYWQ6IENka1Njcm9sbGFibGUgfSlcclxuICAgIHJlYWRvbmx5IGNka1Njcm9sbGFibGU6IENka1Njcm9sbGFibGUgfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgcHJvdGVjdGVkIF8kc2Nyb2xsQmVoYXZpb3IgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNjcm9sbEJlaGF2aW9yPihERUZBVUxUX1NDUk9MTF9CRUhBVklPUik7XHJcbiAgICByZWFkb25seSAkc2Nyb2xsQmVoYXZpb3IgPSB0aGlzLl8kc2Nyb2xsQmVoYXZpb3IuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IHNjcm9sbEJlaGF2aW9yKHY6IFNjcm9sbEJlaGF2aW9yKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuXyRzY3JvbGxCZWhhdmlvci5nZXRWYWx1ZSgpICE9PSB2KSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRzY3JvbGxCZWhhdmlvci5uZXh0KHYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGdldCBzY3JvbGxCZWhhdmlvcigpIHsgcmV0dXJuIHRoaXMuXyRzY3JvbGxCZWhhdmlvci5nZXRWYWx1ZSgpOyB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF8kb3ZlcnNjcm9sbEVuYWJsZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KERFRkFVTFRfT1ZFUlNDUk9MTF9FTkFCTEVEKTtcclxuICAgIHJlYWRvbmx5ICRvdmVyc2Nyb2xsRW5hYmxlZCA9IHRoaXMuXyRvdmVyc2Nyb2xsRW5hYmxlZC5hc09ic2VydmFibGUoKTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgb3ZlcnNjcm9sbEVuYWJsZWQodjogYm9vbGVhbikge1xyXG4gICAgICAgIGlmICh0aGlzLl8kb3ZlcnNjcm9sbEVuYWJsZWQuZ2V0VmFsdWUoKSAhPT0gdikge1xyXG4gICAgICAgICAgICB0aGlzLl8kb3ZlcnNjcm9sbEVuYWJsZWQubmV4dCh2KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBnZXQgb3ZlcnNjcm9sbEVuYWJsZWQoKSB7IHJldHVybiB0aGlzLl8kb3ZlcnNjcm9sbEVuYWJsZWQuZ2V0VmFsdWUoKTsgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfJHNjcm9sbGluZ1NldHRpbmdzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJU2Nyb2xsaW5nU2V0dGluZ3M+KERFRkFVTFRfU0NST0xMSU5HX1NFVFRJTkdTKTtcclxuICAgIHJlYWRvbmx5ICRzY3JvbGxpbmdTZXR0aW5ncyA9IHRoaXMuXyRzY3JvbGxpbmdTZXR0aW5ncy5hc09ic2VydmFibGUoKTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgc2Nyb2xsaW5nU2V0dGluZ3ModjogSVNjcm9sbGluZ1NldHRpbmdzKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuXyRzY3JvbGxpbmdTZXR0aW5ncy5nZXRWYWx1ZSgpICE9PSB2KSB7XHJcbiAgICAgICAgICAgIHRoaXMuXyRzY3JvbGxpbmdTZXR0aW5ncy5uZXh0KHYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGdldCBzY3JvbGxpbmdTZXR0aW5ncygpIHsgcmV0dXJuIHRoaXMuXyRzY3JvbGxpbmdTZXR0aW5ncy5nZXRWYWx1ZSgpOyB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9ub3JtYWxpemVWYWx1ZUZyb21aZXJvID0gaW5qZWN0KFNDUk9MTF9WSUVXX05PUk1BTElaRV9WQUxVRV9GUk9NX1pFUk8pO1xyXG5cclxuICAgIHByb3RlY3RlZCBfJHNjcm9sbCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgICByZWFkb25seSAkc2Nyb2xsID0gdGhpcy5fJHNjcm9sbC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgXyRzY3JvbGxFbmQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gICAgcmVhZG9ubHkgJHNjcm9sbEVuZCA9IHRoaXMuXyRzY3JvbGxFbmQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgcHJpdmF0ZSBfc3RhcnRQb3NpdGlvbiA9IDA7XHJcblxyXG4gICAgcHJvdGVjdGVkIF9hbmltYXRvciA9IG5ldyBBbmltYXRvcigpO1xyXG5cclxuICAgIHByb3RlY3RlZCBfaW50ZXJhY3RpdmUgPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgX292ZXJzY3JvbGxJdGVyYXRpb246IG51bWJlciA9IDA7XHJcblxyXG4gICAgc2V0IGRlbHRhKHY6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX3N0YXJ0UG9zaXRpb24gKz0gdjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgICBjb25zdCAkdmlld3BvcnQgPSBvZih0aGlzLnNjcm9sbFZpZXdwb3J0KS5waXBlKFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fJHVuc3Vic2NyaWJlKSxcclxuICAgICAgICAgICAgZmlsdGVyKHYgPT4gISF2KSxcclxuICAgICAgICAgICAgbWFwKHYgPT4gdiEubmF0aXZlRWxlbWVudCksXHJcbiAgICAgICAgKSwgJGNvbnRlbnQgPSBvZih0aGlzLnNjcm9sbENvbnRlbnQpLnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgICBmaWx0ZXIodiA9PiAhIXYpLFxyXG4gICAgICAgICAgICBtYXAodiA9PiB2IS5uYXRpdmVFbGVtZW50KSxcclxuICAgICAgICApLCAkd2hlZWxFbWl0dGVyID0gdGhpcy5faW52ZXJzaW9uID8gJHZpZXdwb3J0IDogJGNvbnRlbnQ7XHJcblxyXG4gICAgICAgICR3aGVlbEVtaXR0ZXIucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuXyR1bnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcChjb250ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQ8V2hlZWxFdmVudD4oY29udGVudCwgV0hFRUwsIHsgcGFzc2l2ZTogZmFsc2UgfSkucGlwZShcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5faW50ZXJhY3RpdmUpLFxyXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgICAgICAgICAgIHRhcChlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNWZXJ0aWNhbCA9IHRoaXMuXyRpc1ZlcnRpY2FsLmdldFZhbHVlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdFNjcm9sbGFibGVFdmVudCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoZWNrT3ZlcnNjcm9sbChlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9wU2Nyb2xsaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNjcm9sbFNpemUgPSBpc1ZlcnRpY2FsID8gdGhpcy5zY3JvbGxIZWlnaHQgOiB0aGlzLnNjcm9sbFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRQb3MgPSBpc1ZlcnRpY2FsID8gdGhpcy55IDogdGhpcy54LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsdGEgPSBpc1ZlcnRpY2FsID8gZS5kZWx0YVkgOiBlLmRlbHRhWCwgZHAgPSAoc3RhcnRQb3MgKyBkZWx0YSksIHBvc2l0aW9uID0gZHAgPCAwID8gMCA6IGRwID4gc2Nyb2xsU2l6ZSA/IHNjcm9sbFNpemUgOiBkcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGwoeyBbaXNWZXJ0aWNhbCA/IFRPUCA6IExFRlRdOiBwb3NpdGlvbiwgYmVoYXZpb3I6IElOU1RBTlQsIHVzZXJBY3Rpb246IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApLnN1YnNjcmliZSgpO1xyXG5cclxuICAgICAgICBjb25zdCAkbW91c2VVcCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih3aW5kb3csIE1PVVNFX1VQLCB7IHBhc3NpdmU6IGZhbHNlIH0pLnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICksXHJcbiAgICAgICAgICAgICRtb3VzZURyYWdDYW5jZWwgPSAkbW91c2VVcC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuXyR1bnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzTW92aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fJGdyYWJiaW5nLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICRjb250ZW50LnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgICBzd2l0Y2hNYXAoY29udGVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGNvbnRlbnQsIE1PVVNFX0RPV04sIHsgcGFzc2l2ZTogZmFsc2UgfSkucGlwZShcclxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fJHVuc3Vic2NyaWJlKSxcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIodiA9PiB0aGlzLl9pbnRlcmFjdGl2ZSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbE92ZXJzY3JvbGwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRyYWdTdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3BTY3JvbGxpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKElOVEVSQUNUSVZFKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW52ZXJzaW9uID0gdGhpcy5faW52ZXJzaW9uLCBpc1ZlcnRpY2FsID0gdGhpcy5fJGlzVmVydGljYWwuZ2V0VmFsdWUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNNb3ZpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl8kZ3JhYmJpbmcubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IChpc1ZlcnRpY2FsID8gdGhpcy55IDogdGhpcy54KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByZXZDbGllbnRQb3NpdGlvbiA9IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydENsaWVudFBvcyA9IGlzVmVydGljYWwgPyBlLmNsaWVudFkgOiBlLmNsaWVudFgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzID0gbmV3IEFycmF5PFtudW1iZXIsIG51bWJlcl0+KCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWxvY2l0aWVzID0gbmV3IEFycmF5PFtudW1iZXIsIG51bWJlcl0+KCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHdpbmRvdywgTU9VU0VfTU9WRSwgeyBwYXNzaXZlOiBmYWxzZSB9KS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuXyR1bnN1YnNjcmliZSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwoJG1vdXNlRHJhZ0NhbmNlbCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXAoZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja092ZXJzY3JvbGwoZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcChlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBvc2l0aW9uLCBjdXJyZW50UG9zLCBlbmRUaW1lLCBzY3JvbGxEZWx0YSB9ID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbihpc1ZlcnRpY2FsLCBlLCBpbnZlcnNpb24sIHN0YXJ0Q2xpZW50UG9zLCBzdGFydFRpbWUsIHByZXZDbGllbnRQb3NpdGlvbiwgb2Zmc2V0cywgdmVsb2NpdGllcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkNsaWVudFBvc2l0aW9uID0gY3VycmVudFBvcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmUoaXNWZXJ0aWNhbCwgcG9zaXRpb24sIHRydWUsIHRydWUsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZSA9IGVuZFRpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJhY2UoW2Zyb21FdmVudDxNb3VzZUV2ZW50Pih3aW5kb3csIE1PVVNFX1VQLCB7IHBhc3NpdmU6IGZhbHNlIH0pLCBmcm9tRXZlbnQ8TW91c2VFdmVudD4oY29udGVudCwgTU9VU0VfVVAsIHsgcGFzc2l2ZTogZmFsc2UgfSldKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fJHVuc3Vic2NyaWJlKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFwKGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW5jZWxPdmVyc2Nyb2xsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRUaW1lID0gRGF0ZS5ub3coKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAgPSBlbmRUaW1lIC0gc3RhcnRUaW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgdjAgfSA9IHRoaXMuY2FsY3VsYXRlVmVsb2NpdHkob2Zmc2V0cywgc2Nyb2xsRGVsdGEsIHRpbWVzdGFtcCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBhMCB9ID0gdGhpcy5jYWxjdWxhdGVBY2NlbGVyYXRpb24odmVsb2NpdGllcywgdjAsIHRpbWVzdGFtcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pc01vdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fJGdyYWJiaW5nLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuXyRzY3JvbGxCZWhhdmlvci5nZXRWYWx1ZSgpID09PSBCRUhBVklPUl9JTlNUQU5UKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlV2l0aEFjY2VsZXJhdGlvbihpc1ZlcnRpY2FsLCBwb3NpdGlvbiwgMCwgdjAsIGEwLCB0aW1lc3RhbXApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICkuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgICAgIGNvbnN0ICR0b3VjaFVwID0gZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KHdpbmRvdywgVE9VQ0hfRU5ELCB7IHBhc3NpdmU6IGZhbHNlIH0pLnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICksXHJcbiAgICAgICAgICAgICR0b3VjaENhbmNlbGVyID0gJHRvdWNoVXAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pc01vdmluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuXyRncmFiYmluZy5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAkY29udGVudC5waXBlKFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fJHVuc3Vic2NyaWJlKSxcclxuICAgICAgICAgICAgc3dpdGNoTWFwKGNvbnRlbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZyb21FdmVudDxUb3VjaEV2ZW50Pihjb250ZW50LCBUT1VDSF9TVEFSVCwgeyBwYXNzaXZlOiBmYWxzZSB9KS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLl9pbnRlcmFjdGl2ZSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbE92ZXJzY3JvbGwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRyYWdTdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3BTY3JvbGxpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKElOVEVSQUNUSVZFKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW52ZXJzaW9uID0gdGhpcy5faW52ZXJzaW9uLCBpc1ZlcnRpY2FsID0gdGhpcy5fJGlzVmVydGljYWwuZ2V0VmFsdWUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNNb3ZpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl8kZ3JhYmJpbmcubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3RhcnRQb3NpdGlvbiA9IChpc1ZlcnRpY2FsID8gdGhpcy55IDogdGhpcy54KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByZXZDbGllbnRQb3NpdGlvbiA9IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydENsaWVudFBvcyA9IGlzVmVydGljYWwgPyBlLnRvdWNoZXNbZS50b3VjaGVzLmxlbmd0aCAtIDFdLmNsaWVudFkgOiBlLnRvdWNoZXNbZS50b3VjaGVzLmxlbmd0aCAtIDFdLmNsaWVudFgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRzID0gbmV3IEFycmF5PFtudW1iZXIsIG51bWJlcl0+KCksIHZlbG9jaXRpZXMgPSBuZXcgQXJyYXk8W251bWJlciwgbnVtYmVyXT4oKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZSA9IERhdGUubm93KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQ8VG91Y2hFdmVudD4od2luZG93LCBUT1VDSF9NT1ZFLCB7IHBhc3NpdmU6IGZhbHNlIH0pLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fJHVuc3Vic2NyaWJlKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCgkdG91Y2hDYW5jZWxlciksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXAoZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja092ZXJzY3JvbGwoZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcChlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBvc2l0aW9uLCBjdXJyZW50UG9zLCBlbmRUaW1lLCBzY3JvbGxEZWx0YSB9ID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3NpdGlvbihpc1ZlcnRpY2FsLCBlLCBpbnZlcnNpb24sIHN0YXJ0Q2xpZW50UG9zLCBzdGFydFRpbWUsIHByZXZDbGllbnRQb3NpdGlvbiwgb2Zmc2V0cywgdmVsb2NpdGllcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldkNsaWVudFBvc2l0aW9uID0gY3VycmVudFBvcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmUoaXNWZXJ0aWNhbCwgcG9zaXRpb24sIHRydWUsIHRydWUsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZSA9IGVuZFRpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJhY2UoW2Zyb21FdmVudDxUb3VjaEV2ZW50Pih3aW5kb3csIFRPVUNIX0VORCwgeyBwYXNzaXZlOiBmYWxzZSB9KSwgZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KGNvbnRlbnQsIFRPVUNIX0VORCwgeyBwYXNzaXZlOiBmYWxzZSB9KV0pLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl8kdW5zdWJzY3JpYmUpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXAoZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbE92ZXJzY3JvbGwoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZFRpbWUgPSBEYXRlLm5vdygpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCA9IGVuZFRpbWUgLSBzdGFydFRpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyB2MCB9ID0gdGhpcy5jYWxjdWxhdGVWZWxvY2l0eShvZmZzZXRzLCBzY3JvbGxEZWx0YSwgdGltZXN0YW1wKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGEwIH0gPSB0aGlzLmNhbGN1bGF0ZUFjY2VsZXJhdGlvbih2ZWxvY2l0aWVzLCB2MCwgdGltZXN0YW1wKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2lzTW92aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl8kZ3JhYmJpbmcubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fJHNjcm9sbEJlaGF2aW9yLmdldFZhbHVlKCkgPT09IEJFSEFWSU9SX0lOU1RBTlQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVXaXRoQWNjZWxlcmF0aW9uKGlzVmVydGljYWwsIHBvc2l0aW9uLCAwLCB2MCwgYTAsIHRpbWVzdGFtcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhbGN1bGF0ZVBvc2l0aW9uKGlzVmVydGljYWw6IGJvb2xlYW4sIGU6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50IHwgYW55LCBpbnZlcnNpb246IGJvb2xlYW4sIHN0YXJ0Q2xpZW50UG9zOiBudW1iZXIsIHN0YXJ0VGltZTogbnVtYmVyLFxyXG4gICAgICAgIHByZXZDbGllbnRQb3NpdGlvbjogbnVtYmVyLCBvZmZzZXRzOiBBcnJheTxbbnVtYmVyLCBudW1iZXJdPiwgdmVsb2NpdGllczogQXJyYXk8W251bWJlciwgbnVtYmVyXT5cclxuICAgICkge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRQb3MgPSBpc1ZlcnRpY2FsID8gZS50b3VjaGVzPy5bZS50b3VjaGVzPy5sZW5ndGggLSAxXT8uY2xpZW50WSB8fCBlLmNsaWVudFkgOiBlLnRvdWNoZXM/LltlLnRvdWNoZXM/Lmxlbmd0aCAtIDFdPy5jbGllbnRYIHx8IGUuY2xpZW50WCxcclxuICAgICAgICAgICAgc2Nyb2xsU2l6ZSA9IGlzVmVydGljYWwgPyB0aGlzLnNjcm9sbEhlaWdodCA6IHRoaXMuc2Nyb2xsV2lkdGgsIGRlbHRhID0gKGludmVyc2lvbiA/IC0xIDogMSkgKiAoc3RhcnRDbGllbnRQb3MgLSBjdXJyZW50UG9zKSxcclxuICAgICAgICAgICAgZHAgPSB0aGlzLl9zdGFydFBvc2l0aW9uICsgZGVsdGEsIHBvc2l0aW9uID0gTWF0aC5yb3VuZChkcCA8IDAgPyAwIDogZHAgPiBzY3JvbGxTaXplID8gc2Nyb2xsU2l6ZSA6IGRwKSwgZW5kVGltZSA9IERhdGUubm93KCksXHJcbiAgICAgICAgICAgIHRpbWVzdGFtcCA9IGVuZFRpbWUgLSBzdGFydFRpbWUsIHNjcm9sbERlbHRhID0gcHJldkNsaWVudFBvc2l0aW9uID09PSAwID8gMCA6IHByZXZDbGllbnRQb3NpdGlvbiAtIGN1cnJlbnRQb3MsXHJcbiAgICAgICAgICAgIHsgdjAgfSA9IHRoaXMuY2FsY3VsYXRlVmVsb2NpdHkob2Zmc2V0cywgc2Nyb2xsRGVsdGEsIHRpbWVzdGFtcCk7XHJcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVBY2NlbGVyYXRpb24odmVsb2NpdGllcywgdjAsIHRpbWVzdGFtcCk7XHJcbiAgICAgICAgcmV0dXJuIHsgcG9zaXRpb24sIGN1cnJlbnRQb3MsIGVuZFRpbWUsIHNjcm9sbERlbHRhIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjYW5jZWxPdmVyc2Nyb2xsKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fJG92ZXJzY3JvbGxFbmFibGVkLmdldFZhbHVlKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9vdmVyc2Nyb2xsSXRlcmF0aW9uID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoZWNrT3ZlcnNjcm9sbEJ5QXhpcyhlOiBFdmVudCwgcG9zOiBudW1iZXIsIGxpbWl0OiBudW1iZXIpIHtcclxuICAgICAgICBjb25zdCBwID0gTWF0aC5hYnMocG9zKTtcclxuICAgICAgICBpZiAocCA+IDAgJiYgcCA8IGxpbWl0KSB7XHJcbiAgICAgICAgICAgIGlmIChlLmNhbmNlbGFibGUpIHtcclxuICAgICAgICAgICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5fb3ZlcnNjcm9sbEl0ZXJhdGlvbiA9IDA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX292ZXJzY3JvbGxJdGVyYXRpb24gPCBPVkVSU0NST0xMX1NUQVJUX0lURVJBVElPTikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fb3ZlcnNjcm9sbEl0ZXJhdGlvbisrO1xyXG4gICAgICAgICAgICAgICAgaWYgKGUuY2FuY2VsYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hlY2tPdmVyc2Nyb2xsKGU6IEV2ZW50KSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl8kb3ZlcnNjcm9sbEVuYWJsZWQuZ2V0VmFsdWUoKSkge1xyXG4gICAgICAgICAgICBpZiAoZS5jYW5jZWxhYmxlKSB7XHJcbiAgICAgICAgICAgICAgICBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuXyRpc1ZlcnRpY2FsLmdldFZhbHVlKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja092ZXJzY3JvbGxCeUF4aXMoZSwgdGhpcy5feSwgdGhpcy5zY3JvbGxIZWlnaHQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tPdmVyc2Nyb2xsQnlBeGlzKGUsIHRoaXMuX3gsIHRoaXMuc2Nyb2xsV2lkdGgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhbGN1bGF0ZVZlbG9jaXR5KG9mZnNldHM6IEFycmF5PFtudW1iZXIsIG51bWJlcl0+LCBkZWx0YTogbnVtYmVyLCB0aW1lc3RhbXA6IG51bWJlciwgaW5kZXhPZmZzZXQ6IG51bWJlciA9IDEwKSB7XHJcbiAgICAgICAgb2Zmc2V0cy5wdXNoKFtkZWx0YSwgdGltZXN0YW1wIDwgQU5JTUFUT1JfTUlOX1RJTUVTVEFNUCA/IEFOSU1BVE9SX01JTl9USU1FU1RBTVAgOiB0aW1lc3RhbXBdKTtcclxuXHJcbiAgICAgICAgY29uc3QgbGVuID0gb2Zmc2V0cy5sZW5ndGgsIHN0YXJ0SW5kZXggPSBsZW4gPiBpbmRleE9mZnNldCA/IGxlbiAtIGluZGV4T2Zmc2V0IDogMCwgbGFzdFZTaWduID0gY2FsY3VsYXRlRGlyZWN0aW9uKG9mZnNldHMpLFxyXG4gICAgICAgICAgICBzcGVlZFNjYWxlID0gdGhpcy5zY3JvbGxpbmdTZXR0aW5ncz8uc3BlZWRTY2FsZSA/PyBTUEVFRF9TQ0FMRTtcclxuICAgICAgICBsZXQgdlN1bSA9IDA7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0SW5kZXgsIGwgPSBvZmZzZXRzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBwMCA9IG9mZnNldHNbaV07XHJcbiAgICAgICAgICAgIGlmIChsYXN0VlNpZ24gIT09IE1hdGguc2lnbihwMFswXSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCB2MCA9IChwMFsxXSAhPT0gMCA/IGxhc3RWU2lnbiAqIE1hdGguYWJzKHAwWzBdIC8gcDBbMV0pICogc3BlZWRTY2FsZSA6IDApO1xyXG4gICAgICAgICAgICB2U3VtICs9IE1hdGguc2lnbih2MCkgKiBNYXRoLnBvdyh2MCwgNCkgKiAuMDAzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbCA9IE1hdGgubWluKG9mZnNldHMubGVuZ3RoLCBpbmRleE9mZnNldCksIHYwID0gbCA+IDAgPyAodlN1bSAvIGwpIDogMDtcclxuICAgICAgICByZXR1cm4geyB2MCB9O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2FsY3VsYXRlQWNjZWxlcmF0aW9uKHZlbG9jaXRpZXM6IEFycmF5PFtudW1iZXIsIG51bWJlcl0+LCBkZWx0YTogbnVtYmVyLCB0aW1lc3RhbXA6IG51bWJlciwgaW5kZXhPZmZzZXQ6IG51bWJlciA9IDEwKSB7XHJcbiAgICAgICAgdmVsb2NpdGllcy5wdXNoKFtkZWx0YSwgdGltZXN0YW1wIDwgQU5JTUFUT1JfTUlOX1RJTUVTVEFNUCA/IEFOSU1BVE9SX01JTl9USU1FU1RBTVAgOiB0aW1lc3RhbXBdKTtcclxuICAgICAgICBjb25zdCBsZW4gPSB2ZWxvY2l0aWVzLmxlbmd0aCwgc3RhcnRJbmRleCA9IGxlbiA+IGluZGV4T2Zmc2V0ID8gbGVuIC0gaW5kZXhPZmZzZXQgOiAwO1xyXG4gICAgICAgIGxldCBhU3VtID0gMCwgcHJldlYwOiBbbnVtYmVyLCBudW1iZXJdIHwgdW5kZWZpbmVkLCBpdGVyYXRpb24gPSAwLCBsYXN0VlNpZ24gPSBjYWxjdWxhdGVEaXJlY3Rpb24odmVsb2NpdGllcyk7XHJcbiAgICAgICAgY29uc3QgbWFzcyA9IHRoaXMuc2Nyb2xsaW5nU2V0dGluZ3M/Lm1hc3MgPz8gTUFTUztcclxuICAgICAgICBmb3IgKGxldCBpID0gc3RhcnRJbmRleCwgbCA9IHZlbG9jaXRpZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHYwMCA9IHByZXZWMCwgdjAxID0gdmVsb2NpdGllc1tpXTtcclxuICAgICAgICAgICAgaWYgKGxhc3RWU2lnbiAhPT0gTWF0aC5zaWduKHYwMVswXSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmICh2MDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGEwID0gdGltZXN0YW1wIDwgTUFYX1ZFTE9DSVRZX1RJTUVTVEFNUCA/ICh2MDBbMV0gIT09IDAgPyAobGFzdFZTaWduICogTWF0aC5hYnMoTWF0aC5hYnModjAxWzBdKSAtIE1hdGguYWJzKHYwMFswXSkpKSAvIE1hdGguYWJzKHYwMFsxXSkgOiAwKSA6IDAuMTtcclxuICAgICAgICAgICAgICAgIGFTdW0gPSAoYVN1bSAqIG1hc3MpICsgYTA7XHJcbiAgICAgICAgICAgICAgICBwcmV2VjAgPSB2MDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcHJldlYwID0gdjAxO1xyXG4gICAgICAgICAgICBpdGVyYXRpb24rKztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGEwID0gYVN1bSAqICh0aGlzLnNjcm9sbGluZ1NldHRpbmdzPy5mcmljdGlvbmFsRm9yY2UgPz8gRlJJQ1RJT05fRk9SQ0UpO1xyXG4gICAgICAgIHJldHVybiB7IGEwIH07XHJcbiAgICB9XHJcblxyXG4gICAgc3RvcFNjcm9sbGluZygpIHtcclxuICAgICAgICB0aGlzLl9hbmltYXRvci5zdG9wKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG1vdmUoaXNWZXJ0aWNhbDogYm9vbGVhbiwgcG9zaXRpb246IG51bWJlciwgYmxlbmRpbmc6IGJvb2xlYW4gPSBmYWxzZSwgdXNlckFjdGlvbjogYm9vbGVhbiA9IGZhbHNlLCBmaXJlVXBkYXRlOiBib29sZWFuID0gdHJ1ZSkge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsKHsgW2lzVmVydGljYWwgPyBUT1AgOiBMRUZUXTogcG9zaXRpb24sIGJlaGF2aW9yOiBJTlNUQU5ULCBibGVuZGluZywgdXNlckFjdGlvbiwgZmlyZVVwZGF0ZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgbW92ZVdpdGhBY2NlbGVyYXRpb24oaXNWZXJ0aWNhbDogYm9vbGVhbiwgcG9zaXRpb246IG51bWJlciwgdjA6IG51bWJlciwgdjogbnVtYmVyLCBhMDogbnVtYmVyLCB0aW1lc3RhbXA6IG51bWJlcikge1xyXG4gICAgICAgIGlmIChhMCAhPT0gMCAmJiB0aW1lc3RhbXAgPCBNQVhfVkVMT0NJVFlfVElNRVNUQU1QKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGR2U2lnbiA9IE1hdGguc2lnbih2KSxcclxuICAgICAgICAgICAgICAgIG1hc3MgPSB0aGlzLnNjcm9sbGluZ1NldHRpbmdzPy5tYXNzID8/IE1BU1MsXHJcbiAgICAgICAgICAgICAgICBkdXJhdGlvbiA9IERVUkFUSU9OLCBtYXhEdXJhdGlvbiA9IHRoaXMuc2Nyb2xsaW5nU2V0dGluZ3M/Lm1heER1cmF0aW9uID8/IE1BWF9EVVJBVElPTixcclxuICAgICAgICAgICAgICAgIG1heERpc3QgPSB0aGlzLnNjcm9sbGluZ1NldHRpbmdzPy5tYXhEaXN0YW5jZSA/PyBNQVhfRElTVCxcclxuICAgICAgICAgICAgICAgIG1heERpc3RhbmNlID0gZHZTaWduICogbWF4RGlzdCwgcyA9IChkdlNpZ24gKiBNYXRoLmFicygoYTAgKiBNYXRoLnBvdyhkdXJhdGlvbiwgMikpICogLjUpIC8gMTAwMCkgLyBtYXNzLFxyXG4gICAgICAgICAgICAgICAgZGlzdGFuY2UgPSBNYXRoLmFicyhzKSA8IG1heERpc3QgPyBzIDogbWF4RGlzdGFuY2UsIHBvc2l0aW9uV2l0aFZlbG9jaXR5ID0gcG9zaXRpb24gKyAodGhpcy5faW52ZXJzaW9uID8gLTEgOiAxKSAqIGRpc3RhbmNlLFxyXG4gICAgICAgICAgICAgICAgdm1heCA9IE1hdGgubWF4KE1hdGguYWJzKHYwKSwgTWF0aC5hYnModikpLFxyXG4gICAgICAgICAgICAgICAgYWQgPSBNYXRoLmFicyh2bWF4ICE9PSAwID8gTWF0aC5zcXJ0KHZtYXgpIDogMCkgKiAxMCAvIG1hc3MsXHJcbiAgICAgICAgICAgICAgICBhRHVyYXRpb24gPSBhZCA8IG1heER1cmF0aW9uID8gYWQgOiBtYXhEdXJhdGlvbixcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9zaXRpb24gPSBpc1ZlcnRpY2FsID8gdGhpcy55IDogdGhpcy54O1xyXG4gICAgICAgICAgICB0aGlzLmFuaW1hdGUoc3RhcnRQb3NpdGlvbiwgTWF0aC5yb3VuZChwb3NpdGlvbldpdGhWZWxvY2l0eSksIGFEdXJhdGlvbiwgZWFzZU91dFF1YWQsIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgbm9ybWFsaXplVmFsdWUodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IGlzVmVydGljYWwgPSB0aGlzLl8kZGlyZWN0aW9uLmdldFZhbHVlKCkgPT09IFNjcm9sbGVyRGlyZWN0aW9uLlZFUlRJQ0FMLFxyXG4gICAgICAgICAgICBzdGFydE9mZnNldCA9IHRoaXMuX25vcm1hbGl6ZVZhbHVlRnJvbVplcm8gPyAwIDogdGhpcy5fJHN0YXJ0T2Zmc2V0LmdldFZhbHVlKCksXHJcbiAgICAgICAgICAgIHNjcm9sbFNpemUgPSBpc1ZlcnRpY2FsID8gdGhpcy5zY3JvbGxIZWlnaHQgOiB0aGlzLnNjcm9sbFdpZHRoLFxyXG4gICAgICAgICAgICByZXN1bHQgPSB2YWx1ZSA8PSBzdGFydE9mZnNldCA/IHN0YXJ0T2Zmc2V0IDogdmFsdWUgPiBzY3JvbGxTaXplID8gc2Nyb2xsU2l6ZSA6IHZhbHVlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGFuaW1hdGUoc3RhcnRWYWx1ZTogbnVtYmVyLCBlbmRWYWx1ZTogbnVtYmVyLCBkdXJhdGlvbiA9IEFOSU1BVElPTl9EVVJBVElPTiwgZWFzaW5nRnVuY3Rpb246IEVhc2luZyA9IGVhc2VPdXRRdWFkLFxyXG4gICAgICAgIHVzZXJBY3Rpb246IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IGlzVmVydGljYWwgPSB0aGlzLl8kZGlyZWN0aW9uLmdldFZhbHVlKCkgPT09IFNjcm9sbGVyRGlyZWN0aW9uLlZFUlRJQ0FMO1xyXG4gICAgICAgIHRoaXMuX2FuaW1hdG9yLmFuaW1hdGUoe1xyXG4gICAgICAgICAgICBzdGFydFZhbHVlLCBlbmRWYWx1ZSwgZHVyYXRpb24sXHJcbiAgICAgICAgICAgIGVhc2luZ0Z1bmN0aW9uLFxyXG4gICAgICAgICAgICBnZXRQcm9wVmFsdWU6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpc1ZlcnRpY2FsID8gdGhpcy5feSA6IHRoaXMuX3g7XHJcbiAgICAgICAgICAgIH0sIG9uVXBkYXRlOiAoeyB2YWx1ZSB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1vdmUoaXNWZXJ0aWNhbCwgdmFsdWUsIGZhbHNlLCB1c2VyQWN0aW9uKTtcclxuICAgICAgICAgICAgfSwgb25Db21wbGV0ZTogKHsgdmFsdWUgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tb3ZlKGlzVmVydGljYWwsIHZhbHVlLCBmYWxzZSwgdXNlckFjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl8kc2Nyb2xsRW5kLm5leHQodXNlckFjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQW5pbWF0aW9uQ29tcGxldGUodmFsdWUpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvbkFuaW1hdGlvbkNvbXBsZXRlKHBvc2l0aW9uOiBudW1iZXIpIHsgfVxyXG5cclxuICAgIGZpcmVTY3JvbGwodXNlckFjdGlvbjogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICAgICAgdGhpcy5zdG9wU2Nyb2xsaW5nKCk7XHJcbiAgICAgICAgdGhpcy5fJHVwZGF0ZVNjcm9sbEJhci5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5lbWl0U2Nyb2xsYWJsZUV2ZW50KCk7XHJcbiAgICAgICAgdGhpcy5maXJlU2Nyb2xsRXZlbnQodXNlckFjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgc2Nyb2xsTGltaXRzKHZhbHVlPzogbnVtYmVyIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgeCA9IHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IHRoaXMuX3gsIHkgPSB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiB0aGlzLl95LCBpc1ZlcnRpY2FsID0gdGhpcy5fJGlzVmVydGljYWwuZ2V0VmFsdWUoKTtcclxuICAgICAgICBpZiAoaXNWZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICBjb25zdCB5eSA9IHRoaXMubm9ybWFsaXplVmFsdWUoeSk7XHJcbiAgICAgICAgICAgIGlmICh5ICE9PSB5eSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy55ID0geXk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHh4ID0gdGhpcy5ub3JtYWxpemVWYWx1ZSh4KTtcclxuICAgICAgICAgICAgaWYgKHggIT09IHh4KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnggPSB4eDtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzY3JvbGwocGFyYW1zOiBJU2Nyb2xsVG9QYXJhbXMpIHtcclxuICAgICAgICBjb25zdCBwb3NYID0gcGFyYW1zLnggfHwgcGFyYW1zLmxlZnQgfHwgMCxcclxuICAgICAgICAgICAgcG9zWSA9IHBhcmFtcy55IHx8IHBhcmFtcy50b3AgfHwgMCxcclxuICAgICAgICAgICAgdXNlckFjdGlvbiA9IHBhcmFtcy51c2VyQWN0aW9uID8/IGZhbHNlLFxyXG4gICAgICAgICAgICBlYXNlID0gcGFyYW1zLmVhc2UgfHwgZWFzZU91dFF1YWQsXHJcbiAgICAgICAgICAgIGZpcmVVcGRhdGUgPSBwYXJhbXMuZmlyZVVwZGF0ZSA/PyB0cnVlLFxyXG4gICAgICAgICAgICBiZWhhdmlvciA9IHBhcmFtcy5iZWhhdmlvciA/PyBJTlNUQU5ULFxyXG4gICAgICAgICAgICBibGVuZGluZyA9IHBhcmFtcy5ibGVuZGluZyA/PyB0cnVlLFxyXG4gICAgICAgICAgICBkdXJhdGlvbiA9IHBhcmFtcy5kdXJhdGlvbiA/PyBBTklNQVRJT05fRFVSQVRJT04sXHJcbiAgICAgICAgICAgIGlzVmVydGljYWwgPSB0aGlzLl8kZGlyZWN0aW9uLmdldFZhbHVlKCkgPT09IFNjcm9sbGVyRGlyZWN0aW9uLlZFUlRJQ0FMO1xyXG5cclxuICAgICAgICBjb25zdCB4ID0gdGhpcy5ub3JtYWxpemVWYWx1ZShwb3NYKSxcclxuICAgICAgICAgICAgeSA9IHRoaXMubm9ybWFsaXplVmFsdWUocG9zWSksXHJcbiAgICAgICAgICAgIHByZXZYID0gdGhpcy5feCxcclxuICAgICAgICAgICAgcHJldlkgPSB0aGlzLl95O1xyXG4gICAgICAgIGlmIChiZWhhdmlvciA9PT0gQVVUTyB8fCBiZWhhdmlvciA9PT0gU01PT1RIKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1ZlcnRpY2FsKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocHJldlkgIT09IHkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGUocHJldlksIHksIGR1cmF0aW9uLCBlYXNlLCB1c2VyQWN0aW9uKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChwcmV2WCAhPT0geCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0ZShwcmV2WCwgeCwgZHVyYXRpb24sIGVhc2UsIHVzZXJBY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX3kgIT09IHkpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1ZlcnRpY2FsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFibGVuZGluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3BTY3JvbGxpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoWSh5KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnkgPSB5O1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdFNjcm9sbGFibGVFdmVudCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaXJlVXBkYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlyZVNjcm9sbEV2ZW50KHVzZXJBY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl94ICE9PSB4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFibGVuZGluZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3BTY3JvbGxpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoWCh4KTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnggPSB4O1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1pdFNjcm9sbGFibGVFdmVudCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaXJlVXBkYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlyZVNjcm9sbEV2ZW50KHVzZXJBY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZW1pdFNjcm9sbGFibGVFdmVudCgpIHtcclxuICAgICAgICBpZiAoISF0aGlzLmNka1Njcm9sbGFibGUpIHtcclxuICAgICAgICAgICAgdGhpcy5jZGtTY3JvbGxhYmxlLmdldEVsZW1lbnRSZWYoKT8ubmF0aXZlRWxlbWVudD8uZGlzcGF0Y2hFdmVudChTQ1JPTExfRVZFTlQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZWZyZXNoWCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3Qgc2Nyb2xsQ29udGVudCA9IHRoaXMuc2Nyb2xsQ29udGVudD8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRGl2RWxlbWVudDtcclxuICAgICAgICBzY3JvbGxDb250ZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgkeyh0aGlzLl9pbnZlcnNpb24gPyAxIDogLTEpICogdmFsdWV9cHgsIDAsIDApYDtcclxuICAgIH1cclxuXHJcbiAgICByZWZyZXNoWSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgY29uc3Qgc2Nyb2xsQ29udGVudCA9IHRoaXMuc2Nyb2xsQ29udGVudD8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRGl2RWxlbWVudDtcclxuICAgICAgICBzY3JvbGxDb250ZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUzZCgwLCAkeyh0aGlzLl9pbnZlcnNpb24gPyAxIDogLTEpICogdmFsdWV9cHgsIDApYDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZmlyZVNjcm9sbEV2ZW50KHVzZXJBY3Rpb246IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl8kc2Nyb2xsLm5leHQodXNlckFjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uRHJhZ1N0YXJ0KCkgeyB9XHJcblxyXG4gICAgcmVzZXQob2Zmc2V0OiBudW1iZXIgPSAwKSB7XHJcbiAgICAgICAgdGhpcy5zdG9wU2Nyb2xsaW5nKCk7XHJcbiAgICAgICAgdGhpcy5tb3ZlKHRoaXMuXyRpc1ZlcnRpY2FsLmdldFZhbHVlKCksIG9mZnNldCk7XHJcbiAgICB9XHJcblxyXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2FuaW1hdG9yKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FuaW1hdG9yLmRpc3Bvc2UoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
3
|
import { NgScrollerComponent } from './ng-scroller.component';
|
|
4
4
|
import { LocaleSensitiveModule } from '../../directives';
|
|
@@ -16,7 +16,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
16
16
|
declarations: [NgScrollerComponent],
|
|
17
17
|
exports: [NgScrollerComponent],
|
|
18
18
|
imports: [CommonModule, NgScrollBarModule, LocaleSensitiveModule, CdkScrollableModule],
|
|
19
|
-
schemas: [
|
|
19
|
+
schemas: [NO_ERRORS_SCHEMA],
|
|
20
20
|
}]
|
|
21
21
|
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctc2Nyb2xsZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvY29tcG9uZW50cy9uZy1zY3JvbGxlci9uZy1zY3JvbGxlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBUTdELE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkFMWixtQkFBbUIsYUFFeEIsWUFBWSxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixhQUQzRSxtQkFBbUI7OEdBSWxCLGdCQUFnQixZQUhqQixZQUFZLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1COzJGQUcxRSxnQkFBZ0I7a0JBTjVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUM5QixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLENBQUM7b0JBQ3RGLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBOT19FUlJPUlNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nU2Nyb2xsZXJDb21wb25lbnQgfSBmcm9tICcuL25nLXNjcm9sbGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvY2FsZVNlbnNpdGl2ZU1vZHVsZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBOZ1Njcm9sbEJhck1vZHVsZSB9IGZyb20gJy4uL25nLXNjcm9sbC1iYXIvbmctc2Nyb2xsLWJhci5tb2R1bGUnO1xyXG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW05nU2Nyb2xsZXJDb21wb25lbnRdLFxyXG4gIGV4cG9ydHM6IFtOZ1Njcm9sbGVyQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOZ1Njcm9sbEJhck1vZHVsZSwgTG9jYWxlU2Vuc2l0aXZlTW9kdWxlLCBDZGtTY3JvbGxhYmxlTW9kdWxlXSxcclxuICBzY2hlbWFzOiBbTk9fRVJST1JTX1NDSEVNQV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ1Njcm9sbGVyTW9kdWxlIHsgfVxyXG4iXX0=
|
|
@@ -16,6 +16,14 @@ export const DEFAULT_ANIMATION_PARAMS = {
|
|
|
16
16
|
navigateToItem: 150,
|
|
17
17
|
navigateByKeyboard: NAVIGATION_BY_KEYBOARD_TIMER,
|
|
18
18
|
};
|
|
19
|
+
export const DEFAULT_SCROLLING_SETTINGS = {
|
|
20
|
+
frictionalForce: 0.035,
|
|
21
|
+
maxDuration: 4000,
|
|
22
|
+
mass: 0.005,
|
|
23
|
+
maxDistance: 12500,
|
|
24
|
+
speedScale: 15,
|
|
25
|
+
optimization: true,
|
|
26
|
+
};
|
|
19
27
|
export const DEFAULT_OVERSCROLL_ENABLED = true;
|
|
20
28
|
export const DEFAULT_SNAP = false;
|
|
21
29
|
export const DEFAULT_SELECT_BY_CLICK = true;
|
|
@@ -114,4 +122,4 @@ export const ROLE_LIST = 'list';
|
|
|
114
122
|
export const ROLE_LIST_BOX = 'listbox';
|
|
115
123
|
export const ITEM_ID = 'item-id';
|
|
116
124
|
export const ITEM_CONTAINER = 'ngvl-item__container';
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb25zdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2pELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLENBQUMsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFFckMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLENBQUM7QUFFOUMsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFtQixRQUFRLENBQUM7QUFFaEUsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsRUFBRSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFxQjtJQUN0RCxZQUFZLEVBQUUsRUFBRTtJQUNoQixjQUFjLEVBQUUsR0FBRztJQUNuQixrQkFBa0IsRUFBRSw0QkFBNEI7Q0FDbkQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksQ0FBQztBQUUvQyxNQUFN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QUVqRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHLENBQUMsQ0FBQztBQUVyRCxNQUFNLENBQUMsTUFBTSw0Q0FBNEMsR0FBRyxDQUFDLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsQ0FBQyxDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLDhDQUE4QyxHQUFHLENBQUMsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQztBQUVoQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUM7QUFFakMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbk1vZGVzLCBNZXRob2RzRm9yU2VsZWN0aW5nLCBTbmFwcGluZ01ldGhvZHMsIFRleHREaXJlY3Rpb25zIH0gZnJvbSBcIi4uL2VudW1zXCI7XHJcbmltcG9ydCB7IERpcmVjdGlvbnMgfSBmcm9tIFwiLi4vZW51bXMvZGlyZWN0aW9uc1wiO1xyXG5pbXBvcnQgeyBJQW5pbWF0aW9uUGFyYW1zIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgY29uc3QgTUFYX1JFR1VMQVJfU05BUEVEX0NPTVBPTkVOVFMgPSAyO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSVRFTV9TSVpFID0gMjQ7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9CVUZGRVJfU0laRSA9IDI7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVhfQlVGRkVSX1NJWkUgPSAxMDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0xJU1RfU0laRSA9IDQwMDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NMSUNLX0RJU1RBTkNFID0gNDA7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9XQUlUX0ZPUl9QUkVQQVJBVElPTiA9IHRydWU7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TQ1JPTExCQVJfRU5BQkxFRCA9IHRydWU7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TQ1JPTExCQVJfSU5URVJBQ1RJVkUgPSB0cnVlO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0NST0xMX0JFSEFWSU9SOiBTY3JvbGxCZWhhdmlvciA9ICdzbW9vdGgnO1xyXG5cclxuZXhwb3J0IGNvbnN0IE5BVklHQVRJT05fQllfS0VZQk9BUkRfVElNRVIgPSA1MDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0FOSU1BVElPTl9QQVJBTVM6IElBbmltYXRpb25QYXJhbXMgPSB7XHJcbiAgICBzY3JvbGxUb0l0ZW06IDUwLFxyXG4gICAgbmF2aWdhdGVUb0l0ZW06IDE1MCxcclxuICAgIG5hdmlnYXRlQnlLZXlib2FyZDogTkFWSUdBVElPTl9CWV9LRVlCT0FSRF9USU1FUixcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX09WRVJTQ1JPTExfRU5BQkxFRCA9IHRydWU7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TTkFQID0gZmFsc2U7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUxFQ1RfQllfQ0xJQ0sgPSB0cnVlO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09MTEFQU0VfQllfQ0xJQ0sgPSB0cnVlO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRU5BQkxFRF9CVUZGRVJfT1BUSU1JWkFUSU9OID0gZmFsc2U7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9EWU5BTUlDX1NJWkUgPSB0cnVlO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU05BUF9UT19FTkRfVFJBTlNJVElPTl9JTlNUQU5UX09GRlNFVCA9IDE7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TTkFQX1NDUk9MTFRPX1NUQVJUID0gdHJ1ZTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NOQVBfU0NST0xMVE9fRU5EID0gdHJ1ZTtcclxuXHJcbmV4cG9ydCBjb25zdCBUUkFDS19CWV9QUk9QRVJUWV9OQU1FID0gJ2lkJztcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0RJUkVDVElPTiA9IERpcmVjdGlvbnMuVkVSVElDQUw7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT0xMRUNUSU9OX01PREUgPSBDb2xsZWN0aW9uTW9kZXMuTk9STUFMO1xyXG5cclxuZXhwb3J0IGNvbnN0IERJU1BMQVlfT0JKRUNUU19MRU5HVEhfTUVTVVJFTUVOVF9FUlJPUiA9IDE7XHJcblxyXG5leHBvcnQgY29uc3QgTUFYX1NDUk9MTF9UT19JVEVSQVRJT05TID0gNTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NOQVBQSU5HX01FVEhPRCA9IFNuYXBwaW5nTWV0aG9kcy5TVEFOREFSVDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFTEVDVF9NRVRIT0QgPSBNZXRob2RzRm9yU2VsZWN0aW5nLk5PTkU7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TQ1JFRU5fUkVBREVSX01FU1NBR0UgPSAnU2hvd2luZyBpdGVtcyAkMSB0byAkMic7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9MQU5HX1RFWFRfRElSID0gVGV4dERpcmVjdGlvbnMuTFRSO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0NST0xMQkFSX1RISUNLTkVTUzogbnVtYmVyID0gNjtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NDUk9MTEJBUl9NSU5fU0laRTogbnVtYmVyID0gODA7XHJcblxyXG4vLyBwcmVzZXRzXHJcblxyXG5leHBvcnQgY29uc3QgQkVIQVZJT1JfQVVUTyA9ICdhdXRvJyBhcyBTY3JvbGxCZWhhdmlvcjtcclxuXHJcbmV4cG9ydCBjb25zdCBCRUhBVklPUl9JTlNUQU5UID0gJ2luc3RhbnQnIGFzIFNjcm9sbEJlaGF2aW9yO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJFSEFWSU9SX1NNT09USCA9ICdzbW9vdGgnIGFzIFNjcm9sbEJlaGF2aW9yO1xyXG5cclxuZXhwb3J0IGNvbnN0IERJU1BMQVlfQkxPQ0sgPSAnYmxvY2snO1xyXG5cclxuZXhwb3J0IGNvbnN0IERJU1BMQVlfTk9ORSA9ICdub25lJztcclxuXHJcbmV4cG9ydCBjb25zdCBPUEFDSVRZXzAgPSAnMCc7XHJcblxyXG5leHBvcnQgY29uc3QgT1BBQ0lUWV8xMDAgPSAnMTAwJztcclxuXHJcbmV4cG9ydCBjb25zdCBWSVNJQklMSVRZX1ZJU0lCTEUgPSAndmlzaWJsZSc7XHJcblxyXG5leHBvcnQgY29uc3QgVklTSUJJTElUWV9ISURERU4gPSAnaGlkZGVuJztcclxuXHJcbmV4cG9ydCBjb25zdCBTSVpFXzEwMF9QRVJTRU5UID0gJzEwMCUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNJWkVfQVVUTyA9ICdhdXRvJztcclxuXHJcbmV4cG9ydCBjb25zdCBQT1NJVElPTl9BQlNPTFVURSA9ICdhYnNvbHV0ZSc7XHJcblxyXG5leHBvcnQgY29uc3QgVFJBTlNMQVRFXzNEID0gJ3RyYW5zbGF0ZTNkJztcclxuXHJcbmV4cG9ydCBjb25zdCBaRVJPU19UUkFOU0xBVEVfM0QgPSBgJHtUUkFOU0xBVEVfM0R9KDAsMCwwKWA7XHJcblxyXG5leHBvcnQgY29uc3QgSElEREVOX1pJTkRFWCA9ICctMSc7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9aSU5ERVggPSAnMCc7XHJcblxyXG5leHBvcnQgY29uc3QgVE9QX1BST1BfTkFNRSA9ICd0b3AnO1xyXG5cclxuZXhwb3J0IGNvbnN0IExFRlRfUFJPUF9OQU1FID0gJ2xlZnQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFhfUFJPUF9OQU1FID0gJ3gnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFlfUFJPUF9OQU1FID0gJ3knO1xyXG5cclxuZXhwb3J0IGNvbnN0IFdJRFRIX1BST1BfTkFNRSA9ICd3aWR0aCc7XHJcblxyXG5leHBvcnQgY29uc3QgSEVJR0hUX1BST1BfTkFNRSA9ICdoZWlnaHQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1BUkdJTl9UT1AgPSAnbWFyZ2luVG9wJztcclxuXHJcbmV4cG9ydCBjb25zdCBNQVJHSU5fTEVGVCA9ICdtYXJnaW5MZWZ0JztcclxuXHJcbmV4cG9ydCBjb25zdCBQWCA9ICdweCc7XHJcblxyXG5leHBvcnQgY29uc3QgSU5URVJBQ1RJVkUgPSAnaW50ZXJhY3RpdmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEZPQ1VTID0gJ2ZvY3VzJztcclxuXHJcbmV4cG9ydCBjb25zdCBXSEVFTCA9ICd3aGVlbCc7XHJcblxyXG5leHBvcnQgY29uc3QgU0NST0xMRVJfV0hFRUwgPSAnd2hlZWwnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRPVUNIX01PVkUgPSAndG91Y2htb3ZlJztcclxuXHJcbmV4cG9ydCBjb25zdCBUT1VDSF9TVEFSVCA9ICd0b3VjaHN0YXJ0JztcclxuXHJcbmV4cG9ydCBjb25zdCBUT1VDSF9FTkQgPSAndG91Y2hlbmQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRPVUNIX0xFQVZFID0gJ3RvdWNobGVhdmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRPVUNIX09VVCA9ICd0b3VjaG91dCc7XHJcblxyXG5leHBvcnQgY29uc3QgTU9VU0VfTU9WRSA9ICdtb3VzZW1vdmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1PVVNFX1VQID0gJ21vdXNldXAnO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1PVVNFX0RPV04gPSAnbW91c2Vkb3duJztcclxuXHJcbmV4cG9ydCBjb25zdCBNT1VTRV9MRUFWRSA9ICdtb3VzZWxlYXZlJztcclxuXHJcbmV4cG9ydCBjb25zdCBNT1VTRV9PVVQgPSAnbW91c2VvdXQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBPSU5URVJfTU9WRSA9ICdwb2ludGVybW92ZSc7XHJcblxyXG5leHBvcnQgY29uc3QgUE9JTlRFUl9VUCA9ICdwb2ludGVydXAnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBPSU5URVJfRE9XTiA9ICdwb2ludGVyZG93bic7XHJcblxyXG5leHBvcnQgY29uc3QgUE9JTlRFUl9MRUFWRSA9ICdwb2ludGVybGVhdmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBPSU5URVJfT1VUID0gJ3BvaW50ZXJvdXQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IENMSUNLID0gJ2NsaWNrJztcclxuXHJcbmV4cG9ydCBjb25zdCBLRVlfRE9XTiA9ICdrZXlkb3duJztcclxuXHJcbmV4cG9ydCBjb25zdCBLRVlfVEFCID0gJ1RhYic7XHJcblxyXG5leHBvcnQgY29uc3QgU0NST0xMID0gJ3Njcm9sbCc7XHJcblxyXG5leHBvcnQgY29uc3QgU0NST0xMRVJfU0NST0xMID0gJ3Njcm9sbCc7XHJcblxyXG5leHBvcnQgY29uc3QgU0NST0xMX0VORCA9ICdzY3JvbGxlbmQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IENMQVNTX0xJU1RfVkVSVElDQUwgPSAndmVydGljYWwnO1xyXG5cclxuZXhwb3J0IGNvbnN0IENMQVNTX0xJU1RfSE9SSVpPTlRBTCA9ICdob3Jpem9udGFsJztcclxuXHJcbi8vIHN0eWxlc1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBUlRfREVGQVVMVF9JVEVNID0gJ2l0ZW0nO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBUlRfSVRFTV9ORVcgPSAnIGl0ZW0tbmV3JztcclxuXHJcbmV4cG9ydCBjb25zdCBQQVJUX0lURU1fT0REID0gJyBpdGVtLW9kZCc7XHJcblxyXG5leHBvcnQgY29uc3QgUEFSVF9JVEVNX0VWRU4gPSAnIGl0ZW0tZXZlbic7XHJcblxyXG5leHBvcnQgY29uc3QgUEFSVF9JVEVNX1NOQVBQRUQgPSAnIGl0ZW0tc25hcHBlZCc7XHJcblxyXG5leHBvcnQgY29uc3QgUEFSVF9JVEVNX1NFTEVDVEVEID0gJyBpdGVtLXNlbGVjdGVkJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQVJUX0lURU1fQ09MTEFQU0VEID0gJyBpdGVtLWNvbGxhcHNlZCc7XHJcblxyXG5leHBvcnQgY29uc3QgUEFSVF9JVEVNX0ZPQ1VTRUQgPSAnIGl0ZW0tZm9jdXNlZCc7XHJcblxyXG5leHBvcnQgY29uc3QgTUlOX1BJWEVMU19GT1JfUFJFVkVOVF9TTkFQUElORyA9IDEwO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1BWF9WRUxPQ0lUWV9GT1JfU0NST0xMX1FVQUxJVFlfT1BUSU1JWkFUSU9OX0xWTDEgPSA3NDtcclxuXHJcbmV4cG9ydCBjb25zdCBNQVhfVkVMT0NJVFlfRk9SX1NDUk9MTF9RVUFMSVRZX09QVElNSVpBVElPTl9MVkwyID0gNTAwO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1BWF9OVU1CRVJTX09GX1NLSVBTX0ZPUl9RVUFMSVRZX09QVElNSVpBVElPTl9MVkwxID0gNDtcclxuXHJcbmV4cG9ydCBjb25zdCBSQU5HRV9ESVNQTEFZX0lURU1TX0VORF9PRkZTRVQgPSAyMDtcclxuXHJcbmV4cG9ydCBjb25zdCBQUkVQQVJFX0lURVJBVElPTlMgPSAxO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBSRVBBUkFUSU9OX1JFVVBEQVRFX0xFTkdUSCA9IDA7XHJcblxyXG5leHBvcnQgY29uc3QgUFJFUEFSRV9JVEVSQVRJT05TX0ZPUl9VUERBVEVfSVRFTVMgPSAxO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBSRVBBUkFUSU9OX1JFVVBEQVRFX0xFTkdUSF9GT1JfVVBEQVRFX0lURU1TID0gMDtcclxuXHJcbmV4cG9ydCBjb25zdCBQUkVQQVJFX0lURVJBVElPTlNfRk9SX0NPTExBUFNFX0lURU1TID0gMTtcclxuXHJcbmV4cG9ydCBjb25zdCBQUkVQQVJBVElPTl9SRVVQREFURV9MRU5HVEhfRk9SX0NPTExBUFNFX0lURU1TID0gMDtcclxuXHJcbmV4cG9ydCBjb25zdCBFTVBUWV9TQ1JPTExfU1RBVEVfVkVSU0lPTiA9ICctMSc7XHJcblxyXG5leHBvcnQgY29uc3QgUk9MRV9MSVNUID0gJ2xpc3QnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFJPTEVfTElTVF9CT1ggPSAnbGlzdGJveCc7XHJcblxyXG5leHBvcnQgY29uc3QgSVRFTV9JRCA9ICdpdGVtLWlkJztcclxuXHJcbmV4cG9ydCBjb25zdCBJVEVNX0NPTlRBSU5FUiA9ICduZ3ZsLWl0ZW1fX2NvbnRhaW5lcic7XHJcbiJdfQ==
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9jb25zdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBR2pELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLENBQUMsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUM7QUFFckMsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsRUFBRSxDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLElBQUksQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLENBQUM7QUFFOUMsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFtQixRQUFRLENBQUM7QUFFaEUsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsRUFBRSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFxQjtJQUN0RCxZQUFZLEVBQUUsRUFBRTtJQUNoQixjQUFjLEVBQUUsR0FBRztJQUNuQixrQkFBa0IsRUFBRSw0QkFBNEI7Q0FDbkQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUF1QjtJQUMxRCxlQUFlLEVBQUUsS0FBSztJQUN0QixXQUFXLEVBQUUsSUFBSTtJQUNqQixJQUFJLEVBQUUsS0FBSztJQUNYLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLFVBQVUsRUFBRSxFQUFFO0lBQ2QsWUFBWSxFQUFFLElBQUk7Q0FDckIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDO0FBRWxDLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLENBQUM7QUFFOUMsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsS0FBSyxDQUFDO0FBRXpELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSw2Q0FBNkMsR0FBRyxDQUFDLENBQUM7QUFFL0QsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxDQUFDO0FBRWhELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQztBQUU5QyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUM7QUFFM0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztBQUVyRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO0FBRTlELE1BQU0sQ0FBQyxNQUFNLHVDQUF1QyxHQUFHLENBQUMsQ0FBQztBQUV6RCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsd0JBQXdCLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQztBQUV4RCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBVyxDQUFDLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQVcsRUFBRSxDQUFDO0FBRXJELFVBQVU7QUFFVixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsTUFBd0IsQ0FBQztBQUV0RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxTQUEyQixDQUFDO0FBRTVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxRQUEwQixDQUFDO0FBRTFELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUM7QUFFckMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBRTdCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUM7QUFFakMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQztBQUVoQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLFlBQVksU0FBUyxDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUM7QUFFbEMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUVsQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDO0FBRW5DLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUM7QUFFckMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQUUvQixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBRS9CLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7QUFFdEMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBRXZCLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQztBQUU3QixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDO0FBRTdCLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUM7QUFFdEMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7QUFFdEMsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQztBQUVsQyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDO0FBRXRDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQztBQUVwQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7QUFFdEMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQztBQUUxQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQztBQUU3QixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDO0FBRWxDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQztBQUUvQixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUM7QUFFdEMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFlBQVksQ0FBQztBQUVsRCxTQUFTO0FBRVQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGVBQWUsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUVuRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxpQkFBaUIsQ0FBQztBQUVyRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFFakQsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsRUFBRSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLGlEQUFpRCxHQUFHLEVBQUUsQ0FBQztBQUVwRSxNQUFNLENBQUMsTUFBTSxpREFBaUQsR0FBRyxHQUFHLENBQUM7QUFFckUsTUFBTSxDQUFDLE1BQU0sa0RBQWtELEdBQUcsQ0FBQyxDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLEVBQUUsQ0FBQztBQUVqRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUFHLENBQUMsQ0FBQztBQUVyRCxNQUFNLENBQUMsTUFBTSw0Q0FBNEMsR0FBRyxDQUFDLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsQ0FBQyxDQUFDO0FBRXZELE1BQU0sQ0FBQyxNQUFNLDhDQUE4QyxHQUFHLENBQUMsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQztBQUVoQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUM7QUFFakMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbk1vZGVzLCBNZXRob2RzRm9yU2VsZWN0aW5nLCBTbmFwcGluZ01ldGhvZHMsIFRleHREaXJlY3Rpb25zIH0gZnJvbSBcIi4uL2VudW1zXCI7XHJcbmltcG9ydCB7IERpcmVjdGlvbnMgfSBmcm9tIFwiLi4vZW51bXMvZGlyZWN0aW9uc1wiO1xyXG5pbXBvcnQgeyBJQW5pbWF0aW9uUGFyYW1zLCBJU2Nyb2xsaW5nU2V0dGluZ3MgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBjb25zdCBNQVhfUkVHVUxBUl9TTkFQRURfQ09NUE9ORU5UUyA9IDI7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9JVEVNX1NJWkUgPSAyNDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0JVRkZFUl9TSVpFID0gMjtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX01BWF9CVUZGRVJfU0laRSA9IDEwO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTElTVF9TSVpFID0gNDAwO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ0xJQ0tfRElTVEFOQ0UgPSA0MDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1dBSVRfRk9SX1BSRVBBUkFUSU9OID0gdHJ1ZTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NDUk9MTEJBUl9FTkFCTEVEID0gdHJ1ZTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NDUk9MTEJBUl9JTlRFUkFDVElWRSA9IHRydWU7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TQ1JPTExfQkVIQVZJT1I6IFNjcm9sbEJlaGF2aW9yID0gJ3Ntb290aCc7XHJcblxyXG5leHBvcnQgY29uc3QgTkFWSUdBVElPTl9CWV9LRVlCT0FSRF9USU1FUiA9IDUwO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQU5JTUFUSU9OX1BBUkFNUzogSUFuaW1hdGlvblBhcmFtcyA9IHtcclxuICAgIHNjcm9sbFRvSXRlbTogNTAsXHJcbiAgICBuYXZpZ2F0ZVRvSXRlbTogMTUwLFxyXG4gICAgbmF2aWdhdGVCeUtleWJvYXJkOiBOQVZJR0FUSU9OX0JZX0tFWUJPQVJEX1RJTUVSLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0NST0xMSU5HX1NFVFRJTkdTOiBJU2Nyb2xsaW5nU2V0dGluZ3MgPSB7XHJcbiAgICBmcmljdGlvbmFsRm9yY2U6IDAuMDM1LFxyXG4gICAgbWF4RHVyYXRpb246IDQwMDAsXHJcbiAgICBtYXNzOiAwLjAwNSxcclxuICAgIG1heERpc3RhbmNlOiAxMjUwMCxcclxuICAgIHNwZWVkU2NhbGU6IDE1LFxyXG4gICAgb3B0aW1pemF0aW9uOiB0cnVlLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfT1ZFUlNDUk9MTF9FTkFCTEVEID0gdHJ1ZTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NOQVAgPSBmYWxzZTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFTEVDVF9CWV9DTElDSyA9IHRydWU7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT0xMQVBTRV9CWV9DTElDSyA9IHRydWU7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9FTkFCTEVEX0JVRkZFUl9PUFRJTUlaQVRJT04gPSBmYWxzZTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0RZTkFNSUNfU0laRSA9IHRydWU7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TTkFQX1RPX0VORF9UUkFOU0lUSU9OX0lOU1RBTlRfT0ZGU0VUID0gMTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NOQVBfU0NST0xMVE9fU1RBUlQgPSB0cnVlO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU05BUF9TQ1JPTExUT19FTkQgPSB0cnVlO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRSQUNLX0JZX1BST1BFUlRZX05BTUUgPSAnaWQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRElSRUNUSU9OID0gRGlyZWN0aW9ucy5WRVJUSUNBTDtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTExFQ1RJT05fTU9ERSA9IENvbGxlY3Rpb25Nb2Rlcy5OT1JNQUw7XHJcblxyXG5leHBvcnQgY29uc3QgRElTUExBWV9PQkpFQ1RTX0xFTkdUSF9NRVNVUkVNRU5UX0VSUk9SID0gMTtcclxuXHJcbmV4cG9ydCBjb25zdCBNQVhfU0NST0xMX1RPX0lURVJBVElPTlMgPSA1O1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU05BUFBJTkdfTUVUSE9EID0gU25hcHBpbmdNZXRob2RzLlNUQU5EQVJUO1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0VMRUNUX01FVEhPRCA9IE1ldGhvZHNGb3JTZWxlY3RpbmcuTk9ORTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NDUkVFTl9SRUFERVJfTUVTU0FHRSA9ICdTaG93aW5nIGl0ZW1zICQxIHRvICQyJztcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBTkdfVEVYVF9ESVIgPSBUZXh0RGlyZWN0aW9ucy5MVFI7XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TQ1JPTExCQVJfVEhJQ0tORVNTOiBudW1iZXIgPSA2O1xyXG5cclxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0NST0xMQkFSX01JTl9TSVpFOiBudW1iZXIgPSA4MDtcclxuXHJcbi8vIHByZXNldHNcclxuXHJcbmV4cG9ydCBjb25zdCBCRUhBVklPUl9BVVRPID0gJ2F1dG8nIGFzIFNjcm9sbEJlaGF2aW9yO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJFSEFWSU9SX0lOU1RBTlQgPSAnaW5zdGFudCcgYXMgU2Nyb2xsQmVoYXZpb3I7XHJcblxyXG5leHBvcnQgY29uc3QgQkVIQVZJT1JfU01PT1RIID0gJ3Ntb290aCcgYXMgU2Nyb2xsQmVoYXZpb3I7XHJcblxyXG5leHBvcnQgY29uc3QgRElTUExBWV9CTE9DSyA9ICdibG9jayc7XHJcblxyXG5leHBvcnQgY29uc3QgRElTUExBWV9OT05FID0gJ25vbmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IE9QQUNJVFlfMCA9ICcwJztcclxuXHJcbmV4cG9ydCBjb25zdCBPUEFDSVRZXzEwMCA9ICcxMDAnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFZJU0lCSUxJVFlfVklTSUJMRSA9ICd2aXNpYmxlJztcclxuXHJcbmV4cG9ydCBjb25zdCBWSVNJQklMSVRZX0hJRERFTiA9ICdoaWRkZW4nO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNJWkVfMTAwX1BFUlNFTlQgPSAnMTAwJSc7XHJcblxyXG5leHBvcnQgY29uc3QgU0laRV9BVVRPID0gJ2F1dG8nO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBPU0lUSU9OX0FCU09MVVRFID0gJ2Fic29sdXRlJztcclxuXHJcbmV4cG9ydCBjb25zdCBUUkFOU0xBVEVfM0QgPSAndHJhbnNsYXRlM2QnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFpFUk9TX1RSQU5TTEFURV8zRCA9IGAke1RSQU5TTEFURV8zRH0oMCwwLDApYDtcclxuXHJcbmV4cG9ydCBjb25zdCBISURERU5fWklOREVYID0gJy0xJztcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1pJTkRFWCA9ICcwJztcclxuXHJcbmV4cG9ydCBjb25zdCBUT1BfUFJPUF9OQU1FID0gJ3RvcCc7XHJcblxyXG5leHBvcnQgY29uc3QgTEVGVF9QUk9QX05BTUUgPSAnbGVmdCc7XHJcblxyXG5leHBvcnQgY29uc3QgWF9QUk9QX05BTUUgPSAneCc7XHJcblxyXG5leHBvcnQgY29uc3QgWV9QUk9QX05BTUUgPSAneSc7XHJcblxyXG5leHBvcnQgY29uc3QgV0lEVEhfUFJPUF9OQU1FID0gJ3dpZHRoJztcclxuXHJcbmV4cG9ydCBjb25zdCBIRUlHSFRfUFJPUF9OQU1FID0gJ2hlaWdodCc7XHJcblxyXG5leHBvcnQgY29uc3QgTUFSR0lOX1RPUCA9ICdtYXJnaW5Ub3AnO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1BUkdJTl9MRUZUID0gJ21hcmdpbkxlZnQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBYID0gJ3B4JztcclxuXHJcbmV4cG9ydCBjb25zdCBJTlRFUkFDVElWRSA9ICdpbnRlcmFjdGl2ZSc7XHJcblxyXG5leHBvcnQgY29uc3QgRk9DVVMgPSAnZm9jdXMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFdIRUVMID0gJ3doZWVsJztcclxuXHJcbmV4cG9ydCBjb25zdCBTQ1JPTExFUl9XSEVFTCA9ICd3aGVlbCc7XHJcblxyXG5leHBvcnQgY29uc3QgVE9VQ0hfTU9WRSA9ICd0b3VjaG1vdmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRPVUNIX1NUQVJUID0gJ3RvdWNoc3RhcnQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRPVUNIX0VORCA9ICd0b3VjaGVuZCc7XHJcblxyXG5leHBvcnQgY29uc3QgVE9VQ0hfTEVBVkUgPSAndG91Y2hsZWF2ZSc7XHJcblxyXG5leHBvcnQgY29uc3QgVE9VQ0hfT1VUID0gJ3RvdWNob3V0JztcclxuXHJcbmV4cG9ydCBjb25zdCBNT1VTRV9NT1ZFID0gJ21vdXNlbW92ZSc7XHJcblxyXG5leHBvcnQgY29uc3QgTU9VU0VfVVAgPSAnbW91c2V1cCc7XHJcblxyXG5leHBvcnQgY29uc3QgTU9VU0VfRE9XTiA9ICdtb3VzZWRvd24nO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1PVVNFX0xFQVZFID0gJ21vdXNlbGVhdmUnO1xyXG5cclxuZXhwb3J0IGNvbnN0IE1PVVNFX09VVCA9ICdtb3VzZW91dCc7XHJcblxyXG5leHBvcnQgY29uc3QgUE9JTlRFUl9NT1ZFID0gJ3BvaW50ZXJtb3ZlJztcclxuXHJcbmV4cG9ydCBjb25zdCBQT0lOVEVSX1VQID0gJ3BvaW50ZXJ1cCc7XHJcblxyXG5leHBvcnQgY29uc3QgUE9JTlRFUl9ET1dOID0gJ3BvaW50ZXJkb3duJztcclxuXHJcbmV4cG9ydCBjb25zdCBQT0lOVEVSX0xFQVZFID0gJ3BvaW50ZXJsZWF2ZSc7XHJcblxyXG5leHBvcnQgY29uc3QgUE9JTlRFUl9PVVQgPSAncG9pbnRlcm91dCc7XHJcblxyXG5leHBvcnQgY29uc3QgQ0xJQ0sgPSAnY2xpY2snO1xyXG5cclxuZXhwb3J0IGNvbnN0IEtFWV9ET1dOID0gJ2tleWRvd24nO1xyXG5cclxuZXhwb3J0IGNvbnN0IEtFWV9UQUIgPSAnVGFiJztcclxuXHJcbmV4cG9ydCBjb25zdCBTQ1JPTEwgPSAnc2Nyb2xsJztcclxuXHJcbmV4cG9ydCBjb25zdCBTQ1JPTExFUl9TQ1JPTEwgPSAnc2Nyb2xsJztcclxuXHJcbmV4cG9ydCBjb25zdCBTQ1JPTExfRU5EID0gJ3Njcm9sbGVuZCc7XHJcblxyXG5leHBvcnQgY29uc3QgQ0xBU1NfTElTVF9WRVJUSUNBTCA9ICd2ZXJ0aWNhbCc7XHJcblxyXG5leHBvcnQgY29uc3QgQ0xBU1NfTElTVF9IT1JJWk9OVEFMID0gJ2hvcml6b250YWwnO1xyXG5cclxuLy8gc3R5bGVzXHJcblxyXG5leHBvcnQgY29uc3QgUEFSVF9ERUZBVUxUX0lURU0gPSAnaXRlbSc7XHJcblxyXG5leHBvcnQgY29uc3QgUEFSVF9JVEVNX05FVyA9ICcgaXRlbS1uZXcnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBUlRfSVRFTV9PREQgPSAnIGl0ZW0tb2RkJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQVJUX0lURU1fRVZFTiA9ICcgaXRlbS1ldmVuJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQVJUX0lURU1fU05BUFBFRCA9ICcgaXRlbS1zbmFwcGVkJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQVJUX0lURU1fU0VMRUNURUQgPSAnIGl0ZW0tc2VsZWN0ZWQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBBUlRfSVRFTV9DT0xMQVBTRUQgPSAnIGl0ZW0tY29sbGFwc2VkJztcclxuXHJcbmV4cG9ydCBjb25zdCBQQVJUX0lURU1fRk9DVVNFRCA9ICcgaXRlbS1mb2N1c2VkJztcclxuXHJcbmV4cG9ydCBjb25zdCBNSU5fUElYRUxTX0ZPUl9QUkVWRU5UX1NOQVBQSU5HID0gMTA7XHJcblxyXG5leHBvcnQgY29uc3QgTUFYX1ZFTE9DSVRZX0ZPUl9TQ1JPTExfUVVBTElUWV9PUFRJTUlaQVRJT05fTFZMMSA9IDc0O1xyXG5cclxuZXhwb3J0IGNvbnN0IE1BWF9WRUxPQ0lUWV9GT1JfU0NST0xMX1FVQUxJVFlfT1BUSU1JWkFUSU9OX0xWTDIgPSA1MDA7XHJcblxyXG5leHBvcnQgY29uc3QgTUFYX05VTUJFUlNfT0ZfU0tJUFNfRk9SX1FVQUxJVFlfT1BUSU1JWkFUSU9OX0xWTDEgPSA0O1xyXG5cclxuZXhwb3J0IGNvbnN0IFJBTkdFX0RJU1BMQVlfSVRFTVNfRU5EX09GRlNFVCA9IDIwO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBSRVBBUkVfSVRFUkFUSU9OUyA9IDE7XHJcblxyXG5leHBvcnQgY29uc3QgUFJFUEFSQVRJT05fUkVVUERBVEVfTEVOR1RIID0gMDtcclxuXHJcbmV4cG9ydCBjb25zdCBQUkVQQVJFX0lURVJBVElPTlNfRk9SX1VQREFURV9JVEVNUyA9IDE7XHJcblxyXG5leHBvcnQgY29uc3QgUFJFUEFSQVRJT05fUkVVUERBVEVfTEVOR1RIX0ZPUl9VUERBVEVfSVRFTVMgPSAwO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBSRVBBUkVfSVRFUkFUSU9OU19GT1JfQ09MTEFQU0VfSVRFTVMgPSAxO1xyXG5cclxuZXhwb3J0IGNvbnN0IFBSRVBBUkFUSU9OX1JFVVBEQVRFX0xFTkdUSF9GT1JfQ09MTEFQU0VfSVRFTVMgPSAwO1xyXG5cclxuZXhwb3J0IGNvbnN0IEVNUFRZX1NDUk9MTF9TVEFURV9WRVJTSU9OID0gJy0xJztcclxuXHJcbmV4cG9ydCBjb25zdCBST0xFX0xJU1QgPSAnbGlzdCc7XHJcblxyXG5leHBvcnQgY29uc3QgUk9MRV9MSVNUX0JPWCA9ICdsaXN0Ym94JztcclxuXHJcbmV4cG9ydCBjb25zdCBJVEVNX0lEID0gJ2l0ZW0taWQnO1xyXG5cclxuZXhwb3J0IGNvbnN0IElURU1fQ09OVEFJTkVSID0gJ25ndmwtaXRlbV9fY29udGFpbmVyJztcclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { BaseVirtualListItemComponent } from './base-virtual-list-item-component';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy12aXJ0dWFsLWxpc3Qvc3JjL2xpYi9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUFuaW1hdGlvblBhcmFtcyB9IGZyb20gJy4vYW5pbWF0aW9uLXBhcmFtcyc7XHJcbmltcG9ydCB7IEJhc2VWaXJ0dWFsTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2Jhc2UtdmlydHVhbC1saXN0LWl0ZW0tY29tcG9uZW50JztcclxuaW1wb3J0IHsgSVJlY3QgfSBmcm9tICcuL3JlY3QnO1xyXG5pbXBvcnQgeyBJUmVuZGVyU3RhYmlsaXplck9wdGlvbnMgfSBmcm9tICcuL3JlbmRlci1zdGFiaWxpemVyLW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBJU2Nyb2xsRXZlbnQgfSBmcm9tICcuL3Njcm9sbC1ldmVudCc7XHJcbmltcG9ydCB7IElTY3JvbGxPcHRpb25zIH0gZnJvbSAnLi9zY3JvbGwtb3B0aW9ucyc7XHJcbmltcG9ydCB7IElTY3JvbGxQYXJhbXMgfSBmcm9tICcuL3Njcm9sbC1wYXJhbXMnO1xyXG5pbXBvcnQgeyBJU2l6ZSB9IGZyb20gJy4vc2l6ZSc7XHJcbmltcG9ydCB7IElTY3JvbGxpbmdTZXR0aW5ncyB9IGZyb20gJy4vc2Nyb2xsaW5nLXNldHRpbmdzJztcclxuXHJcbmV4cG9ydCB0eXBlIHtcclxuICAgIElBbmltYXRpb25QYXJhbXMsXHJcbiAgICBCYXNlVmlydHVhbExpc3RJdGVtQ29tcG9uZW50LFxyXG4gICAgSVJlY3QsXHJcbiAgICBJUmVuZGVyU3RhYmlsaXplck9wdGlvbnMsXHJcbiAgICBJU2Nyb2xsRXZlbnQsXHJcbiAgICBJU2Nyb2xsT3B0aW9ucyxcclxuICAgIElTY3JvbGxQYXJhbXMsXHJcbiAgICBJU2l6ZSxcclxuICAgIElTY3JvbGxpbmdTZXR0aW5ncyxcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsaW5nLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdmlydHVhbC1saXN0L3NyYy9saWIvaW50ZXJmYWNlcy9zY3JvbGxpbmctc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBJbnRlcmZhY2UgSVNjcm9sbGluZ1NldHRpbmdzLlxyXG4gKiAtIGZyaWN0aW9uYWxGb3JjZSAtIEZyaWN0aW9uYWwgZm9yY2UuIERlZmF1bHQgdmFsdWUgaXMgYDAuMDM1YC5cclxuICogLSBtYXNzIC0gTWFzcy4gRGVmYXVsdCB2YWx1ZSBpcyBgMC4wMDVgLlxyXG4gKiAtIG1heERpc3RhbmNlIC0gTWF4aW11bSBzY3JvbGxpbmcgZGlzdGFuY2UuIERlZmF1bHQgdmFsdWUgaXMgYDEyNTAwYC5cclxuICogLSBtYXhEdXJhdGlvbiAtIE1heGltdW0gYW5pbWF0aW9uIGR1cmF0aW9uLiBEZWZhdWx0IHZhbHVlIGlzIGA0MDAwYC5cclxuICogLSBzcGVlZFNjYWxlIC0gU3BlZWQgc2NhbGUuIERlZmF1bHQgdmFsdWUgaXMgYDE1YC5cclxuICogLSBvcHRpbWl6YXRpb24gLSBFbmFibGVzIHNjcm9sbGluZyBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24uIERlZmF1bHQgdmFsdWUgaXMgYHRydWVgLlxyXG4gKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vRGpvbm55WC9uZy12aXJ0dWFsLWxpc3QvYmxvYi8xNC54L3Byb2plY3RzL25nLXZpcnR1YWwtbGlzdC9zcmMvbGliL2ludGVyZmFjZXMvc2Nyb2xsaW5nLXNldHRpbmdzLnRzXHJcbiAqIEBhdXRob3IgRXZnZW5paSBBbGV4YW5kcm92aWNoIEdyZWJlbm5pa292XHJcbiAqIEBlbWFpbCBkam9ubnl4QGdtYWlsLmNvbVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJU2Nyb2xsaW5nU2V0dGluZ3Mge1xyXG4gICAgLyoqXHJcbiAgICAgKiBGcmljdGlvbmFsIGZvcmNlLiBEZWZhdWx0IHZhbHVlIGlzIGAwLjAzNWAuXHJcbiAgICAgKi9cclxuICAgIGZyaWN0aW9uYWxGb3JjZT86IG51bWJlcjtcclxuICAgIC8qKlxyXG4gICAgICogTWF4aW11bSBhbmltYXRpb24gZHVyYXRpb24uIERlZmF1bHQgdmFsdWUgaXMgYDQwMDBgLlxyXG4gICAgICovXHJcbiAgICBtYXhEdXJhdGlvbj86IG51bWJlcjtcclxuICAgIC8qKlxyXG4gICAgICogTWFzcy4gRGVmYXVsdCB2YWx1ZSBpcyBgMC4wMDVgLlxyXG4gICAgICovXHJcbiAgICBtYXNzPzogbnVtYmVyO1xyXG4gICAgLyoqXHJcbiAgICAgKiBNYXhpbXVtIHNjcm9sbGluZyBkaXN0YW5jZS4gRGVmYXVsdCB2YWx1ZSBpcyBgMTI1MDBgLlxyXG4gICAgICovXHJcbiAgICBtYXhEaXN0YW5jZT86IG51bWJlcjtcclxuICAgIC8qKlxyXG4gICAgICogU3BlZWQgc2NhbGUuIERlZmF1bHQgdmFsdWUgaXMgYDE1YC5cclxuICAgICAqL1xyXG4gICAgc3BlZWRTY2FsZT86IG51bWJlcjtcclxuICAgIC8qKlxyXG4gICAgICogRW5hYmxlcyBzY3JvbGxpbmcgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLiBEZWZhdWx0IHZhbHVlIGlzIGB0cnVlYC5cclxuICAgICAqL1xyXG4gICAgb3B0aW1pemF0aW9uPzogYm9vbGVhbjtcclxufVxyXG4iXX0=
|