@esotericsoftware/spine-webgl 4.2.111 → 4.2.113
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/dist/SceneRenderer.d.ts +3 -0
- package/dist/SceneRenderer.js +17 -2
- package/dist/esm/spine-webgl.min.mjs +3 -3
- package/dist/esm/spine-webgl.mjs +20 -1
- package/dist/esm/spine-webgl.mjs.map +2 -2
- package/dist/iife/spine-webgl.js +20 -1
- package/dist/iife/spine-webgl.js.map +2 -2
- package/dist/iife/spine-webgl.min.js +2 -2
- package/package.json +2 -2
package/dist/SceneRenderer.d.ts
CHANGED
|
@@ -43,6 +43,8 @@ export declare class SceneRenderer implements Disposable {
|
|
|
43
43
|
private shapes;
|
|
44
44
|
private shapesShader;
|
|
45
45
|
private activeRenderer;
|
|
46
|
+
private maxCanvasWidth;
|
|
47
|
+
private maxCanvasHeight;
|
|
46
48
|
skeletonRenderer: SkeletonRenderer;
|
|
47
49
|
skeletonDebugRenderer: SkeletonDebugRenderer;
|
|
48
50
|
constructor(canvas: HTMLCanvasElement, context: ManagedWebGLRenderingContext | WebGLRenderingContext, twoColorTint?: boolean);
|
|
@@ -64,6 +66,7 @@ export declare class SceneRenderer implements Disposable {
|
|
|
64
66
|
curve(x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, segments: number, color?: Color): void;
|
|
65
67
|
end(): void;
|
|
66
68
|
resize(resizeMode: ResizeMode): void;
|
|
69
|
+
private getSafeDevicePixelRatio;
|
|
67
70
|
private enableRenderer;
|
|
68
71
|
}
|
|
69
72
|
export declare enum ResizeMode {
|
package/dist/SceneRenderer.js
CHANGED
|
@@ -53,6 +53,8 @@ export class SceneRenderer {
|
|
|
53
53
|
shapes;
|
|
54
54
|
shapesShader;
|
|
55
55
|
activeRenderer = null;
|
|
56
|
+
maxCanvasWidth = 0;
|
|
57
|
+
maxCanvasHeight = 0;
|
|
56
58
|
skeletonRenderer;
|
|
57
59
|
skeletonDebugRenderer;
|
|
58
60
|
constructor(canvas, context, twoColorTint = true) {
|
|
@@ -436,7 +438,7 @@ export class SceneRenderer {
|
|
|
436
438
|
}
|
|
437
439
|
resize(resizeMode) {
|
|
438
440
|
let canvas = this.canvas;
|
|
439
|
-
var dpr =
|
|
441
|
+
var dpr = this.getSafeDevicePixelRatio(canvas.clientWidth, canvas.clientHeight);
|
|
440
442
|
var w = Math.round(canvas.clientWidth * dpr);
|
|
441
443
|
var h = Math.round(canvas.clientHeight * dpr);
|
|
442
444
|
if (canvas.width != w || canvas.height != h) {
|
|
@@ -457,6 +459,19 @@ export class SceneRenderer {
|
|
|
457
459
|
}
|
|
458
460
|
this.camera.update();
|
|
459
461
|
}
|
|
462
|
+
getSafeDevicePixelRatio(cssWidth, cssHeight) {
|
|
463
|
+
const dpr = window.devicePixelRatio || 1;
|
|
464
|
+
if (cssWidth <= 0 || cssHeight <= 0)
|
|
465
|
+
return dpr;
|
|
466
|
+
if (this.maxCanvasWidth === 0 || this.maxCanvasHeight === 0) {
|
|
467
|
+
const gl = this.context.gl;
|
|
468
|
+
const maxRenderbufferSize = gl.getParameter(gl.MAX_RENDERBUFFER_SIZE);
|
|
469
|
+
const maxViewportDims = gl.getParameter(gl.MAX_VIEWPORT_DIMS);
|
|
470
|
+
this.maxCanvasWidth = Math.min(maxRenderbufferSize, maxViewportDims[0]);
|
|
471
|
+
this.maxCanvasHeight = Math.min(maxRenderbufferSize, maxViewportDims[1]);
|
|
472
|
+
}
|
|
473
|
+
return Math.min(dpr, this.maxCanvasWidth / cssWidth, this.maxCanvasHeight / cssHeight);
|
|
474
|
+
}
|
|
460
475
|
enableRenderer(renderer) {
|
|
461
476
|
if (this.activeRenderer === renderer)
|
|
462
477
|
return;
|
|
@@ -484,4 +499,4 @@ export var ResizeMode;
|
|
|
484
499
|
ResizeMode[ResizeMode["Expand"] = 1] = "Expand";
|
|
485
500
|
ResizeMode[ResizeMode["Fit"] = 2] = "Fit";
|
|
486
501
|
})(ResizeMode || (ResizeMode = {}));
|
|
487
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVSZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TY2VuZVJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUUvRSxPQUFPLEVBQUUsS0FBSyxFQUF3QixTQUFTLEVBQXNCLE1BQU0sOEJBQThCLENBQUM7QUFDMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFxQixNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxRCxDQUFDO0FBRUQsTUFBTSxJQUFJLEdBQUc7SUFDWixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztDQUN0QixDQUFDO0FBQ0YsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzFDLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBRXBDLE1BQU0sT0FBTyxhQUFhO0lBQ3pCLE9BQU8sQ0FBK0I7SUFDdEMsTUFBTSxDQUFvQjtJQUMxQixNQUFNLENBQWM7SUFDcEIsT0FBTyxDQUFpQjtJQUNoQixZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLGFBQWEsQ0FBUztJQUN0QixNQUFNLENBQWdCO0lBQ3RCLFlBQVksQ0FBUztJQUNyQixjQUFjLEdBQWtFLElBQUksQ0FBQztJQUM3RixnQkFBZ0IsQ0FBbUI7SUFDbkMscUJBQXFCLENBQXdCO0lBRTdDLFlBQWEsTUFBeUIsRUFBRSxPQUE2RCxFQUFFLGVBQXdCLElBQUk7UUFDbEksSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLFlBQVksNEJBQTRCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNySCxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxPQUFPO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELEtBQUs7UUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUFZLENBQUUsUUFBa0IsRUFBRSxrQkFBa0IsR0FBRyxLQUFLLEVBQUUsY0FBYyxHQUFHLENBQUMsQ0FBQyxFQUFFLFlBQVksR0FBRyxDQUFDLENBQUMsRUFBRSxZQUFzQyxJQUFJO1FBQy9JLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUM5RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVELGlCQUFpQixDQUFFLFFBQWtCLEVBQUUsa0JBQWtCLEdBQUcsS0FBSyxFQUFFLFlBQTRCO1FBQzlGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUNuRSxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxXQUFXLENBQUUsT0FBa0IsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEtBQWEsRUFBRSxNQUFjLEVBQUUsS0FBYTtRQUNsRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSztZQUFFLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDYixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsYUFBYSxDQUFFLE9BQWtCLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhO1FBQ2xKLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLO1lBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFF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RUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFVBQVUsQ0FBRSxNQUEwQixFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxLQUFhO1FBQ3pHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLO1lBQUUsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDYixDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQVksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxJQUFJLENBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEtBQWEsRUFBRSxNQUFjO1FBQ2hGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsUUFBUSxDQUFFLE1BQWUsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLE1BQWM7UUFDN0ksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQUksQ0FBRSxNQUFlLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQ2pMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFF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LFdBQVksVUFBVTtJQUNyQixpREFBTyxDQUFBO0lBQ1AsK0NBQU0sQ0FBQTtJQUNOLHlDQUFHLENBQUE7QUFDSixDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTcGluZSBSdW50aW1lcyBMaWNlbnNlIEFncmVlbWVudFxuICogTGFzdCB1cGRhdGVkIEFwcmlsIDUsIDIwMjUuIFJlcGxhY2VzIGFsbCBwcmlvciB2ZXJzaW9ucy5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAyNSwgRXNvdGVyaWMgU29mdHdhcmUgTExDXG4gKlxuICogSW50ZWdyYXRpb24gb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3Igb3RoZXJ3aXNlIGNyZWF0aW5nXG4gKiBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpcyBwZXJtaXR0ZWQgdW5kZXIgdGhlIHRlcm1zIGFuZFxuICogY29uZGl0aW9ucyBvZiBTZWN0aW9uIDIgb2YgdGhlIFNwaW5lIEVkaXRvciBMaWNlbnNlIEFncmVlbWVudDpcbiAqIGh0dHA6Ly9lc290ZXJpY3NvZnR3YXJlLmNvbS9zcGluZS1lZGl0b3ItbGljZW5zZVxuICpcbiAqIE90aGVyd2lzZSwgaXQgaXMgcGVybWl0dGVkIHRvIGludGVncmF0ZSB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZVxuICogb3Igb3RoZXJ3aXNlIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyAoY29sbGVjdGl2ZWx5LFxuICogXCJQcm9kdWN0c1wiKSwgcHJvdmlkZWQgdGhhdCBlYWNoIHVzZXIgb2YgdGhlIFByb2R1Y3RzIG11c3Qgb2J0YWluIHRoZWlyIG93blxuICogU3BpbmUgRWRpdG9yIGxpY2Vuc2UgYW5kIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9kdWN0cyBpbiBhbnkgZm9ybSBtdXN0XG4gKiBpbmNsdWRlIHRoaXMgbGljZW5zZSBhbmQgY29weXJpZ2h0IG5vdGljZS5cbiAqXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMgQVJFIFBST1ZJREVEIEJZIEVTT1RFUklDIFNPRlRXQVJFIExMQyBcIkFTIElTXCIgQU5EIEFOWVxuICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRFxuICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRVNPVEVSSUMgU09GVFdBUkUgTExDIEJFIExJQUJMRSBGT1IgQU5ZXG4gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFU1xuICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTLFxuICogQlVTSU5FU1MgSU5URVJSVVBUSU9OLCBPUiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUykgSE9XRVZFUiBDQVVTRUQgQU5EXG4gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVFxuICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCB7IENvbG9yLCBEaXNwb3NhYmxlLCBTa2VsZXRvbiwgTWF0aFV0aWxzLCBUZXh0dXJlQXRsYXNSZWdpb24gfSBmcm9tIFwiQGVzb3Rlcmljc29mdHdhcmUvc3BpbmUtY29yZVwiO1xuaW1wb3J0IHsgT3J0aG9DYW1lcmEgfSBmcm9tIFwiLi9DYW1lcmEuanNcIjtcbmltcG9ydCB7IEdMVGV4dHVyZSB9IGZyb20gXCIuL0dMVGV4dHVyZS5qc1wiO1xuaW1wb3J0IHsgUG9seWdvbkJhdGNoZXIgfSBmcm9tIFwiLi9Qb2x5Z29uQmF0Y2hlci5qc1wiO1xuaW1wb3J0IHsgU2hhZGVyIH0gZnJvbSBcIi4vU2hhZGVyLmpzXCI7XG5pbXBvcnQgeyBTaGFwZVJlbmRlcmVyIH0gZnJvbSBcIi4vU2hhcGVSZW5kZXJlci5qc1wiO1xuaW1wb3J0IHsgU2tlbGV0b25EZWJ1Z1JlbmRlcmVyIH0gZnJvbSBcIi4vU2tlbGV0b25EZWJ1Z1JlbmRlcmVyLmpzXCI7XG5pbXBvcnQgeyBTa2VsZXRvblJlbmRlcmVyLCBWZXJ0ZXhUcmFuc2Zvcm1lciB9IGZyb20gXCIuL1NrZWxldG9uUmVuZGVyZXIuanNcIjtcbmltcG9ydCB7IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQgfSBmcm9tIFwiLi9XZWJHTC5qc1wiO1xuO1xuXG5jb25zdCBxdWFkID0gW1xuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXHQwLCAwLCAxLCAxLCAxLCAxLCAwLCAwLFxuXTtcbmNvbnN0IFFVQURfVFJJQU5HTEVTID0gWzAsIDEsIDIsIDIsIDMsIDBdO1xuY29uc3QgV0hJVEUgPSBuZXcgQ29sb3IoMSwgMSwgMSwgMSk7XG5cbmV4cG9ydCBjbGFzcyBTY2VuZVJlbmRlcmVyIGltcGxlbWVudHMgRGlzcG9zYWJsZSB7XG5cdGNvbnRleHQ6IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQ7XG5cdGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQ7XG5cdGNhbWVyYTogT3J0aG9DYW1lcmE7XG5cdGJhdGNoZXI6IFBvbHlnb25CYXRjaGVyO1xuXHRwcml2YXRlIHR3b0NvbG9yVGludCA9IGZhbHNlO1xuXHRwcml2YXRlIGJhdGNoZXJTaGFkZXI6IFNoYWRlcjtcblx0cHJpdmF0ZSBzaGFwZXM6IFNoYXBlUmVuZGVyZXI7XG5cdHByaXZhdGUgc2hhcGVzU2hhZGVyOiBTaGFkZXI7XG5cdHByaXZhdGUgYWN0aXZlUmVuZGVyZXI6IFBvbHlnb25CYXRjaGVyIHwgU2hhcGVSZW5kZXJlciB8IFNrZWxldG9uRGVidWdSZW5kZXJlciB8IG51bGwgPSBudWxsO1xuXHRza2VsZXRvblJlbmRlcmVyOiBTa2VsZXRvblJlbmRlcmVyO1xuXHRza2VsZXRvbkRlYnVnUmVuZGVyZXI6IFNrZWxldG9uRGVidWdSZW5kZXJlcjtcblxuXHRjb25zdHJ1Y3RvciAoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCwgY29udGV4dDogTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCB8IFdlYkdMUmVuZGVyaW5nQ29udGV4dCwgdHdvQ29sb3JUaW50OiBib29sZWFuID0gdHJ1ZSkge1xuXHRcdHRoaXMuY2FudmFzID0gY2FudmFzO1xuXHRcdHRoaXMuY29udGV4dCA9IGNvbnRleHQgaW5zdGFuY2VvZiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0ID8gY29udGV4dCA6IG5ldyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0KGNvbnRleHQpO1xuXHRcdHRoaXMudHdvQ29sb3JUaW50ID0gdHdvQ29sb3JUaW50O1xuXHRcdHRoaXMuY2FtZXJhID0gbmV3IE9ydGhvQ2FtZXJhKGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cdFx0dGhpcy5iYXRjaGVyU2hhZGVyID0gdHdvQ29sb3JUaW50ID8gU2hhZGVyLm5ld1R3b0NvbG9yZWRUZXh0dXJlZCh0aGlzLmNvbnRleHQpIDogU2hhZGVyLm5ld0NvbG9yZWRUZXh0dXJlZCh0aGlzLmNvbnRleHQpO1xuXHRcdHRoaXMuYmF0Y2hlciA9IG5ldyBQb2x5Z29uQmF0Y2hlcih0aGlzLmNvbnRleHQsIHR3b0NvbG9yVGludCk7XG5cdFx0dGhpcy5zaGFwZXNTaGFkZXIgPSBTaGFkZXIubmV3Q29sb3JlZCh0aGlzLmNvbnRleHQpO1xuXHRcdHRoaXMuc2hhcGVzID0gbmV3IFNoYXBlUmVuZGVyZXIodGhpcy5jb250ZXh0KTtcblx0XHR0aGlzLnNrZWxldG9uUmVuZGVyZXIgPSBuZXcgU2tlbGV0b25SZW5kZXJlcih0aGlzLmNvbnRleHQsIHR3b0NvbG9yVGludCk7XG5cdFx0dGhpcy5za2VsZXRvbkRlYnVnUmVuZGVyZXIgPSBuZXcgU2tlbGV0b25EZWJ1Z1JlbmRlcmVyKHRoaXMuY29udGV4dCk7XG5cdH1cblxuXHRkaXNwb3NlICgpIHtcblx0XHR0aGlzLmJhdGNoZXIuZGlzcG9zZSgpO1xuXHRcdHRoaXMuYmF0Y2hlclNoYWRlci5kaXNwb3NlKCk7XG5cdFx0dGhpcy5zaGFwZXMuZGlzcG9zZSgpO1xuXHRcdHRoaXMuc2hhcGVzU2hhZGVyLmRpc3Bvc2UoKTtcblx0XHR0aGlzLnNrZWxldG9uRGVidWdSZW5kZXJlci5kaXNwb3NlKCk7XG5cdH1cblxuXHRiZWdpbiAoKSB7XG5cdFx0dGhpcy5jYW1lcmEudXBkYXRlKCk7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHR9XG5cblx0ZHJhd1NrZWxldG9uIChza2VsZXRvbjogU2tlbGV0b24sIHByZW11bHRpcGxpZWRBbHBoYSA9IGZhbHNlLCBzbG90UmFuZ2VTdGFydCA9IC0xLCBzbG90UmFuZ2VFbmQgPSAtMSwgdHJhbnNmb3JtOiBWZXJ0ZXhUcmFuc2Zvcm1lciB8IG51bGwgPSBudWxsKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHRcdHRoaXMuc2tlbGV0b25SZW5kZXJlci5wcmVtdWx0aXBsaWVkQWxwaGEgPSBwcmVtdWx0aXBsaWVkQWxwaGE7XG5cdFx0dGhpcy5za2VsZXRvblJlbmRlcmVyLmRyYXcodGhpcy5iYXRjaGVyLCBza2VsZXRvbiwgc2xvdFJhbmdlU3RhcnQsIHNsb3RSYW5nZUVuZCwgdHJhbnNmb3JtKTtcblx0fVxuXG5cdGRyYXdTa2VsZXRvbkRlYnVnIChza2VsZXRvbjogU2tlbGV0b24sIHByZW11bHRpcGxpZWRBbHBoYSA9IGZhbHNlLCBpZ25vcmVkQm9uZXM/OiBBcnJheTxzdHJpbmc+KSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5za2VsZXRvbkRlYnVnUmVuZGVyZXIucHJlbXVsdGlwbGllZEFscGhhID0gcHJlbXVsdGlwbGllZEFscGhhO1xuXHRcdHRoaXMuc2tlbGV0b25EZWJ1Z1JlbmRlcmVyLmRyYXcodGhpcy5zaGFwZXMsIHNrZWxldG9uLCBpZ25vcmVkQm9uZXMpO1xuXHR9XG5cblx0ZHJhd1RleHR1cmUgKHRleHR1cmU6IEdMVGV4dHVyZSwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gV0hJVEU7XG5cdFx0dmFyIGkgPSAwO1xuXHRcdHF1YWRbaSsrXSA9IHg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRxdWFkW2krK10gPSAxO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geCArIHdpZHRoO1xuXHRcdHF1YWRbaSsrXSA9IHkgKyBoZWlnaHQ7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAxO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4O1xuXHRcdHF1YWRbaSsrXSA9IHkgKyBoZWlnaHQ7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2ldID0gMDtcblx0XHR9XG5cdFx0dGhpcy5iYXRjaGVyLmRyYXcodGV4dHVyZSwgcXVhZCwgUVVBRF9UUklBTkdMRVMpO1xuXHR9XG5cblx0ZHJhd1RleHR1cmVVViAodGV4dHVyZTogR0xUZXh0dXJlLCB4OiBudW1iZXIsIHk6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHU6IG51bWJlciwgdjogbnVtYmVyLCB1MjogbnVtYmVyLCB2MjogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gV0hJVEU7XG5cdFx0dmFyIGkgPSAwO1xuXHRcdHF1YWRbaSsrXSA9IHg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHU7XG5cdFx0cXVhZFtpKytdID0gdjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gdTI7XG5cdFx0cXVhZFtpKytdID0gdjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gdTI7XG5cdFx0cXVhZFtpKytdID0gdjI7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4O1xuXHRcdHF1YWRbaSsrXSA9IHkgKyBoZWlnaHQ7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSB1O1xuXHRcdHF1YWRbaSsrXSA9IHYyO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpXSA9IDA7XG5cdFx0fVxuXHRcdHRoaXMuYmF0Y2hlci5kcmF3KHRleHR1cmUsIHF1YWQsIFFVQURfVFJJQU5HTEVTKTtcblx0fVxuXG5cdGRyYXdUZXh0dXJlUm90YXRlZCAodGV4dHVyZTogR0xUZXh0dXJlLCB4OiBudW1iZXIsIHk6IG51bWJlciwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHBpdm90WDogbnVtYmVyLCBwaXZvdFk6IG51bWJlciwgYW5nbGU6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IFdISVRFO1xuXG5cdFx0Ly8gYm90dG9tIGxlZnQgYW5kIHRvcCByaWdodCBjb3JuZXIgcG9pbnRzIHJlbGF0aXZlIHRvIG9yaWdpblxuXHRcdGxldCB3b3JsZE9yaWdpblggPSB4ICsgcGl2b3RYO1xuXHRcdGxldCB3b3JsZE9yaWdpblkgPSB5ICsgcGl2b3RZO1xuXHRcdGxldCBmeCA9IC1waXZvdFg7XG5cdFx0bGV0IGZ5ID0gLXBpdm90WTtcblx0XHRsZXQgZngyID0gd2lkdGggLSBwaXZvdFg7XG5cdFx0bGV0IGZ5MiA9IGhlaWdodCAtIHBpdm90WTtcblxuXHRcdC8vIGNvbnN0cnVjdCBjb3JuZXIgcG9pbnRzLCBzdGFydCBmcm9tIHRvcCBsZWZ0IGFuZCBnbyBjb3VudGVyIGNsb2Nrd2lzZVxuXHRcdGxldCBwMXggPSBmeDtcblx0XHRsZXQgcDF5ID0gZnk7XG5cdFx0bGV0IHAyeCA9IGZ4O1xuXHRcdGxldCBwMnkgPSBmeTI7XG5cdFx0bGV0IHAzeCA9IGZ4Mjtcblx0XHRsZXQgcDN5ID0gZnkyO1xuXHRcdGxldCBwNHggPSBmeDI7XG5cdFx0bGV0IHA0eSA9IGZ5O1xuXG5cdFx0bGV0IHgxID0gMDtcblx0XHRsZXQgeTEgPSAwO1xuXHRcdGxldCB4MiA9IDA7XG5cdFx0bGV0IHkyID0gMDtcblx0XHRsZXQgeDMgPSAwO1xuXHRcdGxldCB5MyA9IDA7XG5cdFx0bGV0IHg0ID0gMDtcblx0XHRsZXQgeTQgPSAwO1xuXG5cdFx0Ly8gcm90YXRlXG5cdFx0aWYgKGFuZ2xlICE9IDApIHtcblx0XHRcdGxldCBjb3MgPSBNYXRoVXRpbHMuY29zRGVnKGFuZ2xlKTtcblx0XHRcdGxldCBzaW4gPSBNYXRoVXRpbHMuc2luRGVnKGFuZ2xlKTtcblxuXHRcdFx0eDEgPSBjb3MgKiBwMXggLSBzaW4gKiBwMXk7XG5cdFx0XHR5MSA9IHNpbiAqIHAxeCArIGNvcyAqIHAxeTtcblxuXHRcdFx0eDQgPSBjb3MgKiBwMnggLSBzaW4gKiBwMnk7XG5cdFx0XHR5NCA9IHNpbiAqIHAyeCArIGNvcyAqIHAyeTtcblxuXHRcdFx0eDMgPSBjb3MgKiBwM3ggLSBzaW4gKiBwM3k7XG5cdFx0XHR5MyA9IHNpbiAqIHAzeCArIGNvcyAqIHAzeTtcblxuXHRcdFx0eDIgPSB4MyArICh4MSAtIHg0KTtcblx0XHRcdHkyID0geTMgKyAoeTEgLSB5NCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHgxID0gcDF4O1xuXHRcdFx0eTEgPSBwMXk7XG5cblx0XHRcdHg0ID0gcDJ4O1xuXHRcdFx0eTQgPSBwMnk7XG5cblx0XHRcdHgzID0gcDN4O1xuXHRcdFx0eTMgPSBwM3k7XG5cblx0XHRcdHgyID0gcDR4O1xuXHRcdFx0eTIgPSBwNHk7XG5cdFx0fVxuXG5cdFx0eDEgKz0gd29ybGRPcmlnaW5YO1xuXHRcdHkxICs9IHdvcmxkT3JpZ2luWTtcblx0XHR4MiArPSB3b3JsZE9yaWdpblg7XG5cdFx0eTIgKz0gd29ybGRPcmlnaW5ZO1xuXHRcdHgzICs9IHdvcmxkT3JpZ2luWDtcblx0XHR5MyArPSB3b3JsZE9yaWdpblk7XG5cdFx0eDQgKz0gd29ybGRPcmlnaW5YO1xuXHRcdHk0ICs9IHdvcmxkT3JpZ2luWTtcblxuXHRcdHZhciBpID0gMDtcblx0XHRxdWFkW2krK10gPSB4MTtcblx0XHRxdWFkW2krK10gPSB5MTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHgyO1xuXHRcdHF1YWRbaSsrXSA9IHkyO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRxdWFkW2krK10gPSAxO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geDM7XG5cdFx0cXVhZFtpKytdID0geTM7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAxO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4NDtcblx0XHRxdWFkW2krK10gPSB5NDtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0cXVhZFtpKytdID0gMDtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaV0gPSAwO1xuXHRcdH1cblx0XHR0aGlzLmJhdGNoZXIuZHJhdyh0ZXh0dXJlLCBxdWFkLCBRVUFEX1RSSUFOR0xFUyk7XG5cdH1cblxuXHRkcmF3UmVnaW9uIChyZWdpb246IFRleHR1cmVBdGxhc1JlZ2lvbiwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLmJhdGNoZXIpO1xuXHRcdGlmICghY29sb3IpIGNvbG9yID0gV0hJVEU7XG5cdFx0dmFyIGkgPSAwO1xuXHRcdHF1YWRbaSsrXSA9IHg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi51O1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi52Mjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gcmVnaW9uLnUyO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi52Mjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gcmVnaW9uLnUyO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi52O1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gcmVnaW9uLnU7XG5cdFx0cXVhZFtpKytdID0gcmVnaW9uLnY7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2ldID0gMDtcblx0XHR9XG5cdFx0dGhpcy5iYXRjaGVyLmRyYXcoPEdMVGV4dHVyZT5yZWdpb24ucGFnZS50ZXh0dXJlLCBxdWFkLCBRVUFEX1RSSUFOR0xFUyk7XG5cdH1cblxuXHRsaW5lICh4OiBudW1iZXIsIHk6IG51bWJlciwgeDI6IG51bWJlciwgeTI6IG51bWJlciwgY29sb3I/OiBDb2xvciwgY29sb3IyPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy5saW5lKHgsIHksIHgyLCB5MiwgY29sb3IpO1xuXHR9XG5cblx0dHJpYW5nbGUgKGZpbGxlZDogYm9vbGVhbiwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIsIHgzOiBudW1iZXIsIHkzOiBudW1iZXIsIGNvbG9yPzogQ29sb3IsIGNvbG9yMj86IENvbG9yLCBjb2xvcjM/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5zaGFwZXMpO1xuXHRcdHRoaXMuc2hhcGVzLnRyaWFuZ2xlKGZpbGxlZCwgeCwgeSwgeDIsIHkyLCB4MywgeTMsIGNvbG9yLCBjb2xvcjIsIGNvbG9yMyk7XG5cdH1cblxuXHRxdWFkIChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCB4MzogbnVtYmVyLCB5MzogbnVtYmVyLCB4NDogbnVtYmVyLCB5NDogbnVtYmVyLCBjb2xvcj86IENvbG9yLCBjb2xvcjI/OiBDb2xvciwgY29sb3IzPzogQ29sb3IsIGNvbG9yND86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMucXVhZChmaWxsZWQsIHgsIHksIHgyLCB5MiwgeDMsIHkzLCB4NCwgeTQsIGNvbG9yLCBjb2xvcjIsIGNvbG9yMywgY29sb3I0KTtcblx0fVxuXG5cdHJlY3QgKGZpbGxlZDogYm9vbGVhbiwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMucmVjdChmaWxsZWQsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGNvbG9yKTtcblx0fVxuXG5cdHJlY3RMaW5lIChmaWxsZWQ6IGJvb2xlYW4sIHgxOiBudW1iZXIsIHkxOiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGNvbG9yPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy5yZWN0TGluZShmaWxsZWQsIHgxLCB5MSwgeDIsIHkyLCB3aWR0aCwgY29sb3IpO1xuXHR9XG5cblx0cG9seWdvbiAocG9seWdvblZlcnRpY2VzOiBBcnJheUxpa2U8bnVtYmVyPiwgb2Zmc2V0OiBudW1iZXIsIGNvdW50OiBudW1iZXIsIGNvbG9yPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy5wb2x5Z29uKHBvbHlnb25WZXJ0aWNlcywgb2Zmc2V0LCBjb3VudCwgY29sb3IpO1xuXHR9XG5cblx0Y2lyY2xlIChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCByYWRpdXM6IG51bWJlciwgY29sb3I/OiBDb2xvciwgc2VnbWVudHM6IG51bWJlciA9IDApIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy5jaXJjbGUoZmlsbGVkLCB4LCB5LCByYWRpdXMsIGNvbG9yLCBzZWdtZW50cyk7XG5cdH1cblxuXHRjdXJ2ZSAoeDE6IG51bWJlciwgeTE6IG51bWJlciwgY3gxOiBudW1iZXIsIGN5MTogbnVtYmVyLCBjeDI6IG51bWJlciwgY3kyOiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIsIHNlZ21lbnRzOiBudW1iZXIsIGNvbG9yPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy5jdXJ2ZSh4MSwgeTEsIGN4MSwgY3kxLCBjeDIsIGN5MiwgeDIsIHkyLCBzZWdtZW50cywgY29sb3IpO1xuXHR9XG5cblx0ZW5kICgpIHtcblx0XHRpZiAodGhpcy5hY3RpdmVSZW5kZXJlciA9PT0gdGhpcy5iYXRjaGVyKSB0aGlzLmJhdGNoZXIuZW5kKCk7XG5cdFx0ZWxzZSBpZiAodGhpcy5hY3RpdmVSZW5kZXJlciA9PT0gdGhpcy5zaGFwZXMpIHRoaXMuc2hhcGVzLmVuZCgpO1xuXHRcdHRoaXMuYWN0aXZlUmVuZGVyZXIgPSBudWxsO1xuXHR9XG5cblx0cmVzaXplIChyZXNpemVNb2RlOiBSZXNpemVNb2RlKSB7XG5cdFx0bGV0IGNhbnZhcyA9IHRoaXMuY2FudmFzO1xuXHRcdHZhciBkcHIgPSB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyB8fCAxO1xuXHRcdHZhciB3ID0gTWF0aC5yb3VuZChjYW52YXMuY2xpZW50V2lkdGggKiBkcHIpO1xuXHRcdHZhciBoID0gTWF0aC5yb3VuZChjYW52YXMuY2xpZW50SGVpZ2h0ICogZHByKTtcblxuXHRcdGlmIChjYW52YXMud2lkdGggIT0gdyB8fCBjYW52YXMuaGVpZ2h0ICE9IGgpIHtcblx0XHRcdGNhbnZhcy53aWR0aCA9IHc7XG5cdFx0XHRjYW52YXMuaGVpZ2h0ID0gaDtcblx0XHR9XG5cdFx0dGhpcy5jb250ZXh0LmdsLnZpZXdwb3J0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cblx0XHQvLyBOb3RoaW5nIHRvIGRvIGZvciBzdHJldGNoLCB3ZSBzaW1wbHkgYXBwbHkgdGhlIHZpZXdwb3J0IHNpemUgb2YgdGhlIGNhbWVyYS5cblx0XHRpZiAocmVzaXplTW9kZSA9PT0gUmVzaXplTW9kZS5FeHBhbmQpXG5cdFx0XHR0aGlzLmNhbWVyYS5zZXRWaWV3cG9ydCh3LCBoKTtcblx0XHRlbHNlIGlmIChyZXNpemVNb2RlID09PSBSZXNpemVNb2RlLkZpdCkge1xuXHRcdFx0bGV0IHNvdXJjZVdpZHRoID0gY2FudmFzLndpZHRoLCBzb3VyY2VIZWlnaHQgPSBjYW52YXMuaGVpZ2h0O1xuXHRcdFx0bGV0IHRhcmdldFdpZHRoID0gdGhpcy5jYW1lcmEudmlld3BvcnRXaWR0aCwgdGFyZ2V0SGVpZ2h0ID0gdGhpcy5jYW1lcmEudmlld3BvcnRIZWlnaHQ7XG5cdFx0XHRsZXQgdGFyZ2V0UmF0aW8gPSB0YXJnZXRIZWlnaHQgLyB0YXJnZXRXaWR0aDtcblx0XHRcdGxldCBzb3VyY2VSYXRpbyA9IHNvdXJjZUhlaWdodCAvIHNvdXJjZVdpZHRoO1xuXHRcdFx0bGV0IHNjYWxlID0gdGFyZ2V0UmF0aW8gPCBzb3VyY2VSYXRpbyA/IHRhcmdldFdpZHRoIC8gc291cmNlV2lkdGggOiB0YXJnZXRIZWlnaHQgLyBzb3VyY2VIZWlnaHQ7XG5cdFx0XHR0aGlzLmNhbWVyYS5zZXRWaWV3cG9ydChzb3VyY2VXaWR0aCAqIHNjYWxlLCBzb3VyY2VIZWlnaHQgKiBzY2FsZSk7XG5cdFx0fVxuXHRcdHRoaXMuY2FtZXJhLnVwZGF0ZSgpO1xuXHR9XG5cblx0cHJpdmF0ZSBlbmFibGVSZW5kZXJlciAocmVuZGVyZXI6IFBvbHlnb25CYXRjaGVyIHwgU2hhcGVSZW5kZXJlciB8IFNrZWxldG9uRGVidWdSZW5kZXJlcikge1xuXHRcdGlmICh0aGlzLmFjdGl2ZVJlbmRlcmVyID09PSByZW5kZXJlcikgcmV0dXJuO1xuXHRcdHRoaXMuZW5kKCk7XG5cdFx0aWYgKHJlbmRlcmVyIGluc3RhbmNlb2YgUG9seWdvbkJhdGNoZXIpIHtcblx0XHRcdHRoaXMuYmF0Y2hlclNoYWRlci5iaW5kKCk7XG5cdFx0XHR0aGlzLmJhdGNoZXJTaGFkZXIuc2V0VW5pZm9ybTR4NGYoU2hhZGVyLk1WUF9NQVRSSVgsIHRoaXMuY2FtZXJhLnByb2plY3Rpb25WaWV3LnZhbHVlcyk7XG5cdFx0XHR0aGlzLmJhdGNoZXJTaGFkZXIuc2V0VW5pZm9ybWkoXCJ1X3RleHR1cmVcIiwgMCk7XG5cdFx0XHR0aGlzLmJhdGNoZXIuYmVnaW4odGhpcy5iYXRjaGVyU2hhZGVyKTtcblx0XHRcdHRoaXMuYWN0aXZlUmVuZGVyZXIgPSB0aGlzLmJhdGNoZXI7XG5cdFx0fSBlbHNlIGlmIChyZW5kZXJlciBpbnN0YW5jZW9mIFNoYXBlUmVuZGVyZXIpIHtcblx0XHRcdHRoaXMuc2hhcGVzU2hhZGVyLmJpbmQoKTtcblx0XHRcdHRoaXMuc2hhcGVzU2hhZGVyLnNldFVuaWZvcm00eDRmKFNoYWRlci5NVlBfTUFUUklYLCB0aGlzLmNhbWVyYS5wcm9qZWN0aW9uVmlldy52YWx1ZXMpO1xuXHRcdFx0dGhpcy5zaGFwZXMuYmVnaW4odGhpcy5zaGFwZXNTaGFkZXIpO1xuXHRcdFx0dGhpcy5hY3RpdmVSZW5kZXJlciA9IHRoaXMuc2hhcGVzO1xuXHRcdH0gZWxzZVxuXHRcdFx0dGhpcy5hY3RpdmVSZW5kZXJlciA9IHRoaXMuc2tlbGV0b25EZWJ1Z1JlbmRlcmVyO1xuXHR9XG59XG5cbmV4cG9ydCBlbnVtIFJlc2l6ZU1vZGUge1xuXHRTdHJldGNoLFxuXHRFeHBhbmQsXG5cdEZpdFxufVxuIl19
|
|
502
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NlbmVSZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TY2VuZVJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUUvRSxPQUFPLEVBQUUsS0FBSyxFQUF3QixTQUFTLEVBQXNCLE1BQU0sOEJBQThCLENBQUM7QUFDMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFxQixNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxRCxDQUFDO0FBRUQsTUFBTSxJQUFJLEdBQUc7SUFDWixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztDQUN0QixDQUFDO0FBQ0YsTUFBTSxjQUFjLEdBQUcsQ0FB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SUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGFBQWEsQ0FBRSxPQUFrQixFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsS0FBYTtRQUNsSixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSztZQUFFLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDZixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENB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QyxHQUFHLENBQUMsQ0FBQztRQUNWLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNiLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxVQUFVLENBQUUsTUFBMEIsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEtBQWEsRUFBRSxNQUFjLEVBQUUsS0FBYTtRQUN6RyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSztZQUFFLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDZixDQUFDO1FBQ0QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFZLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBSSxDQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhLEVBQUUsTUFBYztRQUNoRixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFFBQVEsQ0FBRSxNQUFlLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQzdJLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxJQUFJLENBQUUsTUFBZSxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsS0FBYSxFQUFFLE1BQWMsRUFBRSxNQUFjLEVBQUUsTUFBYztRQUNqTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsSUFBSSxDQUFFLE1BQWUsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLEtBQWEsRUFBRSxNQUFjLEVBQUUsS0FBYTtRQUN4RixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxRQUFRLENBQUUsTUFBZSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLEVBQVUsRUFBRSxLQUFhLEVBQUUsS0FBYTtRQUN0RyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsT0FBTyxDQUFFLGVBQWtDLEVBQUUsTUFBYyxFQUFFLEtBQWEsRUFBRSxLQUFhO1FBQ3hGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxNQUFNLENBQUUsTUFBZSxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsTUFBYyxF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SXJCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3BpbmUgUnVudGltZXMgTGljZW5zZSBBZ3JlZW1lbnRcbiAqIExhc3QgdXBkYXRlZCBBcHJpbCA1LCAyMDI1LiBSZXBsYWNlcyBhbGwgcHJpb3IgdmVyc2lvbnMuXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUsIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xuICpcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcbiAqIGNvbmRpdGlvbnMgb2YgU2VjdGlvbiAyIG9mIHRoZSBTcGluZSBFZGl0b3IgTGljZW5zZSBBZ3JlZW1lbnQ6XG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcbiAqXG4gKiBPdGhlcndpc2UsIGl0IGlzIHBlcm1pdHRlZCB0byBpbnRlZ3JhdGUgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmVcbiAqIG9yIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cbiAqIFNwaW5lIEVkaXRvciBsaWNlbnNlIGFuZCByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZHVjdHMgaW4gYW55IGZvcm0gbXVzdFxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXG4gKlxuICogVEhFIFNQSU5FIFJVTlRJTUVTIEFSRSBQUk9WSURFRCBCWSBFU09URVJJQyBTT0ZUV0FSRSBMTEMgXCJBUyBJU1wiIEFORCBBTllcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEVTT1RFUklDIFNPRlRXQVJFIExMQyBCRSBMSUFCTEUgRk9SIEFOWVxuICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyxcbiAqIEJVU0lORVNTIElOVEVSUlVQVElPTiwgT1IgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFMpIEhPV0VWRVIgQ0FVU0VEIEFORFxuICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRlxuICogVEhFIFNQSU5FIFJVTlRJTUVTLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgeyBDb2xvciwgRGlzcG9zYWJsZSwgU2tlbGV0b24sIE1hdGhVdGlscywgVGV4dHVyZUF0bGFzUmVnaW9uIH0gZnJvbSBcIkBlc290ZXJpY3NvZnR3YXJlL3NwaW5lLWNvcmVcIjtcbmltcG9ydCB7IE9ydGhvQ2FtZXJhIH0gZnJvbSBcIi4vQ2FtZXJhLmpzXCI7XG5pbXBvcnQgeyBHTFRleHR1cmUgfSBmcm9tIFwiLi9HTFRleHR1cmUuanNcIjtcbmltcG9ydCB7IFBvbHlnb25CYXRjaGVyIH0gZnJvbSBcIi4vUG9seWdvbkJhdGNoZXIuanNcIjtcbmltcG9ydCB7IFNoYWRlciB9IGZyb20gXCIuL1NoYWRlci5qc1wiO1xuaW1wb3J0IHsgU2hhcGVSZW5kZXJlciB9IGZyb20gXCIuL1NoYXBlUmVuZGVyZXIuanNcIjtcbmltcG9ydCB7IFNrZWxldG9uRGVidWdSZW5kZXJlciB9IGZyb20gXCIuL1NrZWxldG9uRGVidWdSZW5kZXJlci5qc1wiO1xuaW1wb3J0IHsgU2tlbGV0b25SZW5kZXJlciwgVmVydGV4VHJhbnNmb3JtZXIgfSBmcm9tIFwiLi9Ta2VsZXRvblJlbmRlcmVyLmpzXCI7XG5pbXBvcnQgeyBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0IH0gZnJvbSBcIi4vV2ViR0wuanNcIjtcbjtcblxuY29uc3QgcXVhZCA9IFtcblx0MCwgMCwgMSwgMSwgMSwgMSwgMCwgMCxcblx0MCwgMCwgMSwgMSwgMSwgMSwgMCwgMCxcblx0MCwgMCwgMSwgMSwgMSwgMSwgMCwgMCxcblx0MCwgMCwgMSwgMSwgMSwgMSwgMCwgMCxcbl07XG5jb25zdCBRVUFEX1RSSUFOR0xFUyA9IFswLCAxLCAyLCAyLCAzLCAwXTtcbmNvbnN0IFdISVRFID0gbmV3IENvbG9yKDEsIDEsIDEsIDEpO1xuXG5leHBvcnQgY2xhc3MgU2NlbmVSZW5kZXJlciBpbXBsZW1lbnRzIERpc3Bvc2FibGUge1xuXHRjb250ZXh0OiBNYW5hZ2VkV2ViR0xSZW5kZXJpbmdDb250ZXh0O1xuXHRjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50O1xuXHRjYW1lcmE6IE9ydGhvQ2FtZXJhO1xuXHRiYXRjaGVyOiBQb2x5Z29uQmF0Y2hlcjtcblx0cHJpdmF0ZSB0d29Db2xvclRpbnQgPSBmYWxzZTtcblx0cHJpdmF0ZSBiYXRjaGVyU2hhZGVyOiBTaGFkZXI7XG5cdHByaXZhdGUgc2hhcGVzOiBTaGFwZVJlbmRlcmVyO1xuXHRwcml2YXRlIHNoYXBlc1NoYWRlcjogU2hhZGVyO1xuXHRwcml2YXRlIGFjdGl2ZVJlbmRlcmVyOiBQb2x5Z29uQmF0Y2hlciB8IFNoYXBlUmVuZGVyZXIgfCBTa2VsZXRvbkRlYnVnUmVuZGVyZXIgfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBtYXhDYW52YXNXaWR0aCA9IDA7XG5cdHByaXZhdGUgbWF4Q2FudmFzSGVpZ2h0ID0gMDtcblx0c2tlbGV0b25SZW5kZXJlcjogU2tlbGV0b25SZW5kZXJlcjtcblx0c2tlbGV0b25EZWJ1Z1JlbmRlcmVyOiBTa2VsZXRvbkRlYnVnUmVuZGVyZXI7XG5cblx0Y29uc3RydWN0b3IgKGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQsIGNvbnRleHQ6IE1hbmFnZWRXZWJHTFJlbmRlcmluZ0NvbnRleHQgfCBXZWJHTFJlbmRlcmluZ0NvbnRleHQsIHR3b0NvbG9yVGludDogYm9vbGVhbiA9IHRydWUpIHtcblx0XHR0aGlzLmNhbnZhcyA9IGNhbnZhcztcblx0XHR0aGlzLmNvbnRleHQgPSBjb250ZXh0IGluc3RhbmNlb2YgTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dCA/IGNvbnRleHQgOiBuZXcgTWFuYWdlZFdlYkdMUmVuZGVyaW5nQ29udGV4dChjb250ZXh0KTtcblx0XHR0aGlzLnR3b0NvbG9yVGludCA9IHR3b0NvbG9yVGludDtcblx0XHR0aGlzLmNhbWVyYSA9IG5ldyBPcnRob0NhbWVyYShjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuXHRcdHRoaXMuYmF0Y2hlclNoYWRlciA9IHR3b0NvbG9yVGludCA/IFNoYWRlci5uZXdUd29Db2xvcmVkVGV4dHVyZWQodGhpcy5jb250ZXh0KSA6IFNoYWRlci5uZXdDb2xvcmVkVGV4dHVyZWQodGhpcy5jb250ZXh0KTtcblx0XHR0aGlzLmJhdGNoZXIgPSBuZXcgUG9seWdvbkJhdGNoZXIodGhpcy5jb250ZXh0LCB0d29Db2xvclRpbnQpO1xuXHRcdHRoaXMuc2hhcGVzU2hhZGVyID0gU2hhZGVyLm5ld0NvbG9yZWQodGhpcy5jb250ZXh0KTtcblx0XHR0aGlzLnNoYXBlcyA9IG5ldyBTaGFwZVJlbmRlcmVyKHRoaXMuY29udGV4dCk7XG5cdFx0dGhpcy5za2VsZXRvblJlbmRlcmVyID0gbmV3IFNrZWxldG9uUmVuZGVyZXIodGhpcy5jb250ZXh0LCB0d29Db2xvclRpbnQpO1xuXHRcdHRoaXMuc2tlbGV0b25EZWJ1Z1JlbmRlcmVyID0gbmV3IFNrZWxldG9uRGVidWdSZW5kZXJlcih0aGlzLmNvbnRleHQpO1xuXHR9XG5cblx0ZGlzcG9zZSAoKSB7XG5cdFx0dGhpcy5iYXRjaGVyLmRpc3Bvc2UoKTtcblx0XHR0aGlzLmJhdGNoZXJTaGFkZXIuZGlzcG9zZSgpO1xuXHRcdHRoaXMuc2hhcGVzLmRpc3Bvc2UoKTtcblx0XHR0aGlzLnNoYXBlc1NoYWRlci5kaXNwb3NlKCk7XG5cdFx0dGhpcy5za2VsZXRvbkRlYnVnUmVuZGVyZXIuZGlzcG9zZSgpO1xuXHR9XG5cblx0YmVnaW4gKCkge1xuXHRcdHRoaXMuY2FtZXJhLnVwZGF0ZSgpO1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0fVxuXG5cdGRyYXdTa2VsZXRvbiAoc2tlbGV0b246IFNrZWxldG9uLCBwcmVtdWx0aXBsaWVkQWxwaGEgPSBmYWxzZSwgc2xvdFJhbmdlU3RhcnQgPSAtMSwgc2xvdFJhbmdlRW5kID0gLTEsIHRyYW5zZm9ybTogVmVydGV4VHJhbnNmb3JtZXIgfCBudWxsID0gbnVsbCkge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0XHR0aGlzLnNrZWxldG9uUmVuZGVyZXIucHJlbXVsdGlwbGllZEFscGhhID0gcHJlbXVsdGlwbGllZEFscGhhO1xuXHRcdHRoaXMuc2tlbGV0b25SZW5kZXJlci5kcmF3KHRoaXMuYmF0Y2hlciwgc2tlbGV0b24sIHNsb3RSYW5nZVN0YXJ0LCBzbG90UmFuZ2VFbmQsIHRyYW5zZm9ybSk7XG5cdH1cblxuXHRkcmF3U2tlbGV0b25EZWJ1ZyAoc2tlbGV0b246IFNrZWxldG9uLCBwcmVtdWx0aXBsaWVkQWxwaGEgPSBmYWxzZSwgaWdub3JlZEJvbmVzPzogQXJyYXk8c3RyaW5nPikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5zaGFwZXMpO1xuXHRcdHRoaXMuc2tlbGV0b25EZWJ1Z1JlbmRlcmVyLnByZW11bHRpcGxpZWRBbHBoYSA9IHByZW11bHRpcGxpZWRBbHBoYTtcblx0XHR0aGlzLnNrZWxldG9uRGVidWdSZW5kZXJlci5kcmF3KHRoaXMuc2hhcGVzLCBza2VsZXRvbiwgaWdub3JlZEJvbmVzKTtcblx0fVxuXG5cdGRyYXdUZXh0dXJlICh0ZXh0dXJlOiBHTFRleHR1cmUsIHg6IG51bWJlciwgeTogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IFdISVRFO1xuXHRcdHZhciBpID0gMDtcblx0XHRxdWFkW2krK10gPSB4O1xuXHRcdHF1YWRbaSsrXSA9IHk7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdHF1YWRbaSsrXSA9IDE7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4ICsgd2lkdGg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IDE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHggKyB3aWR0aDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gMDtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpXSA9IDA7XG5cdFx0fVxuXHRcdHRoaXMuYmF0Y2hlci5kcmF3KHRleHR1cmUsIHF1YWQsIFFVQURfVFJJQU5HTEVTKTtcblx0fVxuXG5cdGRyYXdUZXh0dXJlVVYgKHRleHR1cmU6IEdMVGV4dHVyZSwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCB1OiBudW1iZXIsIHY6IG51bWJlciwgdTI6IG51bWJlciwgdjI6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IFdISVRFO1xuXHRcdHZhciBpID0gMDtcblx0XHRxdWFkW2krK10gPSB4O1xuXHRcdHF1YWRbaSsrXSA9IHk7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSB1O1xuXHRcdHF1YWRbaSsrXSA9IHY7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4ICsgd2lkdGg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHUyO1xuXHRcdHF1YWRbaSsrXSA9IHY7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4ICsgd2lkdGg7XG5cdFx0cXVhZFtpKytdID0geSArIGhlaWdodDtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHUyO1xuXHRcdHF1YWRbaSsrXSA9IHYyO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geDtcblx0XHRxdWFkW2krK10gPSB5ICsgaGVpZ2h0O1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gdTtcblx0XHRxdWFkW2krK10gPSB2Mjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaV0gPSAwO1xuXHRcdH1cblx0XHR0aGlzLmJhdGNoZXIuZHJhdyh0ZXh0dXJlLCBxdWFkLCBRVUFEX1RSSUFOR0xFUyk7XG5cdH1cblxuXHRkcmF3VGV4dHVyZVJvdGF0ZWQgKHRleHR1cmU6IEdMVGV4dHVyZSwgeDogbnVtYmVyLCB5OiBudW1iZXIsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCBwaXZvdFg6IG51bWJlciwgcGl2b3RZOiBudW1iZXIsIGFuZ2xlOiBudW1iZXIsIGNvbG9yPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuYmF0Y2hlcik7XG5cdFx0aWYgKCFjb2xvcikgY29sb3IgPSBXSElURTtcblxuXHRcdC8vIGJvdHRvbSBsZWZ0IGFuZCB0b3AgcmlnaHQgY29ybmVyIHBvaW50cyByZWxhdGl2ZSB0byBvcmlnaW5cblx0XHRsZXQgd29ybGRPcmlnaW5YID0geCArIHBpdm90WDtcblx0XHRsZXQgd29ybGRPcmlnaW5ZID0geSArIHBpdm90WTtcblx0XHRsZXQgZnggPSAtcGl2b3RYO1xuXHRcdGxldCBmeSA9IC1waXZvdFk7XG5cdFx0bGV0IGZ4MiA9IHdpZHRoIC0gcGl2b3RYO1xuXHRcdGxldCBmeTIgPSBoZWlnaHQgLSBwaXZvdFk7XG5cblx0XHQvLyBjb25zdHJ1Y3QgY29ybmVyIHBvaW50cywgc3RhcnQgZnJvbSB0b3AgbGVmdCBhbmQgZ28gY291bnRlciBjbG9ja3dpc2Vcblx0XHRsZXQgcDF4ID0gZng7XG5cdFx0bGV0IHAxeSA9IGZ5O1xuXHRcdGxldCBwMnggPSBmeDtcblx0XHRsZXQgcDJ5ID0gZnkyO1xuXHRcdGxldCBwM3ggPSBmeDI7XG5cdFx0bGV0IHAzeSA9IGZ5Mjtcblx0XHRsZXQgcDR4ID0gZngyO1xuXHRcdGxldCBwNHkgPSBmeTtcblxuXHRcdGxldCB4MSA9IDA7XG5cdFx0bGV0IHkxID0gMDtcblx0XHRsZXQgeDIgPSAwO1xuXHRcdGxldCB5MiA9IDA7XG5cdFx0bGV0IHgzID0gMDtcblx0XHRsZXQgeTMgPSAwO1xuXHRcdGxldCB4NCA9IDA7XG5cdFx0bGV0IHk0ID0gMDtcblxuXHRcdC8vIHJvdGF0ZVxuXHRcdGlmIChhbmdsZSAhPSAwKSB7XG5cdFx0XHRsZXQgY29zID0gTWF0aFV0aWxzLmNvc0RlZyhhbmdsZSk7XG5cdFx0XHRsZXQgc2luID0gTWF0aFV0aWxzLnNpbkRlZyhhbmdsZSk7XG5cblx0XHRcdHgxID0gY29zICogcDF4IC0gc2luICogcDF5O1xuXHRcdFx0eTEgPSBzaW4gKiBwMXggKyBjb3MgKiBwMXk7XG5cblx0XHRcdHg0ID0gY29zICogcDJ4IC0gc2luICogcDJ5O1xuXHRcdFx0eTQgPSBzaW4gKiBwMnggKyBjb3MgKiBwMnk7XG5cblx0XHRcdHgzID0gY29zICogcDN4IC0gc2luICogcDN5O1xuXHRcdFx0eTMgPSBzaW4gKiBwM3ggKyBjb3MgKiBwM3k7XG5cblx0XHRcdHgyID0geDMgKyAoeDEgLSB4NCk7XG5cdFx0XHR5MiA9IHkzICsgKHkxIC0geTQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR4MSA9IHAxeDtcblx0XHRcdHkxID0gcDF5O1xuXG5cdFx0XHR4NCA9IHAyeDtcblx0XHRcdHk0ID0gcDJ5O1xuXG5cdFx0XHR4MyA9IHAzeDtcblx0XHRcdHkzID0gcDN5O1xuXG5cdFx0XHR4MiA9IHA0eDtcblx0XHRcdHkyID0gcDR5O1xuXHRcdH1cblxuXHRcdHgxICs9IHdvcmxkT3JpZ2luWDtcblx0XHR5MSArPSB3b3JsZE9yaWdpblk7XG5cdFx0eDIgKz0gd29ybGRPcmlnaW5YO1xuXHRcdHkyICs9IHdvcmxkT3JpZ2luWTtcblx0XHR4MyArPSB3b3JsZE9yaWdpblg7XG5cdFx0eTMgKz0gd29ybGRPcmlnaW5ZO1xuXHRcdHg0ICs9IHdvcmxkT3JpZ2luWDtcblx0XHR5NCArPSB3b3JsZE9yaWdpblk7XG5cblx0XHR2YXIgaSA9IDA7XG5cdFx0cXVhZFtpKytdID0geDE7XG5cdFx0cXVhZFtpKytdID0geTE7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdHF1YWRbaSsrXSA9IDE7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4Mjtcblx0XHRxdWFkW2krK10gPSB5Mjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IDE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHgzO1xuXHRcdHF1YWRbaSsrXSA9IHkzO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLnI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuZztcblx0XHRxdWFkW2krK10gPSBjb2xvci5iO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmE7XG5cdFx0cXVhZFtpKytdID0gMTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHR9XG5cdFx0cXVhZFtpKytdID0geDQ7XG5cdFx0cXVhZFtpKytdID0geTQ7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSAwO1xuXHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2ldID0gMDtcblx0XHR9XG5cdFx0dGhpcy5iYXRjaGVyLmRyYXcodGV4dHVyZSwgcXVhZCwgUVVBRF9UUklBTkdMRVMpO1xuXHR9XG5cblx0ZHJhd1JlZ2lvbiAocmVnaW9uOiBUZXh0dXJlQXRsYXNSZWdpb24sIHg6IG51bWJlciwgeTogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5iYXRjaGVyKTtcblx0XHRpZiAoIWNvbG9yKSBjb2xvciA9IFdISVRFO1xuXHRcdHZhciBpID0gMDtcblx0XHRxdWFkW2krK10gPSB4O1xuXHRcdHF1YWRbaSsrXSA9IHk7XG5cdFx0cXVhZFtpKytdID0gY29sb3Iucjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5nO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmI7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYTtcblx0XHRxdWFkW2krK10gPSByZWdpb24udTtcblx0XHRxdWFkW2krK10gPSByZWdpb24udjI7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4ICsgd2lkdGg7XG5cdFx0cXVhZFtpKytdID0geTtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi51Mjtcblx0XHRxdWFkW2krK10gPSByZWdpb24udjI7XG5cdFx0aWYgKHRoaXMudHdvQ29sb3JUaW50KSB7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdH1cblx0XHRxdWFkW2krK10gPSB4ICsgd2lkdGg7XG5cdFx0cXVhZFtpKytdID0geSArIGhlaWdodDtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi51Mjtcblx0XHRxdWFkW2krK10gPSByZWdpb24udjtcblx0XHRpZiAodGhpcy50d29Db2xvclRpbnQpIHtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0fVxuXHRcdHF1YWRbaSsrXSA9IHg7XG5cdFx0cXVhZFtpKytdID0geSArIGhlaWdodDtcblx0XHRxdWFkW2krK10gPSBjb2xvci5yO1xuXHRcdHF1YWRbaSsrXSA9IGNvbG9yLmc7XG5cdFx0cXVhZFtpKytdID0gY29sb3IuYjtcblx0XHRxdWFkW2krK10gPSBjb2xvci5hO1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi51O1xuXHRcdHF1YWRbaSsrXSA9IHJlZ2lvbi52O1xuXHRcdGlmICh0aGlzLnR3b0NvbG9yVGludCkge1xuXHRcdFx0cXVhZFtpKytdID0gMDtcblx0XHRcdHF1YWRbaSsrXSA9IDA7XG5cdFx0XHRxdWFkW2krK10gPSAwO1xuXHRcdFx0cXVhZFtpXSA9IDA7XG5cdFx0fVxuXHRcdHRoaXMuYmF0Y2hlci5kcmF3KDxHTFRleHR1cmU+cmVnaW9uLnBhZ2UudGV4dHVyZSwgcXVhZCwgUVVBRF9UUklBTkdMRVMpO1xuXHR9XG5cblx0bGluZSAoeDogbnVtYmVyLCB5OiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIsIGNvbG9yPzogQ29sb3IsIGNvbG9yMj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMubGluZSh4LCB5LCB4MiwgeTIsIGNvbG9yKTtcblx0fVxuXG5cdHRyaWFuZ2xlIChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCB4MzogbnVtYmVyLCB5MzogbnVtYmVyLCBjb2xvcj86IENvbG9yLCBjb2xvcjI/OiBDb2xvciwgY29sb3IzPzogQ29sb3IpIHtcblx0XHR0aGlzLmVuYWJsZVJlbmRlcmVyKHRoaXMuc2hhcGVzKTtcblx0XHR0aGlzLnNoYXBlcy50cmlhbmdsZShmaWxsZWQsIHgsIHksIHgyLCB5MiwgeDMsIHkzLCBjb2xvciwgY29sb3IyLCBjb2xvcjMpO1xuXHR9XG5cblx0cXVhZCAoZmlsbGVkOiBib29sZWFuLCB4OiBudW1iZXIsIHk6IG51bWJlciwgeDI6IG51bWJlciwgeTI6IG51bWJlciwgeDM6IG51bWJlciwgeTM6IG51bWJlciwgeDQ6IG51bWJlciwgeTQ6IG51bWJlciwgY29sb3I/OiBDb2xvciwgY29sb3IyPzogQ29sb3IsIGNvbG9yMz86IENvbG9yLCBjb2xvcjQ/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5zaGFwZXMpO1xuXHRcdHRoaXMuc2hhcGVzLnF1YWQoZmlsbGVkLCB4LCB5LCB4MiwgeTIsIHgzLCB5MywgeDQsIHk0LCBjb2xvciwgY29sb3IyLCBjb2xvcjMsIGNvbG9yNCk7XG5cdH1cblxuXHRyZWN0IChmaWxsZWQ6IGJvb2xlYW4sIHg6IG51bWJlciwgeTogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgY29sb3I/OiBDb2xvcikge1xuXHRcdHRoaXMuZW5hYmxlUmVuZGVyZXIodGhpcy5zaGFwZXMpO1xuXHRcdHRoaXMuc2hhcGVzLnJlY3QoZmlsbGVkLCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBjb2xvcik7XG5cdH1cblxuXHRyZWN0TGluZSAoZmlsbGVkOiBib29sZWFuLCB4MTogbnVtYmVyLCB5MTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMucmVjdExpbmUoZmlsbGVkLCB4MSwgeTEsIHgyLCB5Miwgd2lkdGgsIGNvbG9yKTtcblx0fVxuXG5cdHBvbHlnb24gKHBvbHlnb25WZXJ0aWNlczogQXJyYXlMaWtlPG51bWJlcj4sIG9mZnNldDogbnVtYmVyLCBjb3VudDogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMucG9seWdvbihwb2x5Z29uVmVydGljZXMsIG9mZnNldCwgY291bnQsIGNvbG9yKTtcblx0fVxuXG5cdGNpcmNsZSAoZmlsbGVkOiBib29sZWFuLCB4OiBudW1iZXIsIHk6IG51bWJlciwgcmFkaXVzOiBudW1iZXIsIGNvbG9yPzogQ29sb3IsIHNlZ21lbnRzOiBudW1iZXIgPSAwKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMuY2lyY2xlKGZpbGxlZCwgeCwgeSwgcmFkaXVzLCBjb2xvciwgc2VnbWVudHMpO1xuXHR9XG5cblx0Y3VydmUgKHgxOiBudW1iZXIsIHkxOiBudW1iZXIsIGN4MTogbnVtYmVyLCBjeTE6IG51bWJlciwgY3gyOiBudW1iZXIsIGN5MjogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyLCBzZWdtZW50czogbnVtYmVyLCBjb2xvcj86IENvbG9yKSB7XG5cdFx0dGhpcy5lbmFibGVSZW5kZXJlcih0aGlzLnNoYXBlcyk7XG5cdFx0dGhpcy5zaGFwZXMuY3VydmUoeDEsIHkxLCBjeDEsIGN5MSwgY3gyLCBjeTIsIHgyLCB5Miwgc2VnbWVudHMsIGNvbG9yKTtcblx0fVxuXG5cdGVuZCAoKSB7XG5cdFx0aWYgKHRoaXMuYWN0aXZlUmVuZGVyZXIgPT09IHRoaXMuYmF0Y2hlcikgdGhpcy5iYXRjaGVyLmVuZCgpO1xuXHRcdGVsc2UgaWYgKHRoaXMuYWN0aXZlUmVuZGVyZXIgPT09IHRoaXMuc2hhcGVzKSB0aGlzLnNoYXBlcy5lbmQoKTtcblx0XHR0aGlzLmFjdGl2ZVJlbmRlcmVyID0gbnVsbDtcblx0fVxuXG5cdHJlc2l6ZSAocmVzaXplTW9kZTogUmVzaXplTW9kZSkge1xuXHRcdGxldCBjYW52YXMgPSB0aGlzLmNhbnZhcztcblx0XHR2YXIgZHByID0gdGhpcy5nZXRTYWZlRGV2aWNlUGl4ZWxSYXRpbyhjYW52YXMuY2xpZW50V2lkdGgsIGNhbnZhcy5jbGllbnRIZWlnaHQpO1xuXHRcdHZhciB3ID0gTWF0aC5yb3VuZChjYW52YXMuY2xpZW50V2lkdGggKiBkcHIpO1xuXHRcdHZhciBoID0gTWF0aC5yb3VuZChjYW52YXMuY2xpZW50SGVpZ2h0ICogZHByKTtcblxuXHRcdGlmIChjYW52YXMud2lkdGggIT0gdyB8fCBjYW52YXMuaGVpZ2h0ICE9IGgpIHtcblx0XHRcdGNhbnZhcy53aWR0aCA9IHc7XG5cdFx0XHRjYW52YXMuaGVpZ2h0ID0gaDtcblx0XHR9XG5cdFx0dGhpcy5jb250ZXh0LmdsLnZpZXdwb3J0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG5cblx0XHQvLyBOb3RoaW5nIHRvIGRvIGZvciBzdHJldGNoLCB3ZSBzaW1wbHkgYXBwbHkgdGhlIHZpZXdwb3J0IHNpemUgb2YgdGhlIGNhbWVyYS5cblx0XHRpZiAocmVzaXplTW9kZSA9PT0gUmVzaXplTW9kZS5FeHBhbmQpXG5cdFx0XHR0aGlzLmNhbWVyYS5zZXRWaWV3cG9ydCh3LCBoKTtcblx0XHRlbHNlIGlmIChyZXNpemVNb2RlID09PSBSZXNpemVNb2RlLkZpdCkge1xuXHRcdFx0bGV0IHNvdXJjZVdpZHRoID0gY2FudmFzLndpZHRoLCBzb3VyY2VIZWlnaHQgPSBjYW52YXMuaGVpZ2h0O1xuXHRcdFx0bGV0IHRhcmdldFdpZHRoID0gdGhpcy5jYW1lcmEudmlld3BvcnRXaWR0aCwgdGFyZ2V0SGVpZ2h0ID0gdGhpcy5jYW1lcmEudmlld3BvcnRIZWlnaHQ7XG5cdFx0XHRsZXQgdGFyZ2V0UmF0aW8gPSB0YXJnZXRIZWlnaHQgLyB0YXJnZXRXaWR0aDtcblx0XHRcdGxldCBzb3VyY2VSYXRpbyA9IHNvdXJjZUhlaWdodCAvIHNvdXJjZVdpZHRoO1xuXHRcdFx0bGV0IHNjYWxlID0gdGFyZ2V0UmF0aW8gPCBzb3VyY2VSYXRpbyA/IHRhcmdldFdpZHRoIC8gc291cmNlV2lkdGggOiB0YXJnZXRIZWlnaHQgLyBzb3VyY2VIZWlnaHQ7XG5cdFx0XHR0aGlzLmNhbWVyYS5zZXRWaWV3cG9ydChzb3VyY2VXaWR0aCAqIHNjYWxlLCBzb3VyY2VIZWlnaHQgKiBzY2FsZSk7XG5cdFx0fVxuXHRcdHRoaXMuY2FtZXJhLnVwZGF0ZSgpO1xuXHR9XG5cblx0cHJpdmF0ZSBnZXRTYWZlRGV2aWNlUGl4ZWxSYXRpbyAoY3NzV2lkdGg6IG51bWJlciwgY3NzSGVpZ2h0OiBudW1iZXIpOiBudW1iZXIge1xuXHRcdGNvbnN0IGRwciA9IHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIHx8IDE7XG5cdFx0aWYgKGNzc1dpZHRoIDw9IDAgfHwgY3NzSGVpZ2h0IDw9IDApIHJldHVybiBkcHI7XG5cblx0XHRpZiAodGhpcy5tYXhDYW52YXNXaWR0aCA9PT0gMCB8fCB0aGlzLm1heENhbnZhc0hlaWdodCA9PT0gMCkge1xuXHRcdFx0Y29uc3QgZ2wgPSB0aGlzLmNvbnRleHQuZ2w7XG5cdFx0XHRjb25zdCBtYXhSZW5kZXJidWZmZXJTaXplID0gZ2wuZ2V0UGFyYW1ldGVyKGdsLk1BWF9SRU5ERVJCVUZGRVJfU0laRSk7XG5cdFx0XHRjb25zdCBtYXhWaWV3cG9ydERpbXMgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuTUFYX1ZJRVdQT1JUX0RJTVMpO1xuXHRcdFx0dGhpcy5tYXhDYW52YXNXaWR0aCA9IE1hdGgubWluKG1heFJlbmRlcmJ1ZmZlclNpemUsIG1heFZpZXdwb3J0RGltc1swXSk7XG5cdFx0XHR0aGlzLm1heENhbnZhc0hlaWdodCA9IE1hdGgubWluKG1heFJlbmRlcmJ1ZmZlclNpemUsIG1heFZpZXdwb3J0RGltc1sxXSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIE1hdGgubWluKGRwciwgdGhpcy5tYXhDYW52YXNXaWR0aCAvIGNzc1dpZHRoLCB0aGlzLm1heENhbnZhc0hlaWdodCAvIGNzc0hlaWdodCk7XG5cdH1cblxuXHRwcml2YXRlIGVuYWJsZVJlbmRlcmVyIChyZW5kZXJlcjogUG9seWdvbkJhdGNoZXIgfCBTaGFwZVJlbmRlcmVyIHwgU2tlbGV0b25EZWJ1Z1JlbmRlcmVyKSB7XG5cdFx0aWYgKHRoaXMuYWN0aXZlUmVuZGVyZXIgPT09IHJlbmRlcmVyKSByZXR1cm47XG5cdFx0dGhpcy5lbmQoKTtcblx0XHRpZiAocmVuZGVyZXIgaW5zdGFuY2VvZiBQb2x5Z29uQmF0Y2hlcikge1xuXHRcdFx0dGhpcy5iYXRjaGVyU2hhZGVyLmJpbmQoKTtcblx0XHRcdHRoaXMuYmF0Y2hlclNoYWRlci5zZXRVbmlmb3JtNHg0ZihTaGFkZXIuTVZQX01BVFJJWCwgdGhpcy5jYW1lcmEucHJvamVjdGlvblZpZXcudmFsdWVzKTtcblx0XHRcdHRoaXMuYmF0Y2hlclNoYWRlci5zZXRVbmlmb3JtaShcInVfdGV4dHVyZVwiLCAwKTtcblx0XHRcdHRoaXMuYmF0Y2hlci5iZWdpbih0aGlzLmJhdGNoZXJTaGFkZXIpO1xuXHRcdFx0dGhpcy5hY3RpdmVSZW5kZXJlciA9IHRoaXMuYmF0Y2hlcjtcblx0XHR9IGVsc2UgaWYgKHJlbmRlcmVyIGluc3RhbmNlb2YgU2hhcGVSZW5kZXJlcikge1xuXHRcdFx0dGhpcy5zaGFwZXNTaGFkZXIuYmluZCgpO1xuXHRcdFx0dGhpcy5zaGFwZXNTaGFkZXIuc2V0VW5pZm9ybTR4NGYoU2hhZGVyLk1WUF9NQVRSSVgsIHRoaXMuY2FtZXJhLnByb2plY3Rpb25WaWV3LnZhbHVlcyk7XG5cdFx0XHR0aGlzLnNoYXBlcy5iZWdpbih0aGlzLnNoYXBlc1NoYWRlcik7XG5cdFx0XHR0aGlzLmFjdGl2ZVJlbmRlcmVyID0gdGhpcy5zaGFwZXM7XG5cdFx0fSBlbHNlXG5cdFx0XHR0aGlzLmFjdGl2ZVJlbmRlcmVyID0gdGhpcy5za2VsZXRvbkRlYnVnUmVuZGVyZXI7XG5cdH1cbn1cblxuZXhwb3J0IGVudW0gUmVzaXplTW9kZSB7XG5cdFN0cmV0Y2gsXG5cdEV4cGFuZCxcblx0Rml0XG59XG4iXX0=
|