angular-three 2.0.0-beta.0 → 2.0.0-beta.2
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/esm2022/index.mjs +4 -1
- package/esm2022/lib/di/before-render.mjs +5 -4
- package/esm2022/lib/di/ref.mjs +10 -5
- package/esm2022/lib/loader.mjs +26 -22
- package/esm2022/lib/renderer/renderer.mjs +6 -3
- package/esm2022/lib/renderer/store.mjs +2 -1
- package/esm2022/lib/renderer/utils.mjs +10 -6
- package/esm2022/lib/stores/signal.store.mjs +28 -7
- package/esm2022/lib/stores/store.mjs +8 -10
- package/esm2022/lib/three-types.mjs +1 -1
- package/esm2022/lib/types.mjs +1 -1
- package/esm2022/lib/utils/apply-props.mjs +9 -5
- package/esm2022/lib/utils/assert-in-injection-context.mjs +14 -0
- package/esm2022/lib/utils/instance.mjs +7 -4
- package/esm2022/lib/utils/safe-detect-changes.mjs +2 -2
- package/esm2022/lib/utils/signal.mjs +24 -0
- package/esm2022/lib/utils/timing.mjs +21 -0
- package/fesm2022/angular-three.mjs +197 -107
- package/fesm2022/angular-three.mjs.map +1 -1
- package/index.d.ts +3 -0
- package/lib/di/before-render.d.ts +2 -2
- package/lib/di/ref.d.ts +2 -1
- package/lib/loader.d.ts +1 -1
- package/lib/renderer/utils.d.ts +1 -1
- package/lib/stores/signal.store.d.ts +1 -0
- package/lib/three-types.d.ts +1 -1
- package/lib/types.d.ts +3 -1
- package/lib/utils/assert-in-injection-context.d.ts +2 -0
- package/lib/utils/signal.d.ts +2 -0
- package/lib/utils/timing.d.ts +4 -0
- package/metadata.json +1 -1
- package/package.json +1 -1
- package/plugin/package.json +1 -1
- package/web-types.json +1 -1
|
@@ -84,7 +84,9 @@ class NgtStore extends NgtSignalStore {
|
|
|
84
84
|
if (state.performance.current !== state.performance.min)
|
|
85
85
|
setPerformanceCurrent(state.performance.min);
|
|
86
86
|
// go back to upper bound
|
|
87
|
-
performanceTimeout = setTimeout(() =>
|
|
87
|
+
performanceTimeout = setTimeout(() => {
|
|
88
|
+
setPerformanceCurrent(this.get('performance', 'max') || 1);
|
|
89
|
+
}, state.performance.debounce);
|
|
88
90
|
},
|
|
89
91
|
},
|
|
90
92
|
size: { width: 0, height: 0, top: 0, left: 0 },
|
|
@@ -363,14 +365,10 @@ class NgtStore extends NgtSignalStore {
|
|
|
363
365
|
let oldSize = state.size;
|
|
364
366
|
let oldDpr = state.viewport.dpr;
|
|
365
367
|
let oldCamera = state.camera;
|
|
366
|
-
const
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
viewport: this.select('viewport')(),
|
|
371
|
-
gl: this.get('gl'),
|
|
372
|
-
};
|
|
373
|
-
});
|
|
368
|
+
const camera = this.select('camera');
|
|
369
|
+
const size = this.select('size');
|
|
370
|
+
const viewport = this.select('viewport');
|
|
371
|
+
const triggers = computed(() => ({ camera: camera(), size: size(), viewport: viewport(), gl: this.get('gl') }));
|
|
374
372
|
effect(() => {
|
|
375
373
|
const { camera, size, viewport, gl } = triggers();
|
|
376
374
|
// resize camera and renderer on changes to size and dpr
|
|
@@ -422,4 +420,4 @@ function dispose(obj) {
|
|
|
422
420
|
delete obj[p];
|
|
423
421
|
}
|
|
424
422
|
}
|
|
425
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi9zdG9yZXMvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBWXJDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRWhELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBcUMsQ0FBQztBQUN6RSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN6RCxNQUFNLFlBQVksR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBa0IsQ0FBQztBQUUzRSxNQUNhLFFBQVMsU0FBUSxjQUF3QjtJQUR0RDs7UUFFYSxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFR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Q2pCO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIEluamVjdG9yLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IGNyZWF0ZUxvb3AgfSBmcm9tICcuLi9sb29wJztcbmltcG9ydCB0eXBlIHtcbiAgICBOZ3RBbnlSZWNvcmQsXG4gICAgTmd0QmVmb3JlUmVuZGVyUmVjb3JkLFxuICAgIE5ndENhbnZhc0lucHV0cyxcbiAgICBOZ3REcHIsXG4gICAgTmd0RXF1Q29uZmlnLFxuICAgIE5ndEV2ZW50TWFuYWdlcixcbiAgICBOZ3RTaXplLFxuICAgIE5ndFN0YXRlLFxuICAgIE5ndFZpZXdwb3J0LFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBhcHBseVByb3BzIH0gZnJvbSAnLi4vdXRpbHMvYXBwbHktcHJvcHMnO1xuaW1wb3J0IHsgcHJlcGFyZSB9IGZyb20gJy4uL3V0aWxzL2luc3RhbmNlJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi4vdXRpbHMvaXMnO1xuaW1wb3J0IHsgbWFrZURlZmF1bHRDYW1lcmEsIG1ha2VEZWZhdWx0UmVuZGVyZXIsIG1ha2VEcHIgfSBmcm9tICcuLi91dGlscy9tYWtlJztcbmltcG9ydCB7IGNoZWNrTmVlZHNVcGRhdGUsIHVwZGF0ZUNhbWVyYSB9IGZyb20gJy4uL3V0aWxzL3VwZGF0ZSc7XG5pbXBvcnQgeyBOZ3RTaWduYWxTdG9yZSB9IGZyb20gJy4vc2lnbmFsLnN0b3JlJztcblxuZXhwb3J0IGNvbnN0IHJvb3RTdGF0ZU1hcCA9IG5ldyBNYXA8RWxlbWVudCwgTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+PigpO1xuY29uc3QgeyBpbnZhbGlkYXRlLCBhZHZhbmNlIH0gPSBjcmVhdGVMb29wKHJvb3RTdGF0ZU1hcCk7XG5jb25zdCBzaGFsbG93TG9vc2UgPSB7IG9iamVjdHM6ICdzaGFsbG93Jywgc3RyaWN0OiBmYWxzZSB9IGFzIE5ndEVxdUNvbmZpZztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5ndFN0b3JlIGV4dGVuZHMgTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+IHtcbiAgICByZWFkb25seSAjcGFyZW50U3RvcmUgPSBpbmplY3QoTmd0U3RvcmUsIHsgb3B0aW9uYWw6IHRydWUsIHNraXBTZWxmOiB0cnVlIH0pO1xuICAgIHJlYWRvbmx5ICN3aW5kb3cgPSBpbmplY3QoRE9DVU1FTlQpLmRlZmF1bHRWaWV3O1xuICAgIHJlYWRvbmx5ICNpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgICBpc0luaXQgPSBmYWxzZTtcblxuICAgIGluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc0luaXQpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRUYXJnZXQgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuICAgICAgICAgICAgY29uc3QgdGVtcFRhcmdldCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IGdldEN1cnJlbnRWaWV3cG9ydCA9IChcbiAgICAgICAgICAgICAgICBjYW1lcmEgPSB0aGlzLmdldCgnY2FtZXJhJyksXG4gICAgICAgICAgICAgICAgdGFyZ2V0OiBUSFJFRS5WZWN0b3IzIHwgUGFyYW1ldGVyczxUSFJFRS5WZWN0b3IzWydzZXQnXT4gPSBkZWZhdWx0VGFyZ2V0LFxuICAgICAgICAgICAgICAgIHNpemUgPSB0aGlzLmdldCgnc2l6ZScpXG4gICAgICAgICAgICApOiBPbWl0PE5ndFZpZXdwb3J0LCAnZHByJyB8ICdpbml0aWFsRHByJz4gPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgdG9wLCBsZWZ0IH0gPSBzaXplO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFzcGVjdCA9IHdpZHRoIC8gaGVpZ2h0O1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBUSFJFRS5WZWN0b3IzKSB0ZW1wVGFyZ2V0LmNvcHkodGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBlbHNlIHRlbXBUYXJnZXQuc2V0KC4uLnRhcmdldCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IGNhbWVyYS5nZXRXb3JsZFBvc2l0aW9uKHBvc2l0aW9uKS5kaXN0YW5jZVRvKHRlbXBUYXJnZXQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzLm9ydGhvZ3JhcGhpY0NhbWVyYShjYW1lcmEpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGggLyBjYW1lcmEuem9vbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0IC8gY2FtZXJhLnpvb20sXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3AsXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgZmFjdG9yOiAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzdGFuY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBhc3BlY3QsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgZm92ID0gKGNhbWVyYS5mb3YgKiBNYXRoLlBJKSAvIDE4MDsgLy8gY29udmVydCB2ZXJ0aWNhbCBmb3YgdG8gcmFkaWFuc1xuICAgICAgICAgICAgICAgIGNvbnN0IGggPSAyICogTWF0aC50YW4oZm92IC8gMikgKiBkaXN0YW5jZTsgLy8gdmlzaWJsZSBoZWlnaHRcbiAgICAgICAgICAgICAgICBjb25zdCB3ID0gaCAqIGFzcGVjdDtcbiAgICAgICAgICAgICAgICByZXR1cm4geyB3aWR0aDogdywgaGVpZ2h0OiBoLCB0b3AsIGxlZnQsIGZhY3Rvcjogd2lkdGggLyB3LCBkaXN0YW5jZSwgYXNwZWN0IH07XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgcGVyZm9ybWFuY2VUaW1lb3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgICAgICAgICAgIGNvbnN0IHNldFBlcmZvcm1hbmNlQ3VycmVudCA9IChjdXJyZW50OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldCgoc3RhdGUpID0+ICh7IHBlcmZvcm1hbmNlOiB7IC4uLnN0YXRlLnBlcmZvcm1hbmNlLCBjdXJyZW50IH0gfSkpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdGhpcy5zZXQoe1xuICAgICAgICAgICAgICAgIGdldDogdGhpcy5nZXQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICBzZXQ6IHRoaXMuc2V0LmJpbmQodGhpcyksXG4gICAgICAgICAgICAgICAgcmVhZHk6IGZhbHNlLFxuXG4gICAgICAgICAgICAgICAgZXZlbnRzOiB7IHByaW9yaXR5OiAxLCBlbmFibGVkOiB0cnVlLCBjb25uZWN0ZWQ6IGZhbHNlIH0sXG5cbiAgICAgICAgICAgICAgICBpbnZhbGlkYXRlOiAoZnJhbWVzID0gMSkgPT4gaW52YWxpZGF0ZSh0aGlzLCBmcmFtZXMpLFxuICAgICAgICAgICAgICAgIGFkdmFuY2U6ICh0aW1lc3RhbXA6IG51bWJlciwgcnVuR2xvYmFsRWZmZWN0cz86IGJvb2xlYW4pID0+IGFkdmFuY2UodGltZXN0YW1wLCBydW5HbG9iYWxFZmZlY3RzLCB0aGlzKSxcblxuICAgICAgICAgICAgICAgIGxlZ2FjeTogZmFsc2UsXG4gICAgICAgICAgICAgICAgbGluZWFyOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBmbGF0OiBmYWxzZSxcblxuICAgICAgICAgICAgICAgIGNvbnRyb2xzOiBudWxsLFxuICAgICAgICAgICAgICAgIGNsb2NrOiBuZXcgVEhSRUUuQ2xvY2soKSxcbiAgICAgICAgICAgICAgICBwb2ludGVyOiBuZXcgVEhSRUUuVmVjdG9yMigpLFxuXG4gICAgICAgICAgICAgICAgZnJhbWVsb29wOiAnYWx3YXlzJyxcbiAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZToge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50OiAxLFxuICAgICAgICAgICAgICAgICAgICBtaW46IDAuNSxcbiAgICAgICAgICAgICAgICAgICAgbWF4OiAxLFxuICAgICAgICAgICAgICAgICAgICBkZWJvdW5jZTogMjAwLFxuICAgICAgICAgICAgICAgICAgICByZWdyZXNzOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGVhciB0aW1lb3V0XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGVyZm9ybWFuY2VUaW1lb3V0KSBjbGVhclRpbWVvdXQocGVyZm9ybWFuY2VUaW1lb3V0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldCBsb3dlciBib3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLnBlcmZvcm1hbmNlLmN1cnJlbnQgIT09IHN0YXRlLnBlcmZvcm1hbmNlLm1pbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQZXJmb3JtYW5jZUN1cnJlbnQoc3RhdGUucGVyZm9ybWFuY2UubWluKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGdvIGJhY2sgdG8gdXBwZXIgYm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlVGltZW91dCA9IHNldFRpbWVvdXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gc2V0UGVyZm9ybWFuY2VDdXJyZW50KHRoaXMuZ2V0KCdwZXJmb3JtYW5jZScsICdtYXgnKSB8fCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5wZXJmb3JtYW5jZS5kZWJvdW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNpemU6IHsgd2lkdGg6IDAsIGhlaWdodDogMCwgdG9wOiAwLCBsZWZ0OiAwIH0sXG4gICAgICAgICAgICAgICAgdmlld3BvcnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbERwcjogMCxcbiAgICAgICAgICAgICAgICAgICAgZHByOiAwLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICAgICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIGFzcGVjdDogMCxcbiAgICAgICAgICAgICAgICAgICAgZGlzdGFuY2U6IDAsXG4gICAgICAgICAgICAgICAgICAgIGZhY3RvcjogMCxcbiAgICAgICAgICAgICAgICAgICAgZ2V0Q3VycmVudFZpZXdwb3J0LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcHJldmlvdXNTdG9yZTogdGhpcy4jcGFyZW50U3RvcmUgYXMgTmd0U3RvcmUsXG4gICAgICAgICAgICAgICAgaW50ZXJuYWw6IHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICAgICAgICAgIGZyYW1lczogMCxcbiAgICAgICAgICAgICAgICAgICAgbGFzdEV2ZW50OiBuZXcgRWxlbWVudFJlZihudWxsKSxcbiAgICAgICAgICAgICAgICAgICAgaW50ZXJhY3Rpb246IFtdLFxuICAgICAgICAgICAgICAgICAgICBob3ZlcmVkOiBuZXcgTWFwKCksXG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXJzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbENsaWNrOiBbMCwgMF0sXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxIaXRzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgY2FwdHVyZWRNYXA6IG5ldyBNYXAoKSxcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlOiAoY2FsbGJhY2s6IE5ndEJlZm9yZVJlbmRlclJlY29yZFsnY2FsbGJhY2snXSwgcHJpb3JpdHkgPSAwLCBzdG9yZSA9IHRoaXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludGVybmFsID0gdGhpcy5nZXQoJ2ludGVybmFsJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIHN1YnNjcmlwdGlvbiB3YXMgZ2l2ZW4gYSBwcmlvcml0eSwgaXQgdGFrZXMgcmVuZGVyaW5nIGludG8gaXRzIG93biBoYW5kc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9yIHRoYXQgcmVhc29uIHdlIHN3aXRjaCBvZmYgYXV0b21hdGljIHJlbmRlcmluZyBhbmQgaW5jcmVhc2UgdGhlIG1hbnVhbCBmbGFnXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcyBsb25nIGFzIHRoaXMgZmxhZyBpcyBwb3NpdGl2ZSB0aGVyZSBjYW4gYmUgbm8gaW50ZXJuYWwgcmVuZGVyaW5nIGF0IGFsbFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmVjYXVzZSB0aGVyZSBjb3VsZCBiZSBtdWx0aXBsZSByZW5kZXIgc3Vic2NyaXB0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWwucHJpb3JpdHkgPSBpbnRlcm5hbC5wcmlvcml0eSArIChwcmlvcml0eSA+IDAgPyAxIDogMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbC5zdWJzY3JpYmVycy5wdXNoKHsgcHJpb3JpdHksIHN0b3JlLCBjYWxsYmFjayB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlZ2lzdGVyIHN1YnNjcmliZXIgYW5kIHNvcnQgbGF5ZXJzIGZyb20gbG93ZXN0IHRvIGhpZ2hlc3QsIG1lYW5pbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBoaWdoZXN0IHByaW9yaXR5IHJlbmRlcnMgbGFzdCAob24gdG9wIG9mIHRoZSBvdGhlciBmcmFtZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbC5zdWJzY3JpYmVycy5zb3J0KChhLCBiKSA9PiAoYS5wcmlvcml0eSB8fCAwKSAtIChiLnByaW9yaXR5IHx8IDApKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnRlcm5hbCA9IHRoaXMuZ2V0KCdpbnRlcm5hbCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnRlcm5hbD8uc3Vic2NyaWJlcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGVjcmVhc2UgbWFudWFsIGZsYWcgaWYgdGhpcyBzdWJzY3JpcHRpb24gaGFkIGEgcHJpb3JpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWwucHJpb3JpdHkgPSBpbnRlcm5hbC5wcmlvcml0eSAtIChwcmlvcml0eSA+IDAgPyAxIDogMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBzdWJzY3JpYmVyIGZyb20gbGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbC5zdWJzY3JpYmVycyA9IGludGVybmFsLnN1YnNjcmliZXJzLmZpbHRlcigocykgPT4gcy5jYWxsYmFjayAhPT0gY2FsbGJhY2spO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXRFdmVudHM6IChldmVudHM6IFBhcnRpYWw8Tmd0RXZlbnRNYW5hZ2VyPGFueT4+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0KChzdGF0ZSkgPT4gKHsgZXZlbnRzOiB7IC4uLnN0YXRlLmV2ZW50cywgLi4uZXZlbnRzIH0gfSkpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0U2l6ZTogKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCB0b3A/OiBudW1iZXIsIGxlZnQ/OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FtZXJhID0gdGhpcy5nZXQoJ2NhbWVyYScpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplID0geyB3aWR0aCwgaGVpZ2h0LCB0b3A6IHRvcCB8fCAwLCBsZWZ0OiBsZWZ0IHx8IDAgfTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldCgoc3RhdGUpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld3BvcnQ6IHsgLi4uc3RhdGUudmlld3BvcnQsIC4uLmdldEN1cnJlbnRWaWV3cG9ydChjYW1lcmEsIGRlZmF1bHRUYXJnZXQsIHNpemUpIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldERwcjogKGRwcjogTmd0RHByKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gbWFrZURwcihkcHIsIHRoaXMuI3dpbmRvdyBhcyBXaW5kb3cgJiB0eXBlb2YgZ2xvYmFsVGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0KChzdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdwb3J0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uc3RhdGUudmlld3BvcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHByOiByZXNvbHZlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsRHByOiBzdGF0ZS52aWV3cG9ydC5pbml0aWFsRHByIHx8IHJlc29sdmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0RnJhbWVsb29wOiAoZnJhbWVsb29wOiAnYWx3YXlzJyB8ICdkZW1hbmQnIHwgJ25ldmVyJyA9ICdhbHdheXMnKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsb2NrID0gdGhpcy5nZXQoJ2Nsb2NrJyk7XG4gICAgICAgICAgICAgICAgICAgIGNsb2NrLnN0b3AoKTtcbiAgICAgICAgICAgICAgICAgICAgY2xvY2suZWxhcHNlZFRpbWUgPSAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmcmFtZWxvb3AgIT09ICduZXZlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb2NrLnN0YXJ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9jay5lbGFwc2VkVGltZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldCh7IGZyYW1lbG9vcCB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuaXNJbml0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuI3Jlc2l6ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uZmlndXJlKGlucHV0czogTmd0Q2FudmFzSW5wdXRzLCBjYW52YXNFbGVtZW50OiBIVE1MQ2FudmFzRWxlbWVudCkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBnbDogZ2xPcHRpb25zLFxuICAgICAgICAgICAgc2l6ZTogc2l6ZU9wdGlvbnMsXG4gICAgICAgICAgICBjYW1lcmE6IGNhbWVyYU9wdGlvbnMsXG4gICAgICAgICAgICByYXljYXN0ZXI6IHJheWNhc3Rlck9wdGlvbnMsXG4gICAgICAgICAgICBzY2VuZTogc2NlbmVPcHRpb25zLFxuICAgICAgICAgICAgZXZlbnRzLFxuICAgICAgICAgICAgb3J0aG9ncmFwaGljLFxuICAgICAgICAgICAgbG9va0F0LFxuICAgICAgICAgICAgc2hhZG93cyxcbiAgICAgICAgICAgIGxpbmVhcixcbiAgICAgICAgICAgIGxlZ2FjeSxcbiAgICAgICAgICAgIGZsYXQsXG4gICAgICAgICAgICBkcHIsXG4gICAgICAgICAgICBmcmFtZWxvb3AsXG4gICAgICAgICAgICBwZXJmb3JtYW5jZSxcbiAgICAgICAgfSA9IGlucHV0cztcblxuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2V0KCk7XG4gICAgICAgIGNvbnN0IHN0YXRlVG9VcGRhdGU6IFBhcnRpYWw8Tmd0U3RhdGU+ID0ge307XG5cbiAgICAgICAgLy8gc2V0dXAgcmVuZGVyZXJcbiAgICAgICAgbGV0IGdsID0gc3RhdGUuZ2w7XG4gICAgICAgIGlmICghc3RhdGUuZ2wpIHN0YXRlVG9VcGRhdGUuZ2wgPSBnbCA9IG1ha2VEZWZhdWx0UmVuZGVyZXIoZ2xPcHRpb25zLCBjYW52YXNFbGVtZW50KTtcblxuICAgICAgICAvLyBzZXR1cCByYXljYXN0ZXJcbiAgICAgICAgbGV0IHJheWNhc3RlciA9IHN0YXRlLnJheWNhc3RlcjtcbiAgICAgICAgaWYgKCFyYXljYXN0ZXIpIHN0YXRlVG9VcGRhdGUucmF5Y2FzdGVyID0gcmF5Y2FzdGVyID0gbmV3IFRIUkVFLlJheWNhc3RlcigpO1xuXG4gICAgICAgIC8vIHNldCByYXljYXN0ZXIgb3B0aW9uc1xuICAgICAgICBjb25zdCB7IHBhcmFtcywgLi4ub3B0aW9ucyB9ID0gcmF5Y2FzdGVyT3B0aW9ucyB8fCB7fTtcbiAgICAgICAgaWYgKCFpcy5lcXUob3B0aW9ucywgcmF5Y2FzdGVyLCBzaGFsbG93TG9vc2UpKSBhcHBseVByb3BzKHJheWNhc3RlciwgeyAuLi5vcHRpb25zIH0pO1xuICAgICAgICBpZiAoIWlzLmVxdShwYXJhbXMsIHJheWNhc3Rlci5wYXJhbXMsIHNoYWxsb3dMb29zZSkpIHtcbiAgICAgICAgICAgIGFwcGx5UHJvcHMocmF5Y2FzdGVyLCB7IHBhcmFtczogeyAuLi5yYXljYXN0ZXIucGFyYW1zLCAuLi4ocGFyYW1zIHx8IHt9KSB9IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY3JlYXRlIGRlZmF1bHQgY2FtZXJhXG4gICAgICAgIGlmICghc3RhdGUuY2FtZXJhKSB7XG4gICAgICAgICAgICBjb25zdCBpc0NhbWVyYSA9IGlzLmNhbWVyYShjYW1lcmFPcHRpb25zKTtcbiAgICAgICAgICAgIGxldCBjYW1lcmEgPSBpc0NhbWVyYSA/IGNhbWVyYU9wdGlvbnMgOiBtYWtlRGVmYXVsdENhbWVyYShvcnRob2dyYXBoaWMgfHwgZmFsc2UsIHN0YXRlLnNpemUpO1xuXG4gICAgICAgICAgICBpZiAoIWlzQ2FtZXJhKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNhbWVyYU9wdGlvbnMpIGFwcGx5UHJvcHMoY2FtZXJhLCBjYW1lcmFPcHRpb25zKTtcblxuICAgICAgICAgICAgICAgIC8vIHNldCBwb3NpdGlvbi56XG4gICAgICAgICAgICAgICAgaWYgKCFjYW1lcmFPcHRpb25zPy5wb3NpdGlvbikgY2FtZXJhLnBvc2l0aW9uLnogPSA1O1xuXG4gICAgICAgICAgICAgICAgLy8gYWx3YXlzIGxvb2sgYXQgY2VudGVyIG9yIHBhc3NlZC1pbiBsb29rQXQgYnkgZGVmYXVsdFxuICAgICAgICAgICAgICAgIGlmICghY2FtZXJhT3B0aW9ucz8ucm90YXRpb24gJiYgIWNhbWVyYU9wdGlvbnM/LnF1YXRlcm5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobG9va0F0KSkgY2FtZXJhLmxvb2tBdChsb29rQXRbMF0sIGxvb2tBdFsxXSwgbG9va0F0WzJdKTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobG9va0F0IGluc3RhbmNlb2YgVEhSRUUuVmVjdG9yMykgY2FtZXJhLmxvb2tBdChsb29rQXQpO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGNhbWVyYS5sb29rQXQoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gdXBkYXRlIHByb2plY3Rpb24gbWF0cml4IGFmdGVyIGFwcGx5cHJvcHNcbiAgICAgICAgICAgICAgICBjYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeD8uKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaXMuaW5zdGFuY2UoY2FtZXJhKSkgY2FtZXJhID0gcHJlcGFyZShjYW1lcmEsIHsgc3RvcmU6IHRoaXMgfSk7XG5cbiAgICAgICAgICAgIHN0YXRlVG9VcGRhdGUuY2FtZXJhID0gY2FtZXJhO1xuICAgICAgICB9XG4gICAgICAgIC8vIFNldCB1cCBzY2VuZSAob25lIHRpbWUgb25seSEpXG4gICAgICAgIGlmICghc3RhdGUuc2NlbmUpIHtcbiAgICAgICAgICAgIGxldCBzY2VuZTogVEhSRUUuU2NlbmU7XG5cbiAgICAgICAgICAgIGlmIChzY2VuZU9wdGlvbnMgaW5zdGFuY2VvZiBUSFJFRS5TY2VuZSkge1xuICAgICAgICAgICAgICAgIHNjZW5lID0gcHJlcGFyZShzY2VuZU9wdGlvbnMsIHsgc3RvcmU6IHRoaXMgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNjZW5lID0gcHJlcGFyZShuZXcgVEhSRUUuU2NlbmUoKSwgeyBzdG9yZTogdGhpcyB9KTtcbiAgICAgICAgICAgICAgICBpZiAoc2NlbmVPcHRpb25zKSBhcHBseVByb3BzKHNjZW5lLCBzY2VuZU9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdGF0ZVRvVXBkYXRlLnNjZW5lID0gc2NlbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdXAgWFIgKG9uZSB0aW1lIG9ubHkhKVxuICAgICAgICBpZiAoIXN0YXRlLnhyKSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgZnJhbWUgYmVoYXZpb3IgaW4gV2ViWFJcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZVhSRnJhbWU6IFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2sgPSAodGltZXN0YW1wOiBudW1iZXIsIGZyYW1lPzogWFJGcmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5nZXQoKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGUuZnJhbWVsb29wID09PSAnbmV2ZXInKSByZXR1cm47XG4gICAgICAgICAgICAgICAgYWR2YW5jZSh0aW1lc3RhbXAsIHRydWUsIHRoaXMsIGZyYW1lKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIFRvZ2dsZSByZW5kZXIgc3dpdGNoaW5nIG9uIHNlc3Npb25cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZVNlc3Npb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldCgpO1xuICAgICAgICAgICAgICAgIHN0YXRlLmdsLnhyLmVuYWJsZWQgPSBzdGF0ZS5nbC54ci5pc1ByZXNlbnRpbmc7XG5cbiAgICAgICAgICAgICAgICBzdGF0ZS5nbC54ci5zZXRBbmltYXRpb25Mb29wKHN0YXRlLmdsLnhyLmlzUHJlc2VudGluZyA/IGhhbmRsZVhSRnJhbWUgOiBudWxsKTtcbiAgICAgICAgICAgICAgICBpZiAoIXN0YXRlLmdsLnhyLmlzUHJlc2VudGluZykgc3RhdGUuaW52YWxpZGF0ZSgpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgLy8gV2ViWFIgc2Vzc2lvbiBtYW5hZ2VyXG4gICAgICAgICAgICBjb25zdCB4ciA9IHtcbiAgICAgICAgICAgICAgICBjb25uZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGdsLnhyLmFkZEV2ZW50TGlzdGVuZXIoJ3Nlc3Npb25zdGFydCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpO1xuICAgICAgICAgICAgICAgICAgICBnbC54ci5hZGRFdmVudExpc3RlbmVyKCdzZXNzaW9uZW5kJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkaXNjb25uZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGdsLnhyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Nlc3Npb25zdGFydCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpO1xuICAgICAgICAgICAgICAgICAgICBnbC54ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzZXNzaW9uZW5kJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIFN1YnNjcmliZSB0byBXZWJYUiBzZXNzaW9uIGV2ZW50c1xuICAgICAgICAgICAgaWYgKGdsLnhyKSB4ci5jb25uZWN0KCk7XG4gICAgICAgICAgICBzdGF0ZVRvVXBkYXRlLnhyID0geHI7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgc2hhZG93bWFwXG4gICAgICAgIGlmIChnbC5zaGFkb3dNYXApIHtcbiAgICAgICAgICAgIGNvbnN0IG9sZEVuYWJsZWQgPSBnbC5zaGFkb3dNYXAuZW5hYmxlZDtcbiAgICAgICAgICAgIGNvbnN0IG9sZFR5cGUgPSBnbC5zaGFkb3dNYXAudHlwZTtcbiAgICAgICAgICAgIGdsLnNoYWRvd01hcC5lbmFibGVkID0gISFzaGFkb3dzO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHNoYWRvd3MgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgIGdsLnNoYWRvd01hcC50eXBlID0gVEhSRUUuUENGU29mdFNoYWRvd01hcDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHNoYWRvd3MgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2ljOiBUSFJFRS5CYXNpY1NoYWRvd01hcCxcbiAgICAgICAgICAgICAgICAgICAgcGVyY2VudGFnZTogVEhSRUUuUENGU2hhZG93TWFwLFxuICAgICAgICAgICAgICAgICAgICBzb2Z0OiBUSFJFRS5QQ0ZTb2Z0U2hhZG93TWFwLFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW5jZTogVEhSRUUuVlNNU2hhZG93TWFwLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZ2wuc2hhZG93TWFwLnR5cGUgPSB0eXBlc1tzaGFkb3dzXSA/PyBUSFJFRS5QQ0ZTb2Z0U2hhZG93TWFwO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpcy5vYmooc2hhZG93cykpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGdsLnNoYWRvd01hcCwgc2hhZG93cyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvbGRFbmFibGVkICE9PSBnbC5zaGFkb3dNYXAuZW5hYmxlZCB8fCBvbGRUeXBlICE9PSBnbC5zaGFkb3dNYXAudHlwZSkgY2hlY2tOZWVkc1VwZGF0ZShnbC5zaGFkb3dNYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2FmZWx5IHNldCBjb2xvciBtYW5hZ2VtZW50IGlmIGF2YWlsYWJsZS5cbiAgICAgICAgLy8gQXZvaWQgYWNjZXNzaW5nIFRIUkVFLkNvbG9yTWFuYWdlbWVudCB0byBwbGF5IG5pY2Ugd2l0aCBvbGRlciB2ZXJzaW9uc1xuICAgICAgICBpZiAoVEhSRUUuQ29sb3JNYW5hZ2VtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBDb2xvck1hbmFnZW1lbnQgPSBUSFJFRS5Db2xvck1hbmFnZW1lbnQgYXMgTmd0QW55UmVjb3JkO1xuICAgICAgICAgICAgaWYgKCdlbmFibGVkJyBpbiBDb2xvck1hbmFnZW1lbnQpIENvbG9yTWFuYWdlbWVudFsnZW5hYmxlZCddID0gIWxlZ2FjeSA/PyBmYWxzZTtcbiAgICAgICAgICAgIGVsc2UgaWYgKCdsZWdhY3lNb2RlJyBpbiBDb2xvck1hbmFnZW1lbnQpIENvbG9yTWFuYWdlbWVudFsnbGVnYWN5TW9kZSddID0gbGVnYWN5ID8/IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXQgY29sb3Igc3BhY2UgYW5kIHRvbmVtYXBwaW5nIHByZWZlcmVuY2VzXG4gICAgICAgIGNvbnN0IExpbmVhckVuY29kaW5nID0gMzAwMDtcbiAgICAgICAgY29uc3Qgc1JHQkVuY29kaW5nID0gMzAwMTtcbiAgICAgICAgYXBwbHlQcm9wcyhnbCwge1xuICAgICAgICAgICAgb3V0cHV0RW5jb2Rpbmc6IGxpbmVhciA/IExpbmVhckVuY29kaW5nIDogc1JHQkVuY29kaW5nLFxuICAgICAgICAgICAgdG9uZU1hcHBpbmc6IGZsYXQgPyBUSFJFRS5Ob1RvbmVNYXBwaW5nIDogVEhSRUUuQUNFU0ZpbG1pY1RvbmVNYXBwaW5nLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBVcGRhdGUgY29sb3IgbWFuYWdlbWVudCBzdGF0ZVxuICAgICAgICBpZiAoc3RhdGUubGVnYWN5ICE9PSBsZWdhY3kpIHN0YXRlVG9VcGRhdGUubGVnYWN5ID0gbGVnYWN5O1xuICAgICAgICBpZiAoc3RhdGUubGluZWFyICE9PSBsaW5lYXIpIHN0YXRlVG9VcGRhdGUubGluZWFyID0gbGluZWFyO1xuICAgICAgICBpZiAoc3RhdGUuZmxhdCAhPT0gZmxhdCkgc3RhdGVUb1VwZGF0ZS5mbGF0ID0gZmxhdDtcblxuICAgICAgICAvLyBTZXQgZ2wgcHJvcHNcbiAgICAgICAgZ2wuc2V0Q2xlYXJBbHBoYSgwKTtcbiAgICAgICAgZ2wuc2V0UGl4ZWxSYXRpbyhtYWtlRHByKHN0YXRlLnZpZXdwb3J0LmRwcikpO1xuICAgICAgICBnbC5zZXRTaXplKHN0YXRlLnNpemUud2lkdGgsIHN0YXRlLnNpemUuaGVpZ2h0KTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBpcy5vYmooZ2xPcHRpb25zKSAmJlxuICAgICAgICAgICAgISh0eXBlb2YgZ2xPcHRpb25zID09PSAnZnVuY3Rpb24nKSAmJlxuICAgICAgICAgICAgIWlzLnJlbmRlcmVyKGdsT3B0aW9ucykgJiZcbiAgICAgICAgICAgICFpcy5lcXUoZ2xPcHRpb25zLCBnbCwgc2hhbGxvd0xvb3NlKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGFwcGx5UHJvcHMoZ2wsIGdsT3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTdG9yZSBldmVudHMgaW50ZXJuYWxseVxuICAgICAgICBpZiAoZXZlbnRzICYmICFzdGF0ZS5ldmVudHMuaGFuZGxlcnMpIHN0YXRlVG9VcGRhdGUuZXZlbnRzID0gZXZlbnRzKHRoaXMpO1xuXG4gICAgICAgIC8vIENoZWNrIHBlcmZvcm1hbmNlXG4gICAgICAgIGlmIChwZXJmb3JtYW5jZSAmJiAhaXMuZXF1KHBlcmZvcm1hbmNlLCBzdGF0ZS5wZXJmb3JtYW5jZSwgc2hhbGxvd0xvb3NlKSkge1xuICAgICAgICAgICAgc3RhdGVUb1VwZGF0ZS5wZXJmb3JtYW5jZSA9IHsgLi4uc3RhdGUucGVyZm9ybWFuY2UsIC4uLnBlcmZvcm1hbmNlIH07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldChzdGF0ZVRvVXBkYXRlKTtcblxuICAgICAgICAvLyBDaGVjayBwaXhlbHJhdGlvXG4gICAgICAgIGlmIChkcHIgJiYgc3RhdGUudmlld3BvcnQuZHByICE9PSBtYWtlRHByKGRwcikpIHN0YXRlLnNldERwcihkcHIpO1xuICAgICAgICAvLyBDaGVjayBzaXplLCBhbGxvdyBpdCB0byB0YWtlIG9uIGNvbnRhaW5lciBib3VuZHMgaW5pdGlhbGx5XG4gICAgICAgIGNvbnN0IHNpemUgPSBjb21wdXRlSW5pdGlhbFNpemUoY2FudmFzRWxlbWVudCwgc2l6ZU9wdGlvbnMpO1xuICAgICAgICBpZiAoIWlzLmVxdShzaXplLCBzdGF0ZS5zaXplLCBzaGFsbG93TG9vc2UpKSBzdGF0ZS5zZXRTaXplKHNpemUud2lkdGgsIHNpemUuaGVpZ2h0LCBzaXplLnRvcCwgc2l6ZS5sZWZ0KTtcblxuICAgICAgICAvLyBDaGVjayBmcmFtZWxvb3BcbiAgICAgICAgaWYgKHN0YXRlLmZyYW1lbG9vcCAhPT0gZnJhbWVsb29wKSBzdGF0ZS5zZXRGcmFtZWxvb3AoZnJhbWVsb29wKTtcblxuICAgICAgICBpZiAoIXRoaXMuZ2V0KCdyZWFkeScpKSB0aGlzLnNldCh7IHJlYWR5OiB0cnVlIH0pO1xuXG4gICAgICAgIHRoaXMuI2ludmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICBkZXN0cm95KGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5zZXQoKHN0YXRlKSA9PiAoeyBpbnRlcm5hbDogeyAuLi5zdGF0ZS5pbnRlcm5hbCwgYWN0aXZlOiBmYWxzZSB9IH0pKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgZ2wsIHhyLCBldmVudHMgfSA9IHRoaXMuZ2V0KCk7XG4gICAgICAgICAgICBpZiAoZ2wpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnRzLmRpc2Nvbm5lY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRzLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBnbC5yZW5kZXJMaXN0cy5kaXNwb3NlKCk7XG4gICAgICAgICAgICAgICAgZ2wuZm9yY2VDb250ZXh0TG9zcygpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGdsLnhyICYmIGdsLnhyLmVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZ2wueHIuc2V0QW5pbWF0aW9uTG9vcChudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgeHIuZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGRpc3Bvc2UodGhpcy5nZXQoKSk7XG5cbiAgICAgICAgICAgICAgICByb290U3RhdGVNYXAuZGVsZXRlKGNhbnZhcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDUwMCk7XG4gICAgfVxuXG4gICAgI3Jlc2l6ZSgpIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldCgpO1xuICAgICAgICBsZXQgb2xkU2l6ZSA9IHN0YXRlLnNpemU7XG4gICAgICAgIGxldCBvbGREcHIgPSBzdGF0ZS52aWV3cG9ydC5kcHI7XG4gICAgICAgIGxldCBvbGRDYW1lcmEgPSBzdGF0ZS5jYW1lcmE7XG5cbiAgICAgICAgY29uc3QgdHJpZ2dlcnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGNhbWVyYTogdGhpcy5zZWxlY3QoJ2NhbWVyYScpKCksXG4gICAgICAgICAgICAgICAgc2l6ZTogdGhpcy5zZWxlY3QoJ3NpemUnKSgpLFxuICAgICAgICAgICAgICAgIHZpZXdwb3J0OiB0aGlzLnNlbGVjdCgndmlld3BvcnQnKSgpLFxuICAgICAgICAgICAgICAgIGdsOiB0aGlzLmdldCgnZ2wnKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGNhbWVyYSwgc2l6ZSwgdmlld3BvcnQsIGdsIH0gPSB0cmlnZ2VycygpO1xuICAgICAgICAgICAgICAgIC8vIHJlc2l6ZSBjYW1lcmEgYW5kIHJlbmRlcmVyIG9uIGNoYW5nZXMgdG8gc2l6ZSBhbmQgZHByXG4gICAgICAgICAgICAgICAgaWYgKHNpemUgIT09IG9sZFNpemUgfHwgdmlld3BvcnQuZHByICE9PSBvbGREcHIpIHtcbiAgICAgICAgICAgICAgICAgICAgb2xkU2l6ZSA9IHNpemU7XG4gICAgICAgICAgICAgICAgICAgIG9sZERwciA9IHZpZXdwb3J0LmRwcjtcbiAgICAgICAgICAgICAgICAgICAgLy8gdXBkYXRlIGNhbWVyYVxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVDYW1lcmEoY2FtZXJhLCBzaXplKTtcbiAgICAgICAgICAgICAgICAgICAgZ2wuc2V0UGl4ZWxSYXRpbyh2aWV3cG9ydC5kcHIpO1xuICAgICAgICAgICAgICAgICAgICBnbC5zZXRTaXplKHNpemUud2lkdGgsIHNpemUuaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyB1cGRhdGUgdmlld3BvcnQgd2hlbiBjYW1lcmEgY2hhbmdlc1xuICAgICAgICAgICAgICAgIGlmIChjYW1lcmEgIT09IG9sZENhbWVyYSkge1xuICAgICAgICAgICAgICAgICAgICBvbGRDYW1lcmEgPSBjYW1lcmE7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUNhbWVyYShjYW1lcmEsIHNpemUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldCgoc3RhdGUpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3cG9ydDogeyAuLi5zdGF0ZS52aWV3cG9ydCwgLi4uc3RhdGUudmlld3BvcnQuZ2V0Q3VycmVudFZpZXdwb3J0KGNhbWVyYSkgfSxcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGluamVjdG9yOiB0aGlzLiNpbmplY3RvciwgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgICNpbnZhbGlkYXRlKCkge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc2VsZWN0KCk7XG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBzdGF0ZSgpLmludmFsaWRhdGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGluamVjdG9yOiB0aGlzLiNpbmplY3RvciB9XG4gICAgICAgICk7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBjb21wdXRlSW5pdGlhbFNpemUoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCB8IFRIUkVFLk9mZnNjcmVlbkNhbnZhcywgZGVmYXVsdFNpemU/OiBOZ3RTaXplKTogTmd0U2l6ZSB7XG4gICAgaWYgKGRlZmF1bHRTaXplKSByZXR1cm4gZGVmYXVsdFNpemU7XG5cbiAgICBpZiAoY2FudmFzIGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQgJiYgY2FudmFzLnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGNhbnZhcy5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIH1cblxuICAgIHJldHVybiB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAsIHRvcDogMCwgbGVmdDogMCB9O1xufVxuXG4vLyBEaXNwb3NlcyBhbiBvYmplY3QgYW5kIGFsbCBpdHMgcHJvcGVydGllc1xuZnVuY3Rpb24gZGlzcG9zZTxUT2JqIGV4dGVuZHMgeyBkaXNwb3NlPzogKCkgPT4gdm9pZDsgdHlwZT86IHN0cmluZzsgW2tleTogc3RyaW5nXTogYW55IH0+KG9iajogVE9iaikge1xuICAgIGlmIChvYmouZGlzcG9zZSAmJiAhaXMuc2NlbmUob2JqKSkgb2JqLmRpc3Bvc2UoKTtcbiAgICBmb3IgKGNvbnN0IHAgaW4gb2JqKSB7XG4gICAgICAgIChwIGFzIGFueSkuZGlzcG9zZT8uKCk7XG4gICAgICAgIGRlbGV0ZSBvYmpbcF07XG4gICAgfVxufVxuIl19
|
|
423
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi9zdG9yZXMvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBWXJDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRWhELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBcUMsQ0FBQztBQUN6RSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN6RCxNQUFNLFlBQVksR0FBRyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBa0IsQ0FBQztBQUUzRSxNQUNhLFFBQVMsU0FBUSxjQUF3QjtJQUR0RDs7UUFFYSxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLFlBQU8sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEMsV0FBTSxHQUFHLEtBQUssQ0FBQztLQW1ibEI7SUF2YlksWUFBWSxDQUF3RDtJQUNwRSxPQUFPLENBQWdDO0lBQ3ZDLFNBQVMsQ0FBb0I7SUFJdEMsSUFBSTtRQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2QsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckMsTUFBTSxhQUFhLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFdkMsTUFBTSxrQkFBa0IsR0FBRyxDQUN2QixNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFDM0IsU0FBMkQsYUFBYSxFQUN4RSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFDZ0IsRUFBRTtnQkFDekMsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztnQkFDMUMsTUFBTSxNQUFNLEdBQUcsS0FBSyxHQUFHLE1BQU0sQ0FBQztnQkFDOUIsSUFBSSxNQUFNLFlBQVksS0FBSyxDQUFDLE9BQU87b0JBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzs7b0JBQ3hELFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztnQkFFL0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFFMUUsSUFBSSxFQUFFLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUU7b0JBQy9CLE9BQU87d0JBQ0gsS0FBSyxFQUFFLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSTt3QkFDMUIsTUFBTSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSTt3QkFDNUIsR0FBRzt3QkFDSCxJQUFJO3dCQUNKLE1BQU0sRUFBRSxDQUFDO3dCQUNULFFBQVE7d0JBQ1IsTUFBTTtxQkFDVCxDQUFDO2lCQUNMO2dCQUVELE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsa0NBQWtDO2dCQUM1RSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsaUJBQWlCO2dCQUM3RCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDO2dCQUNyQixPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ25GLENBQUMsQ0FBQztZQUVGLElBQUksa0JBQWlELENBQUM7WUFDdEQsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO2dCQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzlFLENBQUMsQ0FBQztZQUVGLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQ0wsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDeEIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDeEIsS0FBSyxFQUFFLEtBQUs7Z0JBRVosTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUU7Z0JBRXhELFVBQVUsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2dCQUNwRCxPQUFPLEVBQUUsQ0FBQyxTQUFpQixFQUFFLGdCQUEwQixFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQztnQkFFdEcsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsSUFBSSxFQUFFLEtBQUs7Z0JBRVgsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsS0FBSyxFQUFFLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFDeEIsT0FBTyxFQUFFLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtnQkFFNUIsU0FBUyxFQUFFLFFBQVE7Z0JBQ25CLFdBQVcsRUFBRTtvQkFDVCxPQUFPLEVBQUUsQ0FBQztvQkFDVixHQUFHLEVBQUUsR0FBRztvQkFDUixHQUFHLEVBQUUsQ0FBQztvQkFDTixRQUFRLEVBQUUsR0FBRztvQkFDYixPQUFPLEVBQUUsR0FBRyxFQUFFO3dCQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQzt3QkFDekIsZ0JBQWdCO3dCQUNoQixJQUFJLGtCQUFrQjs0QkFBRSxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQzt3QkFDekQsa0JBQWtCO3dCQUNsQixJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRzs0QkFDbkQscUJBQXFCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDakQseUJBQXlCO3dCQUN6QixrQkFBa0IsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFOzRCQUNqQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDL0QsQ0FBQyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ25DLENBQUM7aUJBQ0o7Z0JBQ0QsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtnQkFDOUMsUUFBUSxFQUFFO29CQUNOLFVBQVUsRUFBRSxDQUFDO29CQUNiLEdBQUcsRUFBRSxDQUFDO29CQUNOLEtBQUssRUFBRSxDQUFDO29CQUNSLE1BQU0sRUFBRSxDQUFDO29CQUNULEdBQUcsRUFBRSxDQUFDO29CQUNOLElBQUksRUFBRSxDQUFDO29CQUNQLE1BQU0sRUFBRSxDQUFDO29CQUNULFFBQVEsRUFBRSxDQUFDO29CQUNYLE1BQU0sRUFBRSxDQUFDO29CQUNULGtCQUFrQjtpQkFDckI7Z0JBQ0QsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUF3QjtnQkFDNUMsUUFBUSxFQUFFO29CQUNOLE1BQU0sRUFBRSxLQUFLO29CQUNiLFFBQVEsRUFBRSxDQUFDO29CQUNYLE1BQU0sRUFBRSxDQUFDO29CQUNULFNBQVMsRUFBRSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUM7b0JBQy9CLFdBQVcsRUFBRSxFQUFFO29CQUNmLE9BQU8sRUFBRSxJQUFJLEdBQUcsRUFBRTtvQkFDbEIsV0FBVyxFQUFFLEVBQUU7b0JBQ2YsWUFBWSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDcEIsV0FBVyxFQUFFLEVBQUU7b0JBQ2YsV0FBVyxFQUFFLElBQUksR0FBRyxFQUFFO29CQUN0QixTQUFTLEVBQUUsQ0FBQyxRQUEyQyxFQUFFLFFBQVEsR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxFQUFFO3dCQUNuRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUN0QyxtRkFBbUY7d0JBQ25GLGlGQUFpRjt3QkFDakYsNkVBQTZFO3dCQUM3RSx1REFBdUQ7d0JBQ3ZELFFBQVEsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQy9ELFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO3dCQUN6RCx1RUFBdUU7d0JBQ3ZFLDZEQUE2RDt3QkFDN0QsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBRTNFLE9BQU8sR0FBRyxFQUFFOzRCQUNSLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7NEJBQ3RDLElBQUksUUFBUSxFQUFFLFdBQVcsRUFBRTtnQ0FDdkIsMkRBQTJEO2dDQUMzRCxRQUFRLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUMvRCw4QkFBOEI7Z0NBQzlCLFFBQVEsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUM7NkJBQ3RGO3dCQUNMLENBQUMsQ0FBQztvQkFDTixDQUFDO2lCQUNKO2dCQUNELFNBQVMsRUFBRSxDQUFDLE1BQXFDLEVBQUUsRUFBRTtvQkFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN0RSxDQUFDO2dCQUNELE9BQU8sRUFBRSxDQUFDLEtBQWEsRUFBRSxNQUFjLEVBQUUsR0FBWSxFQUFFLElBQWEsRUFBRSxFQUFFO29CQUNwRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUNsQyxNQUFNLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFFL0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQzt3QkFDakIsSUFBSTt3QkFDSixRQUFRLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxFQUFFO3FCQUN0RixDQUFDLENBQUMsQ0FBQztnQkFDUixDQUFDO2dCQUNELE1BQU0sRUFBRSxDQUFDLEdBQVcsRUFBRSxFQUFFO29CQUNwQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFxQyxDQUFDLENBQUM7b0JBQzFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQ2pCLFFBQVEsRUFBRTs0QkFDTixHQUFHLEtBQUssQ0FBQyxRQUFROzRCQUNqQixHQUFHLEVBQUUsUUFBUTs0QkFDYixVQUFVLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLElBQUksUUFBUTt5QkFDcEQ7cUJBQ0osQ0FBQyxDQUFDLENBQUM7Z0JBQ1IsQ0FBQztnQkFDRCxZQUFZLEVBQUUsQ0FBQyxZQUEyQyxRQUFRLEVBQUUsRUFBRTtvQkFDbEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDaEMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNiLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO29CQUV0QixJQUFJLFNBQVMsS0FBSyxPQUFPLEVBQUU7d0JBQ3ZCLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFDZCxLQUFLLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztxQkFDekI7b0JBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQzVCLENBQUM7YUFDSixDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDbEI7SUFDTCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQXVCLEVBQUUsYUFBZ0M7UUFDL0QsTUFBTSxFQUNGLEVBQUUsRUFBRSxTQUFTLEVBQ2IsSUFBSSxFQUFFLFdBQVcsRUFDakIsTUFBTSxFQUFFLGFBQWEsRUFDckIsU0FBUyxFQUFFLGdCQUFnQixFQUMzQixLQUFLLEVBQUUsWUFBWSxFQUNuQixNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFDTixPQUFPLEVBQ1AsTUFBTSxFQUNOLE1BQU0sRUFDTixJQUFJLEVBQ0osR0FBRyxFQUNILFNBQVMsRUFDVCxXQUFXLEdBQ2QsR0FBRyxNQUFNLENBQUM7UUFFWCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDekIsTUFBTSxhQUFhLEdBQXNCLEVBQUUsQ0FBQztRQUU1QyxpQkFBaUI7UUFDakIsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFBRSxhQUFhLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFckYsa0JBQWtCO1FBQ2xCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVM7WUFBRSxhQUFhLENBQUMsU0FBUyxHQUFHLFNBQVMsR0FBRyxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUU1RSx3QkFBd0I7UUFDeEIsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQztZQUFFLFVBQVUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUU7WUFDakQsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ2pGO1FBRUQsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ2YsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMxQyxJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsWUFBWSxJQUFJLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFN0YsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDWCxJQUFJLGFBQWE7b0JBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFFckQsaUJBQWlCO2dCQUNqQixJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVE7b0JBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUVwRCx1REFBdUQ7Z0JBQ3ZELElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxJQUFJLENBQUMsYUFBYSxFQUFFLFVBQVUsRUFBRTtvQkFDeEQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQzt3QkFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7eUJBQ3JFLElBQUksTUFBTSxZQUFZLEtBQUssQ0FBQyxPQUFPO3dCQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7O3dCQUMzRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQy9CO2dCQUVELDRDQUE0QztnQkFDNUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsQ0FBQzthQUNyQztZQUVELElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztnQkFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBRXBFLGFBQWEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1NBQ2pDO1FBQ0QsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxLQUFrQixDQUFDO1lBRXZCLElBQUksWUFBWSxZQUFZLEtBQUssQ0FBQyxLQUFLLEVBQUU7Z0JBQ3JDLEtBQUssR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDbEQ7aUJBQU07Z0JBQ0gsS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLFlBQVk7b0JBQUUsVUFBVSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQzthQUNyRDtZQUVELGFBQWEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1NBQy9CO1FBRUQsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ1gsaUNBQWlDO1lBQ2pDLE1BQU0sYUFBYSxHQUEyQixDQUFDLFNBQWlCLEVBQUUsS0FBZSxFQUFFLEVBQUU7Z0JBQ2pGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLE9BQU87b0JBQUUsT0FBTztnQkFDeEMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzFDLENBQUMsQ0FBQztZQUVGLHFDQUFxQztZQUNyQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsRUFBRTtnQkFDN0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUN6QixLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUUvQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZO29CQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN0RCxDQUFDLENBQUM7WUFFRix3QkFBd0I7WUFDeEIsTUFBTSxFQUFFLEdBQUc7Z0JBQ1AsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDVixFQUFFLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO29CQUM1RCxFQUFFLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO2dCQUNELFVBQVUsRUFBRSxHQUFHLEVBQUU7b0JBQ2IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztvQkFDL0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztnQkFDakUsQ0FBQzthQUNKLENBQUM7WUFFRixvQ0FBb0M7WUFDcEMsSUFBSSxFQUFFLENBQUMsRUFBRTtnQkFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEIsYUFBYSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7U0FDekI7UUFFRCxnQkFBZ0I7UUFDaEIsSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFO1lBQ2QsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDeEMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDbEMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUVqQyxJQUFJLE9BQU8sT0FBTyxLQUFLLFNBQVMsRUFBRTtnQkFDOUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDO2FBQzlDO2lCQUFNLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO2dCQUNwQyxNQUFNLEtBQUssR0FBRztvQkFDVixLQUFLLEVBQUUsS0FBSyxDQUFDLGNBQWM7b0JBQzNCLFVBQVUsRUFBRSxLQUFLLENBQUMsWUFBWTtvQkFDOUIsSUFBSSxFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7b0JBQzVCLFFBQVEsRUFBRSxLQUFLLENBQUMsWUFBWTtpQkFDL0IsQ0FBQztnQkFDRixFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDO2FBQ2hFO2lCQUFNLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2FBQ3hDO1lBRUQsSUFBSSxVQUFVLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLElBQUksT0FBTyxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSTtnQkFBRSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDNUc7UUFFRCw0Q0FBNEM7UUFDNUMseUVBQXlFO1FBQ3pFLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRTtZQUN2QixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBK0IsQ0FBQztZQUM5RCxJQUFJLFNBQVMsSUFBSSxlQUFlO2dCQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUM7aUJBQzNFLElBQUksWUFBWSxJQUFJLGVBQWU7Z0JBQUUsZUFBZSxDQUFDLFlBQVksQ0FBQyxHQUFHLE1BQU0sSUFBSSxJQUFJLENBQUM7U0FDNUY7UUFFRCw4Q0FBOEM7UUFDOUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzVCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQztRQUMxQixVQUFVLENBQUMsRUFBRSxFQUFFO1lBQ1gsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxZQUFZO1lBQ3RELFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxxQkFBcUI7U0FDeEUsQ0FBQyxDQUFDO1FBRUgsZ0NBQWdDO1FBQ2hDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxNQUFNO1lBQUUsYUFBYSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDM0QsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLE1BQU07WUFBRSxhQUFhLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUMzRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSTtZQUFFLGFBQWEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRW5ELGVBQWU7UUFDZixFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5QyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFaEQsSUFDSSxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztZQUNqQixDQUFDLENBQUMsT0FBTyxTQUFTLEtBQUssVUFBVSxDQUFDO1lBQ2xDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDdkIsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQ3RDO1lBQ0UsVUFBVSxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUM3QjtRQUVELDBCQUEwQjtRQUMxQixJQUFJLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUFFLGFBQWEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFFLG9CQUFvQjtRQUNwQixJQUFJLFdBQVcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLEVBQUU7WUFDdEUsYUFBYSxDQUFDLFdBQVcsR0FBRyxFQUFFLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDO1NBQ3hFO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4QixtQkFBbUI7UUFDbkIsSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEUsNkRBQTZEO1FBQzdELE1BQU0sSUFBSSxHQUFHLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUM7WUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6RyxrQkFBa0I7UUFDbEIsSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLFNBQVM7WUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztZQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUF5QjtRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUxRSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3RDLElBQUksRUFBRSxFQUFFO2dCQUNKLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRTtvQkFDbkIsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO2lCQUN2QjtnQkFFRCxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN6QixFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFFdEIsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFO29CQUN4QixFQUFFLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM3QixFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7aUJBQ25CO2dCQUVELE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFFcEIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUMvQjtRQUNMLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFRCxPQUFPO1FBQ0gsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDekIsSUFBSSxNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDaEMsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUU3QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV6QyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhILE1BQU0sQ0FDRixHQUFHLEVBQUU7WUFDRCxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDbEQsd0RBQXdEO1lBQ3hELElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxRQUFRLENBQUMsR0FBRyxLQUFLLE1BQU0sRUFBRTtnQkFDN0MsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDZixNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFDdEIsZ0JBQWdCO2dCQUNoQixZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMzQixFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDL0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2QztZQUVELHNDQUFzQztZQUN0QyxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7Z0JBQ3RCLFNBQVMsR0FBRyxNQUFNLENBQUM7Z0JBQ25CLFlBQVksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ2pCLFFBQVEsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUU7aUJBQ2hGLENBQUMsQ0FBQyxDQUFDO2FBQ1A7UUFDTCxDQUFDLEVBQ0QsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDeEQsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1AsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzVCLE1BQU0sQ0FDRixHQUFHLEVBQUU7WUFDRCxLQUFLLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN6QixDQUFDLEVBQ0QsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUMvQixDQUFDO0lBQ04sQ0FBQzs4R0F2YlEsUUFBUTtrSEFBUixRQUFROztTQUFSLFFBQVE7MkZBQVIsUUFBUTtrQkFEcEIsVUFBVTs7QUEyYlgsU0FBUyxrQkFBa0IsQ0FBQyxNQUFpRCxFQUFFLFdBQXFCO0lBQ2hHLElBQUksV0FBVztRQUFFLE9BQU8sV0FBVyxDQUFDO0lBRXBDLElBQUksTUFBTSxZQUFZLGlCQUFpQixJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUU7UUFDN0QsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7S0FDdkQ7SUFFRCxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0FBQ3BELENBQUM7QUFFRCw0Q0FBNEM7QUFDNUMsU0FBUyxPQUFPLENBQTJFLEdBQVM7SUFDaEcsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFBRSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakQsS0FBSyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQUU7UUFDaEIsQ0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDdkIsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgY3JlYXRlTG9vcCB9IGZyb20gJy4uL2xvb3AnO1xuaW1wb3J0IHR5cGUge1xuICAgIE5ndEFueVJlY29yZCxcbiAgICBOZ3RCZWZvcmVSZW5kZXJSZWNvcmQsXG4gICAgTmd0Q2FudmFzSW5wdXRzLFxuICAgIE5ndERwcixcbiAgICBOZ3RFcXVDb25maWcsXG4gICAgTmd0RXZlbnRNYW5hZ2VyLFxuICAgIE5ndFNpemUsXG4gICAgTmd0U3RhdGUsXG4gICAgTmd0Vmlld3BvcnQsXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGFwcGx5UHJvcHMgfSBmcm9tICcuLi91dGlscy9hcHBseS1wcm9wcyc7XG5pbXBvcnQgeyBwcmVwYXJlIH0gZnJvbSAnLi4vdXRpbHMvaW5zdGFuY2UnO1xuaW1wb3J0IHsgaXMgfSBmcm9tICcuLi91dGlscy9pcyc7XG5pbXBvcnQgeyBtYWtlRGVmYXVsdENhbWVyYSwgbWFrZURlZmF1bHRSZW5kZXJlciwgbWFrZURwciB9IGZyb20gJy4uL3V0aWxzL21ha2UnO1xuaW1wb3J0IHsgY2hlY2tOZWVkc1VwZGF0ZSwgdXBkYXRlQ2FtZXJhIH0gZnJvbSAnLi4vdXRpbHMvdXBkYXRlJztcbmltcG9ydCB7IE5ndFNpZ25hbFN0b3JlIH0gZnJvbSAnLi9zaWduYWwuc3RvcmUnO1xuXG5leHBvcnQgY29uc3Qgcm9vdFN0YXRlTWFwID0gbmV3IE1hcDxFbGVtZW50LCBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4+KCk7XG5jb25zdCB7IGludmFsaWRhdGUsIGFkdmFuY2UgfSA9IGNyZWF0ZUxvb3Aocm9vdFN0YXRlTWFwKTtcbmNvbnN0IHNoYWxsb3dMb29zZSA9IHsgb2JqZWN0czogJ3NoYWxsb3cnLCBzdHJpY3Q6IGZhbHNlIH0gYXMgTmd0RXF1Q29uZmlnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmd0U3RvcmUgZXh0ZW5kcyBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4ge1xuICAgIHJlYWRvbmx5ICNwYXJlbnRTdG9yZSA9IGluamVjdChOZ3RTdG9yZSwgeyBvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWUgfSk7XG4gICAgcmVhZG9ubHkgI3dpbmRvdyA9IGluamVjdChET0NVTUVOVCkuZGVmYXVsdFZpZXc7XG4gICAgcmVhZG9ubHkgI2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAgIGlzSW5pdCA9IGZhbHNlO1xuXG4gICAgaW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzSW5pdCkge1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFRhcmdldCA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG4gICAgICAgICAgICBjb25zdCB0ZW1wVGFyZ2V0ID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcblxuICAgICAgICAgICAgY29uc3QgZ2V0Q3VycmVudFZpZXdwb3J0ID0gKFxuICAgICAgICAgICAgICAgIGNhbWVyYSA9IHRoaXMuZ2V0KCdjYW1lcmEnKSxcbiAgICAgICAgICAgICAgICB0YXJnZXQ6IFRIUkVFLlZlY3RvcjMgfCBQYXJhbWV0ZXJzPFRIUkVFLlZlY3RvcjNbJ3NldCddPiA9IGRlZmF1bHRUYXJnZXQsXG4gICAgICAgICAgICAgICAgc2l6ZSA9IHRoaXMuZ2V0KCdzaXplJylcbiAgICAgICAgICAgICk6IE9taXQ8Tmd0Vmlld3BvcnQsICdkcHInIHwgJ2luaXRpYWxEcHInPiA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0LCB0b3AsIGxlZnQgfSA9IHNpemU7XG4gICAgICAgICAgICAgICAgY29uc3QgYXNwZWN0ID0gd2lkdGggLyBoZWlnaHQ7XG4gICAgICAgICAgICAgICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIFRIUkVFLlZlY3RvcjMpIHRlbXBUYXJnZXQuY29weSh0YXJnZXQpO1xuICAgICAgICAgICAgICAgIGVsc2UgdGVtcFRhcmdldC5zZXQoLi4udGFyZ2V0KTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGRpc3RhbmNlID0gY2FtZXJhLmdldFdvcmxkUG9zaXRpb24ocG9zaXRpb24pLmRpc3RhbmNlVG8odGVtcFRhcmdldCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXMub3J0aG9ncmFwaGljQ2FtZXJhKGNhbWVyYSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCAvIGNhbWVyYS56b29tLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQgLyBjYW1lcmEuem9vbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWN0b3I6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXN0YW5jZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFzcGVjdCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBmb3YgPSAoY2FtZXJhLmZvdiAqIE1hdGguUEkpIC8gMTgwOyAvLyBjb252ZXJ0IHZlcnRpY2FsIGZvdiB0byByYWRpYW5zXG4gICAgICAgICAgICAgICAgY29uc3QgaCA9IDIgKiBNYXRoLnRhbihmb3YgLyAyKSAqIGRpc3RhbmNlOyAvLyB2aXNpYmxlIGhlaWdodFxuICAgICAgICAgICAgICAgIGNvbnN0IHcgPSBoICogYXNwZWN0O1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHdpZHRoOiB3LCBoZWlnaHQ6IGgsIHRvcCwgbGVmdCwgZmFjdG9yOiB3aWR0aCAvIHcsIGRpc3RhbmNlLCBhc3BlY3QgfTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGxldCBwZXJmb3JtYW5jZVRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuICAgICAgICAgICAgY29uc3Qgc2V0UGVyZm9ybWFuY2VDdXJyZW50ID0gKGN1cnJlbnQ6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0KChzdGF0ZSkgPT4gKHsgcGVyZm9ybWFuY2U6IHsgLi4uc3RhdGUucGVyZm9ybWFuY2UsIGN1cnJlbnQgfSB9KSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICAgICAgZ2V0OiB0aGlzLmdldC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICAgIHNldDogdGhpcy5zZXQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgICByZWFkeTogZmFsc2UsXG5cbiAgICAgICAgICAgICAgICBldmVudHM6IHsgcHJpb3JpdHk6IDEsIGVuYWJsZWQ6IHRydWUsIGNvbm5lY3RlZDogZmFsc2UgfSxcblxuICAgICAgICAgICAgICAgIGludmFsaWRhdGU6IChmcmFtZXMgPSAxKSA9PiBpbnZhbGlkYXRlKHRoaXMsIGZyYW1lcyksXG4gICAgICAgICAgICAgICAgYWR2YW5jZTogKHRpbWVzdGFtcDogbnVtYmVyLCBydW5HbG9iYWxFZmZlY3RzPzogYm9vbGVhbikgPT4gYWR2YW5jZSh0aW1lc3RhbXAsIHJ1bkdsb2JhbEVmZmVjdHMsIHRoaXMpLFxuXG4gICAgICAgICAgICAgICAgbGVnYWN5OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBsaW5lYXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGZsYXQ6IGZhbHNlLFxuXG4gICAgICAgICAgICAgICAgY29udHJvbHM6IG51bGwsXG4gICAgICAgICAgICAgICAgY2xvY2s6IG5ldyBUSFJFRS5DbG9jaygpLFxuICAgICAgICAgICAgICAgIHBvaW50ZXI6IG5ldyBUSFJFRS5WZWN0b3IyKCksXG5cbiAgICAgICAgICAgICAgICBmcmFtZWxvb3A6ICdhbHdheXMnLFxuICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlOiB7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQ6IDEsXG4gICAgICAgICAgICAgICAgICAgIG1pbjogMC41LFxuICAgICAgICAgICAgICAgICAgICBtYXg6IDEsXG4gICAgICAgICAgICAgICAgICAgIGRlYm91bmNlOiAyMDAsXG4gICAgICAgICAgICAgICAgICAgIHJlZ3Jlc3M6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5nZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNsZWFyIHRpbWVvdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwZXJmb3JtYW5jZVRpbWVvdXQpIGNsZWFyVGltZW91dChwZXJmb3JtYW5jZVRpbWVvdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IGxvd2VyIGJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdGUucGVyZm9ybWFuY2UuY3VycmVudCAhPT0gc3RhdGUucGVyZm9ybWFuY2UubWluKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFBlcmZvcm1hbmNlQ3VycmVudChzdGF0ZS5wZXJmb3JtYW5jZS5taW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZ28gYmFjayB0byB1cHBlciBib3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgcGVyZm9ybWFuY2VUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UGVyZm9ybWFuY2VDdXJyZW50KHRoaXMuZ2V0KCdwZXJmb3JtYW5jZScsICdtYXgnKSB8fCAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHN0YXRlLnBlcmZvcm1hbmNlLmRlYm91bmNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNpemU6IHsgd2lkdGg6IDAsIGhlaWdodDogMCwgdG9wOiAwLCBsZWZ0OiAwIH0sXG4gICAgICAgICAgICAgICAgdmlld3BvcnQ6IHtcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbERwcjogMCxcbiAgICAgICAgICAgICAgICAgICAgZHByOiAwLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICAgICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIGFzcGVjdDogMCxcbiAgICAgICAgICAgICAgICAgICAgZGlzdGFuY2U6IDAsXG4gICAgICAgICAgICAgICAgICAgIGZhY3RvcjogMCxcbiAgICAgICAgICAgICAgICAgICAgZ2V0Q3VycmVudFZpZXdwb3J0LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcHJldmlvdXNTdG9yZTogdGhpcy4jcGFyZW50U3RvcmUgYXMgTmd0U3RvcmUsXG4gICAgICAgICAgICAgICAgaW50ZXJuYWw6IHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICAgICAgICAgIGZyYW1lczogMCxcbiAgICAgICAgICAgICAgICAgICAgbGFzdEV2ZW50OiBuZXcgRWxlbWVudFJlZihudWxsKSxcbiAgICAgICAgICAgICAgICAgICAgaW50ZXJhY3Rpb246IFtdLFxuICAgICAgICAgICAgICAgICAgICBob3ZlcmVkOiBuZXcgTWFwKCksXG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXJzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbENsaWNrOiBbMCwgMF0sXG4gICAgICAgICAgICAgICAgICAgIGluaXRpYWxIaXRzOiBbXSxcbiAgICAgICAgICAgICAgICAgICAgY2FwdHVyZWRNYXA6IG5ldyBNYXAoKSxcbiAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlOiAoY2FsbGJhY2s6IE5ndEJlZm9yZVJlbmRlclJlY29yZFsnY2FsbGJhY2snXSwgcHJpb3JpdHkgPSAwLCBzdG9yZSA9IHRoaXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludGVybmFsID0gdGhpcy5nZXQoJ2ludGVybmFsJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIHN1YnNjcmlwdGlvbiB3YXMgZ2l2ZW4gYSBwcmlvcml0eSwgaXQgdGFrZXMgcmVuZGVyaW5nIGludG8gaXRzIG93biBoYW5kc1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRm9yIHRoYXQgcmVhc29uIHdlIHN3aXRjaCBvZmYgYXV0b21hdGljIHJlbmRlcmluZyBhbmQgaW5jcmVhc2UgdGhlIG1hbnVhbCBmbGFnXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcyBsb25nIGFzIHRoaXMgZmxhZyBpcyBwb3NpdGl2ZSB0aGVyZSBjYW4gYmUgbm8gaW50ZXJuYWwgcmVuZGVyaW5nIGF0IGFsbFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmVjYXVzZSB0aGVyZSBjb3VsZCBiZSBtdWx0aXBsZSByZW5kZXIgc3Vic2NyaXB0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWwucHJpb3JpdHkgPSBpbnRlcm5hbC5wcmlvcml0eSArIChwcmlvcml0eSA+IDAgPyAxIDogMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbC5zdWJzY3JpYmVycy5wdXNoKHsgcHJpb3JpdHksIHN0b3JlLCBjYWxsYmFjayB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlZ2lzdGVyIHN1YnNjcmliZXIgYW5kIHNvcnQgbGF5ZXJzIGZyb20gbG93ZXN0IHRvIGhpZ2hlc3QsIG1lYW5pbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBoaWdoZXN0IHByaW9yaXR5IHJlbmRlcnMgbGFzdCAob24gdG9wIG9mIHRoZSBvdGhlciBmcmFtZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbC5zdWJzY3JpYmVycy5zb3J0KChhLCBiKSA9PiAoYS5wcmlvcml0eSB8fCAwKSAtIChiLnByaW9yaXR5IHx8IDApKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnRlcm5hbCA9IHRoaXMuZ2V0KCdpbnRlcm5hbCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnRlcm5hbD8uc3Vic2NyaWJlcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRGVjcmVhc2UgbWFudWFsIGZsYWcgaWYgdGhpcyBzdWJzY3JpcHRpb24gaGFkIGEgcHJpb3JpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWwucHJpb3JpdHkgPSBpbnRlcm5hbC5wcmlvcml0eSAtIChwcmlvcml0eSA+IDAgPyAxIDogMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSBzdWJzY3JpYmVyIGZyb20gbGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbC5zdWJzY3JpYmVycyA9IGludGVybmFsLnN1YnNjcmliZXJzLmZpbHRlcigocykgPT4gcy5jYWxsYmFjayAhPT0gY2FsbGJhY2spO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXRFdmVudHM6IChldmVudHM6IFBhcnRpYWw8Tmd0RXZlbnRNYW5hZ2VyPGFueT4+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0KChzdGF0ZSkgPT4gKHsgZXZlbnRzOiB7IC4uLnN0YXRlLmV2ZW50cywgLi4uZXZlbnRzIH0gfSkpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0U2l6ZTogKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCB0b3A/OiBudW1iZXIsIGxlZnQ/OiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FtZXJhID0gdGhpcy5nZXQoJ2NhbWVyYScpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplID0geyB3aWR0aCwgaGVpZ2h0LCB0b3A6IHRvcCB8fCAwLCBsZWZ0OiBsZWZ0IHx8IDAgfTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldCgoc3RhdGUpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld3BvcnQ6IHsgLi4uc3RhdGUudmlld3BvcnQsIC4uLmdldEN1cnJlbnRWaWV3cG9ydChjYW1lcmEsIGRlZmF1bHRUYXJnZXQsIHNpemUpIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldERwcjogKGRwcjogTmd0RHByKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gbWFrZURwcihkcHIsIHRoaXMuI3dpbmRvdyBhcyBXaW5kb3cgJiB0eXBlb2YgZ2xvYmFsVGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0KChzdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdwb3J0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uc3RhdGUudmlld3BvcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHByOiByZXNvbHZlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsRHByOiBzdGF0ZS52aWV3cG9ydC5pbml0aWFsRHByIHx8IHJlc29sdmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0RnJhbWVsb29wOiAoZnJhbWVsb29wOiAnYWx3YXlzJyB8ICdkZW1hbmQnIHwgJ25ldmVyJyA9ICdhbHdheXMnKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsb2NrID0gdGhpcy5nZXQoJ2Nsb2NrJyk7XG4gICAgICAgICAgICAgICAgICAgIGNsb2NrLnN0b3AoKTtcbiAgICAgICAgICAgICAgICAgICAgY2xvY2suZWxhcHNlZFRpbWUgPSAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmcmFtZWxvb3AgIT09ICduZXZlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb2NrLnN0YXJ0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbG9jay5lbGFwc2VkVGltZSA9IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldCh7IGZyYW1lbG9vcCB9KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuaXNJbml0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuI3Jlc2l6ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uZmlndXJlKGlucHV0czogTmd0Q2FudmFzSW5wdXRzLCBjYW52YXNFbGVtZW50OiBIVE1MQ2FudmFzRWxlbWVudCkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBnbDogZ2xPcHRpb25zLFxuICAgICAgICAgICAgc2l6ZTogc2l6ZU9wdGlvbnMsXG4gICAgICAgICAgICBjYW1lcmE6IGNhbWVyYU9wdGlvbnMsXG4gICAgICAgICAgICByYXljYXN0ZXI6IHJheWNhc3Rlck9wdGlvbnMsXG4gICAgICAgICAgICBzY2VuZTogc2NlbmVPcHRpb25zLFxuICAgICAgICAgICAgZXZlbnRzLFxuICAgICAgICAgICAgb3J0aG9ncmFwaGljLFxuICAgICAgICAgICAgbG9va0F0LFxuICAgICAgICAgICAgc2hhZG93cyxcbiAgICAgICAgICAgIGxpbmVhcixcbiAgICAgICAgICAgIGxlZ2FjeSxcbiAgICAgICAgICAgIGZsYXQsXG4gICAgICAgICAgICBkcHIsXG4gICAgICAgICAgICBmcmFtZWxvb3AsXG4gICAgICAgICAgICBwZXJmb3JtYW5jZSxcbiAgICAgICAgfSA9IGlucHV0cztcblxuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2V0KCk7XG4gICAgICAgIGNvbnN0IHN0YXRlVG9VcGRhdGU6IFBhcnRpYWw8Tmd0U3RhdGU+ID0ge307XG5cbiAgICAgICAgLy8gc2V0dXAgcmVuZGVyZXJcbiAgICAgICAgbGV0IGdsID0gc3RhdGUuZ2w7XG4gICAgICAgIGlmICghc3RhdGUuZ2wpIHN0YXRlVG9VcGRhdGUuZ2wgPSBnbCA9IG1ha2VEZWZhdWx0UmVuZGVyZXIoZ2xPcHRpb25zLCBjYW52YXNFbGVtZW50KTtcblxuICAgICAgICAvLyBzZXR1cCByYXljYXN0ZXJcbiAgICAgICAgbGV0IHJheWNhc3RlciA9IHN0YXRlLnJheWNhc3RlcjtcbiAgICAgICAgaWYgKCFyYXljYXN0ZXIpIHN0YXRlVG9VcGRhdGUucmF5Y2FzdGVyID0gcmF5Y2FzdGVyID0gbmV3IFRIUkVFLlJheWNhc3RlcigpO1xuXG4gICAgICAgIC8vIHNldCByYXljYXN0ZXIgb3B0aW9uc1xuICAgICAgICBjb25zdCB7IHBhcmFtcywgLi4ub3B0aW9ucyB9ID0gcmF5Y2FzdGVyT3B0aW9ucyB8fCB7fTtcbiAgICAgICAgaWYgKCFpcy5lcXUob3B0aW9ucywgcmF5Y2FzdGVyLCBzaGFsbG93TG9vc2UpKSBhcHBseVByb3BzKHJheWNhc3RlciwgeyAuLi5vcHRpb25zIH0pO1xuICAgICAgICBpZiAoIWlzLmVxdShwYXJhbXMsIHJheWNhc3Rlci5wYXJhbXMsIHNoYWxsb3dMb29zZSkpIHtcbiAgICAgICAgICAgIGFwcGx5UHJvcHMocmF5Y2FzdGVyLCB7IHBhcmFtczogeyAuLi5yYXljYXN0ZXIucGFyYW1zLCAuLi4ocGFyYW1zIHx8IHt9KSB9IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gY3JlYXRlIGRlZmF1bHQgY2FtZXJhXG4gICAgICAgIGlmICghc3RhdGUuY2FtZXJhKSB7XG4gICAgICAgICAgICBjb25zdCBpc0NhbWVyYSA9IGlzLmNhbWVyYShjYW1lcmFPcHRpb25zKTtcbiAgICAgICAgICAgIGxldCBjYW1lcmEgPSBpc0NhbWVyYSA/IGNhbWVyYU9wdGlvbnMgOiBtYWtlRGVmYXVsdENhbWVyYShvcnRob2dyYXBoaWMgfHwgZmFsc2UsIHN0YXRlLnNpemUpO1xuXG4gICAgICAgICAgICBpZiAoIWlzQ2FtZXJhKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNhbWVyYU9wdGlvbnMpIGFwcGx5UHJvcHMoY2FtZXJhLCBjYW1lcmFPcHRpb25zKTtcblxuICAgICAgICAgICAgICAgIC8vIHNldCBwb3NpdGlvbi56XG4gICAgICAgICAgICAgICAgaWYgKCFjYW1lcmFPcHRpb25zPy5wb3NpdGlvbikgY2FtZXJhLnBvc2l0aW9uLnogPSA1O1xuXG4gICAgICAgICAgICAgICAgLy8gYWx3YXlzIGxvb2sgYXQgY2VudGVyIG9yIHBhc3NlZC1pbiBsb29rQXQgYnkgZGVmYXVsdFxuICAgICAgICAgICAgICAgIGlmICghY2FtZXJhT3B0aW9ucz8ucm90YXRpb24gJiYgIWNhbWVyYU9wdGlvbnM/LnF1YXRlcm5pb24pIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobG9va0F0KSkgY2FtZXJhLmxvb2tBdChsb29rQXRbMF0sIGxvb2tBdFsxXSwgbG9va0F0WzJdKTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobG9va0F0IGluc3RhbmNlb2YgVEhSRUUuVmVjdG9yMykgY2FtZXJhLmxvb2tBdChsb29rQXQpO1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGNhbWVyYS5sb29rQXQoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gdXBkYXRlIHByb2plY3Rpb24gbWF0cml4IGFmdGVyIGFwcGx5cHJvcHNcbiAgICAgICAgICAgICAgICBjYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeD8uKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghaXMuaW5zdGFuY2UoY2FtZXJhKSkgY2FtZXJhID0gcHJlcGFyZShjYW1lcmEsIHsgc3RvcmU6IHRoaXMgfSk7XG5cbiAgICAgICAgICAgIHN0YXRlVG9VcGRhdGUuY2FtZXJhID0gY2FtZXJhO1xuICAgICAgICB9XG4gICAgICAgIC8vIFNldCB1cCBzY2VuZSAob25lIHRpbWUgb25seSEpXG4gICAgICAgIGlmICghc3RhdGUuc2NlbmUpIHtcbiAgICAgICAgICAgIGxldCBzY2VuZTogVEhSRUUuU2NlbmU7XG5cbiAgICAgICAgICAgIGlmIChzY2VuZU9wdGlvbnMgaW5zdGFuY2VvZiBUSFJFRS5TY2VuZSkge1xuICAgICAgICAgICAgICAgIHNjZW5lID0gcHJlcGFyZShzY2VuZU9wdGlvbnMsIHsgc3RvcmU6IHRoaXMgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNjZW5lID0gcHJlcGFyZShuZXcgVEhSRUUuU2NlbmUoKSwgeyBzdG9yZTogdGhpcyB9KTtcbiAgICAgICAgICAgICAgICBpZiAoc2NlbmVPcHRpb25zKSBhcHBseVByb3BzKHNjZW5lLCBzY2VuZU9wdGlvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdGF0ZVRvVXBkYXRlLnNjZW5lID0gc2NlbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdXAgWFIgKG9uZSB0aW1lIG9ubHkhKVxuICAgICAgICBpZiAoIXN0YXRlLnhyKSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgZnJhbWUgYmVoYXZpb3IgaW4gV2ViWFJcbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZVhSRnJhbWU6IFhSRnJhbWVSZXF1ZXN0Q2FsbGJhY2sgPSAodGltZXN0YW1wOiBudW1iZXIsIGZyYW1lPzogWFJGcmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5nZXQoKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGUuZnJhbWVsb29wID09PSAnbmV2ZXInKSByZXR1cm47XG4gICAgICAgICAgICAgICAgYWR2YW5jZSh0aW1lc3RhbXAsIHRydWUsIHRoaXMsIGZyYW1lKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIFRvZ2dsZSByZW5kZXIgc3dpdGNoaW5nIG9uIHNlc3Npb25cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZVNlc3Npb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldCgpO1xuICAgICAgICAgICAgICAgIHN0YXRlLmdsLnhyLmVuYWJsZWQgPSBzdGF0ZS5nbC54ci5pc1ByZXNlbnRpbmc7XG5cbiAgICAgICAgICAgICAgICBzdGF0ZS5nbC54ci5zZXRBbmltYXRpb25Mb29wKHN0YXRlLmdsLnhyLmlzUHJlc2VudGluZyA/IGhhbmRsZVhSRnJhbWUgOiBudWxsKTtcbiAgICAgICAgICAgICAgICBpZiAoIXN0YXRlLmdsLnhyLmlzUHJlc2VudGluZykgc3RhdGUuaW52YWxpZGF0ZSgpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgLy8gV2ViWFIgc2Vzc2lvbiBtYW5hZ2VyXG4gICAgICAgICAgICBjb25zdCB4ciA9IHtcbiAgICAgICAgICAgICAgICBjb25uZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGdsLnhyLmFkZEV2ZW50TGlzdGVuZXIoJ3Nlc3Npb25zdGFydCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpO1xuICAgICAgICAgICAgICAgICAgICBnbC54ci5hZGRFdmVudExpc3RlbmVyKCdzZXNzaW9uZW5kJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkaXNjb25uZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGdsLnhyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Nlc3Npb25zdGFydCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpO1xuICAgICAgICAgICAgICAgICAgICBnbC54ci5yZW1vdmVFdmVudExpc3RlbmVyKCdzZXNzaW9uZW5kJywgaGFuZGxlU2Vzc2lvbkNoYW5nZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIC8vIFN1YnNjcmliZSB0byBXZWJYUiBzZXNzaW9uIGV2ZW50c1xuICAgICAgICAgICAgaWYgKGdsLnhyKSB4ci5jb25uZWN0KCk7XG4gICAgICAgICAgICBzdGF0ZVRvVXBkYXRlLnhyID0geHI7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgc2hhZG93bWFwXG4gICAgICAgIGlmIChnbC5zaGFkb3dNYXApIHtcbiAgICAgICAgICAgIGNvbnN0IG9sZEVuYWJsZWQgPSBnbC5zaGFkb3dNYXAuZW5hYmxlZDtcbiAgICAgICAgICAgIGNvbnN0IG9sZFR5cGUgPSBnbC5zaGFkb3dNYXAudHlwZTtcbiAgICAgICAgICAgIGdsLnNoYWRvd01hcC5lbmFibGVkID0gISFzaGFkb3dzO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHNoYWRvd3MgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICAgIGdsLnNoYWRvd01hcC50eXBlID0gVEhSRUUuUENGU29mdFNoYWRvd01hcDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHNoYWRvd3MgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2ljOiBUSFJFRS5CYXNpY1NoYWRvd01hcCxcbiAgICAgICAgICAgICAgICAgICAgcGVyY2VudGFnZTogVEhSRUUuUENGU2hhZG93TWFwLFxuICAgICAgICAgICAgICAgICAgICBzb2Z0OiBUSFJFRS5QQ0ZTb2Z0U2hhZG93TWFwLFxuICAgICAgICAgICAgICAgICAgICB2YXJpYW5jZTogVEhSRUUuVlNNU2hhZG93TWFwLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZ2wuc2hhZG93TWFwLnR5cGUgPSB0eXBlc1tzaGFkb3dzXSA/PyBUSFJFRS5QQ0ZTb2Z0U2hhZG93TWFwO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpcy5vYmooc2hhZG93cykpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGdsLnNoYWRvd01hcCwgc2hhZG93cyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvbGRFbmFibGVkICE9PSBnbC5zaGFkb3dNYXAuZW5hYmxlZCB8fCBvbGRUeXBlICE9PSBnbC5zaGFkb3dNYXAudHlwZSkgY2hlY2tOZWVkc1VwZGF0ZShnbC5zaGFkb3dNYXApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2FmZWx5IHNldCBjb2xvciBtYW5hZ2VtZW50IGlmIGF2YWlsYWJsZS5cbiAgICAgICAgLy8gQXZvaWQgYWNjZXNzaW5nIFRIUkVFLkNvbG9yTWFuYWdlbWVudCB0byBwbGF5IG5pY2Ugd2l0aCBvbGRlciB2ZXJzaW9uc1xuICAgICAgICBpZiAoVEhSRUUuQ29sb3JNYW5hZ2VtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBDb2xvck1hbmFnZW1lbnQgPSBUSFJFRS5Db2xvck1hbmFnZW1lbnQgYXMgTmd0QW55UmVjb3JkO1xuICAgICAgICAgICAgaWYgKCdlbmFibGVkJyBpbiBDb2xvck1hbmFnZW1lbnQpIENvbG9yTWFuYWdlbWVudFsnZW5hYmxlZCddID0gIWxlZ2FjeSA/PyBmYWxzZTtcbiAgICAgICAgICAgIGVsc2UgaWYgKCdsZWdhY3lNb2RlJyBpbiBDb2xvck1hbmFnZW1lbnQpIENvbG9yTWFuYWdlbWVudFsnbGVnYWN5TW9kZSddID0gbGVnYWN5ID8/IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzZXQgY29sb3Igc3BhY2UgYW5kIHRvbmVtYXBwaW5nIHByZWZlcmVuY2VzXG4gICAgICAgIGNvbnN0IExpbmVhckVuY29kaW5nID0gMzAwMDtcbiAgICAgICAgY29uc3Qgc1JHQkVuY29kaW5nID0gMzAwMTtcbiAgICAgICAgYXBwbHlQcm9wcyhnbCwge1xuICAgICAgICAgICAgb3V0cHV0RW5jb2Rpbmc6IGxpbmVhciA/IExpbmVhckVuY29kaW5nIDogc1JHQkVuY29kaW5nLFxuICAgICAgICAgICAgdG9uZU1hcHBpbmc6IGZsYXQgPyBUSFJFRS5Ob1RvbmVNYXBwaW5nIDogVEhSRUUuQUNFU0ZpbG1pY1RvbmVNYXBwaW5nLFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBVcGRhdGUgY29sb3IgbWFuYWdlbWVudCBzdGF0ZVxuICAgICAgICBpZiAoc3RhdGUubGVnYWN5ICE9PSBsZWdhY3kpIHN0YXRlVG9VcGRhdGUubGVnYWN5ID0gbGVnYWN5O1xuICAgICAgICBpZiAoc3RhdGUubGluZWFyICE9PSBsaW5lYXIpIHN0YXRlVG9VcGRhdGUubGluZWFyID0gbGluZWFyO1xuICAgICAgICBpZiAoc3RhdGUuZmxhdCAhPT0gZmxhdCkgc3RhdGVUb1VwZGF0ZS5mbGF0ID0gZmxhdDtcblxuICAgICAgICAvLyBTZXQgZ2wgcHJvcHNcbiAgICAgICAgZ2wuc2V0Q2xlYXJBbHBoYSgwKTtcbiAgICAgICAgZ2wuc2V0UGl4ZWxSYXRpbyhtYWtlRHByKHN0YXRlLnZpZXdwb3J0LmRwcikpO1xuICAgICAgICBnbC5zZXRTaXplKHN0YXRlLnNpemUud2lkdGgsIHN0YXRlLnNpemUuaGVpZ2h0KTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICBpcy5vYmooZ2xPcHRpb25zKSAmJlxuICAgICAgICAgICAgISh0eXBlb2YgZ2xPcHRpb25zID09PSAnZnVuY3Rpb24nKSAmJlxuICAgICAgICAgICAgIWlzLnJlbmRlcmVyKGdsT3B0aW9ucykgJiZcbiAgICAgICAgICAgICFpcy5lcXUoZ2xPcHRpb25zLCBnbCwgc2hhbGxvd0xvb3NlKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGFwcGx5UHJvcHMoZ2wsIGdsT3B0aW9ucyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTdG9yZSBldmVudHMgaW50ZXJuYWxseVxuICAgICAgICBpZiAoZXZlbnRzICYmICFzdGF0ZS5ldmVudHMuaGFuZGxlcnMpIHN0YXRlVG9VcGRhdGUuZXZlbnRzID0gZXZlbnRzKHRoaXMpO1xuXG4gICAgICAgIC8vIENoZWNrIHBlcmZvcm1hbmNlXG4gICAgICAgIGlmIChwZXJmb3JtYW5jZSAmJiAhaXMuZXF1KHBlcmZvcm1hbmNlLCBzdGF0ZS5wZXJmb3JtYW5jZSwgc2hhbGxvd0xvb3NlKSkge1xuICAgICAgICAgICAgc3RhdGVUb1VwZGF0ZS5wZXJmb3JtYW5jZSA9IHsgLi4uc3RhdGUucGVyZm9ybWFuY2UsIC4uLnBlcmZvcm1hbmNlIH07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldChzdGF0ZVRvVXBkYXRlKTtcblxuICAgICAgICAvLyBDaGVjayBwaXhlbHJhdGlvXG4gICAgICAgIGlmIChkcHIgJiYgc3RhdGUudmlld3BvcnQuZHByICE9PSBtYWtlRHByKGRwcikpIHN0YXRlLnNldERwcihkcHIpO1xuICAgICAgICAvLyBDaGVjayBzaXplLCBhbGxvdyBpdCB0byB0YWtlIG9uIGNvbnRhaW5lciBib3VuZHMgaW5pdGlhbGx5XG4gICAgICAgIGNvbnN0IHNpemUgPSBjb21wdXRlSW5pdGlhbFNpemUoY2FudmFzRWxlbWVudCwgc2l6ZU9wdGlvbnMpO1xuICAgICAgICBpZiAoIWlzLmVxdShzaXplLCBzdGF0ZS5zaXplLCBzaGFsbG93TG9vc2UpKSBzdGF0ZS5zZXRTaXplKHNpemUud2lkdGgsIHNpemUuaGVpZ2h0LCBzaXplLnRvcCwgc2l6ZS5sZWZ0KTtcblxuICAgICAgICAvLyBDaGVjayBmcmFtZWxvb3BcbiAgICAgICAgaWYgKHN0YXRlLmZyYW1lbG9vcCAhPT0gZnJhbWVsb29wKSBzdGF0ZS5zZXRGcmFtZWxvb3AoZnJhbWVsb29wKTtcblxuICAgICAgICBpZiAoIXRoaXMuZ2V0KCdyZWFkeScpKSB0aGlzLnNldCh7IHJlYWR5OiB0cnVlIH0pO1xuXG4gICAgICAgIHRoaXMuI2ludmFsaWRhdGUoKTtcbiAgICB9XG5cbiAgICBkZXN0cm95KGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5zZXQoKHN0YXRlKSA9PiAoeyBpbnRlcm5hbDogeyAuLi5zdGF0ZS5pbnRlcm5hbCwgYWN0aXZlOiBmYWxzZSB9IH0pKTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgZ2wsIHhyLCBldmVudHMgfSA9IHRoaXMuZ2V0KCk7XG4gICAgICAgICAgICBpZiAoZ2wpIHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnRzLmRpc2Nvbm5lY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRzLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBnbC5yZW5kZXJMaXN0cy5kaXNwb3NlKCk7XG4gICAgICAgICAgICAgICAgZ2wuZm9yY2VDb250ZXh0TG9zcygpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGdsLnhyICYmIGdsLnhyLmVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZ2wueHIuc2V0QW5pbWF0aW9uTG9vcChudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgeHIuZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGRpc3Bvc2UodGhpcy5nZXQoKSk7XG5cbiAgICAgICAgICAgICAgICByb290U3RhdGVNYXAuZGVsZXRlKGNhbnZhcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDUwMCk7XG4gICAgfVxuXG4gICAgI3Jlc2l6ZSgpIHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdldCgpO1xuICAgICAgICBsZXQgb2xkU2l6ZSA9IHN0YXRlLnNpemU7XG4gICAgICAgIGxldCBvbGREcHIgPSBzdGF0ZS52aWV3cG9ydC5kcHI7XG4gICAgICAgIGxldCBvbGRDYW1lcmEgPSBzdGF0ZS5jYW1lcmE7XG5cbiAgICAgICAgY29uc3QgY2FtZXJhID0gdGhpcy5zZWxlY3QoJ2NhbWVyYScpO1xuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5zZWxlY3QoJ3NpemUnKTtcbiAgICAgICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLnNlbGVjdCgndmlld3BvcnQnKTtcblxuICAgICAgICBjb25zdCB0cmlnZ2VycyA9IGNvbXB1dGVkKCgpID0+ICh7IGNhbWVyYTogY2FtZXJhKCksIHNpemU6IHNpemUoKSwgdmlld3BvcnQ6IHZpZXdwb3J0KCksIGdsOiB0aGlzLmdldCgnZ2wnKSB9KSk7XG5cbiAgICAgICAgZWZmZWN0KFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgY2FtZXJhLCBzaXplLCB2aWV3cG9ydCwgZ2wgfSA9IHRyaWdnZXJzKCk7XG4gICAgICAgICAgICAgICAgLy8gcmVzaXplIGNhbWVyYSBhbmQgcmVuZGVyZXIgb24gY2hhbmdlcyB0byBzaXplIGFuZCBkcHJcbiAgICAgICAgICAgICAgICBpZiAoc2l6ZSAhPT0gb2xkU2l6ZSB8fCB2aWV3cG9ydC5kcHIgIT09IG9sZERwcikge1xuICAgICAgICAgICAgICAgICAgICBvbGRTaXplID0gc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgb2xkRHByID0gdmlld3BvcnQuZHByO1xuICAgICAgICAgICAgICAgICAgICAvLyB1cGRhdGUgY2FtZXJhXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUNhbWVyYShjYW1lcmEsIHNpemUpO1xuICAgICAgICAgICAgICAgICAgICBnbC5zZXRQaXhlbFJhdGlvKHZpZXdwb3J0LmRwcik7XG4gICAgICAgICAgICAgICAgICAgIGdsLnNldFNpemUoc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSB2aWV3cG9ydCB3aGVuIGNhbWVyYSBjaGFuZ2VzXG4gICAgICAgICAgICAgICAgaWYgKGNhbWVyYSAhPT0gb2xkQ2FtZXJhKSB7XG4gICAgICAgICAgICAgICAgICAgIG9sZENhbWVyYSA9IGNhbWVyYTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ2FtZXJhKGNhbWVyYSwgc2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0KChzdGF0ZSkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdwb3J0OiB7IC4uLnN0YXRlLnZpZXdwb3J0LCAuLi5zdGF0ZS52aWV3cG9ydC5nZXRDdXJyZW50Vmlld3BvcnQoY2FtZXJhKSB9LFxuICAgICAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgaW5qZWN0b3I6IHRoaXMuI2luamVjdG9yLCBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgI2ludmFsaWRhdGUoKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zZWxlY3QoKTtcbiAgICAgICAgZWZmZWN0KFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHN0YXRlKCkuaW52YWxpZGF0ZSgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgaW5qZWN0b3I6IHRoaXMuI2luamVjdG9yIH1cbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGNvbXB1dGVJbml0aWFsU2l6ZShjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgVEhSRUUuT2Zmc2NyZWVuQ2FudmFzLCBkZWZhdWx0U2l6ZT86IE5ndFNpemUpOiBOZ3RTaXplIHtcbiAgICBpZiAoZGVmYXVsdFNpemUpIHJldHVybiBkZWZhdWx0U2l6ZTtcblxuICAgIGlmIChjYW52YXMgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudCAmJiBjYW52YXMucGFyZW50RWxlbWVudCkge1xuICAgICAgICByZXR1cm4gY2FudmFzLnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgd2lkdGg6IDAsIGhlaWdodDogMCwgdG9wOiAwLCBsZWZ0OiAwIH07XG59XG5cbi8vIERpc3Bvc2VzIGFuIG9iamVjdCBhbmQgYWxsIGl0cyBwcm9wZXJ0aWVzXG5mdW5jdGlvbiBkaXNwb3NlPFRPYmogZXh0ZW5kcyB7IGRpc3Bvc2U/OiAoKSA9PiB2b2lkOyB0eXBlPzogc3RyaW5nOyBba2V5OiBzdHJpbmddOiBhbnkgfT4ob2JqOiBUT2JqKSB7XG4gICAgaWYgKG9iai5kaXNwb3NlICYmICFpcy5zY2VuZShvYmopKSBvYmouZGlzcG9zZSgpO1xuICAgIGZvciAoY29uc3QgcCBpbiBvYmopIHtcbiAgICAgICAgKHAgYXMgYW55KS5kaXNwb3NlPy4oKTtcbiAgICAgICAgZGVsZXRlIG9ialtwXTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi90aHJlZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RJbmplY3RlZFJlZiB9IGZyb20gJy4vZGkvcmVmJztcbmltcG9ydCB0eXBlIHtcbiAgICBOZ3RBZnRlckF0dGFjaCxcbiAgICBOZ3RBbnlSZWNvcmQsXG4gICAgTmd0QXR0YWNoRnVuY3Rpb24sXG4gICAgTmd0QmVmb3JlUmVuZGVyRXZlbnQsXG4gICAgTmd0RXZlbnRIYW5kbGVycyxcbiAgICBOZ3RJbnN0YW5jZU5vZGUsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBOZ3ROb25GdW5jdGlvbktleXM8VD4gPSB7IFtLIGluIGtleW9mIFRdLT86IFRbS10gZXh0ZW5kcyBGdW5jdGlvbiA/IG5ldmVyIDogSyB9W2tleW9mIFRdO1xuZXhwb3J0IHR5cGUgTmd0T3ZlcndyaXRlPFQsIE8+ID0gT21pdDxULCBOZ3ROb25GdW5jdGlvbktleXM8Tz4+ICYgTztcblxuZXhwb3J0IHR5cGUgTmd0RXh0ZW5kZWRDb2xvcnM8VD4gPSB7XG4gICAgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBUSFJFRS5Db2xvciB8IHVuZGVmaW5lZCA/IFRIUkVFLkNvbG9yUmVwcmVzZW50YXRpb24gOiBUW0tdO1xufTtcblxuLyoqXG4gKiBJZiAqKlQqKiBjb250YWlucyBhIGNvbnN0cnVjdG9yLCBAc2VlIENvbnN0cnVjdG9yUGFyYW1ldGVycyBtdXN0IGJlIHVzZWQsIG90aGVyd2lzZSAqKlQqKi5cbiAqL1xudHlwZSBOZ3RBcmdzPFQ+ID0gVCBleHRlbmRzIG5ldyAoLi4uYXJnczogYW55KSA9PiBhbnkgPyBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VD4gOiBUO1xuXG5leHBvcnQgdHlwZSBOZ3RFdWxlciA9IFRIUkVFLkV1bGVyIHwgUGFyYW1ldGVyczxUSFJFRS5FdWxlclsnc2V0J10+O1xuZXhwb3J0IHR5cGUgTmd0TWF0cml4NCA9IFRIUkVFLk1hdHJpeDQgfCBQYXJhbWV0ZXJzPFRIUkVFLk1hdHJpeDRbJ3NldCddPiB8IFJlYWRvbmx5PFRIUkVFLk1hdHJpeDRbJ3NldCddPjtcblxuLyoqXG4gKiBUdXJuIGFuIGltcGxlbWVudGF0aW9uIG9mIFRIUkVFLlZlY3RvciBpbiB0byB0aGUgdHlwZSB0aGF0IGFuIHIzZiBjb21wb25lbnQgd291bGQgYWNjZXB0IGFzIGEgcHJvcC5cbiAqL1xudHlwZSBOZ3RWZWN0b3JMaWtlPFZlY3RvckNsYXNzIGV4dGVuZHMgVEhSRUUuVmVjdG9yPiA9XG4gICAgfCBWZWN0b3JDbGFzc1xuICAgIHwgUGFyYW1ldGVyczxWZWN0b3JDbGFzc1snc2V0J10+XG4gICAgfCBSZWFkb25seTxQYXJhbWV0ZXJzPFZlY3RvckNsYXNzWydzZXQnXT4+XG4gICAgfCBQYXJhbWV0ZXJzPFZlY3RvckNsYXNzWydzZXRTY2FsYXInXT5bMF07XG5cbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjIgPSBOZ3RWZWN0b3JMaWtlPFRIUkVFLlZlY3RvcjI+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yMyA9IE5ndFZlY3Rvckxpa2U8VEhSRUUuVmVjdG9yMz47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3I0ID0gTmd0VmVjdG9yTGlrZTxUSFJFRS5WZWN0b3I0PjtcbmV4cG9ydCB0eXBlIE5ndExheWVycyA9IFRIUkVFLkxheWVycyB8IFBhcmFtZXRlcnM8VEhSRUUuTGF5ZXJzWydzZXQnXT5bMF07XG5leHBvcnQgdHlwZSBOZ3RRdWF0ZXJuaW9uID0gVEhSRUUuUXVhdGVybmlvbiB8IFBhcmFtZXRlcnM8VEhSRUUuUXVhdGVybmlvblsnc2V0J10+O1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndE5vZGVFdmVudE1hcDxUT3JpZ2luYWw+IHtcbiAgICBhZnRlckF0dGFjaDogTmd0QWZ0ZXJBdHRhY2g8Tmd0SW5zdGFuY2VOb2RlLCBUT3JpZ2luYWw+O1xuICAgIGFmdGVyVXBkYXRlOiBUT3JpZ2luYWw7XG4gICAgYmVmb3JlUmVuZGVyOiBOZ3RCZWZvcmVSZW5kZXJFdmVudDxUT3JpZ2luYWw+O1xufVxuXG5leHBvcnQgdHlwZSBOZ3ROb2RlRWxlbWVudDxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4gPSB7XG4gICAgYXR0YWNoOiBzdHJpbmcgfCBzdHJpbmdbXSB8IE5ndEF0dGFjaEZ1bmN0aW9uO1xuICAgIHJlZjogTmd0SW5qZWN0ZWRSZWY8VE9yaWdpbmFsPjtcbiAgICBhZGRFdmVudExpc3RlbmVyPFRFdmVudEtleSBleHRlbmRzIGtleW9mIE5ndE5vZGVFdmVudE1hcDxUT3JpZ2luYWw+PihcbiAgICAgICAgdHlwZTogVEV2ZW50S2V5LFxuICAgICAgICBsaXN0ZW5lcjogKHRoaXM6IE5ndE5vZGVFbGVtZW50PFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiwgZXY6IE5ndE5vZGVFdmVudE1hcDxUT3JpZ2luYWw+W1RFdmVudEtleV0pID0+IGFueVxuICAgICk6IHZvaWQ7XG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcjxURXZlbnRLZXkgZXh0ZW5kcyBrZXlvZiBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPj4oXG4gICAgICAgIHR5cGU6IFRFdmVudEtleSxcbiAgICAgICAgbGlzdGVuZXI6ICh0aGlzOiBOZ3ROb2RlRWxlbWVudDxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4sIGV2OiBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPltURXZlbnRLZXldKSA9PiBhbnlcbiAgICApOiB2b2lkO1xuICAgIF9fbmd0X2FyZ3NfXzogTmd0QXJnczxUQ29uc3RydWN0b3I+O1xufTtcblxuZXhwb3J0IHR5cGUgTmd0Tm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3RvciwgVE5vRXZlbnQgPSBOb0V2ZW50PFRPcmlnaW5hbD4+ID0gTmd0RXh0ZW5kZWRDb2xvcnM8XG4gICAgTmd0T3ZlcndyaXRlPFBhcnRpYWw8VE5vRXZlbnQ+LCBOZ3ROb2RlRWxlbWVudDxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4+XG4+O1xuXG5leHBvcnQgdHlwZSBOZ3RPYmplY3QzREV2ZW50c01hcCA9IHtcbiAgICBbVEV2ZW50IGluIGtleW9mIE5ndEV2ZW50SGFuZGxlcnNdLT86IFBhcmFtZXRlcnM8Tm9uTnVsbGFibGU8Tmd0RXZlbnRIYW5kbGVyc1tURXZlbnRdPj5bMF07XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RPYmplY3QzRE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3IsIFROb0V2ZW50ID0gTm9FdmVudDxUT3JpZ2luYWw+PiA9IE5ndE92ZXJ3cml0ZTxcbiAgICBOZ3ROb2RlPFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yLCBUTm9FdmVudD4sXG4gICAge1xuICAgICAgICBwb3NpdGlvbjogTmd0VmVjdG9yMztcbiAgICAgICAgdXA6IE5ndFZlY3RvcjM7XG4gICAgICAgIHNjYWxlOiBOZ3RWZWN0b3IzO1xuICAgICAgICByb3RhdGlvbjogTmd0RXVsZXI7XG4gICAgICAgIG1hdHJpeDogTmd0TWF0cml4NDtcbiAgICAgICAgcXVhdGVybmlvbjogTmd0UXVhdGVybmlvbjtcbiAgICAgICAgbGF5ZXJzOiBOZ3RMYXllcnM7XG4gICAgICAgIGRpc3Bvc2U6ICgoKSA9PiB2b2lkKSB8IG51bGw7XG4gICAgICAgIGFkZEV2ZW50TGlzdGVuZXI8VEV2ZW50S2V5IGV4dGVuZHMga2V5b2YgTmd0T2JqZWN0M0RFdmVudHNNYXA+KFxuICAgICAgICAgICAgdHlwZTogVEV2ZW50S2V5LFxuICAgICAgICAgICAgbGlzdGVuZXI6ICh0aGlzOiBOZ3RPYmplY3QzRE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0T2JqZWN0M0RFdmVudHNNYXBbVEV2ZW50S2V5XSkgPT4gYW55XG4gICAgICAgICk6IHZvaWQ7XG4gICAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI8VEV2ZW50S2V5IGV4dGVuZHMga2V5b2YgTmd0T2JqZWN0M0RFdmVudHNNYXA+KFxuICAgICAgICAgICAgdHlwZTogVEV2ZW50S2V5LFxuICAgICAgICAgICAgbGlzdGVuZXI6ICh0aGlzOiBOZ3RPYmplY3QzRE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0T2JqZWN0M0RFdmVudHNNYXBbVEV2ZW50S2V5XSkgPT4gYW55XG4gICAgICAgICk6IHZvaWQ7XG4gICAgfVxuPjtcblxudHlwZSBOb0V2ZW50PFQ+ID0gT21pdDxULCAnYWRkRXZlbnRMaXN0ZW5lcicgfCAncmVtb3ZlRXZlbnRMaXN0ZW5lcic+O1xuXG5leHBvcnQgdHlwZSBOZ3RHZW9tZXRyeTxUR2VvbWV0cnkgZXh0ZW5kcyBUSFJFRS5CdWZmZXJHZW9tZXRyeSwgVENvbnN0cnVjdG9yPiA9IE5ndE5vZGU8VEdlb21ldHJ5LCBUQ29uc3RydWN0b3I+O1xuZXhwb3J0IHR5cGUgTmd0TWF0ZXJpYWw8VE1hdGVyaWFsIGV4dGVuZHMgVEhSRUUuTWF0ZXJpYWwsIFRDb25zdHJ1Y3Rvcj4gPSBOZ3ROb2RlPFRNYXRlcmlhbCwgVENvbnN0cnVjdG9yPjtcbmV4cG9ydCB0eXBlIE5ndExpZ2h0PFQgZXh0ZW5kcyBUSFJFRS5MaWdodCwgUD4gPSBOZ3RPYmplY3QzRE5vZGU8VCwgUD47XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdDNEID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLk9iamVjdDNELCB0eXBlb2YgVEhSRUUuT2JqZWN0M0Q+O1xuZXhwb3J0IHR5cGUgTmd0QXVkaW8gPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQXVkaW8sIHR5cGVvZiBUSFJFRS5BdWRpbz47XG5leHBvcnQgdHlwZSBOZ3RBdWRpb0xpc3RlbmVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkF1ZGlvTGlzdGVuZXIsIHR5cGVvZiBUSFJFRS5BdWRpb0xpc3RlbmVyPjtcbmV4cG9ydCB0eXBlIE5ndFBvc2l0aW9uYWxBdWRpbyA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Qb3NpdGlvbmFsQXVkaW8sIHR5cGVvZiBUSFJFRS5Qb3NpdGlvbmFsQXVkaW8+O1xuXG5leHBvcnQgdHlwZSBOZ3RNZXNoID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLk1lc2gsIHR5cGVvZiBUSFJFRS5NZXNoPjtcbmV4cG9ydCB0eXBlIE5ndEluc3RhbmNlZE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuSW5zdGFuY2VkTWVzaCwgdHlwZW9mIFRIUkVFLkluc3RhbmNlZE1lc2g+O1xuZXhwb3J0IHR5cGUgTmd0U2NlbmUgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU2NlbmUsIHR5cGVvZiBUSFJFRS5TY2VuZT47XG5leHBvcnQgdHlwZSBOZ3RTcHJpdGUgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU3ByaXRlLCB0eXBlb2YgVEhSRUUuU3ByaXRlPjtcbmV4cG9ydCB0eXBlIE5ndExPRCA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5MT0QsIHR5cGVvZiBUSFJFRS5MT0Q+O1xuZXhwb3J0IHR5cGUgTmd0U2tpbm5lZE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU2tpbm5lZE1lc2gsIHR5cGVvZiBUSFJFRS5Ta2lubmVkTWVzaD47XG5cbmV4cG9ydCB0eXBlIE5ndFNrZWxldG9uID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlNrZWxldG9uLCB0eXBlb2YgVEhSRUUuU2tlbGV0b24+O1xuZXhwb3J0IHR5cGUgTmd0Qm9uZSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Cb25lLCB0eXBlb2YgVEhSRUUuQm9uZT47XG5leHBvcnQgdHlwZSBOZ3RMaW5lID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkxpbmUsIHR5cGVvZiBUSFJFRS5MaW5lPjtcbmV4cG9ydCB0eXBlIE5ndExpbmVTZWdtZW50cyA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5MaW5lU2VnbWVudHMsIHR5cGVvZiBUSFJFRS5MaW5lU2VnbWVudHM+O1xuZXhwb3J0IHR5cGUgTmd0TGluZUxvb3AgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuTGluZUxvb3AsIHR5cGVvZiBUSFJFRS5MaW5lTG9vcD47XG5leHBvcnQgdHlwZSBOZ3RQb2ludHMgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuUG9pbnRzLCB0eXBlb2YgVEhSRUUuUG9pbnRzPjtcbmV4cG9ydCB0eXBlIE5ndEdyb3VwID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkdyb3VwLCB0eXBlb2YgVEhSRUUuR3JvdXA+O1xuXG5leHBvcnQgdHlwZSBOZ3RDYW1lcmFOb2RlID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkNhbWVyYSwgdHlwZW9mIFRIUkVFLkNhbWVyYT47XG5leHBvcnQgdHlwZSBOZ3RQZXJzcGVjdGl2ZUNhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5QZXJzcGVjdGl2ZUNhbWVyYSwgdHlwZW9mIFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhPjtcbmV4cG9ydCB0eXBlIE5ndE9ydGhvZ3JhcGhpY0NhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5PcnRob2dyYXBoaWNDYW1lcmEsIHR5cGVvZiBUSFJFRS5PcnRob2dyYXBoaWNDYW1lcmE+O1xuZXhwb3J0IHR5cGUgTmd0Q3ViZUNhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5DdWJlQ2FtZXJhLCB0eXBlb2YgVEhSRUUuQ3ViZUNhbWVyYT47XG5leHBvcnQgdHlwZSBOZ3RBcnJheUNhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5BcnJheUNhbWVyYSwgdHlwZW9mIFRIUkVFLkFycmF5Q2FtZXJhPjtcblxuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxcbiAgICBUSFJFRS5JbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSxcbiAgICB0eXBlb2YgVEhSRUUuSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnlcbj47XG5leHBvcnQgdHlwZSBOZ3RCdWZmZXJHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkJ1ZmZlckdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuQnVmZmVyR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0V2lyZWZyYW1lR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5XaXJlZnJhbWVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLldpcmVmcmFtZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFRldHJhaGVkcm9uR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5UZXRyYWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuVGV0cmFoZWRyb25HZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RPY3RhaGVkcm9uR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5PY3RhaGVkcm9uR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5PY3RhaGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0SWNvc2FoZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkljb3NhaGVkcm9uR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5JY29zYWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndERvZGVjYWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuRG9kZWNhaGVkcm9uR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5Eb2RlY2FoZWRyb25HZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RQb2x5aGVkcm9uR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5Qb2x5aGVkcm9uR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5Qb2x5aGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0VHViZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuVHViZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuVHViZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFRvcnVzS25vdEdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuVG9ydXNLbm90R2VvbWV0cnksIHR5cGVvZiBUSFJFRS5Ub3J1c0tub3RHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RUb3J1c0dlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuVG9ydXNHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlRvcnVzR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0U3BoZXJlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5TcGhlcmVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlNwaGVyZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFJpbmdHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlJpbmdHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlJpbmdHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RQbGFuZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuUGxhbmVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlBsYW5lR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0TGF0aGVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkxhdGhlR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5MYXRoZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFNoYXBlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5TaGFwZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuU2hhcGVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RFeHRydWRlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5FeHRydWRlR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5FeHRydWRlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0RWRnZXNHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkVkZ2VzR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5FZGdlc0dlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndENvbmVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkNvbmVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkNvbmVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RDeWxpbmRlckdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuQ3lsaW5kZXJHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkN5bGluZGVyR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Q2lyY2xlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5DaXJjbGVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkNpcmNsZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEJveEdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuQm94R2VvbWV0cnksIHR5cGVvZiBUSFJFRS5Cb3hHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RDYXBzdWxlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5DYXBzdWxlR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5DYXBzdWxlR2VvbWV0cnk+O1xuXG5leHBvcnQgdHlwZSBOZ3RTaGFkb3dNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLlNoYWRvd01hdGVyaWFsLCBbVEhSRUUuU2hhZGVyTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RTcHJpdGVNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLlNwcml0ZU1hdGVyaWFsLCBbVEhSRUUuU3ByaXRlTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RSYXdTaGFkZXJNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLlJhd1NoYWRlck1hdGVyaWFsLCBbVEhSRUUuU2hhZGVyTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RTaGFkZXJNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLlNoYWRlck1hdGVyaWFsLCBbVEhSRUUuU2hhZGVyTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RQb2ludHNNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLlBvaW50c01hdGVyaWFsLCBbVEhSRUUuUG9pbnRzTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoUGh5c2ljYWxNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hQaHlzaWNhbE1hdGVyaWFsLCBbVEhSRUUuTWVzaFBoeXNpY2FsTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoU3RhbmRhcmRNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hTdGFuZGFyZE1hdGVyaWFsLCBbVEhSRUUuTWVzaFN0YW5kYXJkTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoUGhvbmdNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hQaG9uZ01hdGVyaWFsLCBbVEhSRUUuTWVzaFBob25nTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoVG9vbk1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaFRvb25NYXRlcmlhbCwgW1RIUkVFLk1lc2hUb29uTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoTm9ybWFsTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoTm9ybWFsTWF0ZXJpYWwsIFtUSFJFRS5NZXNoTm9ybWFsTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoTGFtYmVydE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaExhbWJlcnRNYXRlcmlhbCwgW1RIUkVFLk1lc2hMYW1iZXJ0TWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoRGVwdGhNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hEZXB0aE1hdGVyaWFsLCBbVEhSRUUuTWVzaERlcHRoTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoRGlzdGFuY2VNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hEaXN0YW5jZU1hdGVyaWFsLCBbVEhSRUUuTWVzaERpc3RhbmNlTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoQmFzaWNNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsLCBbVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoTWF0Y2FwTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoTWF0Y2FwTWF0ZXJpYWwsIFtUSFJFRS5NZXNoTWF0Y2FwTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RMaW5lRGFzaGVkTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5MaW5lRGFzaGVkTWF0ZXJpYWwsIFtUSFJFRS5MaW5lRGFzaGVkTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RMaW5lQmFzaWNNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLkxpbmVCYXNpY01hdGVyaWFsLCBbVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5cbmV4cG9ydCB0eXBlIE5ndFByaW1pdGl2ZSA9IE5ndEFueVJlY29yZDtcbmV4cG9ydCB0eXBlIE5ndFZhbHVlID0gTmd0Tm9kZTx7IHJhd1ZhbHVlOiBhbnkgfSwge30+O1xuXG5leHBvcnQgdHlwZSBOZ3RMaWdodFNoYWRvdyA9IE5ndE5vZGU8VEhSRUUuTGlnaHRTaGFkb3csIHR5cGVvZiBUSFJFRS5MaWdodFNoYWRvdz47XG5leHBvcnQgdHlwZSBOZ3RTcG90TGlnaHRTaGFkb3cgPSBOZ3ROb2RlPFRIUkVFLlNwb3RMaWdodFNoYWRvdywgdHlwZW9mIFRIUkVFLlNwb3RMaWdodFNoYWRvdz47XG5leHBvcnQgdHlwZSBOZ3REaXJlY3Rpb25hbExpZ2h0U2hhZG93ID0gTmd0Tm9kZTxUSFJFRS5EaXJlY3Rpb25hbExpZ2h0U2hhZG93LCB0eXBlb2YgVEhSRUUuRGlyZWN0aW9uYWxMaWdodFNoYWRvdz47XG5cbmV4cG9ydCB0eXBlIE5ndFNwb3RMaWdodCA9IE5ndExpZ2h0PFRIUkVFLlNwb3RMaWdodCwgdHlwZW9mIFRIUkVFLlNwb3RMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RQb2ludExpZ2h0ID0gTmd0TGlnaHQ8VEhSRUUuUG9pbnRMaWdodCwgdHlwZW9mIFRIUkVFLlBvaW50TGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0UmVjdEFyZWFMaWdodCA9IE5ndExpZ2h0PFRIUkVFLlJlY3RBcmVhTGlnaHQsIHR5cGVvZiBUSFJFRS5SZWN0QXJlYUxpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndEhlbWlzcGhlcmVMaWdodCA9IE5ndExpZ2h0PFRIUkVFLkhlbWlzcGhlcmVMaWdodCwgdHlwZW9mIFRIUkVFLkhlbWlzcGhlcmVMaWdodD47XG5leHBvcnQgdHlwZSBOZ3REaXJlY3Rpb25hbExpZ2h0ID0gTmd0TGlnaHQ8VEhSRUUuRGlyZWN0aW9uYWxMaWdodCwgdHlwZW9mIFRIUkVFLkRpcmVjdGlvbmFsTGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0QW1iaWVudExpZ2h0ID0gTmd0TGlnaHQ8VEhSRUUuQW1iaWVudExpZ2h0LCB0eXBlb2YgVEhSRUUuQW1iaWVudExpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndEFtYmllbnRMaWdodFByb2JlID0gTmd0TGlnaHQ8VEhSRUUuQW1iaWVudExpZ2h0UHJvYmUsIHR5cGVvZiBUSFJFRS5BbWJpZW50TGlnaHRQcm9iZT47XG5leHBvcnQgdHlwZSBOZ3RIZW1pc3BoZXJlTGlnaHRQcm9iZSA9IE5ndExpZ2h0PFRIUkVFLkhlbWlzcGhlcmVMaWdodFByb2JlLCB0eXBlb2YgVEhSRUUuSGVtaXNwaGVyZUxpZ2h0UHJvYmU+O1xuZXhwb3J0IHR5cGUgTmd0TGlnaHRQcm9iZSA9IE5ndExpZ2h0PFRIUkVFLkxpZ2h0UHJvYmUsIHR5cGVvZiBUSFJFRS5MaWdodFByb2JlPjtcblxuZXhwb3J0IHR5cGUgTmd0U3BvdExpZ2h0SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlNwb3RMaWdodEhlbHBlciwgdHlwZW9mIFRIUkVFLlNwb3RMaWdodEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RTa2VsZXRvbkhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Ta2VsZXRvbkhlbHBlciwgdHlwZW9mIFRIUkVFLlNrZWxldG9uSGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFBvaW50TGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuUG9pbnRMaWdodEhlbHBlciwgdHlwZW9mIFRIUkVFLlBvaW50TGlnaHRIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0SGVtaXNwaGVyZUxpZ2h0SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkhlbWlzcGhlcmVMaWdodEhlbHBlciwgdHlwZW9mIFRIUkVFLkhlbWlzcGhlcmVMaWdodEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RHcmlkSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkdyaWRIZWxwZXIsIHR5cGVvZiBUSFJFRS5HcmlkSGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFBvbGFyR3JpZEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Qb2xhckdyaWRIZWxwZXIsIHR5cGVvZiBUSFJFRS5Qb2xhckdyaWRIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0RGlyZWN0aW9uYWxMaWdodEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxcbiAgICBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0SGVscGVyLFxuICAgIHR5cGVvZiBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0SGVscGVyXG4+O1xuZXhwb3J0IHR5cGUgTmd0Q2FtZXJhSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkNhbWVyYUhlbHBlciwgdHlwZW9mIFRIUkVFLkNhbWVyYUhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RCb3hIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQm94SGVscGVyLCB0eXBlb2YgVEhSRUUuQm94SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndEJveDNIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQm94M0hlbHBlciwgdHlwZW9mIFRIUkVFLkJveDNIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0UGxhbmVIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuUGxhbmVIZWxwZXIsIHR5cGVvZiBUSFJFRS5QbGFuZUhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RBcnJvd0hlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5BcnJvd0hlbHBlciwgdHlwZW9mIFRIUkVFLkFycm93SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndEF4ZXNIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQXhlc0hlbHBlciwgdHlwZW9mIFRIUkVFLkF4ZXNIZWxwZXI+O1xuXG5leHBvcnQgdHlwZSBOZ3RUZXh0dXJlID0gTmd0Tm9kZTxUSFJFRS5UZXh0dXJlLCB0eXBlb2YgVEhSRUUuVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3RWaWRlb1RleHR1cmUgPSBOZ3ROb2RlPFRIUkVFLlZpZGVvVGV4dHVyZSwgdHlwZW9mIFRIUkVFLlZpZGVvVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3REYXRhVGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuRGF0YVRleHR1cmUsIHR5cGVvZiBUSFJFRS5EYXRhVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3REYXRhM0RUZXh0dXJlID0gTmd0Tm9kZTxUSFJFRS5EYXRhM0RUZXh0dXJlLCB0eXBlb2YgVEhSRUUuRGF0YTNEVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3RDb21wcmVzc2VkVGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuQ29tcHJlc3NlZFRleHR1cmUsIHR5cGVvZiBUSFJFRS5Db21wcmVzc2VkVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3RDdWJlVGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuQ3ViZVRleHR1cmUsIHR5cGVvZiBUSFJFRS5DdWJlVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3RDYW52YXNUZXh0dXJlID0gTmd0Tm9kZTxUSFJFRS5DYW52YXNUZXh0dXJlLCB0eXBlb2YgVEhSRUUuQ2FudmFzVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3REZXB0aFRleHR1cmUgPSBOZ3ROb2RlPFRIUkVFLkRlcHRoVGV4dHVyZSwgdHlwZW9mIFRIUkVFLkRlcHRoVGV4dHVyZT47XG5cbmV4cG9ydCB0eXBlIE5ndFJheWNhc3RlciA9IE5ndE5vZGU8VEhSRUUuUmF5Y2FzdGVyLCB0eXBlb2YgVEhSRUUuUmF5Y2FzdGVyPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjJOb2RlID0gTmd0Tm9kZTxUSFJFRS5WZWN0b3IyLCB0eXBlb2YgVEhSRUUuVmVjdG9yMj47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IzTm9kZSA9IE5ndE5vZGU8VEhSRUUuVmVjdG9yMywgdHlwZW9mIFRIUkVFLlZlY3RvcjM+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yNE5vZGUgPSBOZ3ROb2RlPFRIUkVFLlZlY3RvcjQsIHR5cGVvZiBUSFJFRS5WZWN0b3I0PjtcbmV4cG9ydCB0eXBlIE5ndEV1bGVyTm9kZSA9IE5ndE5vZGU8VEhSRUUuRXVsZXIsIHR5cGVvZiBUSFJFRS5FdWxlcj47XG5leHBvcnQgdHlwZSBOZ3RNYXRyaXgzTm9kZSA9IE5ndE5vZGU8VEhSRUUuTWF0cml4MywgdHlwZW9mIFRIUkVFLk1hdHJpeDM+O1xuZXhwb3J0IHR5cGUgTmd0TWF0cml4NE5vZGUgPSBOZ3ROb2RlPFRIUkVFLk1hdHJpeDQsIHR5cGVvZiBUSFJFRS5NYXRyaXg0PjtcbmV4cG9ydCB0eXBlIE5ndFF1YXRlcm5pb25Ob2RlID0gTmd0Tm9kZTxUSFJFRS5RdWF0ZXJuaW9uLCB0eXBlb2YgVEhSRUUuUXVhdGVybmlvbj47XG5leHBvcnQgdHlwZSBOZ3RCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RGbG9hdDE2QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5GbG9hdDE2QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuRmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RGbG9hdDMyQnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5GbG9hdDMyQnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuRmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RGbG9hdDY0QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5GbG9hdDY0QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuRmxvYXQ2NEJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RJbnQ4QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5JbnQ4QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuSW50OEJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RJbnQxNkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuSW50MTZCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5JbnQxNkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RJbnQzMkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuSW50MzJCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5JbnQzMkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RVaW50OEJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuVWludDhCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5VaW50OEJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RVaW50MTZCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLlVpbnQxNkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLlVpbnQxNkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RVaW50MzJCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLlVpbnQzMkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLlVpbnQzMkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFxuICAgIFRIUkVFLkluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZSxcbiAgICB0eXBlb2YgVEhSRUUuSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlXG4+O1xuZXhwb3J0IHR5cGUgTmd0Q29sb3IgPSBOZ3ROb2RlPFRIUkVFLkNvbG9yLCBUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uPjtcbmV4cG9ydCB0eXBlIE5ndEZvZyA9IE5ndE5vZGU8VEhSRUUuRm9nLCB0eXBlb2YgVEhSRUUuRm9nPjtcbmV4cG9ydCB0eXBlIE5ndEZvZ0V4cDIgPSBOZ3ROb2RlPFRIUkVFLkZvZ0V4cDIsIHR5cGVvZiBUSFJFRS5Gb2dFeHAyPjtcbmV4cG9ydCB0eXBlIE5ndFNoYXBlID0gTmd0Tm9kZTxUSFJFRS5TaGFwZSwgdHlwZW9mIFRIUkVFLlNoYXBlPjtcblxuZXhwb3J0IGludGVyZmFjZSBUaHJlZUVsZW1lbnRzIHtcbiAgICAnbmd0LW9iamVjdDNEJzogTmd0T2JqZWN0M0Q7XG5cbiAgICAvLyBgYXVkaW9gIHdvcmtzIGJ1dCBjb25mbGljdHMgd2l0aCBAdHlwZXMvcmVhY3QuIFRyeSB1c2luZyBQb3NpdGlvbmFsQXVkaW8gZnJvbSBAcmVhY3QtdGhyZWUvZHJlaSBpbnN0ZWFkXG4gICAgJ25ndC1hdWRpbyc6IE5ndEF1ZGlvO1xuICAgICduZ3QtYXVkaW8tbGlzdGVuZXInOiBOZ3RBdWRpb0xpc3RlbmVyO1xuICAgICduZ3QtcG9zaXRpb25hbC1hdWRpbyc6IE5ndFBvc2l0aW9uYWxBdWRpbztcblxuICAgICduZ3QtbWVzaCc6IE5ndE1lc2g7XG4gICAgJ25ndC1pbnN0YW5jZWQtbWVzaCc6IE5ndEluc3RhbmNlZE1lc2g7XG4gICAgJ25ndC1zY2VuZSc6IE5ndFNjZW5lO1xuICAgICduZ3Qtc3ByaXRlJzogTmd0U3ByaXRlO1xuICAgICduZ3QtbE9EJzogTmd0TE9EO1xuICAgICduZ3Qtc2tpbm5lZC1tZXNoJzogTmd0U2tpbm5lZE1lc2g7XG4gICAgJ25ndC1za2VsZXRvbic6IE5ndFNrZWxldG9uO1xuICAgICduZ3QtYm9uZSc6IE5ndEJvbmU7XG5cbiAgICAnbmd0LWxpbmUnOiBOZ3RMaW5lO1xuICAgICduZ3QtbGluZS1zZWdtZW50cyc6IE5ndExpbmVTZWdtZW50cztcbiAgICAnbmd0LWxpbmUtbG9vcCc6IE5ndExpbmVMb29wO1xuICAgICduZ3QtcG9pbnRzJzogTmd0UG9pbnRzO1xuICAgICduZ3QtZ3JvdXAnOiBOZ3RHcm91cDtcblxuICAgIC8vIGNhbWVyYXNcbiAgICAnbmd0LWNhbWVyYSc6IE5ndENhbWVyYU5vZGU7XG4gICAgJ25ndC1wZXJzcGVjdGl2ZS1jYW1lcmEnOiBOZ3RQZXJzcGVjdGl2ZUNhbWVyYTtcbiAgICAnbmd0LW9ydGhvZ3JhcGhpYy1jYW1lcmEnOiBOZ3RPcnRob2dyYXBoaWNDYW1lcmE7XG4gICAgJ25ndC1jdWJlLWNhbWVyYSc6IE5ndEN1YmVDYW1lcmE7XG4gICAgJ25ndC1hcnJheS1jYW1lcmEnOiBOZ3RBcnJheUNhbWVyYTtcblxuICAgIC8vIGdlb21ldHJ5XG4gICAgJ25ndC1pbnN0YW5jZWQtYnVmZmVyLWdlb21ldHJ5JzogTmd0SW5zdGFuY2VkQnVmZmVyR2VvbWV0cnk7XG4gICAgJ25ndC1idWZmZXItZ2VvbWV0cnknOiBOZ3RCdWZmZXJHZW9tZXRyeTtcbiAgICAnbmd0LXdpcmVmcmFtZS1nZW9tZXRyeSc6IE5ndFdpcmVmcmFtZUdlb21ldHJ5O1xuICAgICduZ3QtdGV0cmFoZWRyb24tZ2VvbWV0cnknOiBOZ3RUZXRyYWhlZHJvbkdlb21ldHJ5O1xuICAgICduZ3Qtb2N0YWhlZHJvbi1nZW9tZXRyeSc6IE5ndE9jdGFoZWRyb25HZW9tZXRyeTtcbiAgICAnbmd0LWljb3NhaGVkcm9uLWdlb21ldHJ5JzogTmd0SWNvc2FoZWRyb25HZW9tZXRyeTtcbiAgICAnbmd0LXBvbHloZWRyb24tZ2VvbWV0cnknOiBOZ3RQb2x5aGVkcm9uR2VvbWV0cnk7XG4gICAgJ25ndC1kb2RlY2FoZWRyb24tZ2VvbWV0cnknOiBOZ3REb2RlY2FoZWRyb25HZW9tZXRyeTtcbiAgICAnbmd0LXR1YmUtZ2VvbWV0cnknOiBOZ3RUdWJlR2VvbWV0cnk7XG4gICAgJ25ndC10b3J1cy1rbm90LWdlb21ldHJ5JzogTmd0VG9ydXNLbm90R2VvbWV0cnk7XG4gICAgJ25ndC10b3J1cy1nZW9tZXRyeSc6IE5ndFRvcnVzR2VvbWV0cnk7XG4gICAgJ25ndC1zcGhlcmUtZ2VvbWV0cnknOiBOZ3RTcGhlcmVHZW9tZXRyeTtcbiAgICAnbmd0LXJpbmctZ2VvbWV0cnknOiBOZ3RSaW5nR2VvbWV0cnk7XG4gICAgJ25ndC1wbGFuZS1nZW9tZXRyeSc6IE5ndFBsYW5lR2VvbWV0cnk7XG4gICAgJ25ndC1sYXRoZS1nZW9tZXRyeSc6IE5ndExhdGhlR2VvbWV0cnk7XG4gICAgJ25ndC1zaGFwZS1nZW9tZXRyeSc6IE5ndFNoYXBlR2VvbWV0cnk7XG4gICAgJ25ndC1leHRydWRlLWdlb21ldHJ5JzogTmd0RXh0cnVkZUdlb21ldHJ5O1xuICAgICduZ3QtZWRnZXMtZ2VvbWV0cnknOiBOZ3RFZGdlc0dlb21ldHJ5O1xuICAgICduZ3QtY29uZS1nZW9tZXRyeSc6IE5ndENvbmVHZW9tZXRyeTtcbiAgICAnbmd0LWN5bGluZGVyLWdlb21ldHJ5JzogTmd0Q3lsaW5kZXJHZW9tZXRyeTtcbiAgICAnbmd0LWNpcmNsZS1nZW9tZXRyeSc6IE5ndENpcmNsZUdlb21ldHJ5O1xuICAgICduZ3QtYm94LWdlb21ldHJ5JzogTmd0Qm94R2VvbWV0cnk7XG4gICAgJ25ndC1jYXBzdWxlLWdlb21ldHJ5JzogTmd0Q2Fwc3VsZUdlb21ldHJ5O1xuXG4gICAgLy8gbWF0ZXJpYWxzXG4gICAgJ25ndC1zaGFkb3ctbWF0ZXJpYWwnOiBOZ3RTaGFkb3dNYXRlcmlhbDtcbiAgICAnbmd0LXNwcml0ZS1tYXRlcmlhbCc6IE5ndFNwcml0ZU1hdGVyaWFsO1xuICAgICduZ3QtcmF3LXNoYWRlci1tYXRlcmlhbCc6IE5ndFJhd1NoYWRlck1hdGVyaWFsO1xuICAgICduZ3Qtc2hhZGVyLW1hdGVyaWFsJzogTmd0U2hhZGVyTWF0ZXJpYWw7XG4gICAgJ25ndC1wb2ludHMtbWF0ZXJpYWwnOiBOZ3RQb2ludHNNYXRlcmlhbDtcbiAgICAnbmd0LW1lc2gtcGh5c2ljYWwtbWF0ZXJpYWwnOiBOZ3RNZXNoUGh5c2ljYWxNYXRlcmlhbDtcbiAgICAnbmd0LW1lc2gtc3RhbmRhcmQtbWF0ZXJpYWwnOiBOZ3RNZXNoU3RhbmRhcmRNYXRlcmlhbDtcbiAgICAnbmd0LW1lc2gtcGhvbmctbWF0ZXJpYWwnOiBOZ3RNZXNoUGhvbmdNYXRlcmlhbDtcbiAgICAnbmd0LW1lc2gtdG9vbi1tYXRlcmlhbCc6IE5ndE1lc2hUb29uTWF0ZXJpYWw7XG4gICAgJ25ndC1tZXNoLW5vcm1hbC1tYXRlcmlhbCc6IE5ndE1lc2hOb3JtYWxNYXRlcmlhbDtcbiAgICAnbmd0LW1lc2gtbGFtYmVydC1tYXRlcmlhbCc6IE5ndE1lc2hMYW1iZXJ0TWF0ZXJpYWw7XG4gICAgJ25ndC1tZXNoLWRlcHRoLW1hdGVyaWFsJzogTmd0TWVzaERlcHRoTWF0ZXJpYWw7XG4gICAgJ25ndC1tZXNoLWRpc3RhbmNlLW1hdGVyaWFsJzogTmd0TWVzaERpc3RhbmNlTWF0ZXJpYWw7XG4gICAgJ25ndC1tZXNoLWJhc2ljLW1hdGVyaWFsJzogTmd0TWVzaEJhc2ljTWF0ZXJpYWw7XG4gICAgJ25ndC1tZXNoLW1hdGNhcC1tYXRlcmlhbCc6IE5ndE1lc2hNYXRjYXBNYXRlcmlhbDtcbiAgICAnbmd0LWxpbmUtZGFzaGVkLW1hdGVyaWFsJzogTmd0TGluZURhc2hlZE1hdGVyaWFsO1xuICAgICduZ3QtbGluZS1iYXNpYy1tYXRlcmlhbCc6IE5ndExpbmVCYXNpY01hdGVyaWFsO1xuXG4gICAgLy8gcHJpbWl0aXZlXG4gICAgJ25ndC1wcmltaXRpdmUnOiBOZ3RQcmltaXRpdmU7XG5cbiAgICAvLyByYXdWYWx1ZVxuICAgICduZ3QtdmFsdWUnOiBOZ3RWYWx1ZTtcblxuICAgIC8vIGxpZ2h0cyBhbmQgb3RoZXJcbiAgICAnbmd0LXNwb3QtbGlnaHQtc2hhZG93JzogTmd0U3BvdExpZ2h0U2hhZG93O1xuICAgICduZ3Qtc3BvdC1saWdodCc6IE5ndFNwb3RMaWdodDtcbiAgICAnbmd0LXBvaW50LWxpZ2h0JzogTmd0UG9pbnRMaWdodDtcbiAgICAnbmd0LXJlY3QtYXJlYS1saWdodCc6IE5ndFJlY3RBcmVhTGlnaHQ7XG4gICAgJ25ndC1oZW1pc3BoZXJlLWxpZ2h0JzogTmd0SGVtaXNwaGVyZUxpZ2h0O1xuICAgICduZ3QtZGlyZWN0aW9uYWwtbGlnaHQtc2hhZG93JzogTmd0RGlyZWN0aW9uYWxMaWdodFNoYWRvdztcbiAgICAnbmd0LWRpcmVjdGlvbmFsLWxpZ2h0JzogTmd0RGlyZWN0aW9uYWxMaWdodDtcbiAgICAnbmd0LWFtYmllbnQtbGlnaHQnOiBOZ3RBbWJpZW50TGlnaHQ7XG4gICAgJ25ndC1saWdodC1zaGFkb3cnOiBOZ3RMaWdodFNoYWRvdztcbiAgICAnbmd0LWFtYmllbnQtbGlnaHQtcHJvYmUnOiBOZ3RBbWJpZW50TGlnaHRQcm9iZTtcbiAgICAnbmd0LWhlbWlzcGhlcmUtbGlnaHQtcHJvYmUnOiBOZ3RIZW1pc3BoZXJlTGlnaHRQcm9iZTtcbiAgICAnbmd0LWxpZ2h0LXByb2JlJzogTmd0TGlnaHRQcm9iZTtcblxuICAgIC8vIGhlbHBlcnNcbiAgICAnbmd0LXNwb3QtbGlnaHQtaGVscGVyJzogTmd0U3BvdExpZ2h0SGVscGVyO1xuICAgICduZ3Qtc2tlbGV0b24taGVscGVyJzogTmd0U2tlbGV0b25IZWxwZXI7XG4gICAgJ25ndC1wb2ludC1saWdodC1oZWxwZXInOiBOZ3RQb2ludExpZ2h0SGVscGVyO1xuICAgICduZ3QtaGVtaXNwaGVyZS1saWdodC1oZWxwZXInOiBOZ3RIZW1pc3BoZXJlTGlnaHRIZWxwZXI7XG4gICAgJ25ndC1ncmlkLWhlbHBlcic6IE5ndEdyaWRIZWxwZXI7XG4gICAgJ25ndC1wb2xhci1ncmlkLWhlbHBlcic6IE5ndFBvbGFyR3JpZEhlbHBlcjtcbiAgICAnbmd0LWRpcmVjdGlvbmFsLWxpZ2h0LWhlbHBlcic6IE5ndERpcmVjdGlvbmFsTGlnaHRIZWxwZXI7XG4gICAgJ25ndC1jYW1lcmEtaGVscGVyJzogTmd0Q2FtZXJhSGVscGVyO1xuICAgICduZ3QtYm94LWhlbHBlcic6IE5ndEJveEhlbHBlcjtcbiAgICAnbmd0LWJveDMtaGVscGVyJzogTmd0Qm94M0hlbHBlcjtcbiAgICAnbmd0LXBsYW5lLWhlbHBlcic6IE5ndFBsYW5lSGVscGVyO1xuICAgICduZ3QtYXJyb3ctaGVscGVyJzogTmd0QXJyb3dIZWxwZXI7XG4gICAgJ25ndC1heGVzLWhlbHBlcic6IE5ndEF4ZXNIZWxwZXI7XG5cbiAgICAvLyB0ZXh0dXJlc1xuICAgICduZ3QtdGV4dHVyZSc6IE5ndFRleHR1cmU7XG4gICAgJ25ndC12aWRlby10ZXh0dXJlJzogTmd0VmlkZW9UZXh0dXJlO1xuICAgICduZ3QtZGF0YS10ZXh0dXJlJzogTmd0RGF0YVRleHR1cmU7XG4gICAgJ25ndC1kYXRhM0QtdGV4dHVyZSc6IE5ndERhdGEzRFRleHR1cmU7XG4gICAgJ25ndC1jb21wcmVzc2VkLXRleHR1cmUnOiBOZ3RDb21wcmVzc2VkVGV4dHVyZTtcbiAgICAnbmd0LWN1YmUtdGV4dHVyZSc6IE5ndEN1YmVUZXh0dXJlO1xuICAgICduZ3QtY2FudmFzLXRleHR1cmUnOiBOZ3RDYW52YXNUZXh0dXJlO1xuICAgICduZ3QtZGVwdGgtdGV4dHVyZSc6IE5ndERlcHRoVGV4dHVyZTtcblxuICAgIC8vIG1pc2NcbiAgICAnbmd0LXJheWNhc3Rlcic6IE5ndFJheWNhc3RlcjtcbiAgICAnbmd0LXZlY3RvcjInOiBOZ3RWZWN0b3IyTm9kZTtcbiAgICAnbmd0LXZlY3RvcjMnOiBOZ3RWZWN0b3IzTm9kZTtcbiAgICAnbmd0LXZlY3RvcjQnOiBOZ3RWZWN0b3I0Tm9kZTtcbiAgICAnbmd0LWV1bGVyJzogTmd0RXVsZXJOb2RlO1xuICAgICduZ3QtbWF0cml4Myc6IE5ndE1hdHJpeDNOb2RlO1xuICAgICduZ3QtbWF0cml4NCc6IE5ndE1hdHJpeDROb2RlO1xuICAgICduZ3QtcXVhdGVybmlvbic6IE5ndFF1YXRlcm5pb25Ob2RlO1xuICAgICduZ3QtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEJ1ZmZlckF0dHJpYnV0ZTtcbiAgICAnbmd0LWZsb2F0MTYtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGU7XG4gICAgJ25ndC1mbG9hdDMyLWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RGbG9hdDMyQnVmZmVyQXR0cmlidXRlO1xuICAgICduZ3QtZmxvYXQ2NC1idWZmZXItYXR0cmlidXRlJzogTmd0RmxvYXQ2NEJ1ZmZlckF0dHJpYnV0ZTtcbiAgICAnbmd0LWludDgtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEludDhCdWZmZXJBdHRyaWJ1dGU7XG4gICAgJ25ndC1pbnQxNi1idWZmZXItYXR0cmlidXRlJzogTmd0SW50MTZCdWZmZXJBdHRyaWJ1dGU7XG4gICAgJ25ndC1pbnQzMi1idWZmZXItYXR0cmlidXRlJzogTmd0SW50MzJCdWZmZXJBdHRyaWJ1dGU7XG4gICAgJ25ndC11bml0OC1idWZmZXItYXR0cmlidXRlJzogTmd0VWludDhCdWZmZXJBdHRyaWJ1dGU7XG4gICAgJ25ndC11bml0MTYtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndFVpbnQxNkJ1ZmZlckF0dHJpYnV0ZTtcbiAgICAnbmd0LXVuaXQzMi1idWZmZXItYXR0cmlidXRlJzogTmd0VWludDMyQnVmZmVyQXR0cmlidXRlO1xuICAgICduZ3QtaW5zdGFuY2VkLWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU7XG4gICAgJ25ndC1jb2xvcic6IE5ndENvbG9yO1xuICAgICduZ3QtZm9nJzogTmd0Rm9nO1xuICAgICduZ3QtZm9nLWV4cDInOiBOZ3RGb2dFeHAyO1xuICAgICduZ3Qtc2hhcGUnOiBOZ3RTaGFwZTtcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAgZXh0ZW5kcyBUaHJlZUVsZW1lbnRzIHt9XG59XG4iXX0=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWUtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi90aHJlZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHR5cGUgeyBOZ3RJbmplY3RlZFJlZiB9IGZyb20gJy4vZGkvcmVmJztcbmltcG9ydCB0eXBlIHtcbiAgICBOZ3RBZnRlckF0dGFjaCxcbiAgICBOZ3RBbnlSZWNvcmQsXG4gICAgTmd0QXR0YWNoRnVuY3Rpb24sXG4gICAgTmd0QmVmb3JlUmVuZGVyRXZlbnQsXG4gICAgTmd0RXZlbnRIYW5kbGVycyxcbiAgICBOZ3RJbnN0YW5jZU5vZGUsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBOZ3ROb25GdW5jdGlvbktleXM8VD4gPSB7IFtLIGluIGtleW9mIFRdLT86IFRbS10gZXh0ZW5kcyBGdW5jdGlvbiA/IG5ldmVyIDogSyB9W2tleW9mIFRdO1xuZXhwb3J0IHR5cGUgTmd0T3ZlcndyaXRlPFQsIE8+ID0gT21pdDxULCBOZ3ROb25GdW5jdGlvbktleXM8Tz4+ICYgTztcblxuZXhwb3J0IHR5cGUgTmd0RXh0ZW5kZWRDb2xvcnM8VD4gPSB7XG4gICAgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBUSFJFRS5Db2xvciB8IHVuZGVmaW5lZCA/IFRIUkVFLkNvbG9yUmVwcmVzZW50YXRpb24gOiBUW0tdO1xufTtcblxuLyoqXG4gKiBJZiAqKlQqKiBjb250YWlucyBhIGNvbnN0cnVjdG9yLCBAc2VlIENvbnN0cnVjdG9yUGFyYW1ldGVycyBtdXN0IGJlIHVzZWQsIG90aGVyd2lzZSAqKlQqKi5cbiAqL1xudHlwZSBOZ3RBcmdzPFQ+ID0gVCBleHRlbmRzIG5ldyAoLi4uYXJnczogYW55KSA9PiBhbnkgPyBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VD4gOiBUO1xuXG5leHBvcnQgdHlwZSBOZ3RFdWxlciA9IFRIUkVFLkV1bGVyIHwgUGFyYW1ldGVyczxUSFJFRS5FdWxlclsnc2V0J10+O1xuZXhwb3J0IHR5cGUgTmd0TWF0cml4NCA9IFRIUkVFLk1hdHJpeDQgfCBQYXJhbWV0ZXJzPFRIUkVFLk1hdHJpeDRbJ3NldCddPiB8IFJlYWRvbmx5PFRIUkVFLk1hdHJpeDRbJ3NldCddPjtcblxuLyoqXG4gKiBUdXJuIGFuIGltcGxlbWVudGF0aW9uIG9mIFRIUkVFLlZlY3RvciBpbiB0byB0aGUgdHlwZSB0aGF0IGFuIHIzZiBjb21wb25lbnQgd291bGQgYWNjZXB0IGFzIGEgcHJvcC5cbiAqL1xudHlwZSBOZ3RWZWN0b3JMaWtlPFZlY3RvckNsYXNzIGV4dGVuZHMgVEhSRUUuVmVjdG9yPiA9XG4gICAgfCBWZWN0b3JDbGFzc1xuICAgIHwgUGFyYW1ldGVyczxWZWN0b3JDbGFzc1snc2V0J10+XG4gICAgfCBSZWFkb25seTxQYXJhbWV0ZXJzPFZlY3RvckNsYXNzWydzZXQnXT4+XG4gICAgfCBQYXJhbWV0ZXJzPFZlY3RvckNsYXNzWydzZXRTY2FsYXInXT5bMF07XG5cbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjIgPSBOZ3RWZWN0b3JMaWtlPFRIUkVFLlZlY3RvcjI+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yMyA9IE5ndFZlY3Rvckxpa2U8VEhSRUUuVmVjdG9yMz47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3I0ID0gTmd0VmVjdG9yTGlrZTxUSFJFRS5WZWN0b3I0PjtcbmV4cG9ydCB0eXBlIE5ndExheWVycyA9IFRIUkVFLkxheWVycyB8IFBhcmFtZXRlcnM8VEhSRUUuTGF5ZXJzWydzZXQnXT5bMF07XG5leHBvcnQgdHlwZSBOZ3RRdWF0ZXJuaW9uID0gVEhSRUUuUXVhdGVybmlvbiB8IFBhcmFtZXRlcnM8VEhSRUUuUXVhdGVybmlvblsnc2V0J10+O1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndE5vZGVFdmVudE1hcDxUT3JpZ2luYWw+IHtcbiAgICBhZnRlckF0dGFjaDogTmd0QWZ0ZXJBdHRhY2g8Tmd0SW5zdGFuY2VOb2RlLCBUT3JpZ2luYWw+O1xuICAgIGFmdGVyVXBkYXRlOiBUT3JpZ2luYWw7XG4gICAgYmVmb3JlUmVuZGVyOiBOZ3RCZWZvcmVSZW5kZXJFdmVudDxUT3JpZ2luYWw+O1xufVxuXG5leHBvcnQgdHlwZSBOZ3ROb2RlRWxlbWVudDxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4gPSB7XG4gICAgYXR0YWNoOiBzdHJpbmcgfCBzdHJpbmdbXSB8IE5ndEF0dGFjaEZ1bmN0aW9uO1xuICAgIHJlZjogTmd0SW5qZWN0ZWRSZWY8VE9yaWdpbmFsPjtcbiAgICBhZGRFdmVudExpc3RlbmVyPFRFdmVudEtleSBleHRlbmRzIGtleW9mIE5ndE5vZGVFdmVudE1hcDxUT3JpZ2luYWw+PihcbiAgICAgICAgdHlwZTogVEV2ZW50S2V5LFxuICAgICAgICBsaXN0ZW5lcjogKHRoaXM6IE5ndE5vZGVFbGVtZW50PFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yPiwgZXY6IE5ndE5vZGVFdmVudE1hcDxUT3JpZ2luYWw+W1RFdmVudEtleV0pID0+IGFueVxuICAgICk6IHZvaWQ7XG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcjxURXZlbnRLZXkgZXh0ZW5kcyBrZXlvZiBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPj4oXG4gICAgICAgIHR5cGU6IFRFdmVudEtleSxcbiAgICAgICAgbGlzdGVuZXI6ICh0aGlzOiBOZ3ROb2RlRWxlbWVudDxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4sIGV2OiBOZ3ROb2RlRXZlbnRNYXA8VE9yaWdpbmFsPltURXZlbnRLZXldKSA9PiBhbnlcbiAgICApOiB2b2lkO1xuICAgIF9fbmd0X2FyZ3NfXzogTmd0QXJnczxUQ29uc3RydWN0b3I+O1xufTtcblxuZXhwb3J0IHR5cGUgTmd0Tm9kZTxUT3JpZ2luYWwsIFRDb25zdHJ1Y3RvciwgVE5vRXZlbnQgPSBOb0V2ZW50PFRPcmlnaW5hbD4+ID0gTmd0RXh0ZW5kZWRDb2xvcnM8XG4gICAgTmd0T3ZlcndyaXRlPFBhcnRpYWw8VE5vRXZlbnQ+LCBOZ3ROb2RlRWxlbWVudDxUT3JpZ2luYWwsIFRDb25zdHJ1Y3Rvcj4+XG4+O1xuXG5leHBvcnQgdHlwZSBOZ3RPYmplY3QzREV2ZW50c01hcCA9IHtcbiAgICBbVEV2ZW50IGluIGtleW9mIE5ndEV2ZW50SGFuZGxlcnNdLT86IFBhcmFtZXRlcnM8Tm9uTnVsbGFibGU8Tmd0RXZlbnRIYW5kbGVyc1tURXZlbnRdPj5bMF07XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RPYmplY3QzRE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3IsIFROb0V2ZW50ID0gTm9FdmVudDxUT3JpZ2luYWw+PiA9IE5ndE92ZXJ3cml0ZTxcbiAgICBOZ3ROb2RlPFRPcmlnaW5hbCwgVENvbnN0cnVjdG9yLCBUTm9FdmVudD4sXG4gICAge1xuICAgICAgICBwb3NpdGlvbjogTmd0VmVjdG9yMztcbiAgICAgICAgdXA6IE5ndFZlY3RvcjM7XG4gICAgICAgIHNjYWxlOiBOZ3RWZWN0b3IzO1xuICAgICAgICByb3RhdGlvbjogTmd0RXVsZXI7XG4gICAgICAgIG1hdHJpeDogTmd0TWF0cml4NDtcbiAgICAgICAgcXVhdGVybmlvbjogTmd0UXVhdGVybmlvbjtcbiAgICAgICAgbGF5ZXJzOiBOZ3RMYXllcnM7XG4gICAgICAgIGRpc3Bvc2U6ICgoKSA9PiB2b2lkKSB8IG51bGw7XG4gICAgICAgIGFkZEV2ZW50TGlzdGVuZXI8VEV2ZW50S2V5IGV4dGVuZHMga2V5b2YgTmd0T2JqZWN0M0RFdmVudHNNYXA+KFxuICAgICAgICAgICAgdHlwZTogVEV2ZW50S2V5LFxuICAgICAgICAgICAgbGlzdGVuZXI6ICh0aGlzOiBOZ3RPYmplY3QzRE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0T2JqZWN0M0RFdmVudHNNYXBbVEV2ZW50S2V5XSkgPT4gYW55XG4gICAgICAgICk6IHZvaWQ7XG4gICAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI8VEV2ZW50S2V5IGV4dGVuZHMga2V5b2YgTmd0T2JqZWN0M0RFdmVudHNNYXA+KFxuICAgICAgICAgICAgdHlwZTogVEV2ZW50S2V5LFxuICAgICAgICAgICAgbGlzdGVuZXI6ICh0aGlzOiBOZ3RPYmplY3QzRE5vZGU8VE9yaWdpbmFsLCBUQ29uc3RydWN0b3I+LCBldjogTmd0T2JqZWN0M0RFdmVudHNNYXBbVEV2ZW50S2V5XSkgPT4gYW55XG4gICAgICAgICk6IHZvaWQ7XG4gICAgfVxuPjtcblxudHlwZSBOb0V2ZW50PFQ+ID0gT21pdDxULCAnYWRkRXZlbnRMaXN0ZW5lcicgfCAncmVtb3ZlRXZlbnRMaXN0ZW5lcic+O1xuXG5leHBvcnQgdHlwZSBOZ3RHZW9tZXRyeTxUR2VvbWV0cnkgZXh0ZW5kcyBUSFJFRS5CdWZmZXJHZW9tZXRyeSwgVENvbnN0cnVjdG9yPiA9IE5ndE5vZGU8VEdlb21ldHJ5LCBUQ29uc3RydWN0b3I+O1xuZXhwb3J0IHR5cGUgTmd0TWF0ZXJpYWw8VE1hdGVyaWFsIGV4dGVuZHMgVEhSRUUuTWF0ZXJpYWwsIFRDb25zdHJ1Y3Rvcj4gPSBOZ3ROb2RlPFRNYXRlcmlhbCwgVENvbnN0cnVjdG9yPjtcbmV4cG9ydCB0eXBlIE5ndExpZ2h0PFQgZXh0ZW5kcyBUSFJFRS5MaWdodCwgUD4gPSBOZ3RPYmplY3QzRE5vZGU8VCwgUD47XG5cbmV4cG9ydCB0eXBlIE5ndE9iamVjdDNEID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLk9iamVjdDNELCB0eXBlb2YgVEhSRUUuT2JqZWN0M0Q+O1xuZXhwb3J0IHR5cGUgTmd0QXVkaW8gPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQXVkaW8sIHR5cGVvZiBUSFJFRS5BdWRpbz47XG5leHBvcnQgdHlwZSBOZ3RBdWRpb0xpc3RlbmVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkF1ZGlvTGlzdGVuZXIsIHR5cGVvZiBUSFJFRS5BdWRpb0xpc3RlbmVyPjtcbmV4cG9ydCB0eXBlIE5ndFBvc2l0aW9uYWxBdWRpbyA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Qb3NpdGlvbmFsQXVkaW8sIHR5cGVvZiBUSFJFRS5Qb3NpdGlvbmFsQXVkaW8+O1xuXG5leHBvcnQgdHlwZSBOZ3RNZXNoID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLk1lc2gsIHR5cGVvZiBUSFJFRS5NZXNoPjtcbmV4cG9ydCB0eXBlIE5ndEluc3RhbmNlZE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuSW5zdGFuY2VkTWVzaCwgdHlwZW9mIFRIUkVFLkluc3RhbmNlZE1lc2g+O1xuZXhwb3J0IHR5cGUgTmd0U2NlbmUgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU2NlbmUsIHR5cGVvZiBUSFJFRS5TY2VuZT47XG5leHBvcnQgdHlwZSBOZ3RTcHJpdGUgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU3ByaXRlLCB0eXBlb2YgVEhSRUUuU3ByaXRlPjtcbmV4cG9ydCB0eXBlIE5ndExPRCA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5MT0QsIHR5cGVvZiBUSFJFRS5MT0Q+O1xuZXhwb3J0IHR5cGUgTmd0U2tpbm5lZE1lc2ggPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuU2tpbm5lZE1lc2gsIHR5cGVvZiBUSFJFRS5Ta2lubmVkTWVzaD47XG5cbmV4cG9ydCB0eXBlIE5ndFNrZWxldG9uID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlNrZWxldG9uLCB0eXBlb2YgVEhSRUUuU2tlbGV0b24+O1xuZXhwb3J0IHR5cGUgTmd0Qm9uZSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Cb25lLCB0eXBlb2YgVEhSRUUuQm9uZT47XG5leHBvcnQgdHlwZSBOZ3RMaW5lID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkxpbmUsIHR5cGVvZiBUSFJFRS5MaW5lPjtcbmV4cG9ydCB0eXBlIE5ndExpbmVTZWdtZW50cyA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5MaW5lU2VnbWVudHMsIHR5cGVvZiBUSFJFRS5MaW5lU2VnbWVudHM+O1xuZXhwb3J0IHR5cGUgTmd0TGluZUxvb3AgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuTGluZUxvb3AsIHR5cGVvZiBUSFJFRS5MaW5lTG9vcD47XG5leHBvcnQgdHlwZSBOZ3RQb2ludHMgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuUG9pbnRzLCB0eXBlb2YgVEhSRUUuUG9pbnRzPjtcbmV4cG9ydCB0eXBlIE5ndEdyb3VwID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkdyb3VwLCB0eXBlb2YgVEhSRUUuR3JvdXA+O1xuXG5leHBvcnQgdHlwZSBOZ3RDYW1lcmFOb2RlID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkNhbWVyYSwgdHlwZW9mIFRIUkVFLkNhbWVyYT47XG5leHBvcnQgdHlwZSBOZ3RQZXJzcGVjdGl2ZUNhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5QZXJzcGVjdGl2ZUNhbWVyYSwgdHlwZW9mIFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhPjtcbmV4cG9ydCB0eXBlIE5ndE9ydGhvZ3JhcGhpY0NhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5PcnRob2dyYXBoaWNDYW1lcmEsIHR5cGVvZiBUSFJFRS5PcnRob2dyYXBoaWNDYW1lcmE+O1xuZXhwb3J0IHR5cGUgTmd0Q3ViZUNhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5DdWJlQ2FtZXJhLCB0eXBlb2YgVEhSRUUuQ3ViZUNhbWVyYT47XG5leHBvcnQgdHlwZSBOZ3RBcnJheUNhbWVyYSA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5BcnJheUNhbWVyYSwgdHlwZW9mIFRIUkVFLkFycmF5Q2FtZXJhPjtcblxuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VkQnVmZmVyR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxcbiAgICBUSFJFRS5JbnN0YW5jZWRCdWZmZXJHZW9tZXRyeSxcbiAgICB0eXBlb2YgVEhSRUUuSW5zdGFuY2VkQnVmZmVyR2VvbWV0cnlcbj47XG5leHBvcnQgdHlwZSBOZ3RCdWZmZXJHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkJ1ZmZlckdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuQnVmZmVyR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0V2lyZWZyYW1lR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5XaXJlZnJhbWVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLldpcmVmcmFtZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFRldHJhaGVkcm9uR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5UZXRyYWhlZHJvbkdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuVGV0cmFoZWRyb25HZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RPY3RhaGVkcm9uR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5PY3RhaGVkcm9uR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5PY3RhaGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0SWNvc2FoZWRyb25HZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkljb3NhaGVkcm9uR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5JY29zYWhlZHJvbkdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndERvZGVjYWhlZHJvbkdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuRG9kZWNhaGVkcm9uR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5Eb2RlY2FoZWRyb25HZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RQb2x5aGVkcm9uR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5Qb2x5aGVkcm9uR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5Qb2x5aGVkcm9uR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0VHViZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuVHViZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuVHViZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFRvcnVzS25vdEdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuVG9ydXNLbm90R2VvbWV0cnksIHR5cGVvZiBUSFJFRS5Ub3J1c0tub3RHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RUb3J1c0dlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuVG9ydXNHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlRvcnVzR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0U3BoZXJlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5TcGhlcmVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlNwaGVyZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFJpbmdHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLlJpbmdHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlJpbmdHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RQbGFuZUdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuUGxhbmVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLlBsYW5lR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0TGF0aGVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkxhdGhlR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5MYXRoZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndFNoYXBlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5TaGFwZUdlb21ldHJ5LCB0eXBlb2YgVEhSRUUuU2hhcGVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RFeHRydWRlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5FeHRydWRlR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5FeHRydWRlR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0RWRnZXNHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkVkZ2VzR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5FZGdlc0dlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndENvbmVHZW9tZXRyeSA9IE5ndEdlb21ldHJ5PFRIUkVFLkNvbmVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkNvbmVHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RDeWxpbmRlckdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuQ3lsaW5kZXJHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkN5bGluZGVyR2VvbWV0cnk+O1xuZXhwb3J0IHR5cGUgTmd0Q2lyY2xlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5DaXJjbGVHZW9tZXRyeSwgdHlwZW9mIFRIUkVFLkNpcmNsZUdlb21ldHJ5PjtcbmV4cG9ydCB0eXBlIE5ndEJveEdlb21ldHJ5ID0gTmd0R2VvbWV0cnk8VEhSRUUuQm94R2VvbWV0cnksIHR5cGVvZiBUSFJFRS5Cb3hHZW9tZXRyeT47XG5leHBvcnQgdHlwZSBOZ3RDYXBzdWxlR2VvbWV0cnkgPSBOZ3RHZW9tZXRyeTxUSFJFRS5DYXBzdWxlR2VvbWV0cnksIHR5cGVvZiBUSFJFRS5DYXBzdWxlR2VvbWV0cnk+O1xuXG5leHBvcnQgdHlwZSBOZ3RTaGFkb3dNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLlNoYWRvd01hdGVyaWFsLCBbVEhSRUUuU2hhZGVyTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RTcHJpdGVNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLlNwcml0ZU1hdGVyaWFsLCBbVEhSRUUuU3ByaXRlTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RSYXdTaGFkZXJNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLlJhd1NoYWRlck1hdGVyaWFsLCBbVEhSRUUuU2hhZGVyTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RTaGFkZXJNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLlNoYWRlck1hdGVyaWFsLCBbVEhSRUUuU2hhZGVyTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RQb2ludHNNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLlBvaW50c01hdGVyaWFsLCBbVEhSRUUuUG9pbnRzTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoUGh5c2ljYWxNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hQaHlzaWNhbE1hdGVyaWFsLCBbVEhSRUUuTWVzaFBoeXNpY2FsTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoU3RhbmRhcmRNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hTdGFuZGFyZE1hdGVyaWFsLCBbVEhSRUUuTWVzaFN0YW5kYXJkTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoUGhvbmdNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hQaG9uZ01hdGVyaWFsLCBbVEhSRUUuTWVzaFBob25nTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoVG9vbk1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaFRvb25NYXRlcmlhbCwgW1RIUkVFLk1lc2hUb29uTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoTm9ybWFsTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoTm9ybWFsTWF0ZXJpYWwsIFtUSFJFRS5NZXNoTm9ybWFsTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoTGFtYmVydE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8VEhSRUUuTWVzaExhbWJlcnRNYXRlcmlhbCwgW1RIUkVFLk1lc2hMYW1iZXJ0TWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoRGVwdGhNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hEZXB0aE1hdGVyaWFsLCBbVEhSRUUuTWVzaERlcHRoTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoRGlzdGFuY2VNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hEaXN0YW5jZU1hdGVyaWFsLCBbVEhSRUUuTWVzaERpc3RhbmNlTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoQmFzaWNNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLk1lc2hCYXNpY01hdGVyaWFsLCBbVEhSRUUuTWVzaEJhc2ljTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RNZXNoTWF0Y2FwTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5NZXNoTWF0Y2FwTWF0ZXJpYWwsIFtUSFJFRS5NZXNoTWF0Y2FwTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RMaW5lRGFzaGVkTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxUSFJFRS5MaW5lRGFzaGVkTWF0ZXJpYWwsIFtUSFJFRS5MaW5lRGFzaGVkTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5leHBvcnQgdHlwZSBOZ3RMaW5lQmFzaWNNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPFRIUkVFLkxpbmVCYXNpY01hdGVyaWFsLCBbVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWxQYXJhbWV0ZXJzXT47XG5cbmV4cG9ydCB0eXBlIE5ndFByaW1pdGl2ZSA9IE5ndE5vZGVFbGVtZW50PE5ndEFueVJlY29yZCwgYW55PjtcbmV4cG9ydCB0eXBlIE5ndFZhbHVlID0gTmd0Tm9kZTx7IHJhd1ZhbHVlOiBhbnkgfSwge30+O1xuXG5leHBvcnQgdHlwZSBOZ3RMaWdodFNoYWRvdyA9IE5ndE5vZGU8VEhSRUUuTGlnaHRTaGFkb3csIHR5cGVvZiBUSFJFRS5MaWdodFNoYWRvdz47XG5leHBvcnQgdHlwZSBOZ3RTcG90TGlnaHRTaGFkb3cgPSBOZ3ROb2RlPFRIUkVFLlNwb3RMaWdodFNoYWRvdywgdHlwZW9mIFRIUkVFLlNwb3RMaWdodFNoYWRvdz47XG5leHBvcnQgdHlwZSBOZ3REaXJlY3Rpb25hbExpZ2h0U2hhZG93ID0gTmd0Tm9kZTxUSFJFRS5EaXJlY3Rpb25hbExpZ2h0U2hhZG93LCB0eXBlb2YgVEhSRUUuRGlyZWN0aW9uYWxMaWdodFNoYWRvdz47XG5cbmV4cG9ydCB0eXBlIE5ndFNwb3RMaWdodCA9IE5ndExpZ2h0PFRIUkVFLlNwb3RMaWdodCwgdHlwZW9mIFRIUkVFLlNwb3RMaWdodD47XG5leHBvcnQgdHlwZSBOZ3RQb2ludExpZ2h0ID0gTmd0TGlnaHQ8VEhSRUUuUG9pbnRMaWdodCwgdHlwZW9mIFRIUkVFLlBvaW50TGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0UmVjdEFyZWFMaWdodCA9IE5ndExpZ2h0PFRIUkVFLlJlY3RBcmVhTGlnaHQsIHR5cGVvZiBUSFJFRS5SZWN0QXJlYUxpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndEhlbWlzcGhlcmVMaWdodCA9IE5ndExpZ2h0PFRIUkVFLkhlbWlzcGhlcmVMaWdodCwgdHlwZW9mIFRIUkVFLkhlbWlzcGhlcmVMaWdodD47XG5leHBvcnQgdHlwZSBOZ3REaXJlY3Rpb25hbExpZ2h0ID0gTmd0TGlnaHQ8VEhSRUUuRGlyZWN0aW9uYWxMaWdodCwgdHlwZW9mIFRIUkVFLkRpcmVjdGlvbmFsTGlnaHQ+O1xuZXhwb3J0IHR5cGUgTmd0QW1iaWVudExpZ2h0ID0gTmd0TGlnaHQ8VEhSRUUuQW1iaWVudExpZ2h0LCB0eXBlb2YgVEhSRUUuQW1iaWVudExpZ2h0PjtcbmV4cG9ydCB0eXBlIE5ndEFtYmllbnRMaWdodFByb2JlID0gTmd0TGlnaHQ8VEhSRUUuQW1iaWVudExpZ2h0UHJvYmUsIHR5cGVvZiBUSFJFRS5BbWJpZW50TGlnaHRQcm9iZT47XG5leHBvcnQgdHlwZSBOZ3RIZW1pc3BoZXJlTGlnaHRQcm9iZSA9IE5ndExpZ2h0PFRIUkVFLkhlbWlzcGhlcmVMaWdodFByb2JlLCB0eXBlb2YgVEhSRUUuSGVtaXNwaGVyZUxpZ2h0UHJvYmU+O1xuZXhwb3J0IHR5cGUgTmd0TGlnaHRQcm9iZSA9IE5ndExpZ2h0PFRIUkVFLkxpZ2h0UHJvYmUsIHR5cGVvZiBUSFJFRS5MaWdodFByb2JlPjtcblxuZXhwb3J0IHR5cGUgTmd0U3BvdExpZ2h0SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLlNwb3RMaWdodEhlbHBlciwgdHlwZW9mIFRIUkVFLlNwb3RMaWdodEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RTa2VsZXRvbkhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Ta2VsZXRvbkhlbHBlciwgdHlwZW9mIFRIUkVFLlNrZWxldG9uSGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFBvaW50TGlnaHRIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuUG9pbnRMaWdodEhlbHBlciwgdHlwZW9mIFRIUkVFLlBvaW50TGlnaHRIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0SGVtaXNwaGVyZUxpZ2h0SGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkhlbWlzcGhlcmVMaWdodEhlbHBlciwgdHlwZW9mIFRIUkVFLkhlbWlzcGhlcmVMaWdodEhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RHcmlkSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkdyaWRIZWxwZXIsIHR5cGVvZiBUSFJFRS5HcmlkSGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndFBvbGFyR3JpZEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5Qb2xhckdyaWRIZWxwZXIsIHR5cGVvZiBUSFJFRS5Qb2xhckdyaWRIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0RGlyZWN0aW9uYWxMaWdodEhlbHBlciA9IE5ndE9iamVjdDNETm9kZTxcbiAgICBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0SGVscGVyLFxuICAgIHR5cGVvZiBUSFJFRS5EaXJlY3Rpb25hbExpZ2h0SGVscGVyXG4+O1xuZXhwb3J0IHR5cGUgTmd0Q2FtZXJhSGVscGVyID0gTmd0T2JqZWN0M0ROb2RlPFRIUkVFLkNhbWVyYUhlbHBlciwgdHlwZW9mIFRIUkVFLkNhbWVyYUhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RCb3hIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQm94SGVscGVyLCB0eXBlb2YgVEhSRUUuQm94SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndEJveDNIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQm94M0hlbHBlciwgdHlwZW9mIFRIUkVFLkJveDNIZWxwZXI+O1xuZXhwb3J0IHR5cGUgTmd0UGxhbmVIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuUGxhbmVIZWxwZXIsIHR5cGVvZiBUSFJFRS5QbGFuZUhlbHBlcj47XG5leHBvcnQgdHlwZSBOZ3RBcnJvd0hlbHBlciA9IE5ndE9iamVjdDNETm9kZTxUSFJFRS5BcnJvd0hlbHBlciwgdHlwZW9mIFRIUkVFLkFycm93SGVscGVyPjtcbmV4cG9ydCB0eXBlIE5ndEF4ZXNIZWxwZXIgPSBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuQXhlc0hlbHBlciwgdHlwZW9mIFRIUkVFLkF4ZXNIZWxwZXI+O1xuXG5leHBvcnQgdHlwZSBOZ3RUZXh0dXJlID0gTmd0Tm9kZTxUSFJFRS5UZXh0dXJlLCB0eXBlb2YgVEhSRUUuVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3RWaWRlb1RleHR1cmUgPSBOZ3ROb2RlPFRIUkVFLlZpZGVvVGV4dHVyZSwgdHlwZW9mIFRIUkVFLlZpZGVvVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3REYXRhVGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuRGF0YVRleHR1cmUsIHR5cGVvZiBUSFJFRS5EYXRhVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3REYXRhM0RUZXh0dXJlID0gTmd0Tm9kZTxUSFJFRS5EYXRhM0RUZXh0dXJlLCB0eXBlb2YgVEhSRUUuRGF0YTNEVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3RDb21wcmVzc2VkVGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuQ29tcHJlc3NlZFRleHR1cmUsIHR5cGVvZiBUSFJFRS5Db21wcmVzc2VkVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3RDdWJlVGV4dHVyZSA9IE5ndE5vZGU8VEhSRUUuQ3ViZVRleHR1cmUsIHR5cGVvZiBUSFJFRS5DdWJlVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3RDYW52YXNUZXh0dXJlID0gTmd0Tm9kZTxUSFJFRS5DYW52YXNUZXh0dXJlLCB0eXBlb2YgVEhSRUUuQ2FudmFzVGV4dHVyZT47XG5leHBvcnQgdHlwZSBOZ3REZXB0aFRleHR1cmUgPSBOZ3ROb2RlPFRIUkVFLkRlcHRoVGV4dHVyZSwgdHlwZW9mIFRIUkVFLkRlcHRoVGV4dHVyZT47XG5cbmV4cG9ydCB0eXBlIE5ndFJheWNhc3RlciA9IE5ndE5vZGU8VEhSRUUuUmF5Y2FzdGVyLCB0eXBlb2YgVEhSRUUuUmF5Y2FzdGVyPjtcbmV4cG9ydCB0eXBlIE5ndFZlY3RvcjJOb2RlID0gTmd0Tm9kZTxUSFJFRS5WZWN0b3IyLCB0eXBlb2YgVEhSRUUuVmVjdG9yMj47XG5leHBvcnQgdHlwZSBOZ3RWZWN0b3IzTm9kZSA9IE5ndE5vZGU8VEhSRUUuVmVjdG9yMywgdHlwZW9mIFRIUkVFLlZlY3RvcjM+O1xuZXhwb3J0IHR5cGUgTmd0VmVjdG9yNE5vZGUgPSBOZ3ROb2RlPFRIUkVFLlZlY3RvcjQsIHR5cGVvZiBUSFJFRS5WZWN0b3I0PjtcbmV4cG9ydCB0eXBlIE5ndEV1bGVyTm9kZSA9IE5ndE5vZGU8VEhSRUUuRXVsZXIsIHR5cGVvZiBUSFJFRS5FdWxlcj47XG5leHBvcnQgdHlwZSBOZ3RNYXRyaXgzTm9kZSA9IE5ndE5vZGU8VEhSRUUuTWF0cml4MywgdHlwZW9mIFRIUkVFLk1hdHJpeDM+O1xuZXhwb3J0IHR5cGUgTmd0TWF0cml4NE5vZGUgPSBOZ3ROb2RlPFRIUkVFLk1hdHJpeDQsIHR5cGVvZiBUSFJFRS5NYXRyaXg0PjtcbmV4cG9ydCB0eXBlIE5ndFF1YXRlcm5pb25Ob2RlID0gTmd0Tm9kZTxUSFJFRS5RdWF0ZXJuaW9uLCB0eXBlb2YgVEhSRUUuUXVhdGVybmlvbj47XG5leHBvcnQgdHlwZSBOZ3RCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RGbG9hdDE2QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5GbG9hdDE2QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuRmxvYXQxNkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RGbG9hdDMyQnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5GbG9hdDMyQnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuRmxvYXQzMkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RGbG9hdDY0QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5GbG9hdDY0QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuRmxvYXQ2NEJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RJbnQ4QnVmZmVyQXR0cmlidXRlID0gTmd0Tm9kZTxUSFJFRS5JbnQ4QnVmZmVyQXR0cmlidXRlLCB0eXBlb2YgVEhSRUUuSW50OEJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RJbnQxNkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuSW50MTZCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5JbnQxNkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RJbnQzMkJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuSW50MzJCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5JbnQzMkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RVaW50OEJ1ZmZlckF0dHJpYnV0ZSA9IE5ndE5vZGU8VEhSRUUuVWludDhCdWZmZXJBdHRyaWJ1dGUsIHR5cGVvZiBUSFJFRS5VaW50OEJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RVaW50MTZCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLlVpbnQxNkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLlVpbnQxNkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RVaW50MzJCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFRIUkVFLlVpbnQzMkJ1ZmZlckF0dHJpYnV0ZSwgdHlwZW9mIFRIUkVFLlVpbnQzMkJ1ZmZlckF0dHJpYnV0ZT47XG5leHBvcnQgdHlwZSBOZ3RJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGUgPSBOZ3ROb2RlPFxuICAgIFRIUkVFLkluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZSxcbiAgICB0eXBlb2YgVEhSRUUuSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlXG4+O1xuZXhwb3J0IHR5cGUgTmd0Q29sb3IgPSBOZ3ROb2RlPFRIUkVFLkNvbG9yLCBUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uPjtcbmV4cG9ydCB0eXBlIE5ndEZvZyA9IE5ndE5vZGU8VEhSRUUuRm9nLCB0eXBlb2YgVEhSRUUuRm9nPjtcbmV4cG9ydCB0eXBlIE5ndEZvZ0V4cDIgPSBOZ3ROb2RlPFRIUkVFLkZvZ0V4cDIsIHR5cGVvZiBUSFJFRS5Gb2dFeHAyPjtcbmV4cG9ydCB0eXBlIE5ndFNoYXBlID0gTmd0Tm9kZTxUSFJFRS5TaGFwZSwgdHlwZW9mIFRIUkVFLlNoYXBlPjtcblxuZXhwb3J0IGludGVyZmFjZSBUaHJlZUVsZW1lbnRzIHtcbiAgICAnbmd0LW9iamVjdDNEJzogTmd0T2JqZWN0M0Q7XG5cbiAgICAvLyBgYXVkaW9gIHdvcmtzIGJ1dCBjb25mbGljdHMgd2l0aCBAdHlwZXMvcmVhY3QuIFRyeSB1c2luZyBQb3NpdGlvbmFsQXVkaW8gZnJvbSBAcmVhY3QtdGhyZWUvZHJlaSBpbnN0ZWFkXG4gICAgJ25ndC1hdWRpbyc6IE5ndEF1ZGlvO1xuICAgICduZ3QtYXVkaW8tbGlzdGVuZXInOiBOZ3RBdWRpb0xpc3RlbmVyO1xuICAgICduZ3QtcG9zaXRpb25hbC1hdWRpbyc6IE5ndFBvc2l0aW9uYWxBdWRpbztcblxuICAgICduZ3QtbWVzaCc6IE5ndE1lc2g7XG4gICAgJ25ndC1pbnN0YW5jZWQtbWVzaCc6IE5ndEluc3RhbmNlZE1lc2g7XG4gICAgJ25ndC1zY2VuZSc6IE5ndFNjZW5lO1xuICAgICduZ3Qtc3ByaXRlJzogTmd0U3ByaXRlO1xuICAgICduZ3QtbE9EJzogTmd0TE9EO1xuICAgICduZ3Qtc2tpbm5lZC1tZXNoJzogTmd0U2tpbm5lZE1lc2g7XG4gICAgJ25ndC1za2VsZXRvbic6IE5ndFNrZWxldG9uO1xuICAgICduZ3QtYm9uZSc6IE5ndEJvbmU7XG5cbiAgICAnbmd0LWxpbmUnOiBOZ3RMaW5lO1xuICAgICduZ3QtbGluZS1zZWdtZW50cyc6IE5ndExpbmVTZWdtZW50cztcbiAgICAnbmd0LWxpbmUtbG9vcCc6IE5ndExpbmVMb29wO1xuICAgICduZ3QtcG9pbnRzJzogTmd0UG9pbnRzO1xuICAgICduZ3QtZ3JvdXAnOiBOZ3RHcm91cDtcblxuICAgIC8vIGNhbWVyYXNcbiAgICAnbmd0LWNhbWVyYSc6IE5ndENhbWVyYU5vZGU7XG4gICAgJ25ndC1wZXJzcGVjdGl2ZS1jYW1lcmEnOiBOZ3RQZXJzcGVjdGl2ZUNhbWVyYTtcbiAgICAnbmd0LW9ydGhvZ3JhcGhpYy1jYW1lcmEnOiBOZ3RPcnRob2dyYXBoaWNDYW1lcmE7XG4gICAgJ25ndC1jdWJlLWNhbWVyYSc6IE5ndEN1YmVDYW1lcmE7XG4gICAgJ25ndC1hcnJheS1jYW1lcmEnOiBOZ3RBcnJheUNhbWVyYTtcblxuICAgIC8vIGdlb21ldHJ5XG4gICAgJ25ndC1pbnN0YW5jZWQtYnVmZmVyLWdlb21ldHJ5JzogTmd0SW5zdGFuY2VkQnVmZmVyR2VvbWV0cnk7XG4gICAgJ25ndC1idWZmZXItZ2VvbWV0cnknOiBOZ3RCdWZmZXJHZW9tZXRyeTtcbiAgICAnbmd0LXdpcmVmcmFtZS1nZW9tZXRyeSc6IE5ndFdpcmVmcmFtZUdlb21ldHJ5O1xuICAgICduZ3QtdGV0cmFoZWRyb24tZ2VvbWV0cnknOiBOZ3RUZXRyYWhlZHJvbkdlb21ldHJ5O1xuICAgICduZ3Qtb2N0YWhlZHJvbi1nZW9tZXRyeSc6IE5ndE9jdGFoZWRyb25HZW9tZXRyeTtcbiAgICAnbmd0LWljb3NhaGVkcm9uLWdlb21ldHJ5JzogTmd0SWNvc2FoZWRyb25HZW9tZXRyeTtcbiAgICAnbmd0LXBvbHloZWRyb24tZ2VvbWV0cnknOiBOZ3RQb2x5aGVkcm9uR2VvbWV0cnk7XG4gICAgJ25ndC1kb2RlY2FoZWRyb24tZ2VvbWV0cnknOiBOZ3REb2RlY2FoZWRyb25HZW9tZXRyeTtcbiAgICAnbmd0LXR1YmUtZ2VvbWV0cnknOiBOZ3RUdWJlR2VvbWV0cnk7XG4gICAgJ25ndC10b3J1cy1rbm90LWdlb21ldHJ5JzogTmd0VG9ydXNLbm90R2VvbWV0cnk7XG4gICAgJ25ndC10b3J1cy1nZW9tZXRyeSc6IE5ndFRvcnVzR2VvbWV0cnk7XG4gICAgJ25ndC1zcGhlcmUtZ2VvbWV0cnknOiBOZ3RTcGhlcmVHZW9tZXRyeTtcbiAgICAnbmd0LXJpbmctZ2VvbWV0cnknOiBOZ3RSaW5nR2VvbWV0cnk7XG4gICAgJ25ndC1wbGFuZS1nZW9tZXRyeSc6IE5ndFBsYW5lR2VvbWV0cnk7XG4gICAgJ25ndC1sYXRoZS1nZW9tZXRyeSc6IE5ndExhdGhlR2VvbWV0cnk7XG4gICAgJ25ndC1zaGFwZS1nZW9tZXRyeSc6IE5ndFNoYXBlR2VvbWV0cnk7XG4gICAgJ25ndC1leHRydWRlLWdlb21ldHJ5JzogTmd0RXh0cnVkZUdlb21ldHJ5O1xuICAgICduZ3QtZWRnZXMtZ2VvbWV0cnknOiBOZ3RFZGdlc0dlb21ldHJ5O1xuICAgICduZ3QtY29uZS1nZW9tZXRyeSc6IE5ndENvbmVHZW9tZXRyeTtcbiAgICAnbmd0LWN5bGluZGVyLWdlb21ldHJ5JzogTmd0Q3lsaW5kZXJHZW9tZXRyeTtcbiAgICAnbmd0LWNpcmNsZS1nZW9tZXRyeSc6IE5ndENpcmNsZUdlb21ldHJ5O1xuICAgICduZ3QtYm94LWdlb21ldHJ5JzogTmd0Qm94R2VvbWV0cnk7XG4gICAgJ25ndC1jYXBzdWxlLWdlb21ldHJ5JzogTmd0Q2Fwc3VsZUdlb21ldHJ5O1xuXG4gICAgLy8gbWF0ZXJpYWxzXG4gICAgJ25ndC1zaGFkb3ctbWF0ZXJpYWwnOiBOZ3RTaGFkb3dNYXRlcmlhbDtcbiAgICAnbmd0LXNwcml0ZS1tYXRlcmlhbCc6IE5ndFNwcml0ZU1hdGVyaWFsO1xuICAgICduZ3QtcmF3LXNoYWRlci1tYXRlcmlhbCc6IE5ndFJhd1NoYWRlck1hdGVyaWFsO1xuICAgICduZ3Qtc2hhZGVyLW1hdGVyaWFsJzogTmd0U2hhZGVyTWF0ZXJpYWw7XG4gICAgJ25ndC1wb2ludHMtbWF0ZXJpYWwnOiBOZ3RQb2ludHNNYXRlcmlhbDtcbiAgICAnbmd0LW1lc2gtcGh5c2ljYWwtbWF0ZXJpYWwnOiBOZ3RNZXNoUGh5c2ljYWxNYXRlcmlhbDtcbiAgICAnbmd0LW1lc2gtc3RhbmRhcmQtbWF0ZXJpYWwnOiBOZ3RNZXNoU3RhbmRhcmRNYXRlcmlhbDtcbiAgICAnbmd0LW1lc2gtcGhvbmctbWF0ZXJpYWwnOiBOZ3RNZXNoUGhvbmdNYXRlcmlhbDtcbiAgICAnbmd0LW1lc2gtdG9vbi1tYXRlcmlhbCc6IE5ndE1lc2hUb29uTWF0ZXJpYWw7XG4gICAgJ25ndC1tZXNoLW5vcm1hbC1tYXRlcmlhbCc6IE5ndE1lc2hOb3JtYWxNYXRlcmlhbDtcbiAgICAnbmd0LW1lc2gtbGFtYmVydC1tYXRlcmlhbCc6IE5ndE1lc2hMYW1iZXJ0TWF0ZXJpYWw7XG4gICAgJ25ndC1tZXNoLWRlcHRoLW1hdGVyaWFsJzogTmd0TWVzaERlcHRoTWF0ZXJpYWw7XG4gICAgJ25ndC1tZXNoLWRpc3RhbmNlLW1hdGVyaWFsJzogTmd0TWVzaERpc3RhbmNlTWF0ZXJpYWw7XG4gICAgJ25ndC1tZXNoLWJhc2ljLW1hdGVyaWFsJzogTmd0TWVzaEJhc2ljTWF0ZXJpYWw7XG4gICAgJ25ndC1tZXNoLW1hdGNhcC1tYXRlcmlhbCc6IE5ndE1lc2hNYXRjYXBNYXRlcmlhbDtcbiAgICAnbmd0LWxpbmUtZGFzaGVkLW1hdGVyaWFsJzogTmd0TGluZURhc2hlZE1hdGVyaWFsO1xuICAgICduZ3QtbGluZS1iYXNpYy1tYXRlcmlhbCc6IE5ndExpbmVCYXNpY01hdGVyaWFsO1xuXG4gICAgLy8gcHJpbWl0aXZlXG4gICAgJ25ndC1wcmltaXRpdmUnOiBOZ3RQcmltaXRpdmU7XG5cbiAgICAvLyByYXdWYWx1ZVxuICAgICduZ3QtdmFsdWUnOiBOZ3RWYWx1ZTtcblxuICAgIC8vIGxpZ2h0cyBhbmQgb3RoZXJcbiAgICAnbmd0LXNwb3QtbGlnaHQtc2hhZG93JzogTmd0U3BvdExpZ2h0U2hhZG93O1xuICAgICduZ3Qtc3BvdC1saWdodCc6IE5ndFNwb3RMaWdodDtcbiAgICAnbmd0LXBvaW50LWxpZ2h0JzogTmd0UG9pbnRMaWdodDtcbiAgICAnbmd0LXJlY3QtYXJlYS1saWdodCc6IE5ndFJlY3RBcmVhTGlnaHQ7XG4gICAgJ25ndC1oZW1pc3BoZXJlLWxpZ2h0JzogTmd0SGVtaXNwaGVyZUxpZ2h0O1xuICAgICduZ3QtZGlyZWN0aW9uYWwtbGlnaHQtc2hhZG93JzogTmd0RGlyZWN0aW9uYWxMaWdodFNoYWRvdztcbiAgICAnbmd0LWRpcmVjdGlvbmFsLWxpZ2h0JzogTmd0RGlyZWN0aW9uYWxMaWdodDtcbiAgICAnbmd0LWFtYmllbnQtbGlnaHQnOiBOZ3RBbWJpZW50TGlnaHQ7XG4gICAgJ25ndC1saWdodC1zaGFkb3cnOiBOZ3RMaWdodFNoYWRvdztcbiAgICAnbmd0LWFtYmllbnQtbGlnaHQtcHJvYmUnOiBOZ3RBbWJpZW50TGlnaHRQcm9iZTtcbiAgICAnbmd0LWhlbWlzcGhlcmUtbGlnaHQtcHJvYmUnOiBOZ3RIZW1pc3BoZXJlTGlnaHRQcm9iZTtcbiAgICAnbmd0LWxpZ2h0LXByb2JlJzogTmd0TGlnaHRQcm9iZTtcblxuICAgIC8vIGhlbHBlcnNcbiAgICAnbmd0LXNwb3QtbGlnaHQtaGVscGVyJzogTmd0U3BvdExpZ2h0SGVscGVyO1xuICAgICduZ3Qtc2tlbGV0b24taGVscGVyJzogTmd0U2tlbGV0b25IZWxwZXI7XG4gICAgJ25ndC1wb2ludC1saWdodC1oZWxwZXInOiBOZ3RQb2ludExpZ2h0SGVscGVyO1xuICAgICduZ3QtaGVtaXNwaGVyZS1saWdodC1oZWxwZXInOiBOZ3RIZW1pc3BoZXJlTGlnaHRIZWxwZXI7XG4gICAgJ25ndC1ncmlkLWhlbHBlcic6IE5ndEdyaWRIZWxwZXI7XG4gICAgJ25ndC1wb2xhci1ncmlkLWhlbHBlcic6IE5ndFBvbGFyR3JpZEhlbHBlcjtcbiAgICAnbmd0LWRpcmVjdGlvbmFsLWxpZ2h0LWhlbHBlcic6IE5ndERpcmVjdGlvbmFsTGlnaHRIZWxwZXI7XG4gICAgJ25ndC1jYW1lcmEtaGVscGVyJzogTmd0Q2FtZXJhSGVscGVyO1xuICAgICduZ3QtYm94LWhlbHBlcic6IE5ndEJveEhlbHBlcjtcbiAgICAnbmd0LWJveDMtaGVscGVyJzogTmd0Qm94M0hlbHBlcjtcbiAgICAnbmd0LXBsYW5lLWhlbHBlcic6IE5ndFBsYW5lSGVscGVyO1xuICAgICduZ3QtYXJyb3ctaGVscGVyJzogTmd0QXJyb3dIZWxwZXI7XG4gICAgJ25ndC1heGVzLWhlbHBlcic6IE5ndEF4ZXNIZWxwZXI7XG5cbiAgICAvLyB0ZXh0dXJlc1xuICAgICduZ3QtdGV4dHVyZSc6IE5ndFRleHR1cmU7XG4gICAgJ25ndC12aWRlby10ZXh0dXJlJzogTmd0VmlkZW9UZXh0dXJlO1xuICAgICduZ3QtZGF0YS10ZXh0dXJlJzogTmd0RGF0YVRleHR1cmU7XG4gICAgJ25ndC1kYXRhM0QtdGV4dHVyZSc6IE5ndERhdGEzRFRleHR1cmU7XG4gICAgJ25ndC1jb21wcmVzc2VkLXRleHR1cmUnOiBOZ3RDb21wcmVzc2VkVGV4dHVyZTtcbiAgICAnbmd0LWN1YmUtdGV4dHVyZSc6IE5ndEN1YmVUZXh0dXJlO1xuICAgICduZ3QtY2FudmFzLXRleHR1cmUnOiBOZ3RDYW52YXNUZXh0dXJlO1xuICAgICduZ3QtZGVwdGgtdGV4dHVyZSc6IE5ndERlcHRoVGV4dHVyZTtcblxuICAgIC8vIG1pc2NcbiAgICAnbmd0LXJheWNhc3Rlcic6IE5ndFJheWNhc3RlcjtcbiAgICAnbmd0LXZlY3RvcjInOiBOZ3RWZWN0b3IyTm9kZTtcbiAgICAnbmd0LXZlY3RvcjMnOiBOZ3RWZWN0b3IzTm9kZTtcbiAgICAnbmd0LXZlY3RvcjQnOiBOZ3RWZWN0b3I0Tm9kZTtcbiAgICAnbmd0LWV1bGVyJzogTmd0RXVsZXJOb2RlO1xuICAgICduZ3QtbWF0cml4Myc6IE5ndE1hdHJpeDNOb2RlO1xuICAgICduZ3QtbWF0cml4NCc6IE5ndE1hdHJpeDROb2RlO1xuICAgICduZ3QtcXVhdGVybmlvbic6IE5ndFF1YXRlcm5pb25Ob2RlO1xuICAgICduZ3QtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEJ1ZmZlckF0dHJpYnV0ZTtcbiAgICAnbmd0LWZsb2F0MTYtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEZsb2F0MTZCdWZmZXJBdHRyaWJ1dGU7XG4gICAgJ25ndC1mbG9hdDMyLWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RGbG9hdDMyQnVmZmVyQXR0cmlidXRlO1xuICAgICduZ3QtZmxvYXQ2NC1idWZmZXItYXR0cmlidXRlJzogTmd0RmxvYXQ2NEJ1ZmZlckF0dHJpYnV0ZTtcbiAgICAnbmd0LWludDgtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndEludDhCdWZmZXJBdHRyaWJ1dGU7XG4gICAgJ25ndC1pbnQxNi1idWZmZXItYXR0cmlidXRlJzogTmd0SW50MTZCdWZmZXJBdHRyaWJ1dGU7XG4gICAgJ25ndC1pbnQzMi1idWZmZXItYXR0cmlidXRlJzogTmd0SW50MzJCdWZmZXJBdHRyaWJ1dGU7XG4gICAgJ25ndC11bml0OC1idWZmZXItYXR0cmlidXRlJzogTmd0VWludDhCdWZmZXJBdHRyaWJ1dGU7XG4gICAgJ25ndC11bml0MTYtYnVmZmVyLWF0dHJpYnV0ZSc6IE5ndFVpbnQxNkJ1ZmZlckF0dHJpYnV0ZTtcbiAgICAnbmd0LXVuaXQzMi1idWZmZXItYXR0cmlidXRlJzogTmd0VWludDMyQnVmZmVyQXR0cmlidXRlO1xuICAgICduZ3QtaW5zdGFuY2VkLWJ1ZmZlci1hdHRyaWJ1dGUnOiBOZ3RJbnN0YW5jZWRCdWZmZXJBdHRyaWJ1dGU7XG4gICAgJ25ndC1jb2xvcic6IE5ndENvbG9yO1xuICAgICduZ3QtZm9nJzogTmd0Rm9nO1xuICAgICduZ3QtZm9nLWV4cDInOiBOZ3RGb2dFeHAyO1xuICAgICduZ3Qtc2hhcGUnOiBOZ3RTaGFwZTtcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAgZXh0ZW5kcyBUaHJlZUVsZW1lbnRzIHt9XG59XG4iXX0=
|
package/esm2022/lib/types.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgdHlwZSB7IE5ndFNpZ25hbFN0b3JlIH0gZnJvbSAnLi9zdG9yZXMvc2lnbmFsLnN0b3JlJztcblxuZXhwb3J0IHR5cGUgTmd0QW55UmVjb3JkID0gUmVjb3JkPHN0cmluZywgYW55PjtcbmV4cG9ydCB0eXBlIE5ndFByb3BlcnRpZXM8VD4gPSBQaWNrPFQsIHsgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyAoXzogYW55KSA9PiBhbnkgPyBuZXZlciA6IEsgfVtrZXlvZiBUXT47XG5cbmV4cG9ydCB0eXBlIE5ndEVxdUNvbmZpZyA9IHtcbiAgICAvKiogQ29tcGFyZSBhcnJheXMgYnkgcmVmZXJlbmNlIGVxdWFsaXR5IGEgPT09IGIgKGRlZmF1bHQpLCBvciBieSBzaGFsbG93IGVxdWFsaXR5ICovXG4gICAgYXJyYXlzPzogJ3JlZmVyZW5jZScgfCAnc2hhbGxvdyc7XG4gICAgLyoqIENvbXBhcmUgb2JqZWN0cyBieSByZWZlcmVuY2UgZXF1YWxpdHkgYSA9PT0gYiAoZGVmYXVsdCksIG9yIGJ5IHNoYWxsb3cgZXF1YWxpdHkgKi9cbiAgICBvYmplY3RzPzogJ3JlZmVyZW5jZScgfCAnc2hhbGxvdyc7XG4gICAgLyoqIElmIHRydWUgdGhlIGtleXMgaW4gYm90aCBhIGFuZCBiIG11c3QgbWF0Y2ggMToxIChkZWZhdWx0KSwgaWYgZmFsc2UgYSdzIGtleXMgbXVzdCBpbnRlcnNlY3QgYidzICovXG4gICAgc3RyaWN0PzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndERwciA9IG51bWJlciB8IFttaW46IG51bWJlciwgbWF4OiBudW1iZXJdO1xuZXhwb3J0IHR5cGUgTmd0U2l6ZSA9IHtcbiAgICB3aWR0aDogbnVtYmVyO1xuICAgIGhlaWdodDogbnVtYmVyO1xuICAgIHRvcDogbnVtYmVyO1xuICAgIGxlZnQ6IG51bWJlcjtcbn07XG5leHBvcnQgdHlwZSBOZ3RWaWV3cG9ydCA9IE5ndFNpemUgJiB7XG4gICAgLyoqIFRoZSBpbml0aWFsIHBpeGVsIHJhdGlvICovXG4gICAgaW5pdGlhbERwcjogbnVtYmVyO1xuICAgIC8qKiBDdXJyZW50IHBpeGVsIHJhdGlvICovXG4gICAgZHByOiBudW1iZXI7XG4gICAgLyoqIHNpemUud2lkdGggLyB2aWV3cG9ydC53aWR0aCAqL1xuICAgIGZhY3RvcjogbnVtYmVyO1xuICAgIC8qKiBDYW1lcmEgZGlzdGFuY2UgKi9cbiAgICBkaXN0YW5jZTogbnVtYmVyO1xuICAgIC8qKiBDYW1lcmEgYXNwZWN0IHJhdGlvOiB3aWR0aCAvIGhlaWdodCAqL1xuICAgIGFzcGVjdDogbnVtYmVyO1xufTtcbmV4cG9ydCB0eXBlIE5ndFBlcmZvcm1hbmNlID0ge1xuICAgIC8qKiBDdXJyZW50IHBlcmZvcm1hbmNlIG5vcm1hbCwgYmV0d2VlbiBtaW4gYW5kIG1heCAqL1xuICAgIGN1cnJlbnQ6IG51bWJlcjtcbiAgICAvKiogSG93IGxvdyB0aGUgcGVyZm9ybWFuY2UgY2FuIGdvLCBiZXR3ZWVuIDAgYW5kIG1heCAqL1xuICAgIG1pbjogbnVtYmVyO1xuICAgIC8qKiBIb3cgaGlnaCB0aGUgcGVyZm9ybWFuY2UgY2FuIGdvLCBiZXR3ZWVuIG1pbiBhbmQgbWF4ICovXG4gICAgbWF4OiBudW1iZXI7XG4gICAgLyoqIFRpbWUgdW50aWwgY3VycmVudCByZXR1cm5zIHRvIG1heCBpbiBtcyAqL1xuICAgIGRlYm91bmNlOiBudW1iZXI7XG4gICAgLyoqIFNldHMgY3VycmVudCB0byBtaW4sIHB1dHMgdGhlIHN5c3RlbSBpbiByZWdyZXNzaW9uICovXG4gICAgcmVncmVzczogKCkgPT4gdm9pZDtcbn07XG5leHBvcnQgdHlwZSBOZ3RSZW5kZXJlciA9IHsgcmVuZGVyOiAoc2NlbmU6IFRIUkVFLlNjZW5lLCBjYW1lcmE6IFRIUkVFLkNhbWVyYSkgPT4gYW55IH07XG5leHBvcnQgdHlwZSBOZ3RDYW1lcmEgPSBUSFJFRS5PcnRob2dyYXBoaWNDYW1lcmEgfCBUSFJFRS5QZXJzcGVjdGl2ZUNhbWVyYTtcbmV4cG9ydCB0eXBlIE5ndENhbWVyYU1hbnVhbCA9IE5ndENhbWVyYSAmIHsgbWFudWFsPzogYm9vbGVhbiB9O1xuZXhwb3J0IHR5cGUgTmd0SW50ZXJzZWN0aW9uID0gVEhSRUUuSW50ZXJzZWN0aW9uICYge1xuICAgIC8qKiBUaGUgZXZlbnQgc291cmNlICh0aGUgb2JqZWN0IHdoaWNoIHJlZ2lzdGVyZWQgdGhlIGhhbmRsZXIpICovXG4gICAgZXZlbnRPYmplY3Q6IFRIUkVFLk9iamVjdDNEO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0SW50ZXJzZWN0aW9uRXZlbnQ8VFNvdXJjZUV2ZW50PiA9IE5ndEludGVyc2VjdGlvbiAmIHtcbiAgICAvKiogVGhlIGV2ZW50IHNvdXJjZSAodGhlIG9iamVjdCB3aGljaCByZWdpc3RlcmVkIHRoZSBoYW5kbGVyKSAqL1xuICAgIGV2ZW50T2JqZWN0OiBUSFJFRS5PYmplY3QzRDtcbiAgICAvKiogQW4gYXJyYXkgb2YgaW50ZXJzZWN0aW9ucyAqL1xuICAgIGludGVyc2VjdGlvbnM6IE5ndEludGVyc2VjdGlvbltdO1xuICAgIC8qKiB2ZWMzLnNldChwb2ludGVyLngsIHBvaW50ZXIueSwgMCkudW5wcm9qZWN0KGNhbWVyYSkgKi9cbiAgICB1bnByb2plY3RlZFBvaW50OiBUSFJFRS5WZWN0b3IzO1xuICAgIC8qKiBOb3JtYWxpemVkIGV2ZW50IGNvb3JkaW5hdGVzICovXG4gICAgcG9pbnRlcjogVEhSRUUuVmVjdG9yMjtcbiAgICAvKiogRGVsdGEgYmV0d2VlbiBmaXJzdCBjbGljayBhbmQgdGhpcyBldmVudCAqL1xuICAgIGRlbHRhOiBudW1iZXI7XG4gICAgLyoqIFRoZSByYXkgdGhhdCBwaWVyY2VkIGl0ICovXG4gICAgcmF5OiBUSFJFRS5SYXk7XG4gICAgLyoqIFRoZSBjYW1lcmEgdGhhdCB3YXMgdXNlZCBieSB0aGUgcmF5Y2FzdGVyICovXG4gICAgY2FtZXJhOiBOZ3RDYW1lcmFNYW51YWw7XG4gICAgLyoqIHN0b3BQcm9wYWdhdGlvbiB3aWxsIHN0b3AgdW5kZXJseWluZyBoYW5kbGVycyBmcm9tIGZpcmluZyAqL1xuICAgIHN0b3BQcm9wYWdhdGlvbjogKCkgPT4gdm9pZDtcbiAgICAvKiogVGhlIG9yaWdpbmFsIGhvc3QgZXZlbnQgKi9cbiAgICBuYXRpdmVFdmVudDogVFNvdXJjZUV2ZW50O1xuICAgIC8qKiBJZiB0aGUgZXZlbnQgd2FzIHN0b3BwZWQgYnkgY2FsbGluZyBzdG9wUHJvcGFnYXRpb24gKi9cbiAgICBzdG9wcGVkOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0VGhyZWVFdmVudDxURXZlbnQ+ID0gTmd0SW50ZXJzZWN0aW9uRXZlbnQ8VEV2ZW50PiAmIE5ndFByb3BlcnRpZXM8VEV2ZW50PjtcbmV4cG9ydCB0eXBlIE5ndERvbUV2ZW50ID0gUG9pbnRlckV2ZW50IHwgTW91c2VFdmVudCB8IFdoZWVsRXZlbnQ7XG5cbmV4cG9ydCB0eXBlIE5ndEV2ZW50SGFuZGxlcnMgPSB7XG4gICAgY2xpY2s/OiAoZXZlbnQ6IE5ndFRocmVlRXZlbnQ8TW91c2VFdmVudD4pID0+IHZvaWQ7XG4gICAgY29udGV4dG1lbnU/OiAoZXZlbnQ6IE5ndFRocmVlRXZlbnQ8TW91c2VFdmVudD4pID0+IHZvaWQ7XG4gICAgZGJsY2xpY2s/OiAoZXZlbnQ6IE5ndFRocmVlRXZlbnQ8TW91c2VFdmVudD4pID0+IHZvaWQ7XG4gICAgcG9pbnRlcnVwPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pID0+IHZvaWQ7XG4gICAgcG9pbnRlcmRvd24/OiAoZXZlbnQ6IE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50PikgPT4gdm9pZDtcbiAgICBwb2ludGVyb3Zlcj86IChldmVudDogTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSA9PiB2b2lkO1xuICAgIHBvaW50ZXJvdXQ/OiAoZXZlbnQ6IE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50PikgPT4gdm9pZDtcbiAgICBwb2ludGVyZW50ZXI/OiAoZXZlbnQ6IE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50PikgPT4gdm9pZDtcbiAgICBwb2ludGVybGVhdmU/OiAoZXZlbnQ6IE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50PikgPT4gdm9pZDtcbiAgICBwb2ludGVybW92ZT86IChldmVudDogTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSA9PiB2b2lkO1xuICAgIHBvaW50ZXJtaXNzZWQ/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgcG9pbnRlcmNhbmNlbD86IChldmVudDogTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSA9PiB2b2lkO1xuICAgIHdoZWVsPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFdoZWVsRXZlbnQ+KSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0RXZlbnRzID0ge1xuICAgIFtURXZlbnQgaW4ga2V5b2YgTmd0RXZlbnRIYW5kbGVyc10tPzogRXZlbnRMaXN0ZW5lcjtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndEZpbHRlckZ1bmN0aW9uID0gKGl0ZW1zOiBUSFJFRS5JbnRlcnNlY3Rpb25bXSwgc3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPikgPT4gVEhSRUUuSW50ZXJzZWN0aW9uW107XG5leHBvcnQgdHlwZSBOZ3RDb21wdXRlRnVuY3Rpb24gPSAoXG4gICAgZXZlbnQ6IE5ndERvbUV2ZW50LFxuICAgIHJvb3Q6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPixcbiAgICBwcmV2aW91cz86IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPlxuKSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBOZ3RFdmVudE1hbmFnZXI8VFRhcmdldD4gPSB7XG4gICAgLyoqIERldGVybWluZXMgaWYgdGhlIGV2ZW50IGxheWVyIGlzIGFjdGl2ZSAqL1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqIEV2ZW50IGxheWVyIHByaW9yaXR5LCBoaWdoZXIgcHJpb3JpdGl6ZWQgbGF5ZXJzIGNvbWUgZmlyc3QgYW5kIG1heSBzdG9wKC1wcm9wYWdhdGUpIGxvd2VyIGxheWVyICAqL1xuICAgIHByaW9yaXR5OiBudW1iZXI7XG4gICAgLyoqIFRoZSBjb21wdXRlIGZ1bmN0aW9uIG5lZWRzIHRvIHNldCB1cCB0aGUgcmF5Y2FzdGVyIGFuZCBhbiB4eS0gcG9pbnRlciAgKi9cbiAgICBjb21wdXRlPzogTmd0Q29tcHV0ZUZ1bmN0aW9uO1xuICAgIC8qKiBUaGUgZmlsdGVyIGNhbiByZS1vcmRlciBvciByZS1zdHJ1Y3R1cmUgdGhlIGludGVyc2VjdGlvbnMgICovXG4gICAgZmlsdGVyPzogTmd0RmlsdGVyRnVuY3Rpb247XG4gICAgLyoqIFRoZSB0YXJnZXQgbm9kZSB0aGUgZXZlbnQgbGF5ZXIgaXMgdGllZCB0byAqL1xuICAgIGNvbm5lY3RlZD86IFRUYXJnZXQ7XG4gICAgLyoqIEFsbCB0aGUgcG9pbnRlciBldmVudCBoYW5kbGVycyB0aHJvdWdoIHdoaWNoIHRoZSBob3N0IGZvcndhcmRzIG5hdGl2ZSBldmVudHMgKi9cbiAgICBoYW5kbGVycz86IE5ndEV2ZW50cztcbiAgICAvKiogQWxsb3dzIHJlLWNvbm5lY3RpbmcgdG8gYW5vdGhlciB0YXJnZXQgKi9cbiAgICBjb25uZWN0PzogKHRhcmdldDogVFRhcmdldCkgPT4gdm9pZDtcbiAgICAvKiogUmVtb3ZlcyBhbGwgZXhpc3RpbmcgZXZlbnRzIGhhbmRsZXJzIGZyb20gdGhlIHRhcmdldCAqL1xuICAgIGRpc2Nvbm5lY3Q/OiAoKSA9PiB2b2lkO1xuICAgIC8qKiBUcmlnZ2VycyBhIG9uUG9pbnRlck1vdmUgd2l0aCB0aGUgbGFzdCBrbm93biBldmVudC4gVGhpcyBjYW4gYmUgdXNlZnVsIHRvIGVuYWJsZSByYXljYXN0aW5nIHdpdGhvdXRcbiAgICAgKiAgZXhwbGljaXQgdXNlciBpbnRlcmFjdGlvbiwgZm9yIGluc3RhbmNlIHdoZW4gdGhlIGNhbWVyYSBtb3ZlcyBhIGhvdmVyYWJsZSBvYmplY3QgdW5kZXJuZWF0aCB0aGUgY3Vyc29yLlxuICAgICAqL1xuICAgIHVwZGF0ZT86ICgpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RQb2ludGVyQ2FwdHVyZVRhcmdldCA9IHtcbiAgICBpbnRlcnNlY3Rpb246IE5ndEludGVyc2VjdGlvbjtcbiAgICB0YXJnZXQ6IEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RSZW5kZXJTdGF0ZSA9IE5ndFN0YXRlICYgeyBkZWx0YTogbnVtYmVyOyBmcmFtZT86IFhSRnJhbWUgfTtcblxuZXhwb3J0IHR5cGUgTmd0QmVmb3JlUmVuZGVyRXZlbnQ8VE9iamVjdCBleHRlbmRzIE5ndEluc3RhbmNlTm9kZSA9IE5ndEluc3RhbmNlTm9kZT4gPSB7XG4gICAgc3RhdGU6IE5ndFJlbmRlclN0YXRlO1xuICAgIG9iamVjdDogVE9iamVjdDtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndEJlZm9yZVJlbmRlclJlY29yZCA9IHtcbiAgICBjYWxsYmFjazogKHN0YXRlOiBOZ3RSZW5kZXJTdGF0ZSkgPT4gdm9pZDtcbiAgICBzdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+O1xuICAgIHByaW9yaXR5PzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0SW50ZXJuYWxTdGF0ZSA9IHtcbiAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgcHJpb3JpdHk6IG51bWJlcjtcbiAgICBmcmFtZXM6IG51bWJlcjtcbiAgICBsYXN0RXZlbnQ6IEVsZW1lbnRSZWY8Tmd0RG9tRXZlbnQgfCBudWxsPjtcbiAgICBpbnRlcmFjdGlvbjogVEhSRUUuT2JqZWN0M0RbXTtcbiAgICBob3ZlcmVkOiBNYXA8c3RyaW5nLCBOZ3RUaHJlZUV2ZW50PE5ndERvbUV2ZW50Pj47XG4gICAgc3Vic2NyaWJlcnM6IE5ndEJlZm9yZVJlbmRlclJlY29yZFtdO1xuICAgIGNhcHR1cmVkTWFwOiBNYXA8bnVtYmVyLCBNYXA8VEhSRUUuT2JqZWN0M0QsIE5ndFBvaW50ZXJDYXB0dXJlVGFyZ2V0Pj47XG4gICAgaW5pdGlhbENsaWNrOiBbeDogbnVtYmVyLCB5OiBudW1iZXJdO1xuICAgIGluaXRpYWxIaXRzOiBUSFJFRS5PYmplY3QzRFtdO1xuICAgIHN1YnNjcmliZTogKFxuICAgICAgICBjYWxsYmFjazogTmd0QmVmb3JlUmVuZGVyUmVjb3JkWydjYWxsYmFjayddLFxuICAgICAgICBwcmlvcml0eT86IG51bWJlcixcbiAgICAgICAgc3RvcmU/OiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT5cbiAgICApID0+ICgpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RTdGF0ZSA9IHtcbiAgICBnZXQ6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPlsnZ2V0J107XG4gICAgc2V0OiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT5bJ3NldCddO1xuICAgIC8qKiB3aGVuIGFsbCBidWlsZGluZyBibG9ja3MgYXJlIGluaXRpYWxpemVkICovXG4gICAgcmVhZHk6IGJvb2xlYW47XG4gICAgLyoqIFRoZSBpbnN0YW5jZSBvZiB0aGUgcmVuZGVyZXIgKi9cbiAgICBnbDogVEhSRUUuV2ViR0xSZW5kZXJlcjtcbiAgICAvKiogRGVmYXVsdCBjYW1lcmEgKi9cbiAgICBjYW1lcmE6IE5ndENhbWVyYU1hbnVhbDtcbiAgICAvKiogRGVmYXVsdCBzY2VuZSAqL1xuICAgIHNjZW5lOiBUSFJFRS5TY2VuZTtcbiAgICAvKiogRGVmYXVsdCByYXljYXN0ZXIgKi9cbiAgICByYXljYXN0ZXI6IFRIUkVFLlJheWNhc3RlcjtcbiAgICAvKiogRGVmYXVsdCBjbG9jayAqL1xuICAgIGNsb2NrOiBUSFJFRS5DbG9jaztcbiAgICAvKiogRXZlbnQgbGF5ZXIgaW50ZXJmYWNlLCBjb250YWlucyB0aGUgZXZlbnQgaGFuZGxlciBhbmQgdGhlIG5vZGUgdGhleSdyZSBjb25uZWN0ZWQgdG8gKi9cbiAgICBldmVudHM6IE5ndEV2ZW50TWFuYWdlcjxhbnk+O1xuICAgIC8qKiBYUiBpbnRlcmZhY2UgKi9cbiAgICB4cjogeyBjb25uZWN0OiAoKSA9PiB2b2lkOyBkaXNjb25uZWN0OiAoKSA9PiB2b2lkIH07XG4gICAgLyoqIEN1cnJlbnRseSB1c2VkIGNvbnRyb2xzICovXG4gICAgY29udHJvbHM6IFRIUkVFLkV2ZW50RGlzcGF0Y2hlciB8IG51bGw7XG4gICAgLyoqIE5vcm1hbGl6ZWQgZXZlbnQgY29vcmRpbmF0ZXMgKi9cbiAgICBwb2ludGVyOiBUSFJFRS5WZWN0b3IyO1xuICAgIC8qIFdoZXRoZXIgdG8gZW5hYmxlIHIxMzkncyBUSFJFRS5Db2xvck1hbmFnZW1lbnQubGVnYWN5TW9kZSAqL1xuICAgIGxlZ2FjeTogYm9vbGVhbjtcbiAgICAvKiogU2hvcnRjdXQgdG8gZ2wub3V0cHV0RW5jb2RpbmcgPSBMaW5lYXJFbmNvZGluZyAqL1xuICAgIGxpbmVhcjogYm9vbGVhbjtcbiAgICAvKiogU2hvcnRjdXQgdG8gZ2wudG9uZU1hcHBpbmcgPSBOb1RvbmVtYXBwaW5nICovXG4gICAgZmxhdDogYm9vbGVhbjtcbiAgICAvKiogUmVuZGVyIGxvb3AgZmxhZ3MgKi9cbiAgICBmcmFtZWxvb3A6ICdhbHdheXMnIHwgJ2RlbWFuZCcgfCAnbmV2ZXInO1xuICAgIC8qKiBBZGFwdGl2ZSBwZXJmb3JtYW5jZSBpbnRlcmZhY2UgKi9cbiAgICBwZXJmb3JtYW5jZTogTmd0UGVyZm9ybWFuY2U7XG4gICAgLyoqIFJlYWN0aXZlIHBpeGVsLXNpemUgb2YgdGhlIGNhbnZhcyAqL1xuICAgIHNpemU6IE5ndFNpemU7XG4gICAgLyoqIFJlYWN0aXZlIHNpemUgb2YgdGhlIHZpZXdwb3J0IGluIHRocmVlanMgdW5pdHMgKi9cbiAgICB2aWV3cG9ydDogTmd0Vmlld3BvcnQgJiB7XG4gICAgICAgIGdldEN1cnJlbnRWaWV3cG9ydDogKFxuICAgICAgICAgICAgY2FtZXJhPzogTmd0Q2FtZXJhTWFudWFsLFxuICAgICAgICAgICAgdGFyZ2V0PzogVEhSRUUuVmVjdG9yMyB8IFBhcmFtZXRlcnM8VEhSRUUuVmVjdG9yM1snc2V0J10+LFxuICAgICAgICAgICAgc2l6ZT86IE5ndFNpemVcbiAgICAgICAgKSA9PiBPbWl0PE5ndFZpZXdwb3J0LCAnZHByJyB8ICdpbml0aWFsRHByJz47XG4gICAgfTtcbiAgICAvKiogRmxhZ3MgdGhlIGNhbnZhcyBmb3IgcmVuZGVyLCBidXQgZG9lc24ndCByZW5kZXIgaW4gaXRzZWxmICovXG4gICAgaW52YWxpZGF0ZTogKGZyYW1lcz86IG51bWJlcikgPT4gdm9pZDtcbiAgICAvKiogQWR2YW5jZSAocmVuZGVyKSBvbmUgc3RlcCAqL1xuICAgIGFkdmFuY2U6ICh0aW1lc3RhbXA6IG51bWJlciwgcnVuR2xvYmFsRWZmZWN0cz86IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgLyoqIFNob3J0Y3V0IHRvIHNldHRpbmcgdGhlIGV2ZW50IGxheWVyICovXG4gICAgc2V0RXZlbnRzOiAoZXZlbnRzOiBQYXJ0aWFsPE5ndEV2ZW50TWFuYWdlcjxhbnk+PikgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiBTaG9ydGN1dCB0byBtYW51YWwgc2l6aW5nXG4gICAgICovXG4gICAgc2V0U2l6ZTogKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCB0b3A/OiBudW1iZXIsIGxlZnQ/OiBudW1iZXIpID0+IHZvaWQ7XG4gICAgLyoqIFNob3J0Y3V0IHRvIG1hbnVhbCBzZXR0aW5nIHRoZSBwaXhlbCByYXRpbyAqL1xuICAgIHNldERwcjogKGRwcjogTmd0RHByKSA9PiB2b2lkO1xuICAgIC8qKiBTaG9ydGN1dCB0byBmcmFtZWxvb3AgZmxhZ3MgKi9cbiAgICBzZXRGcmFtZWxvb3A6IChmcmFtZWxvb3A/OiAnYWx3YXlzJyB8ICdkZW1hbmQnIHwgJ25ldmVyJykgPT4gdm9pZDtcbiAgICAvKiogV2hlbiB0aGUgY2FudmFzIHdhcyBjbGlja2VkIGJ1dCBub3RoaW5nIHdhcyBoaXQgKi9cbiAgICBvblBvaW50ZXJNaXNzZWQ/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgLyoqIElmIHRoaXMgc3RhdGUgbW9kZWwgaXMgbGF5ZXJkICh2aWEgY3JlYXRlUG9ydGFsKSB0aGVuIHRoaXMgY29udGFpbnMgdGhlIHByZXZpb3VzIGxheWVyICovXG4gICAgcHJldmlvdXNTdG9yZT86IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPjtcbiAgICAvKiogSW50ZXJuYWxzICovXG4gICAgaW50ZXJuYWw6IE5ndEludGVybmFsU3RhdGU7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RBdHRhY2hGdW5jdGlvbjxUQ2hpbGQgPSBhbnksIFRQYXJlbnQgPSBhbnk+ID0gKFxuICAgIHBhcmVudDogVFBhcmVudCxcbiAgICBjaGlsZDogVENoaWxkLFxuICAgIHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT5cbikgPT4gdm9pZCB8ICgoKSA9PiB2b2lkKTtcblxuZXhwb3J0IHR5cGUgTmd0QWZ0ZXJBdHRhY2g8XG4gICAgVFBhcmVudCBleHRlbmRzIE5ndEluc3RhbmNlTm9kZSA9IE5ndEluc3RhbmNlTm9kZSxcbiAgICBUQ2hpbGQgZXh0ZW5kcyBOZ3RJbnN0YW5jZU5vZGUgPSBOZ3RJbnN0YW5jZU5vZGVcbj4gPSB7IHBhcmVudDogVFBhcmVudDsgbm9kZTogVENoaWxkIH07XG5cbmV4cG9ydCB0eXBlIE5ndEluc3RhbmNlTG9jYWxTdGF0ZSA9IHtcbiAgICAvKiogdGhlIHN0YXRlIGdldHRlciBvZiB0aGUgY2FudmFzIHRoYXQgdGhlIGluc3RhbmNlIGlzIGJlaW5nIHJlbmRlcmVkIHRvICovXG4gICAgc3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPjtcbiAgICAvLyBvYmplY3RzIGFuZCBwYXJlbnQgYXJlIHVzZWQgd2hlbiBjaGlsZHJlbiBhcmUgYWRkZWQgd2l0aCBgYXR0YWNoYCBpbnN0ZWFkIG9mIGJlaW5nIGFkZGVkIHRvIHRoZSBPYmplY3QzRCBzY2VuZSBncmFwaFxuICAgIG5vbk9iamVjdHM6IFdyaXRhYmxlU2lnbmFsPE5ndEluc3RhbmNlTm9kZVtdPjtcbiAgICAvLyBvYmplY3RzIHRoYXQgYXJlIE9iamVjdDNEXG4gICAgb2JqZWN0czogV3JpdGFibGVTaWduYWw8Tmd0SW5zdGFuY2VOb2RlW10+O1xuICAgIC8vIHNob3J0Y3V0IHRvIGFkZC9yZW1vdmUgb2JqZWN0IHRvIGxpc3RcbiAgICBhZGQ6IChpbnN0YW5jZTogTmd0SW5zdGFuY2VOb2RlLCB0eXBlOiAnb2JqZWN0cycgfCAnbm9uT2JqZWN0cycpID0+IHZvaWQ7XG4gICAgcmVtb3ZlOiAoaW5zdGFuY2U6IE5ndEluc3RhbmNlTm9kZSwgdHlwZTogJ29iamVjdHMnIHwgJ25vbk9iamVjdHMnKSA9PiB2b2lkO1xuICAgIC8vIHBhcmVudCBiYXNlZCBvbiBhdHRhY2ggdGhyZWUgaW5zdGFuY2VcbiAgICBwYXJlbnQ6IFdyaXRhYmxlU2lnbmFsPE5ndEluc3RhbmNlTm9kZSB8IG51bGw+O1xuICAgIC8vIGlmIHRoaXMgVEhSRUUgaW5zdGFuY2UgaXMgYSBuZ3QtcHJpbWl0aXZlXG4gICAgcHJpbWl0aXZlPzogYm9vbGVhbjtcbiAgICAvLyBpZiB0aGlzIFRIUkVFIG9iamVjdCBoYXMgYW55IGV2ZW50cyBib3VuZCB0byBpdFxuICAgIGV2ZW50Q291bnQ6IG51bWJlcjtcbiAgICAvLyBsaXN0IG9mIGhhbmRsZXJzIHRvIGhhbmRsZSB0aGUgZXZlbnRzXG4gICAgaGFuZGxlcnM6IFBhcnRpYWw8Tmd0RXZlbnRIYW5kbGVycz47XG4gICAgLy8gcHJldmlvdXMgYXJnc1xuICAgIGFyZ3M/OiB1bmtub3duW107XG4gICAgLy8gYXR0YWNoIGluZm9ybWF0aW9uIHNvIHRoYXQgd2UgY2FuIGRldGFjaCBhcyB3ZWxsIGFzIHJlc2V0XG4gICAgYXR0YWNoPzogc3RyaW5nW10gfCBOZ3RBdHRhY2hGdW5jdGlvbjtcbiAgICAvLyBwcmV2aW91c2x5IGF0dGFjaCBpbmZvcm1hdGlvbiBzbyB3ZSBjYW4gcmVzZXQgYXMgd2VsbCBhcyBjbGVhbiB1cFxuICAgIHByZXZpb3VzQXR0YWNoPzogdW5rbm93biB8ICgoKSA9PiB2b2lkKTtcbiAgICAvLyBpcyByYXcgdmFsdWVcbiAgICBpc1Jhdz86IGJvb2xlYW47XG4gICAgLy8gcHJpb3JpdHkgZm9yIGJlZm9yZSByZW5kZXJcbiAgICBwcmlvcml0eT86IG51bWJlcjtcbiAgICAvLyBlbWl0dGVyIGFmdGVyIHByb3BzIHVwZGF0ZVxuICAgIGFmdGVyVXBkYXRlPzogRXZlbnRFbWl0dGVyPE5ndEluc3RhbmNlTm9kZT47XG4gICAgLy8gZW1pdHRlciBhZnRlciBhdHRhY2hpbmcgdG8gcGFyZW50XG4gICAgYWZ0ZXJBdHRhY2g/OiBFdmVudEVtaXR0ZXI8Tmd0QWZ0ZXJBdHRhY2g+O1xufTtcblxuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VOb2RlPFROb2RlID0gYW55PiA9IHtcbiAgICBfX25ndF9fOiBOZ3RJbnN0YW5jZUxvY2FsU3RhdGU7XG59ICYgTmd0QW55UmVjb3JkICZcbiAgICBUTm9kZTtcblxuZXhwb3J0IHR5cGUgTmd0R0xSZW5kZXJlciA9IHtcbiAgICByZW5kZXI6IChzY2VuZTogVEhSRUUuU2NlbmUsIGNhbWVyYTogVEhSRUUuQ2FtZXJhKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0R0xPcHRpb25zID1cbiAgICB8IE5ndEdMUmVuZGVyZXJcbiAgICB8ICgoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCkgPT4gTmd0R0xSZW5kZXJlcilcbiAgICB8IFBhcnRpYWw8Tmd0UHJvcGVydGllczxUSFJFRS5XZWJHTFJlbmRlcmVyPiB8IFRIUkVFLldlYkdMUmVuZGVyZXJQYXJhbWV0ZXJzPlxuICAgIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBOZ3RPYmplY3RNYXAgPSB7XG4gICAgbm9kZXM6IHsgW25hbWU6IHN0cmluZ106IFRIUkVFLk9iamVjdDNEIH07XG4gICAgbWF0ZXJpYWxzOiB7IFtuYW1lOiBzdHJpbmddOiBUSFJFRS5NYXRlcmlhbCB9O1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndENhbnZhc0lucHV0cyA9IHtcbiAgICAvKiogQSB0aHJlZWpzIHJlbmRlcmVyIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCByZW5kZXJlciAqL1xuICAgIGdsPzogTmd0R0xPcHRpb25zO1xuICAgIHNpemU/OiBOZ3RTaXplO1xuXG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBzaGFkb3dzIChieSBkZWZhdWx0IFBDRnNvZnQpLiBDYW4gYWNjZXB0IGBnbC5zaGFkb3dNYXBgIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nLFxuICAgICAqIGJ1dCBhbHNvIHN0cmluZ3M6ICdiYXNpYycgfCAncGVyY2VudGFnZScgfCAnc29mdCcgfCAndmFyaWFuY2UnLlxuICAgICAqIEBzZWUgaHR0cHM6Ly90aHJlZWpzLm9yZy9kb2NzLyNhcGkvZW4vcmVuZGVyZXJzL1dlYkdMUmVuZGVyZXIuc2hhZG93TWFwXG4gICAgICovXG4gICAgc2hhZG93cz86IGJvb2xlYW4gfCAnYmFzaWMnIHwgJ3BlcmNlbnRhZ2UnIHwgJ3NvZnQnIHwgJ3ZhcmlhbmNlJyB8IFBhcnRpYWw8VEhSRUUuV2ViR0xTaGFkb3dNYXA+O1xuICAgIC8qKlxuICAgICAqIERpc2FibGVzIHRocmVlIHIxMzkgY29sb3IgbWFuYWdlbWVudC5cbiAgICAgKiBAc2VlIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jbWFudWFsL2VuL2ludHJvZHVjdGlvbi9Db2xvci1tYW5hZ2VtZW50XG4gICAgICovXG4gICAgbGVnYWN5PzogYm9vbGVhbjtcbiAgICAvKiogU3dpdGNoIG9mZiBhdXRvbWF0aWMgc1JHQiBlbmNvZGluZyBhbmQgZ2FtbWEgY29ycmVjdGlvbiAqL1xuICAgIGxpbmVhcj86IGJvb2xlYW47XG4gICAgLyoqIFVzZSBgVEhSRUUuTm9Ub25lTWFwcGluZ2AgaW5zdGVhZCBvZiBgVEhSRUUuQUNFU0ZpbG1pY1RvbmVNYXBwaW5nYCAqL1xuICAgIGZsYXQ/OiBib29sZWFuO1xuICAgIC8qKiBDcmVhdGVzIGFuIG9ydGhvZ3JhcGhpYyBjYW1lcmEgKi9cbiAgICBvcnRob2dyYXBoaWM/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFIzRidzIHJlbmRlciBtb2RlLiBTZXQgdG8gYGRlbWFuZGAgdG8gb25seSByZW5kZXIgb24gc3RhdGUgY2hhbmdlIG9yIGBuZXZlcmAgdG8gdGFrZSBjb250cm9sLlxuICAgICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnBtbmQucnMvcmVhY3QtdGhyZWUtZmliZXIvYWR2YW5jZWQvc2NhbGluZy1wZXJmb3JtYW5jZSNvbi1kZW1hbmQtcmVuZGVyaW5nXG4gICAgICovXG4gICAgZnJhbWVsb29wPzogJ2Fsd2F5cycgfCAnZGVtYW5kJyB8ICduZXZlcic7XG4gICAgLyoqXG4gICAgICogUjNGIHBlcmZvcm1hbmNlIG9wdGlvbnMgZm9yIGFkYXB0aXZlIHBlcmZvcm1hbmNlLlxuICAgICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnBtbmQucnMvcmVhY3QtdGhyZWUtZmliZXIvYWR2YW5jZWQvc2NhbGluZy1wZXJmb3JtYW5jZSNtb3ZlbWVudC1yZWdyZXNzaW9uXG4gICAgICovXG4gICAgcGVyZm9ybWFuY2U/OiBQYXJ0aWFsPE9taXQ8Tmd0UGVyZm9ybWFuY2UsICdyZWdyZXNzJz4+O1xuICAgIC8qKiBUYXJnZXQgcGl4ZWwgcmF0aW8uIENhbiBjbGFtcCBiZXR3ZWVuIGEgcmFuZ2U6IGBbbWluLCBtYXhdYCAqL1xuICAgIGRwcj86IE5ndERwcjtcbiAgICAvKiogUHJvcHMgdGhhdCBnbyBpbnRvIHRoZSBkZWZhdWx0IHJheWNhc3RlciAqL1xuICAgIHJheWNhc3Rlcj86IFBhcnRpYWw8VEhSRUUuUmF5Y2FzdGVyPjtcbiAgICAvKiogQSBgVEhSRUUuU2NlbmVgIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCBzY2VuZSAqL1xuICAgIHNjZW5lPzogVEhSRUUuU2NlbmUgfCBQYXJ0aWFsPFRIUkVFLlNjZW5lPjtcbiAgICAvKiogQSBgQ2FtZXJhYCBpbnN0YW5jZSBvciBwcm9wcyB0aGF0IGdvIGludG8gdGhlIGRlZmF1bHQgY2FtZXJhICovXG4gICAgY2FtZXJhPzogKE5ndENhbWVyYSB8IFBhcnRpYWw8VEhSRUUuQ2FtZXJhPikgJiB7XG4gICAgICAgIC8qKiBGbGFncyB0aGUgY2FtZXJhIGFzIG1hbnVhbCwgcHV0dGluZyBwcm9qZWN0aW9uIGludG8geW91ciBvd24gaGFuZHMgKi9cbiAgICAgICAgbWFudWFsPzogYm9vbGVhbjtcbiAgICB9O1xuICAgIC8qKiBBbiBSM0YgZXZlbnQgbWFuYWdlciB0byBtYW5hZ2UgZWxlbWVudHMnIHBvaW50ZXIgZXZlbnRzICovXG4gICAgZXZlbnRzPzogKHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4pID0+IE5ndEV2ZW50TWFuYWdlcjxIVE1MRWxlbWVudD47XG4gICAgLyoqIFRoZSB0YXJnZXQgd2hlcmUgZXZlbnRzIGFyZSBiZWluZyBzdWJzY3JpYmVkIHRvLCBkZWZhdWx0OiB0aGUgZGl2IHRoYXQgd3JhcHMgY2FudmFzICovXG4gICAgZXZlbnRTb3VyY2U/OiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIC8qKiBUaGUgZXZlbnQgcHJlZml4IHRoYXQgaXMgY2FzdCBpbnRvIGNhbnZhcyBwb2ludGVyIHgveSBldmVudHMsIGRlZmF1bHQ6IFwib2Zmc2V0XCIgKi9cbiAgICBldmVudFByZWZpeD86ICdvZmZzZXQnIHwgJ2NsaWVudCcgfCAncGFnZScgfCAnbGF5ZXInIHwgJ3NjcmVlbic7XG4gICAgLyoqIERlZmF1bHQgY29vcmRpbmF0ZSBmb3IgdGhlIGNhbWVyYSB0byBsb29rIGF0ICovXG4gICAgbG9va0F0PzogVEhSRUUuVmVjdG9yMyB8IFBhcmFtZXRlcnM8VEhSRUUuVmVjdG9yM1snc2V0J10+O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RMb2FkZXI8VD4gZXh0ZW5kcyBUSFJFRS5Mb2FkZXIge1xuICAgIGxvYWQoXG4gICAgICAgIHVybDogc3RyaW5nLFxuICAgICAgICBvbkxvYWQ/OiAocmVzdWx0OiBUKSA9PiB2b2lkLFxuICAgICAgICBvblByb2dyZXNzPzogKGV2ZW50OiBQcm9ncmVzc0V2ZW50KSA9PiB2b2lkLFxuICAgICAgICBvbkVycm9yPzogKGV2ZW50OiBFcnJvckV2ZW50KSA9PiB2b2lkXG4gICAgKTogdW5rbm93bjtcbiAgICBsb2FkQXN5bmModXJsOiBzdHJpbmcsIG9uUHJvZ3Jlc3M/OiAoZXZlbnQ6IFByb2dyZXNzRXZlbnQpID0+IHZvaWQpOiBQcm9taXNlPFQ+O1xufVxuXG5leHBvcnQgdHlwZSBOZ3RMb2FkZXJQcm90bzxUPiA9IG5ldyAoLi4uYXJnczogYW55KSA9PiBOZ3RMb2FkZXI8VCBleHRlbmRzIHVua25vd24gPyBhbnkgOiBUPjtcbmV4cG9ydCB0eXBlIE5ndExvYWRlclJldHVyblR5cGU8VCwgTCBleHRlbmRzIE5ndExvYWRlclByb3RvPFQ+PiA9IFQgZXh0ZW5kcyB1bmtub3duXG4gICAgPyBBd2FpdGVkPFJldHVyblR5cGU8SW5zdGFuY2VUeXBlPEw+Wydsb2FkQXN5bmMnXT4+XG4gICAgOiBUO1xuZXhwb3J0IHR5cGUgTmd0TG9hZGVyRXh0ZW5zaW9uczxUIGV4dGVuZHMgeyBwcm90b3R5cGU6IE5ndExvYWRlclByb3RvPGFueT4gfT4gPSAobG9hZGVyOiBUWydwcm90b3R5cGUnXSkgPT4gdm9pZDtcbmV4cG9ydCB0eXBlIE5ndENvbmRpdGlvbmFsVHlwZTxDaGlsZCwgUGFyZW50LCBUcnV0aHksIEZhbHN5PiA9IENoaWxkIGV4dGVuZHMgUGFyZW50ID8gVHJ1dGh5IDogRmFsc3k7XG5leHBvcnQgdHlwZSBOZ3RCcmFuY2hpbmdSZXR1cm48VCwgUGFyZW50LCBDb2VyY2VkPiA9IE5ndENvbmRpdGlvbmFsVHlwZTxULCBQYXJlbnQsIENvZXJjZWQsIFQ+O1xuIl19
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgdHlwZSB7IE5ndFNpZ25hbFN0b3JlIH0gZnJvbSAnLi9zdG9yZXMvc2lnbmFsLnN0b3JlJztcbmltcG9ydCB7IE5ndE9iamVjdDNETm9kZSB9IGZyb20gJy4vdGhyZWUtdHlwZXMnO1xuXG5leHBvcnQgdHlwZSBOZ3RBbnlSZWNvcmQgPSBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuZXhwb3J0IHR5cGUgTmd0UHJvcGVydGllczxUPiA9IFBpY2s8VCwgeyBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIChfOiBhbnkpID0+IGFueSA/IG5ldmVyIDogSyB9W2tleW9mIFRdPjtcblxuZXhwb3J0IHR5cGUgTmd0RXF1Q29uZmlnID0ge1xuICAgIC8qKiBDb21wYXJlIGFycmF5cyBieSByZWZlcmVuY2UgZXF1YWxpdHkgYSA9PT0gYiAoZGVmYXVsdCksIG9yIGJ5IHNoYWxsb3cgZXF1YWxpdHkgKi9cbiAgICBhcnJheXM/OiAncmVmZXJlbmNlJyB8ICdzaGFsbG93JztcbiAgICAvKiogQ29tcGFyZSBvYmplY3RzIGJ5IHJlZmVyZW5jZSBlcXVhbGl0eSBhID09PSBiIChkZWZhdWx0KSwgb3IgYnkgc2hhbGxvdyBlcXVhbGl0eSAqL1xuICAgIG9iamVjdHM/OiAncmVmZXJlbmNlJyB8ICdzaGFsbG93JztcbiAgICAvKiogSWYgdHJ1ZSB0aGUga2V5cyBpbiBib3RoIGEgYW5kIGIgbXVzdCBtYXRjaCAxOjEgKGRlZmF1bHQpLCBpZiBmYWxzZSBhJ3Mga2V5cyBtdXN0IGludGVyc2VjdCBiJ3MgKi9cbiAgICBzdHJpY3Q/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0RHByID0gbnVtYmVyIHwgW21pbjogbnVtYmVyLCBtYXg6IG51bWJlcl07XG5leHBvcnQgdHlwZSBOZ3RTaXplID0ge1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG4gICAgdG9wOiBudW1iZXI7XG4gICAgbGVmdDogbnVtYmVyO1xufTtcbmV4cG9ydCB0eXBlIE5ndFZpZXdwb3J0ID0gTmd0U2l6ZSAmIHtcbiAgICAvKiogVGhlIGluaXRpYWwgcGl4ZWwgcmF0aW8gKi9cbiAgICBpbml0aWFsRHByOiBudW1iZXI7XG4gICAgLyoqIEN1cnJlbnQgcGl4ZWwgcmF0aW8gKi9cbiAgICBkcHI6IG51bWJlcjtcbiAgICAvKiogc2l6ZS53aWR0aCAvIHZpZXdwb3J0LndpZHRoICovXG4gICAgZmFjdG9yOiBudW1iZXI7XG4gICAgLyoqIENhbWVyYSBkaXN0YW5jZSAqL1xuICAgIGRpc3RhbmNlOiBudW1iZXI7XG4gICAgLyoqIENhbWVyYSBhc3BlY3QgcmF0aW86IHdpZHRoIC8gaGVpZ2h0ICovXG4gICAgYXNwZWN0OiBudW1iZXI7XG59O1xuZXhwb3J0IHR5cGUgTmd0UGVyZm9ybWFuY2UgPSB7XG4gICAgLyoqIEN1cnJlbnQgcGVyZm9ybWFuY2Ugbm9ybWFsLCBiZXR3ZWVuIG1pbiBhbmQgbWF4ICovXG4gICAgY3VycmVudDogbnVtYmVyO1xuICAgIC8qKiBIb3cgbG93IHRoZSBwZXJmb3JtYW5jZSBjYW4gZ28sIGJldHdlZW4gMCBhbmQgbWF4ICovXG4gICAgbWluOiBudW1iZXI7XG4gICAgLyoqIEhvdyBoaWdoIHRoZSBwZXJmb3JtYW5jZSBjYW4gZ28sIGJldHdlZW4gbWluIGFuZCBtYXggKi9cbiAgICBtYXg6IG51bWJlcjtcbiAgICAvKiogVGltZSB1bnRpbCBjdXJyZW50IHJldHVybnMgdG8gbWF4IGluIG1zICovXG4gICAgZGVib3VuY2U6IG51bWJlcjtcbiAgICAvKiogU2V0cyBjdXJyZW50IHRvIG1pbiwgcHV0cyB0aGUgc3lzdGVtIGluIHJlZ3Jlc3Npb24gKi9cbiAgICByZWdyZXNzOiAoKSA9PiB2b2lkO1xufTtcbmV4cG9ydCB0eXBlIE5ndFJlbmRlcmVyID0geyByZW5kZXI6IChzY2VuZTogVEhSRUUuU2NlbmUsIGNhbWVyYTogVEhSRUUuQ2FtZXJhKSA9PiBhbnkgfTtcbmV4cG9ydCB0eXBlIE5ndENhbWVyYSA9IFRIUkVFLk9ydGhvZ3JhcGhpY0NhbWVyYSB8IFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhO1xuZXhwb3J0IHR5cGUgTmd0Q2FtZXJhTWFudWFsID0gTmd0Q2FtZXJhICYgeyBtYW51YWw/OiBib29sZWFuIH07XG5leHBvcnQgdHlwZSBOZ3RJbnRlcnNlY3Rpb24gPSBUSFJFRS5JbnRlcnNlY3Rpb24gJiB7XG4gICAgLyoqIFRoZSBldmVudCBzb3VyY2UgKHRoZSBvYmplY3Qgd2hpY2ggcmVnaXN0ZXJlZCB0aGUgaGFuZGxlcikgKi9cbiAgICBldmVudE9iamVjdDogVEhSRUUuT2JqZWN0M0Q7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RJbnRlcnNlY3Rpb25FdmVudDxUU291cmNlRXZlbnQ+ID0gTmd0SW50ZXJzZWN0aW9uICYge1xuICAgIC8qKiBUaGUgZXZlbnQgc291cmNlICh0aGUgb2JqZWN0IHdoaWNoIHJlZ2lzdGVyZWQgdGhlIGhhbmRsZXIpICovXG4gICAgZXZlbnRPYmplY3Q6IFRIUkVFLk9iamVjdDNEO1xuICAgIC8qKiBBbiBhcnJheSBvZiBpbnRlcnNlY3Rpb25zICovXG4gICAgaW50ZXJzZWN0aW9uczogTmd0SW50ZXJzZWN0aW9uW107XG4gICAgLyoqIHZlYzMuc2V0KHBvaW50ZXIueCwgcG9pbnRlci55LCAwKS51bnByb2plY3QoY2FtZXJhKSAqL1xuICAgIHVucHJvamVjdGVkUG9pbnQ6IFRIUkVFLlZlY3RvcjM7XG4gICAgLyoqIE5vcm1hbGl6ZWQgZXZlbnQgY29vcmRpbmF0ZXMgKi9cbiAgICBwb2ludGVyOiBUSFJFRS5WZWN0b3IyO1xuICAgIC8qKiBEZWx0YSBiZXR3ZWVuIGZpcnN0IGNsaWNrIGFuZCB0aGlzIGV2ZW50ICovXG4gICAgZGVsdGE6IG51bWJlcjtcbiAgICAvKiogVGhlIHJheSB0aGF0IHBpZXJjZWQgaXQgKi9cbiAgICByYXk6IFRIUkVFLlJheTtcbiAgICAvKiogVGhlIGNhbWVyYSB0aGF0IHdhcyB1c2VkIGJ5IHRoZSByYXljYXN0ZXIgKi9cbiAgICBjYW1lcmE6IE5ndENhbWVyYU1hbnVhbDtcbiAgICAvKiogc3RvcFByb3BhZ2F0aW9uIHdpbGwgc3RvcCB1bmRlcmx5aW5nIGhhbmRsZXJzIGZyb20gZmlyaW5nICovXG4gICAgc3RvcFByb3BhZ2F0aW9uOiAoKSA9PiB2b2lkO1xuICAgIC8qKiBUaGUgb3JpZ2luYWwgaG9zdCBldmVudCAqL1xuICAgIG5hdGl2ZUV2ZW50OiBUU291cmNlRXZlbnQ7XG4gICAgLyoqIElmIHRoZSBldmVudCB3YXMgc3RvcHBlZCBieSBjYWxsaW5nIHN0b3BQcm9wYWdhdGlvbiAqL1xuICAgIHN0b3BwZWQ6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RUaHJlZUV2ZW50PFRFdmVudD4gPSBOZ3RJbnRlcnNlY3Rpb25FdmVudDxURXZlbnQ+ICYgTmd0UHJvcGVydGllczxURXZlbnQ+O1xuZXhwb3J0IHR5cGUgTmd0RG9tRXZlbnQgPSBQb2ludGVyRXZlbnQgfCBNb3VzZUV2ZW50IHwgV2hlZWxFdmVudDtcblxuZXhwb3J0IHR5cGUgTmd0RXZlbnRIYW5kbGVycyA9IHtcbiAgICBjbGljaz86IChldmVudDogTmd0VGhyZWVFdmVudDxNb3VzZUV2ZW50PikgPT4gdm9pZDtcbiAgICBjb250ZXh0bWVudT86IChldmVudDogTmd0VGhyZWVFdmVudDxNb3VzZUV2ZW50PikgPT4gdm9pZDtcbiAgICBkYmxjbGljaz86IChldmVudDogTmd0VGhyZWVFdmVudDxNb3VzZUV2ZW50PikgPT4gdm9pZDtcbiAgICBwb2ludGVydXA/OiAoZXZlbnQ6IE5ndFRocmVlRXZlbnQ8UG9pbnRlckV2ZW50PikgPT4gdm9pZDtcbiAgICBwb2ludGVyZG93bj86IChldmVudDogTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSA9PiB2b2lkO1xuICAgIHBvaW50ZXJvdmVyPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pID0+IHZvaWQ7XG4gICAgcG9pbnRlcm91dD86IChldmVudDogTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSA9PiB2b2lkO1xuICAgIHBvaW50ZXJlbnRlcj86IChldmVudDogTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSA9PiB2b2lkO1xuICAgIHBvaW50ZXJsZWF2ZT86IChldmVudDogTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSA9PiB2b2lkO1xuICAgIHBvaW50ZXJtb3ZlPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pID0+IHZvaWQ7XG4gICAgcG9pbnRlcm1pc3NlZD86IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgICBwb2ludGVyY2FuY2VsPzogKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pID0+IHZvaWQ7XG4gICAgd2hlZWw/OiAoZXZlbnQ6IE5ndFRocmVlRXZlbnQ8V2hlZWxFdmVudD4pID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RFdmVudHMgPSB7XG4gICAgW1RFdmVudCBpbiBrZXlvZiBOZ3RFdmVudEhhbmRsZXJzXS0/OiBFdmVudExpc3RlbmVyO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0RmlsdGVyRnVuY3Rpb24gPSAoaXRlbXM6IFRIUkVFLkludGVyc2VjdGlvbltdLCBzdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+KSA9PiBUSFJFRS5JbnRlcnNlY3Rpb25bXTtcbmV4cG9ydCB0eXBlIE5ndENvbXB1dGVGdW5jdGlvbiA9IChcbiAgICBldmVudDogTmd0RG9tRXZlbnQsXG4gICAgcm9vdDogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+LFxuICAgIHByZXZpb3VzPzogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+XG4pID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIE5ndEV2ZW50TWFuYWdlcjxUVGFyZ2V0PiA9IHtcbiAgICAvKiogRGV0ZXJtaW5lcyBpZiB0aGUgZXZlbnQgbGF5ZXIgaXMgYWN0aXZlICovXG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAvKiogRXZlbnQgbGF5ZXIgcHJpb3JpdHksIGhpZ2hlciBwcmlvcml0aXplZCBsYXllcnMgY29tZSBmaXJzdCBhbmQgbWF5IHN0b3AoLXByb3BhZ2F0ZSkgbG93ZXIgbGF5ZXIgICovXG4gICAgcHJpb3JpdHk6IG51bWJlcjtcbiAgICAvKiogVGhlIGNvbXB1dGUgZnVuY3Rpb24gbmVlZHMgdG8gc2V0IHVwIHRoZSByYXljYXN0ZXIgYW5kIGFuIHh5LSBwb2ludGVyICAqL1xuICAgIGNvbXB1dGU/OiBOZ3RDb21wdXRlRnVuY3Rpb247XG4gICAgLyoqIFRoZSBmaWx0ZXIgY2FuIHJlLW9yZGVyIG9yIHJlLXN0cnVjdHVyZSB0aGUgaW50ZXJzZWN0aW9ucyAgKi9cbiAgICBmaWx0ZXI/OiBOZ3RGaWx0ZXJGdW5jdGlvbjtcbiAgICAvKiogVGhlIHRhcmdldCBub2RlIHRoZSBldmVudCBsYXllciBpcyB0aWVkIHRvICovXG4gICAgY29ubmVjdGVkPzogVFRhcmdldDtcbiAgICAvKiogQWxsIHRoZSBwb2ludGVyIGV2ZW50IGhhbmRsZXJzIHRocm91Z2ggd2hpY2ggdGhlIGhvc3QgZm9yd2FyZHMgbmF0aXZlIGV2ZW50cyAqL1xuICAgIGhhbmRsZXJzPzogTmd0RXZlbnRzO1xuICAgIC8qKiBBbGxvd3MgcmUtY29ubmVjdGluZyB0byBhbm90aGVyIHRhcmdldCAqL1xuICAgIGNvbm5lY3Q/OiAodGFyZ2V0OiBUVGFyZ2V0KSA9PiB2b2lkO1xuICAgIC8qKiBSZW1vdmVzIGFsbCBleGlzdGluZyBldmVudHMgaGFuZGxlcnMgZnJvbSB0aGUgdGFyZ2V0ICovXG4gICAgZGlzY29ubmVjdD86ICgpID0+IHZvaWQ7XG4gICAgLyoqIFRyaWdnZXJzIGEgb25Qb2ludGVyTW92ZSB3aXRoIHRoZSBsYXN0IGtub3duIGV2ZW50LiBUaGlzIGNhbiBiZSB1c2VmdWwgdG8gZW5hYmxlIHJheWNhc3Rpbmcgd2l0aG91dFxuICAgICAqICBleHBsaWNpdCB1c2VyIGludGVyYWN0aW9uLCBmb3IgaW5zdGFuY2Ugd2hlbiB0aGUgY2FtZXJhIG1vdmVzIGEgaG92ZXJhYmxlIG9iamVjdCB1bmRlcm5lYXRoIHRoZSBjdXJzb3IuXG4gICAgICovXG4gICAgdXBkYXRlPzogKCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndFBvaW50ZXJDYXB0dXJlVGFyZ2V0ID0ge1xuICAgIGludGVyc2VjdGlvbjogTmd0SW50ZXJzZWN0aW9uO1xuICAgIHRhcmdldDogRWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndFJlbmRlclN0YXRlID0gTmd0U3RhdGUgJiB7IGRlbHRhOiBudW1iZXI7IGZyYW1lPzogWFJGcmFtZSB9O1xuXG5leHBvcnQgdHlwZSBOZ3RCZWZvcmVSZW5kZXJFdmVudDxUT2JqZWN0IGV4dGVuZHMgTmd0SW5zdGFuY2VOb2RlID0gTmd0SW5zdGFuY2VOb2RlPiA9IHtcbiAgICBzdGF0ZTogTmd0UmVuZGVyU3RhdGU7XG4gICAgb2JqZWN0OiBUT2JqZWN0O1xufTtcblxuZXhwb3J0IHR5cGUgTmd0QmVmb3JlUmVuZGVyUmVjb3JkID0ge1xuICAgIGNhbGxiYWNrOiAoc3RhdGU6IE5ndFJlbmRlclN0YXRlKSA9PiB2b2lkO1xuICAgIHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT47XG4gICAgcHJpb3JpdHk/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RJbnRlcm5hbFN0YXRlID0ge1xuICAgIGFjdGl2ZTogYm9vbGVhbjtcbiAgICBwcmlvcml0eTogbnVtYmVyO1xuICAgIGZyYW1lczogbnVtYmVyO1xuICAgIGxhc3RFdmVudDogRWxlbWVudFJlZjxOZ3REb21FdmVudCB8IG51bGw+O1xuICAgIGludGVyYWN0aW9uOiBUSFJFRS5PYmplY3QzRFtdO1xuICAgIGhvdmVyZWQ6IE1hcDxzdHJpbmcsIE5ndFRocmVlRXZlbnQ8Tmd0RG9tRXZlbnQ+PjtcbiAgICBzdWJzY3JpYmVyczogTmd0QmVmb3JlUmVuZGVyUmVjb3JkW107XG4gICAgY2FwdHVyZWRNYXA6IE1hcDxudW1iZXIsIE1hcDxUSFJFRS5PYmplY3QzRCwgTmd0UG9pbnRlckNhcHR1cmVUYXJnZXQ+PjtcbiAgICBpbml0aWFsQ2xpY2s6IFt4OiBudW1iZXIsIHk6IG51bWJlcl07XG4gICAgaW5pdGlhbEhpdHM6IFRIUkVFLk9iamVjdDNEW107XG4gICAgc3Vic2NyaWJlOiAoXG4gICAgICAgIGNhbGxiYWNrOiBOZ3RCZWZvcmVSZW5kZXJSZWNvcmRbJ2NhbGxiYWNrJ10sXG4gICAgICAgIHByaW9yaXR5PzogbnVtYmVyLFxuICAgICAgICBzdG9yZT86IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPlxuICAgICkgPT4gKCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndFN0YXRlID0ge1xuICAgIGdldDogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+WydnZXQnXTtcbiAgICBzZXQ6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPlsnc2V0J107XG4gICAgLyoqIHdoZW4gYWxsIGJ1aWxkaW5nIGJsb2NrcyBhcmUgaW5pdGlhbGl6ZWQgKi9cbiAgICByZWFkeTogYm9vbGVhbjtcbiAgICAvKiogVGhlIGluc3RhbmNlIG9mIHRoZSByZW5kZXJlciAqL1xuICAgIGdsOiBUSFJFRS5XZWJHTFJlbmRlcmVyO1xuICAgIC8qKiBEZWZhdWx0IGNhbWVyYSAqL1xuICAgIGNhbWVyYTogTmd0Q2FtZXJhTWFudWFsO1xuICAgIC8qKiBEZWZhdWx0IHNjZW5lICovXG4gICAgc2NlbmU6IFRIUkVFLlNjZW5lO1xuICAgIC8qKiBEZWZhdWx0IHJheWNhc3RlciAqL1xuICAgIHJheWNhc3RlcjogVEhSRUUuUmF5Y2FzdGVyO1xuICAgIC8qKiBEZWZhdWx0IGNsb2NrICovXG4gICAgY2xvY2s6IFRIUkVFLkNsb2NrO1xuICAgIC8qKiBFdmVudCBsYXllciBpbnRlcmZhY2UsIGNvbnRhaW5zIHRoZSBldmVudCBoYW5kbGVyIGFuZCB0aGUgbm9kZSB0aGV5J3JlIGNvbm5lY3RlZCB0byAqL1xuICAgIGV2ZW50czogTmd0RXZlbnRNYW5hZ2VyPGFueT47XG4gICAgLyoqIFhSIGludGVyZmFjZSAqL1xuICAgIHhyOiB7IGNvbm5lY3Q6ICgpID0+IHZvaWQ7IGRpc2Nvbm5lY3Q6ICgpID0+IHZvaWQgfTtcbiAgICAvKiogQ3VycmVudGx5IHVzZWQgY29udHJvbHMgKi9cbiAgICBjb250cm9sczogVEhSRUUuRXZlbnREaXNwYXRjaGVyIHwgbnVsbDtcbiAgICAvKiogTm9ybWFsaXplZCBldmVudCBjb29yZGluYXRlcyAqL1xuICAgIHBvaW50ZXI6IFRIUkVFLlZlY3RvcjI7XG4gICAgLyogV2hldGhlciB0byBlbmFibGUgcjEzOSdzIFRIUkVFLkNvbG9yTWFuYWdlbWVudC5sZWdhY3lNb2RlICovXG4gICAgbGVnYWN5OiBib29sZWFuO1xuICAgIC8qKiBTaG9ydGN1dCB0byBnbC5vdXRwdXRFbmNvZGluZyA9IExpbmVhckVuY29kaW5nICovXG4gICAgbGluZWFyOiBib29sZWFuO1xuICAgIC8qKiBTaG9ydGN1dCB0byBnbC50b25lTWFwcGluZyA9IE5vVG9uZW1hcHBpbmcgKi9cbiAgICBmbGF0OiBib29sZWFuO1xuICAgIC8qKiBSZW5kZXIgbG9vcCBmbGFncyAqL1xuICAgIGZyYW1lbG9vcDogJ2Fsd2F5cycgfCAnZGVtYW5kJyB8ICduZXZlcic7XG4gICAgLyoqIEFkYXB0aXZlIHBlcmZvcm1hbmNlIGludGVyZmFjZSAqL1xuICAgIHBlcmZvcm1hbmNlOiBOZ3RQZXJmb3JtYW5jZTtcbiAgICAvKiogUmVhY3RpdmUgcGl4ZWwtc2l6ZSBvZiB0aGUgY2FudmFzICovXG4gICAgc2l6ZTogTmd0U2l6ZTtcbiAgICAvKiogUmVhY3RpdmUgc2l6ZSBvZiB0aGUgdmlld3BvcnQgaW4gdGhyZWVqcyB1bml0cyAqL1xuICAgIHZpZXdwb3J0OiBOZ3RWaWV3cG9ydCAmIHtcbiAgICAgICAgZ2V0Q3VycmVudFZpZXdwb3J0OiAoXG4gICAgICAgICAgICBjYW1lcmE/OiBOZ3RDYW1lcmFNYW51YWwsXG4gICAgICAgICAgICB0YXJnZXQ/OiBUSFJFRS5WZWN0b3IzIHwgUGFyYW1ldGVyczxUSFJFRS5WZWN0b3IzWydzZXQnXT4sXG4gICAgICAgICAgICBzaXplPzogTmd0U2l6ZVxuICAgICAgICApID0+IE9taXQ8Tmd0Vmlld3BvcnQsICdkcHInIHwgJ2luaXRpYWxEcHInPjtcbiAgICB9O1xuICAgIC8qKiBGbGFncyB0aGUgY2FudmFzIGZvciByZW5kZXIsIGJ1dCBkb2Vzbid0IHJlbmRlciBpbiBpdHNlbGYgKi9cbiAgICBpbnZhbGlkYXRlOiAoZnJhbWVzPzogbnVtYmVyKSA9PiB2b2lkO1xuICAgIC8qKiBBZHZhbmNlIChyZW5kZXIpIG9uZSBzdGVwICovXG4gICAgYWR2YW5jZTogKHRpbWVzdGFtcDogbnVtYmVyLCBydW5HbG9iYWxFZmZlY3RzPzogYm9vbGVhbikgPT4gdm9pZDtcbiAgICAvKiogU2hvcnRjdXQgdG8gc2V0dGluZyB0aGUgZXZlbnQgbGF5ZXIgKi9cbiAgICBzZXRFdmVudHM6IChldmVudHM6IFBhcnRpYWw8Tmd0RXZlbnRNYW5hZ2VyPGFueT4+KSA9PiB2b2lkO1xuICAgIC8qKlxuICAgICAqIFNob3J0Y3V0IHRvIG1hbnVhbCBzaXppbmdcbiAgICAgKi9cbiAgICBzZXRTaXplOiAod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHRvcD86IG51bWJlciwgbGVmdD86IG51bWJlcikgPT4gdm9pZDtcbiAgICAvKiogU2hvcnRjdXQgdG8gbWFudWFsIHNldHRpbmcgdGhlIHBpeGVsIHJhdGlvICovXG4gICAgc2V0RHByOiAoZHByOiBOZ3REcHIpID0+IHZvaWQ7XG4gICAgLyoqIFNob3J0Y3V0IHRvIGZyYW1lbG9vcCBmbGFncyAqL1xuICAgIHNldEZyYW1lbG9vcDogKGZyYW1lbG9vcD86ICdhbHdheXMnIHwgJ2RlbWFuZCcgfCAnbmV2ZXInKSA9PiB2b2lkO1xuICAgIC8qKiBXaGVuIHRoZSBjYW52YXMgd2FzIGNsaWNrZWQgYnV0IG5vdGhpbmcgd2FzIGhpdCAqL1xuICAgIG9uUG9pbnRlck1pc3NlZD86IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgICAvKiogSWYgdGhpcyBzdGF0ZSBtb2RlbCBpcyBsYXllcmQgKHZpYSBjcmVhdGVQb3J0YWwpIHRoZW4gdGhpcyBjb250YWlucyB0aGUgcHJldmlvdXMgbGF5ZXIgKi9cbiAgICBwcmV2aW91c1N0b3JlPzogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+O1xuICAgIC8qKiBJbnRlcm5hbHMgKi9cbiAgICBpbnRlcm5hbDogTmd0SW50ZXJuYWxTdGF0ZTtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndEF0dGFjaEZ1bmN0aW9uPFRDaGlsZCA9IGFueSwgVFBhcmVudCA9IGFueT4gPSAoXG4gICAgcGFyZW50OiBUUGFyZW50LFxuICAgIGNoaWxkOiBUQ2hpbGQsXG4gICAgc3RvcmU6IE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPlxuKSA9PiB2b2lkIHwgKCgpID0+IHZvaWQpO1xuXG5leHBvcnQgdHlwZSBOZ3RBZnRlckF0dGFjaDxcbiAgICBUUGFyZW50IGV4dGVuZHMgTmd0SW5zdGFuY2VOb2RlID0gTmd0SW5zdGFuY2VOb2RlLFxuICAgIFRDaGlsZCBleHRlbmRzIE5ndEluc3RhbmNlTm9kZSA9IE5ndEluc3RhbmNlTm9kZVxuPiA9IHsgcGFyZW50OiBUUGFyZW50OyBub2RlOiBUQ2hpbGQgfTtcblxuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VMb2NhbFN0YXRlID0ge1xuICAgIC8qKiB0aGUgc3RhdGUgZ2V0dGVyIG9mIHRoZSBjYW52YXMgdGhhdCB0aGUgaW5zdGFuY2UgaXMgYmVpbmcgcmVuZGVyZWQgdG8gKi9cbiAgICBzdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+O1xuICAgIC8vIG9iamVjdHMgYW5kIHBhcmVudCBhcmUgdXNlZCB3aGVuIGNoaWxkcmVuIGFyZSBhZGRlZCB3aXRoIGBhdHRhY2hgIGluc3RlYWQgb2YgYmVpbmcgYWRkZWQgdG8gdGhlIE9iamVjdDNEIHNjZW5lIGdyYXBoXG4gICAgbm9uT2JqZWN0czogV3JpdGFibGVTaWduYWw8Tmd0SW5zdGFuY2VOb2RlW10+O1xuICAgIC8vIG9iamVjdHMgdGhhdCBhcmUgT2JqZWN0M0RcbiAgICBvYmplY3RzOiBXcml0YWJsZVNpZ25hbDxOZ3RJbnN0YW5jZU5vZGVbXT47XG4gICAgLy8gc2hvcnRjdXQgdG8gYWRkL3JlbW92ZSBvYmplY3QgdG8gbGlzdFxuICAgIGFkZDogKGluc3RhbmNlOiBOZ3RJbnN0YW5jZU5vZGUsIHR5cGU6ICdvYmplY3RzJyB8ICdub25PYmplY3RzJykgPT4gdm9pZDtcbiAgICByZW1vdmU6IChpbnN0YW5jZTogTmd0SW5zdGFuY2VOb2RlLCB0eXBlOiAnb2JqZWN0cycgfCAnbm9uT2JqZWN0cycpID0+IHZvaWQ7XG4gICAgLy8gbmF0aXZlIHByb3BzIHNpZ25hbFxuICAgIG5hdGl2ZVByb3BzOiBOZ3RTaWduYWxTdG9yZTxOZ3RBbnlSZWNvcmQ+O1xuICAgIC8vIHBhcmVudCBiYXNlZCBvbiBhdHRhY2ggdGhyZWUgaW5zdGFuY2VcbiAgICBwYXJlbnQ6IFdyaXRhYmxlU2lnbmFsPE5ndEluc3RhbmNlTm9kZSB8IG51bGw+O1xuICAgIC8vIGlmIHRoaXMgVEhSRUUgaW5zdGFuY2UgaXMgYSBuZ3QtcHJpbWl0aXZlXG4gICAgcHJpbWl0aXZlPzogYm9vbGVhbjtcbiAgICAvLyBpZiB0aGlzIFRIUkVFIG9iamVjdCBoYXMgYW55IGV2ZW50cyBib3VuZCB0byBpdFxuICAgIGV2ZW50Q291bnQ6IG51bWJlcjtcbiAgICAvLyBsaXN0IG9mIGhhbmRsZXJzIHRvIGhhbmRsZSB0aGUgZXZlbnRzXG4gICAgaGFuZGxlcnM6IFBhcnRpYWw8Tmd0RXZlbnRIYW5kbGVycz47XG4gICAgLy8gcHJldmlvdXMgYXJnc1xuICAgIGFyZ3M/OiB1bmtub3duW107XG4gICAgLy8gYXR0YWNoIGluZm9ybWF0aW9uIHNvIHRoYXQgd2UgY2FuIGRldGFjaCBhcyB3ZWxsIGFzIHJlc2V0XG4gICAgYXR0YWNoPzogc3RyaW5nW10gfCBOZ3RBdHRhY2hGdW5jdGlvbjtcbiAgICAvLyBwcmV2aW91c2x5IGF0dGFjaCBpbmZvcm1hdGlvbiBzbyB3ZSBjYW4gcmVzZXQgYXMgd2VsbCBhcyBjbGVhbiB1cFxuICAgIHByZXZpb3VzQXR0YWNoPzogdW5rbm93biB8ICgoKSA9PiB2b2lkKTtcbiAgICAvLyBpcyByYXcgdmFsdWVcbiAgICBpc1Jhdz86IGJvb2xlYW47XG4gICAgLy8gcHJpb3JpdHkgZm9yIGJlZm9yZSByZW5kZXJcbiAgICBwcmlvcml0eT86IG51bWJlcjtcbiAgICAvLyBlbWl0dGVyIGFmdGVyIHByb3BzIHVwZGF0ZVxuICAgIGFmdGVyVXBkYXRlPzogRXZlbnRFbWl0dGVyPE5ndEluc3RhbmNlTm9kZT47XG4gICAgLy8gZW1pdHRlciBhZnRlciBhdHRhY2hpbmcgdG8gcGFyZW50XG4gICAgYWZ0ZXJBdHRhY2g/OiBFdmVudEVtaXR0ZXI8Tmd0QWZ0ZXJBdHRhY2g+O1xufTtcblxuZXhwb3J0IHR5cGUgTmd0SW5zdGFuY2VOb2RlPFROb2RlID0gYW55PiA9IHtcbiAgICBfX25ndF9fOiBOZ3RJbnN0YW5jZUxvY2FsU3RhdGU7XG59ICYgTmd0QW55UmVjb3JkICZcbiAgICBUTm9kZTtcblxuZXhwb3J0IHR5cGUgTmd0R0xSZW5kZXJlciA9IHtcbiAgICByZW5kZXI6IChzY2VuZTogVEhSRUUuU2NlbmUsIGNhbWVyYTogVEhSRUUuQ2FtZXJhKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0R0xPcHRpb25zID1cbiAgICB8IE5ndEdMUmVuZGVyZXJcbiAgICB8ICgoY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCkgPT4gTmd0R0xSZW5kZXJlcilcbiAgICB8IFBhcnRpYWw8Tmd0UHJvcGVydGllczxUSFJFRS5XZWJHTFJlbmRlcmVyPiB8IFRIUkVFLldlYkdMUmVuZGVyZXJQYXJhbWV0ZXJzPlxuICAgIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBOZ3RPYmplY3RNYXAgPSB7XG4gICAgbm9kZXM6IHsgW25hbWU6IHN0cmluZ106IFRIUkVFLk9iamVjdDNEIH07XG4gICAgbWF0ZXJpYWxzOiB7IFtuYW1lOiBzdHJpbmddOiBUSFJFRS5NYXRlcmlhbCB9O1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndENhbnZhc0lucHV0cyA9IHtcbiAgICAvKiogQSB0aHJlZWpzIHJlbmRlcmVyIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCByZW5kZXJlciAqL1xuICAgIGdsPzogTmd0R0xPcHRpb25zO1xuICAgIHNpemU/OiBOZ3RTaXplO1xuXG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBzaGFkb3dzIChieSBkZWZhdWx0IFBDRnNvZnQpLiBDYW4gYWNjZXB0IGBnbC5zaGFkb3dNYXBgIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nLFxuICAgICAqIGJ1dCBhbHNvIHN0cmluZ3M6ICdiYXNpYycgfCAncGVyY2VudGFnZScgfCAnc29mdCcgfCAndmFyaWFuY2UnLlxuICAgICAqIEBzZWUgaHR0cHM6Ly90aHJlZWpzLm9yZy9kb2NzLyNhcGkvZW4vcmVuZGVyZXJzL1dlYkdMUmVuZGVyZXIuc2hhZG93TWFwXG4gICAgICovXG4gICAgc2hhZG93cz86IGJvb2xlYW4gfCAnYmFzaWMnIHwgJ3BlcmNlbnRhZ2UnIHwgJ3NvZnQnIHwgJ3ZhcmlhbmNlJyB8IFBhcnRpYWw8VEhSRUUuV2ViR0xTaGFkb3dNYXA+O1xuICAgIC8qKlxuICAgICAqIERpc2FibGVzIHRocmVlIHIxMzkgY29sb3IgbWFuYWdlbWVudC5cbiAgICAgKiBAc2VlIGh0dHBzOi8vdGhyZWVqcy5vcmcvZG9jcy8jbWFudWFsL2VuL2ludHJvZHVjdGlvbi9Db2xvci1tYW5hZ2VtZW50XG4gICAgICovXG4gICAgbGVnYWN5PzogYm9vbGVhbjtcbiAgICAvKiogU3dpdGNoIG9mZiBhdXRvbWF0aWMgc1JHQiBlbmNvZGluZyBhbmQgZ2FtbWEgY29ycmVjdGlvbiAqL1xuICAgIGxpbmVhcj86IGJvb2xlYW47XG4gICAgLyoqIFVzZSBgVEhSRUUuTm9Ub25lTWFwcGluZ2AgaW5zdGVhZCBvZiBgVEhSRUUuQUNFU0ZpbG1pY1RvbmVNYXBwaW5nYCAqL1xuICAgIGZsYXQ/OiBib29sZWFuO1xuICAgIC8qKiBDcmVhdGVzIGFuIG9ydGhvZ3JhcGhpYyBjYW1lcmEgKi9cbiAgICBvcnRob2dyYXBoaWM/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFIzRidzIHJlbmRlciBtb2RlLiBTZXQgdG8gYGRlbWFuZGAgdG8gb25seSByZW5kZXIgb24gc3RhdGUgY2hhbmdlIG9yIGBuZXZlcmAgdG8gdGFrZSBjb250cm9sLlxuICAgICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnBtbmQucnMvcmVhY3QtdGhyZWUtZmliZXIvYWR2YW5jZWQvc2NhbGluZy1wZXJmb3JtYW5jZSNvbi1kZW1hbmQtcmVuZGVyaW5nXG4gICAgICovXG4gICAgZnJhbWVsb29wPzogJ2Fsd2F5cycgfCAnZGVtYW5kJyB8ICduZXZlcic7XG4gICAgLyoqXG4gICAgICogUjNGIHBlcmZvcm1hbmNlIG9wdGlvbnMgZm9yIGFkYXB0aXZlIHBlcmZvcm1hbmNlLlxuICAgICAqIEBzZWUgaHR0cHM6Ly9kb2NzLnBtbmQucnMvcmVhY3QtdGhyZWUtZmliZXIvYWR2YW5jZWQvc2NhbGluZy1wZXJmb3JtYW5jZSNtb3ZlbWVudC1yZWdyZXNzaW9uXG4gICAgICovXG4gICAgcGVyZm9ybWFuY2U/OiBQYXJ0aWFsPE9taXQ8Tmd0UGVyZm9ybWFuY2UsICdyZWdyZXNzJz4+O1xuICAgIC8qKiBUYXJnZXQgcGl4ZWwgcmF0aW8uIENhbiBjbGFtcCBiZXR3ZWVuIGEgcmFuZ2U6IGBbbWluLCBtYXhdYCAqL1xuICAgIGRwcj86IE5ndERwcjtcbiAgICAvKiogUHJvcHMgdGhhdCBnbyBpbnRvIHRoZSBkZWZhdWx0IHJheWNhc3RlciAqL1xuICAgIHJheWNhc3Rlcj86IFBhcnRpYWw8VEhSRUUuUmF5Y2FzdGVyPjtcbiAgICAvKiogQSBgVEhSRUUuU2NlbmVgIGluc3RhbmNlIG9yIHByb3BzIHRoYXQgZ28gaW50byB0aGUgZGVmYXVsdCBzY2VuZSAqL1xuICAgIHNjZW5lPzogVEhSRUUuU2NlbmUgfCBQYXJ0aWFsPFRIUkVFLlNjZW5lPjtcbiAgICAvKiogQSBgQ2FtZXJhYCBpbnN0YW5jZSBvciBwcm9wcyB0aGF0IGdvIGludG8gdGhlIGRlZmF1bHQgY2FtZXJhICovXG4gICAgY2FtZXJhPzogKFxuICAgICAgICB8IE5ndENhbWVyYVxuICAgICAgICB8IFBhcnRpYWw8XG4gICAgICAgICAgICAgIE5ndE9iamVjdDNETm9kZTxUSFJFRS5DYW1lcmEsIHR5cGVvZiBUSFJFRS5DYW1lcmE+ICZcbiAgICAgICAgICAgICAgICAgIE5ndE9iamVjdDNETm9kZTxUSFJFRS5QZXJzcGVjdGl2ZUNhbWVyYSwgdHlwZW9mIFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhPiAmXG4gICAgICAgICAgICAgICAgICBOZ3RPYmplY3QzRE5vZGU8VEhSRUUuT3J0aG9ncmFwaGljQ2FtZXJhLCB0eXBlb2YgVEhSRUUuT3J0aG9ncmFwaGljQ2FtZXJhPlxuICAgICAgICAgID5cbiAgICApICYge1xuICAgICAgICAvKiogRmxhZ3MgdGhlIGNhbWVyYSBhcyBtYW51YWwsIHB1dHRpbmcgcHJvamVjdGlvbiBpbnRvIHlvdXIgb3duIGhhbmRzICovXG4gICAgICAgIG1hbnVhbD86IGJvb2xlYW47XG4gICAgfTtcbiAgICAvKiogQW4gUjNGIGV2ZW50IG1hbmFnZXIgdG8gbWFuYWdlIGVsZW1lbnRzJyBwb2ludGVyIGV2ZW50cyAqL1xuICAgIGV2ZW50cz86IChzdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+KSA9PiBOZ3RFdmVudE1hbmFnZXI8SFRNTEVsZW1lbnQ+O1xuICAgIC8qKiBUaGUgdGFyZ2V0IHdoZXJlIGV2ZW50cyBhcmUgYmVpbmcgc3Vic2NyaWJlZCB0bywgZGVmYXVsdDogdGhlIGRpdiB0aGF0IHdyYXBzIGNhbnZhcyAqL1xuICAgIGV2ZW50U291cmNlPzogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICAvKiogVGhlIGV2ZW50IHByZWZpeCB0aGF0IGlzIGNhc3QgaW50byBjYW52YXMgcG9pbnRlciB4L3kgZXZlbnRzLCBkZWZhdWx0OiBcIm9mZnNldFwiICovXG4gICAgZXZlbnRQcmVmaXg/OiAnb2Zmc2V0JyB8ICdjbGllbnQnIHwgJ3BhZ2UnIHwgJ2xheWVyJyB8ICdzY3JlZW4nO1xuICAgIC8qKiBEZWZhdWx0IGNvb3JkaW5hdGUgZm9yIHRoZSBjYW1lcmEgdG8gbG9vayBhdCAqL1xuICAgIGxvb2tBdD86IFRIUkVFLlZlY3RvcjMgfCBQYXJhbWV0ZXJzPFRIUkVFLlZlY3RvcjNbJ3NldCddPjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0TG9hZGVyPFQ+IGV4dGVuZHMgVEhSRUUuTG9hZGVyIHtcbiAgICBsb2FkKFxuICAgICAgICB1cmw6IHN0cmluZyxcbiAgICAgICAgb25Mb2FkPzogKHJlc3VsdDogVCkgPT4gdm9pZCxcbiAgICAgICAgb25Qcm9ncmVzcz86IChldmVudDogUHJvZ3Jlc3NFdmVudCkgPT4gdm9pZCxcbiAgICAgICAgb25FcnJvcj86IChldmVudDogRXJyb3JFdmVudCkgPT4gdm9pZFxuICAgICk6IHVua25vd247XG4gICAgbG9hZEFzeW5jKHVybDogc3RyaW5nLCBvblByb2dyZXNzPzogKGV2ZW50OiBQcm9ncmVzc0V2ZW50KSA9PiB2b2lkKTogUHJvbWlzZTxUPjtcbn1cblxuZXhwb3J0IHR5cGUgTmd0TG9hZGVyUHJvdG88VD4gPSBuZXcgKC4uLmFyZ3M6IGFueSkgPT4gTmd0TG9hZGVyPFQgZXh0ZW5kcyB1bmtub3duID8gYW55IDogVD47XG5leHBvcnQgdHlwZSBOZ3RMb2FkZXJSZXR1cm5UeXBlPFQsIEwgZXh0ZW5kcyBOZ3RMb2FkZXJQcm90bzxUPj4gPSBUIGV4dGVuZHMgdW5rbm93blxuICAgID8gQXdhaXRlZDxSZXR1cm5UeXBlPEluc3RhbmNlVHlwZTxMPlsnbG9hZEFzeW5jJ10+PlxuICAgIDogVDtcbmV4cG9ydCB0eXBlIE5ndExvYWRlckV4dGVuc2lvbnM8VCBleHRlbmRzIHsgcHJvdG90eXBlOiBOZ3RMb2FkZXJQcm90bzxhbnk+IH0+ID0gKGxvYWRlcjogVFsncHJvdG90eXBlJ10pID0+IHZvaWQ7XG5leHBvcnQgdHlwZSBOZ3RDb25kaXRpb25hbFR5cGU8Q2hpbGQsIFBhcmVudCwgVHJ1dGh5LCBGYWxzeT4gPSBDaGlsZCBleHRlbmRzIFBhcmVudCA/IFRydXRoeSA6IEZhbHN5O1xuZXhwb3J0IHR5cGUgTmd0QnJhbmNoaW5nUmV0dXJuPFQsIFBhcmVudCwgQ29lcmNlZD4gPSBOZ3RDb25kaXRpb25hbFR5cGU8VCwgUGFyZW50LCBDb2VyY2VkLCBUPjtcbiJdfQ==
|
|
@@ -74,6 +74,7 @@ export function applyProps(instance, props) {
|
|
|
74
74
|
if (!THREE.ColorManagement && !rootState?.linear && isColor)
|
|
75
75
|
targetProp.convertSRGBToLinear();
|
|
76
76
|
}
|
|
77
|
+
localState?.nativeProps?.set({ [key]: targetProp });
|
|
77
78
|
}
|
|
78
79
|
// else just overwrite the value
|
|
79
80
|
else {
|
|
@@ -83,11 +84,14 @@ export function applyProps(instance, props) {
|
|
|
83
84
|
currentInstance[key].format === THREE.RGBAFormat &&
|
|
84
85
|
currentInstance[key].type === THREE.UnsignedByteType) {
|
|
85
86
|
const texture = currentInstance[key];
|
|
86
|
-
if (
|
|
87
|
-
texture
|
|
88
|
-
|
|
89
|
-
|
|
87
|
+
if (rootState?.gl) {
|
|
88
|
+
if (is.colorSpaceExist(texture) && is.colorSpaceExist(rootState.gl))
|
|
89
|
+
texture.colorSpace = rootState.gl.outputColorSpace;
|
|
90
|
+
else
|
|
91
|
+
texture.encoding = rootState.gl.outputEncoding;
|
|
92
|
+
}
|
|
90
93
|
}
|
|
94
|
+
localState?.nativeProps?.set({ [key]: value });
|
|
91
95
|
}
|
|
92
96
|
checkUpdate(targetProp);
|
|
93
97
|
invalidateInstance(instance);
|
|
@@ -108,4 +112,4 @@ export function applyProps(instance, props) {
|
|
|
108
112
|
}
|
|
109
113
|
return instance;
|
|
110
114
|
}
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi91dGlscy9hcHBseS1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRS9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDL0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXZDLFNBQVMsU0FBUyxDQUFDLFFBQXNCLEVBQUUsS0FBbUI7SUFDMUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxNQUFNLE9BQU8sR0FBb0MsRUFBRSxDQUFDO0lBRXBELEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsSUFBSSxZQUFZLEVBQUU7UUFDN0MsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFBRSxTQUFTO1FBQ25ELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUN0QztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLFFBQXlCLEVBQUUsS0FBbUI7SUFDckUsb0JBQW9CO0lBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU07UUFBRSxPQUFPLFFBQVEsQ0FBQztJQUVoRCw2Q0FBNkM7SUFDN0MsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFFB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QyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUV2RSxJQUFJLE1BQU0sSUFBSSxTQUFTLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxnQkFBZ0IsS0FBSyxVQUFVLENBQUMsVUFBVSxFQUFFO1FBQ25HLGlFQUFpRTtRQUNqRSxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRSx3RUFBd0U7UUFDeEUsSUFBSSxVQUFVLENBQUMsVUFBVTtZQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUM1RTtJQUVELElBQUksTUFBTSxJQUFJLFVBQVUsQ0FBQyxXQUFXLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUN2RixVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN6QztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB0eXBlIHsgTmd0QW55UmVjb3JkLCBOZ3RJbnN0YW5jZU5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRMb2NhbFN0YXRlLCBpbnZhbGlkYXRlSW5zdGFuY2UgfSBmcm9tICcuL2luc3RhbmNlJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi9pcyc7XG5pbXBvcnQgeyBjaGVja1VwZGF0ZSB9IGZyb20gJy4vdXBkYXRlJztcblxuZnVuY3Rpb24gZGlmZlByb3BzKGluc3RhbmNlOiBOZ3RBbnlSZWNvcmQsIHByb3BzOiBOZ3RBbnlSZWNvcmQpIHtcbiAgICBjb25zdCBwcm9wc0VudHJpZXMgPSBPYmplY3QuZW50cmllcyhwcm9wcyk7XG4gICAgY29uc3QgY2hhbmdlczogW2tleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bl1bXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBbcHJvcEtleSwgcHJvcFZhbHVlXSBvZiBwcm9wc0VudHJpZXMpIHtcbiAgICAgICAgaWYgKGlzLmVxdShwcm9wVmFsdWUsIGluc3RhbmNlW3Byb3BLZXldKSkgY29udGludWU7XG4gICAgICAgIGNoYW5nZXMucHVzaChbcHJvcEtleSwgcHJvcFZhbHVlXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoYW5nZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVByb3BzKGluc3RhbmNlOiBOZ3RJbnN0YW5jZU5vZGUsIHByb3BzOiBOZ3RBbnlSZWNvcmQpOiBOZ3RJbnN0YW5jZU5vZGUge1xuICAgIC8vIGlmIHByb3BzIGlzIGVtcHR5XG4gICAgaWYgKCFPYmplY3Qua2V5cyhwcm9wcykubGVuZ3RoKSByZXR1cm4gaW5zdGFuY2U7XG5cbiAgICAvLyBmaWx0ZXIgZXF1YWxzLCBldmVudHMgLCBhbmQgcmVzZXJ2ZWQgcHJvcHNcbiAgICBjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShpbnN0YW5jZSk7XG4gICAgY29uc3Qgcm9vdFN0YXRlID0gbG9jYWxTdGF0ZS5zdG9yZT8uZ2V0KCk7XG4gICAgY29uc3QgY2hhbmdlcyA9IGRpZmZQcm9wcyhpbnN0YW5jZSwgcHJvcHMpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFuZ2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCBrZXkgPSBjaGFuZ2VzW2ldWzBdO1xuICAgICAgICBjb25zdCBjdXJyZW50SW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICAgICAgY29uc3QgdGFyZ2V0UHJvcCA9IGN1cnJlbnRJbnN0YW5jZVtrZXldIGFzIE5ndEFueVJlY29yZDtcbiAgICAgICAgbGV0IHZhbHVlID0gY2hhbmdlc1tpXVsxXTtcblxuICAgICAgICBpZiAoaXMuY29sb3JTcGFjZUV4aXN0KGN1cnJlbnRJbnN0YW5jZSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHNSR0JFbmNvZGluZyA9IDMwMDE7XG4gICAgICAgICAgICBjb25zdCBTUkdCQ29sb3JTcGFjZSA9ICdzcmdiJztcbiAgICAgICAgICAgIGNvbnN0IExpbmVhclNSR0JDb2xvclNwYWNlID0gJ3NyZ2ItbGluZWFyJztcblxuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2VuY29kaW5nJykge1xuICAgICAgICAgICAgICAgIGtleSA9ICdjb2xvclNwYWNlJztcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlID09PSBzUkdCRW5jb2RpbmcgPyBTUkdCQ29sb3JTcGFjZSA6IExpbmVhclNSR0JDb2xvclNwYWNlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdvdXRwdXRFbmNvZGluZycpIHtcbiAgICAgICAgICAgICAgICBrZXkgPSAnb3V0cHV0Q29sb3JTcGFjZSc7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSA9PT0gc1JHQkVuY29kaW5nID8gU1JHQkNvbG9yU3BhY2UgOiBMaW5lYXJTUkdCQ29sb3JTcGFjZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNwZWNpYWwgdHJlYXRtZW4gZm9yIG9iamVjdHMgd2l0aCBzdXBwb3J0IGZvciBzZXQvY29weSwgYW5kIGxheWVyc1xuICAgICAgICBpZiAodGFyZ2V0UHJvcCAmJiB0YXJnZXRQcm9wWydzZXQnXSAmJiAodGFyZ2V0UHJvcFsnY29weSddIHx8IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5MYXllcnMpKSB7XG4gICAgICAgICAgICBjb25zdCBpc0NvbG9yID0gdGFyZ2V0UHJvcCBpbnN0YW5jZW9mIFRIUkVFLkNvbG9yO1xuICAgICAgICAgICAgLy8gaWYgdmFsdWUgaXMgYW4gYXJyYXlcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGlmICgodGFyZ2V0UHJvcCBhcyBOZ3RBbnlSZWNvcmQpWydmcm9tQXJyYXknXSkgKHRhcmdldFByb3AgYXMgTmd0QW55UmVjb3JkKVsnZnJvbUFycmF5J10odmFsdWUpO1xuICAgICAgICAgICAgICAgIGVsc2UgdGFyZ2V0UHJvcFsnc2V0J10oLi4udmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gdGVzdCBhZ2FpbiB0YXJnZXQuY29weVxuICAgICAgICAgICAgZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgKHRhcmdldFByb3AgYXMgTmd0QW55UmVjb3JkKVsnY29weSddICYmXG4gICAgICAgICAgICAgICAgdmFsdWUgJiZcbiAgICAgICAgICAgICAgICB2YWx1ZS5jb25zdHJ1Y3RvciAmJlxuICAgICAgICAgICAgICAgIHRhcmdldFByb3AuY29uc3RydWN0b3IubmFtZSA9PT0gdmFsdWUuY29uc3RydWN0b3IubmFtZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgKHRhcmdldFByb3AgYXMgTmd0QW55UmVjb3JkKVsnY29weSddKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAoIVRIUkVFLkNvbG9yTWFuYWdlbWVudCAmJiAhcm9vdFN0YXRlLmxpbmVhciAmJiBpc0NvbG9yKSB0YXJnZXRQcm9wWydjb252ZXJ0U1JHQlRvTGluZWFyJ10oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGlmIG5vdGhpbmcgZWxzZSBmaXRzLCBqdXN0IHNldCB0aGUgc2luZ2xlIHZhbHVlLCBpZ25vcmUgdW5kZWZpbmVkXG4gICAgICAgICAgICBlbHNlIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNDb2xvciA9IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5Db2xvcjtcbiAgICAgICAgICAgICAgICAvLyBhbGxvdyBzZXR0aW5nIGFycmF5IHNjYWxhcnNcbiAgICAgICAgICAgICAgICBpZiAoIWlzQ29sb3IgJiYgKHRhcmdldFByb3AgYXMgTmd0QW55UmVjb3JkKVsnc2V0U2NhbGFyJ10pXG4gICAgICAgICAgICAgICAgICAgICh0YXJnZXRQcm9wIGFzIE5ndEFueVJlY29yZClbJ3NldFNjYWxhciddKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAvLyBsYXllcnMgaGF2ZSBubyBjb3B5IGZ1bmN0aW9uLCBjb3B5IHRoZSBtYXNrXG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodGFyZ2V0UHJvcCBpbnN0YW5jZW9mIFRIUkVFLkxheWVycyAmJiB2YWx1ZSBpbnN0YW5jZW9mIFRIUkVFLkxheWVycylcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0UHJvcC5tYXNrID0gdmFsdWUubWFzaztcbiAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UganVzdCBzZXQgLi4uXG4gICAgICAgICAgICAgICAgZWxzZSB0YXJnZXRQcm9wWydzZXQnXSh2YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICAvLyBhdXRvLWNvbnZlcnQgc3JnYlxuICAgICAgICAgICAgICAgIGlmICghVEhSRUUuQ29sb3JNYW5hZ2VtZW50ICYmICFyb290U3RhdGU/LmxpbmVhciAmJiBpc0NvbG9yKSB0YXJnZXRQcm9wLmNvbnZlcnRTUkdCVG9MaW5lYXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBlbHNlIGp1c3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRJbnN0YW5jZVtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAvLyBhdXRvLWNvbnZlcnQgc3JnYiB0ZXh0dXJlc1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGN1cnJlbnRJbnN0YW5jZVtrZXldIGluc3RhbmNlb2YgVEhSRUUuVGV4dHVyZSAmJlxuICAgICAgICAgICAgICAgIGN1cnJlbnRJbnN0YW5jZVtrZXldLmZvcm1hdCA9PT0gVEhSRUUuUkdCQUZvcm1hdCAmJlxuICAgICAgICAgICAgICAgIGN1cnJlbnRJbnN0YW5jZVtrZXldLnR5cGUgPT09IFRIUkVFLlVuc2lnbmVkQnl0ZVR5cGVcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRleHR1cmUgPSBjdXJyZW50SW5zdGFuY2Vba2V5XSBhcyBUSFJFRS5UZXh0dXJlO1xuICAgICAgICAgICAgICAgIGlmIChpcy5jb2xvclNwYWNlRXhpc3QodGV4dHVyZSkgJiYgaXMuY29sb3JTcGFjZUV4aXN0KHJvb3RTdGF0ZS5nbCkpXG4gICAgICAgICAgICAgICAgICAgIHRleHR1cmUuY29sb3JTcGFjZSA9IHJvb3RTdGF0ZS5nbC5vdXRwdXRDb2xvclNwYWNlO1xuICAgICAgICAgICAgICAgIGVsc2UgdGV4dHVyZS5lbmNvZGluZyA9IHJvb3RTdGF0ZS5nbC5vdXRwdXRFbmNvZGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNoZWNrVXBkYXRlKHRhcmdldFByb3ApO1xuICAgICAgICBpbnZhbGlkYXRlSW5zdGFuY2UoaW5zdGFuY2UpO1xuICAgIH1cblxuICAgIGNvbnN0IGluc3RhbmNlSGFuZGxlcnMgPSBsb2NhbFN0YXRlLmV2ZW50Q291bnQ7XG4gICAgY29uc3QgcGFyZW50ID0gbG9jYWxTdGF0ZS5wYXJlbnQgPyB1bnRyYWNrZWQobG9jYWxTdGF0ZS5wYXJlbnQpIDogbnVsbDtcblxuICAgIGlmIChwYXJlbnQgJiYgcm9vdFN0YXRlLmludGVybmFsICYmIGluc3RhbmNlWydyYXljYXN0J10gJiYgaW5zdGFuY2VIYW5kbGVycyAhPT0gbG9jYWxTdGF0ZS5ldmVudENvdW50KSB7XG4gICAgICAgIC8vIFByZS1lbXB0aXZlbHkgcmVtb3ZlIHRoZSBpbnN0YW5jZSBmcm9tIHRoZSBpbnRlcmFjdGlvbiBtYW5hZ2VyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLmluZGV4T2YoaW5zdGFuY2UpO1xuICAgICAgICBpZiAoaW5kZXggPiAtMSkgcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIC8vIEFkZCB0aGUgaW5zdGFuY2UgdG8gdGhlIGludGVyYWN0aW9uIG1hbmFnZXIgb25seSB3aGVuIGl0IGhhcyBoYW5kbGVyc1xuICAgICAgICBpZiAobG9jYWxTdGF0ZS5ldmVudENvdW50KSByb290U3RhdGUuaW50ZXJuYWwuaW50ZXJhY3Rpb24ucHVzaChpbnN0YW5jZSk7XG4gICAgfVxuXG4gICAgaWYgKHBhcmVudCAmJiBsb2NhbFN0YXRlLmFmdGVyVXBkYXRlICYmIGxvY2FsU3RhdGUuYWZ0ZXJVcGRhdGUub2JzZXJ2ZWQgJiYgY2hhbmdlcy5sZW5ndGgpIHtcbiAgICAgICAgbG9jYWxTdGF0ZS5hZnRlclVwZGF0ZS5lbWl0KGluc3RhbmNlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5zdGFuY2U7XG59XG4iXX0=
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi91dGlscy9hcHBseS1wcm9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRS9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDL0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXZDLFNBQVMsU0FBUyxDQUFDLFFBQXNCLEVBQUUsS0FBbUI7SUFDMUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxNQUFNLE9BQU8sR0FBb0MsRUFBRSxDQUFDO0lBRXBELEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsSUFBSSxZQUFZLEVBQUU7UUFDN0MsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFBRSxTQUFTO1FBQ25ELE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztLQUN0QztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLFFBQXlCLEVBQUUsS0FBbUI7SUFDckUsb0JBQW9CO0lBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU07UUFBRSxPQUFPLFFBQVEsQ0FBQztJQUVoRCw2Q0FBNkM7SUFDN0MsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFFB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cnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgdHlwZSB7IE5ndEFueVJlY29yZCwgTmd0SW5zdGFuY2VOb2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0TG9jYWxTdGF0ZSwgaW52YWxpZGF0ZUluc3RhbmNlIH0gZnJvbSAnLi9pbnN0YW5jZSc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vaXMnO1xuaW1wb3J0IHsgY2hlY2tVcGRhdGUgfSBmcm9tICcuL3VwZGF0ZSc7XG5cbmZ1bmN0aW9uIGRpZmZQcm9wcyhpbnN0YW5jZTogTmd0QW55UmVjb3JkLCBwcm9wczogTmd0QW55UmVjb3JkKSB7XG4gICAgY29uc3QgcHJvcHNFbnRyaWVzID0gT2JqZWN0LmVudHJpZXMocHJvcHMpO1xuICAgIGNvbnN0IGNoYW5nZXM6IFtrZXk6IHN0cmluZywgdmFsdWU6IHVua25vd25dW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgW3Byb3BLZXksIHByb3BWYWx1ZV0gb2YgcHJvcHNFbnRyaWVzKSB7XG4gICAgICAgIGlmIChpcy5lcXUocHJvcFZhbHVlLCBpbnN0YW5jZVtwcm9wS2V5XSkpIGNvbnRpbnVlO1xuICAgICAgICBjaGFuZ2VzLnB1c2goW3Byb3BLZXksIHByb3BWYWx1ZV0pO1xuICAgIH1cblxuICAgIHJldHVybiBjaGFuZ2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlQcm9wcyhpbnN0YW5jZTogTmd0SW5zdGFuY2VOb2RlLCBwcm9wczogTmd0QW55UmVjb3JkKTogTmd0SW5zdGFuY2VOb2RlIHtcbiAgICAvLyBpZiBwcm9wcyBpcyBlbXB0eVxuICAgIGlmICghT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCkgcmV0dXJuIGluc3RhbmNlO1xuXG4gICAgLy8gZmlsdGVyIGVxdWFscywgZXZlbnRzICwgYW5kIHJlc2VydmVkIHByb3BzXG4gICAgY29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoaW5zdGFuY2UpO1xuICAgIGNvbnN0IHJvb3RTdGF0ZSA9IGxvY2FsU3RhdGUuc3RvcmU/LmdldCgpO1xuICAgIGNvbnN0IGNoYW5nZXMgPSBkaWZmUHJvcHMoaW5zdGFuY2UsIHByb3BzKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhbmdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQga2V5ID0gY2hhbmdlc1tpXVswXTtcbiAgICAgICAgY29uc3QgY3VycmVudEluc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgICAgIGNvbnN0IHRhcmdldFByb3AgPSBjdXJyZW50SW5zdGFuY2Vba2V5XSBhcyBOZ3RBbnlSZWNvcmQ7XG4gICAgICAgIGxldCB2YWx1ZSA9IGNoYW5nZXNbaV1bMV07XG5cbiAgICAgICAgaWYgKGlzLmNvbG9yU3BhY2VFeGlzdChjdXJyZW50SW5zdGFuY2UpKSB7XG4gICAgICAgICAgICBjb25zdCBzUkdCRW5jb2RpbmcgPSAzMDAxO1xuICAgICAgICAgICAgY29uc3QgU1JHQkNvbG9yU3BhY2UgPSAnc3JnYic7XG4gICAgICAgICAgICBjb25zdCBMaW5lYXJTUkdCQ29sb3JTcGFjZSA9ICdzcmdiLWxpbmVhcic7XG5cbiAgICAgICAgICAgIGlmIChrZXkgPT09ICdlbmNvZGluZycpIHtcbiAgICAgICAgICAgICAgICBrZXkgPSAnY29sb3JTcGFjZSc7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSA9PT0gc1JHQkVuY29kaW5nID8gU1JHQkNvbG9yU3BhY2UgOiBMaW5lYXJTUkdCQ29sb3JTcGFjZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnb3V0cHV0RW5jb2RpbmcnKSB7XG4gICAgICAgICAgICAgICAga2V5ID0gJ291dHB1dENvbG9yU3BhY2UnO1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgPT09IHNSR0JFbmNvZGluZyA/IFNSR0JDb2xvclNwYWNlIDogTGluZWFyU1JHQkNvbG9yU3BhY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBzcGVjaWFsIHRyZWF0bWVuIGZvciBvYmplY3RzIHdpdGggc3VwcG9ydCBmb3Igc2V0L2NvcHksIGFuZCBsYXllcnNcbiAgICAgICAgaWYgKHRhcmdldFByb3AgJiYgdGFyZ2V0UHJvcFsnc2V0J10gJiYgKHRhcmdldFByb3BbJ2NvcHknXSB8fCB0YXJnZXRQcm9wIGluc3RhbmNlb2YgVEhSRUUuTGF5ZXJzKSkge1xuICAgICAgICAgICAgY29uc3QgaXNDb2xvciA9IHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5Db2xvcjtcbiAgICAgICAgICAgIC8vIGlmIHZhbHVlIGlzIGFuIGFycmF5XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoKHRhcmdldFByb3AgYXMgTmd0QW55UmVjb3JkKVsnZnJvbUFycmF5J10pICh0YXJnZXRQcm9wIGFzIE5ndEFueVJlY29yZClbJ2Zyb21BcnJheSddKHZhbHVlKTtcbiAgICAgICAgICAgICAgICBlbHNlIHRhcmdldFByb3BbJ3NldCddKC4uLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHRlc3QgYWdhaW4gdGFyZ2V0LmNvcHlcbiAgICAgICAgICAgIGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgICh0YXJnZXRQcm9wIGFzIE5ndEFueVJlY29yZClbJ2NvcHknXSAmJlxuICAgICAgICAgICAgICAgIHZhbHVlICYmXG4gICAgICAgICAgICAgICAgdmFsdWUuY29uc3RydWN0b3IgJiZcbiAgICAgICAgICAgICAgICB0YXJnZXRQcm9wLmNvbnN0cnVjdG9yLm5hbWUgPT09IHZhbHVlLmNvbnN0cnVjdG9yLm5hbWVcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICh0YXJnZXRQcm9wIGFzIE5ndEFueVJlY29yZClbJ2NvcHknXSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgaWYgKCFUSFJFRS5Db2xvck1hbmFnZW1lbnQgJiYgIXJvb3RTdGF0ZS5saW5lYXIgJiYgaXNDb2xvcikgdGFyZ2V0UHJvcFsnY29udmVydFNSR0JUb0xpbmVhciddKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpZiBub3RoaW5nIGVsc2UgZml0cywganVzdCBzZXQgdGhlIHNpbmdsZSB2YWx1ZSwgaWdub3JlIHVuZGVmaW5lZFxuICAgICAgICAgICAgZWxzZSBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzQ29sb3IgPSB0YXJnZXRQcm9wIGluc3RhbmNlb2YgVEhSRUUuQ29sb3I7XG4gICAgICAgICAgICAgICAgLy8gYWxsb3cgc2V0dGluZyBhcnJheSBzY2FsYXJzXG4gICAgICAgICAgICAgICAgaWYgKCFpc0NvbG9yICYmICh0YXJnZXRQcm9wIGFzIE5ndEFueVJlY29yZClbJ3NldFNjYWxhciddKVxuICAgICAgICAgICAgICAgICAgICAodGFyZ2V0UHJvcCBhcyBOZ3RBbnlSZWNvcmQpWydzZXRTY2FsYXInXSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgLy8gbGF5ZXJzIGhhdmUgbm8gY29weSBmdW5jdGlvbiwgY29weSB0aGUgbWFza1xuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHRhcmdldFByb3AgaW5zdGFuY2VvZiBUSFJFRS5MYXllcnMgJiYgdmFsdWUgaW5zdGFuY2VvZiBUSFJFRS5MYXllcnMpXG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFByb3AubWFzayA9IHZhbHVlLm1hc2s7XG4gICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIGp1c3Qgc2V0IC4uLlxuICAgICAgICAgICAgICAgIGVsc2UgdGFyZ2V0UHJvcFsnc2V0J10odmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgLy8gYXV0by1jb252ZXJ0IHNyZ2JcbiAgICAgICAgICAgICAgICBpZiAoIVRIUkVFLkNvbG9yTWFuYWdlbWVudCAmJiAhcm9vdFN0YXRlPy5saW5lYXIgJiYgaXNDb2xvcikgdGFyZ2V0UHJvcC5jb252ZXJ0U1JHQlRvTGluZWFyKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxvY2FsU3RhdGU/Lm5hdGl2ZVByb3BzPy5zZXQoeyBba2V5XTogdGFyZ2V0UHJvcCB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBlbHNlIGp1c3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRJbnN0YW5jZVtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAvLyBhdXRvLWNvbnZlcnQgc3JnYiB0ZXh0dXJlc1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGN1cnJlbnRJbnN0YW5jZVtrZXldIGluc3RhbmNlb2YgVEhSRUUuVGV4dHVyZSAmJlxuICAgICAgICAgICAgICAgIGN1cnJlbnRJbnN0YW5jZVtrZXldLmZvcm1hdCA9PT0gVEhSRUUuUkdCQUZvcm1hdCAmJlxuICAgICAgICAgICAgICAgIGN1cnJlbnRJbnN0YW5jZVtrZXldLnR5cGUgPT09IFRIUkVFLlVuc2lnbmVkQnl0ZVR5cGVcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRleHR1cmUgPSBjdXJyZW50SW5zdGFuY2Vba2V5XSBhcyBUSFJFRS5UZXh0dXJlO1xuICAgICAgICAgICAgICAgIGlmIChyb290U3RhdGU/LmdsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpcy5jb2xvclNwYWNlRXhpc3QodGV4dHVyZSkgJiYgaXMuY29sb3JTcGFjZUV4aXN0KHJvb3RTdGF0ZS5nbCkpXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0dXJlLmNvbG9yU3BhY2UgPSByb290U3RhdGUuZ2wub3V0cHV0Q29sb3JTcGFjZTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB0ZXh0dXJlLmVuY29kaW5nID0gcm9vdFN0YXRlLmdsLm91dHB1dEVuY29kaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxvY2FsU3RhdGU/Lm5hdGl2ZVByb3BzPy5zZXQoeyBba2V5XTogdmFsdWUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjaGVja1VwZGF0ZSh0YXJnZXRQcm9wKTtcbiAgICAgICAgaW52YWxpZGF0ZUluc3RhbmNlKGluc3RhbmNlKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnN0YW5jZUhhbmRsZXJzID0gbG9jYWxTdGF0ZS5ldmVudENvdW50O1xuICAgIGNvbnN0IHBhcmVudCA9IGxvY2FsU3RhdGUucGFyZW50ID8gdW50cmFja2VkKGxvY2FsU3RhdGUucGFyZW50KSA6IG51bGw7XG5cbiAgICBpZiAocGFyZW50ICYmIHJvb3RTdGF0ZS5pbnRlcm5hbCAmJiBpbnN0YW5jZVsncmF5Y2FzdCddICYmIGluc3RhbmNlSGFuZGxlcnMgIT09IGxvY2FsU3RhdGUuZXZlbnRDb3VudCkge1xuICAgICAgICAvLyBQcmUtZW1wdGl2ZWx5IHJlbW92ZSB0aGUgaW5zdGFuY2UgZnJvbSB0aGUgaW50ZXJhY3Rpb24gbWFuYWdlclxuICAgICAgICBjb25zdCBpbmRleCA9IHJvb3RTdGF0ZS5pbnRlcm5hbC5pbnRlcmFjdGlvbi5pbmRleE9mKGluc3RhbmNlKTtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHJvb3RTdGF0ZS5pbnRlcm5hbC5pbnRlcmFjdGlvbi5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAvLyBBZGQgdGhlIGluc3RhbmNlIHRvIHRoZSBpbnRlcmFjdGlvbiBtYW5hZ2VyIG9ubHkgd2hlbiBpdCBoYXMgaGFuZGxlcnNcbiAgICAgICAgaWYgKGxvY2FsU3RhdGUuZXZlbnRDb3VudCkgcm9vdFN0YXRlLmludGVybmFsLmludGVyYWN0aW9uLnB1c2goaW5zdGFuY2UpO1xuICAgIH1cblxuICAgIGlmIChwYXJlbnQgJiYgbG9jYWxTdGF0ZS5hZnRlclVwZGF0ZSAmJiBsb2NhbFN0YXRlLmFmdGVyVXBkYXRlLm9ic2VydmVkICYmIGNoYW5nZXMubGVuZ3RoKSB7XG4gICAgICAgIGxvY2FsU3RhdGUuYWZ0ZXJVcGRhdGUuZW1pdChpbnN0YW5jZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xufVxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Injector, assertInInjectionContext, inject } from '@angular/core';
|
|
2
|
+
export function assertInjectionContext(fn, injector) {
|
|
3
|
+
try {
|
|
4
|
+
if (!injector) {
|
|
5
|
+
return inject(Injector);
|
|
6
|
+
}
|
|
7
|
+
return injector;
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
!injector && assertInInjectionContext(fn);
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0LWluLWluamVjdGlvbi1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlL3NyYy9saWIvdXRpbHMvYXNzZXJ0LWluLWluamVjdGlvbi1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNFLE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxFQUFZLEVBQUUsUUFBbUI7SUFDcEUsSUFBSTtRQUNBLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDWCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMzQjtRQUNELE9BQU8sUUFBUSxDQUFDO0tBQ25CO0lBQUMsTUFBTTtRQUNKLENBQUMsUUFBUSxJQUFJLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSyxDQUFDO0tBQ2hCO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0SW5qZWN0aW9uQ29udGV4dChmbjogRnVuY3Rpb24sIGluamVjdG9yPzogSW5qZWN0b3IpOiBJbmplY3RvciB7XG4gICAgdHJ5IHtcbiAgICAgICAgaWYgKCFpbmplY3Rvcikge1xuICAgICAgICAgICAgcmV0dXJuIGluamVjdChJbmplY3Rvcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGluamVjdG9yO1xuICAgIH0gY2F0Y2gge1xuICAgICAgICAhaW5qZWN0b3IgJiYgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KGZuKTtcbiAgICAgICAgcmV0dXJuIG51bGwhO1xuICAgIH1cbn1cbiJdfQ==
|