@dcl/asset-packs 2.0.0 → 2.1.0
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/bin/index.js +61 -32
- package/dist/actions.js +1 -1
- package/dist/bin/index.js +61 -32
- package/dist/clone.js +11 -2
- package/dist/components.js +4 -2
- package/dist/definitions.d.ts +3 -1
- package/dist/definitions.js +1 -1
- package/dist/index.js +2 -2
- package/dist/scene-entrypoint.d.ts +8 -1
- package/dist/scene-entrypoint.js +7 -2
- package/dist/triggers.js +13 -9
- package/package.json +2 -2
package/dist/clone.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { getComponentEntityTree
|
|
1
|
+
import { getComponentEntityTree } from '@dcl/ecs';
|
|
2
2
|
import { getNextId, requiresId } from './id';
|
|
3
3
|
import { isLastWriteWinComponent } from './lww';
|
|
4
|
+
import { SdkCache } from './scene-entrypoint';
|
|
5
|
+
import { getExplorerComponents } from './components';
|
|
4
6
|
export function clone(entity, engine, Transform, Triggers) {
|
|
5
7
|
const ids = new Map();
|
|
6
8
|
const entities = new Map();
|
|
7
9
|
const tree = getComponentEntityTree(engine, entity, Transform);
|
|
10
|
+
const { NetworkEntity, SyncComponents } = getExplorerComponents(engine);
|
|
8
11
|
for (const original of tree) {
|
|
9
12
|
const cloned = engine.addEntity();
|
|
10
13
|
for (const component of engine.componentsIter()) {
|
|
@@ -51,6 +54,12 @@ export function clone(entity, engine, Transform, Triggers) {
|
|
|
51
54
|
}
|
|
52
55
|
}
|
|
53
56
|
}
|
|
57
|
+
if (NetworkEntity.has(cloned)) {
|
|
58
|
+
const syncComponent = SyncComponents.getOrNull(cloned);
|
|
59
|
+
if (syncComponent && SdkCache.syncEntity) {
|
|
60
|
+
SdkCache.syncEntity(cloned, syncComponent.componentIds);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
54
63
|
const transform = Transform.getMutableOrNull(cloned);
|
|
55
64
|
if (transform && transform.parent) {
|
|
56
65
|
const newParent = entities.get(transform.parent);
|
|
@@ -62,4 +71,4 @@ export function clone(entity, engine, Transform, Triggers) {
|
|
|
62
71
|
const cloned = clones[0];
|
|
63
72
|
return { ids, entities, cloned };
|
|
64
73
|
}
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY2xvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUlMLHNCQUFzQixFQUN2QixNQUFNLFVBQVUsQ0FBQTtBQUNqQixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxPQUFPLENBQUE7QUFFL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUVwRCxNQUFNLFVBQVUsS0FBSyxDQUNuQixNQUFjLEVBQ2QsTUFBZSxFQUNmLFNBQXFDLEVBQ3JDLFFBQTJCO0lBRTNCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFBO0lBQ3JDLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFBO0lBQzFDLE1BQU0sSUFBSSxHQUFHLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDOUQsTUFBTSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN2RSxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzVCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUVqQyxLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDO1lBQ2hELElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUM1QixJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxD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QUNILENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFeEIsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUE7QUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVudGl0eSxcbiAgSUVuZ2luZSxcbiAgVHJhbnNmb3JtQ29tcG9uZW50RXh0ZW5kZWQsXG4gIGdldENvbXBvbmVudEVudGl0eVRyZWVcbn0gZnJvbSAnQGRjbC9lY3MnXG5pbXBvcnQgeyBnZXROZXh0SWQsIHJlcXVpcmVzSWQgfSBmcm9tICcuL2lkJ1xuaW1wb3J0IHsgaXNMYXN0V3JpdGVXaW5Db21wb25lbnQgfSBmcm9tICcuL2x3dydcbmltcG9ydCB7IFRyaWdnZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9kZWZpbml0aW9ucydcbmltcG9ydCB7IFNka0NhY2hlIH0gZnJvbSAnLi9zY2VuZS1lbnRyeXBvaW50J1xuaW1wb3J0IHsgZ2V0RXhwbG9yZXJDb21wb25lbnRzIH0gZnJvbSAnLi9jb21wb25lbnRzJ1xuXG5leHBvcnQgZnVuY3Rpb24gY2xvbmUoXG4gIGVudGl0eTogRW50aXR5LFxuICBlbmdpbmU6IElFbmdpbmUsXG4gIFRyYW5zZm9ybTogVHJhbnNmb3JtQ29tcG9uZW50RXh0ZW5kZWQsXG4gIFRyaWdnZXJzOiBUcmlnZ2Vyc0NvbXBvbmVudFxuKSB7XG4gIGNvbnN0IGlkcyA9IG5ldyBNYXA8bnVtYmVyLCBudW1iZXI+KClcbiAgY29uc3QgZW50aXRpZXMgPSBuZXcgTWFwPEVudGl0eSwgRW50aXR5PigpXG4gIGNvbnN0IHRyZWUgPSBnZXRDb21wb25lbnRFbnRpdHlUcmVlKGVuZ2luZSwgZW50aXR5LCBUcmFuc2Zvcm0pXG4gIGNvbnN0IHsgTmV0d29ya0VudGl0eSwgU3luY0NvbXBvbmVudHMgfSA9IGdldEV4cGxvcmVyQ29tcG9uZW50cyhlbmdpbmUpXG4gIGZvciAoY29uc3Qgb3JpZ2luYWwgb2YgdHJlZSkge1xuICAgIGNvbnN0IGNsb25lZCA9IGVuZ2luZS5hZGRFbnRpdHkoKVxuXG4gICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgZW5naW5lLmNvbXBvbmVudHNJdGVyKCkpIHtcbiAgICAgIGlmIChjb21wb25lbnQuaGFzKG9yaWdpbmFsKSkge1xuICAgICAgICBsZXQgbmV3VmFsdWUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbXBvbmVudC5nZXQob3JpZ2luYWwpKSlcbiAgICAgICAgaWYgKHJlcXVpcmVzSWQoY29tcG9uZW50KSkge1xuICAgICAgICAgIGNvbnN0IG9sZElkID0gbmV3VmFsdWUuaWRcbiAgICAgICAgICBjb25zdCBuZXdJZCA9IGdldE5leHRJZChlbmdpbmUpXG4gICAgICAgICAgaWRzLnNldChvbGRJZCwgbmV3SWQpXG4gICAgICAgICAgbmV3VmFsdWUgPSB7XG4gICAgICAgICAgICAuLi5uZXdWYWx1ZSxcbiAgICAgICAgICAgIGlkOiBuZXdJZCxcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNMYXN0V3JpdGVXaW5Db21wb25lbnQoY29tcG9uZW50KSkge1xuICAgICAgICAgIGNvbXBvbmVudC5jcmVhdGVPclJlcGxhY2UoY2xvbmVkLCBuZXdWYWx1ZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBlbnRpdGllcy5zZXQob3JpZ2luYWwsIGNsb25lZClcbiAgfVxuXG4gIGNvbnN0IGNsb25lcyA9IEFycmF5LmZyb20oZW50aXRpZXMudmFsdWVzKCkpLnJldmVyc2UoKVxuXG4gIGZvciAoY29uc3QgY2xvbmVkIG9mIGNsb25lcykge1xuICAgIC8vIGlmIHRoZSBlbnRpdHkgaGFzIHRyaWdnZXJzLCByZW1hcCB0aGUgb2xkIGlkcyBpbiB0aGUgYWN0aW9ucyBhbmQgY29uZGl0aW9ucyB0byB0aGUgbmV3IG9uZXNcblxuICAgIGlmIChUcmlnZ2Vycy5oYXMoY2xvbmVkKSkge1xuICAgICAgY29uc3QgdHJpZ2dlcnMgPSBUcmlnZ2Vycy5nZXRNdXRhYmxlKGNsb25lZClcbiAgICAgIGZvciAoY29uc3QgdHJpZ2dlciBvZiB0cmlnZ2Vycy52YWx1ZSkge1xuICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiB0cmlnZ2VyLmFjdGlvbnMpIHtcbiAgICAgICAgICBpZiAoYWN0aW9uLmlkKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdJZCA9IGlkcy5nZXQoYWN0aW9uLmlkKVxuICAgICAgICAgICAgaWYgKG5ld0lkKSB7XG4gICAgICAgICAgICAgIGFjdGlvbi5pZCA9IG5ld0lkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0cmlnZ2VyLmNvbmRpdGlvbnMpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiB0cmlnZ2VyLmNvbmRpdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChjb25kaXRpb24uaWQpIHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3SWQgPSBpZHMuZ2V0KGNvbmRpdGlvbi5pZClcbiAgICAgICAgICAgICAgaWYgKG5ld0lkKSB7XG4gICAgICAgICAgICAgICAgY29uZGl0aW9uLmlkID0gbmV3SWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEZpeCB0aGUgTmV0d29ya0VudGl0eSBjb21wb25lbnQgZm9yIHRoZSBuZXcgZW50aXR5LlxuICAgIGlmIChOZXR3b3JrRW50aXR5LmhhcyhjbG9uZWQpKSB7XG4gICAgICBjb25zdCBzeW5jQ29tcG9uZW50ID0gU3luY0NvbXBvbmVudHMuZ2V0T3JOdWxsKGNsb25lZClcblxuICAgICAgaWYgKHN5bmNDb21wb25lbnQgJiYgU2RrQ2FjaGUuc3luY0VudGl0eSkge1xuICAgICAgICBTZGtDYWNoZS5zeW5jRW50aXR5KGNsb25lZCwgc3luY0NvbXBvbmVudC5jb21wb25lbnRJZHMpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogc2hvdWxkIHdlIGZpeCB0aGUgcGFyZW50IG5ldHdvcmsgZW50aXR5IGFsc28gP1xuICAgIGNvbnN0IHRyYW5zZm9ybSA9IFRyYW5zZm9ybS5nZXRNdXRhYmxlT3JOdWxsKGNsb25lZClcbiAgICBpZiAodHJhbnNmb3JtICYmIHRyYW5zZm9ybS5wYXJlbnQpIHtcbiAgICAgIGNvbnN0IG5ld1BhcmVudCA9IGVudGl0aWVzLmdldCh0cmFuc2Zvcm0ucGFyZW50KVxuICAgICAgaWYgKG5ld1BhcmVudCkge1xuICAgICAgICB0cmFuc2Zvcm0ucGFyZW50ID0gbmV3UGFyZW50XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY2xvbmVkID0gY2xvbmVzWzBdXG5cbiAgcmV0dXJuIHsgaWRzLCBlbnRpdGllcywgY2xvbmVkIH1cbn1cbiJdfQ==
|
package/dist/components.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Animator as defineAnimator, Transform as defineTransform, AudioSource as defineAudioSource, AvatarAttach as defineAvatarAttach, VisibilityComponent as defineVisibilityComponent, GltfContainer as defineGltfContainer, UiTransform as defineUiTransform, UiText as defineUiText, UiBackground as defineUiBackground, VideoPlayer as defineVideoPlayer, Material as defineMaterial, MeshRenderer as defineMeshRenderer, Billboard as defineBillboard, Name as defineName, Tween as defineTween, TweenSequence as defineTweenSequence, PointerEvents as definePointerEvents, } from '@dcl/ecs/dist/components';
|
|
1
|
+
import { Animator as defineAnimator, Transform as defineTransform, AudioSource as defineAudioSource, AvatarAttach as defineAvatarAttach, VisibilityComponent as defineVisibilityComponent, GltfContainer as defineGltfContainer, UiTransform as defineUiTransform, UiText as defineUiText, UiBackground as defineUiBackground, VideoPlayer as defineVideoPlayer, Material as defineMaterial, MeshRenderer as defineMeshRenderer, Billboard as defineBillboard, Name as defineName, Tween as defineTween, TweenSequence as defineTweenSequence, PointerEvents as definePointerEvents, NetworkEntity as defineNetworkEntity, SyncComponents as defineSyncComponents } from '@dcl/ecs/dist/components';
|
|
2
2
|
export function getExplorerComponents(engine) {
|
|
3
3
|
return {
|
|
4
4
|
Animator: defineAnimator(engine),
|
|
@@ -18,6 +18,8 @@ export function getExplorerComponents(engine) {
|
|
|
18
18
|
Tween: defineTween(engine),
|
|
19
19
|
TweenSequence: defineTweenSequence(engine),
|
|
20
20
|
PointerEvents: definePointerEvents(engine),
|
|
21
|
+
NetworkEntity: defineNetworkEntity(engine),
|
|
22
|
+
SyncComponents: defineSyncComponents(engine)
|
|
21
23
|
};
|
|
22
24
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxRQUFRLElBQUksY0FBYyxFQUMxQixTQUFTLElBQUksZUFBZSxFQUM1QixXQUFXLElBQUksaUJBQWlCLEVBQ2hDLFlBQVksSUFBSSxrQkFBa0IsRUFDbEMsbUJBQW1CLElBQUkseUJBQXlCLEVBQ2hELGFBQWEsSUFBSSxtQkFBbUIsRUFDcEMsV0FBVyxJQUFJLGlCQUFpQixFQUNoQyxNQUFNLElBQUksWUFBWSxFQUN0QixZQUFZLElBQUksa0JBQWtCLEVBQ2xDLFdBQVcsSUFBSSxpQkFBaUIsRUFDaEMsUUFBUSxJQUFJLGNBQWMsRUFDMUIsWUFBWSxJQUFJLGtCQUFrQixFQUNsQyxTQUFTLElBQUksZUFBZSxFQUM1QixJQUFJLElBQUksVUFBVSxFQUNsQixLQUFLLElBQUksV0FBVyxFQUNwQixhQUFhLElBQUksbUJBQW1CLEVBQ3BDLGFBQWEsSUFBSSxtQkFBbUIsRUFDcEMsYUFBYSxJQUFJLG1CQUFtQixFQUNwQyxjQUFjLElBQUksb0JBQW9CLEVBQ3ZDLE1BQU0sMEJBQTBCLENBQUE7QUFJakMsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE1BQWU7SUFDbkQsT0FBTztRQUNMLFFBQVEsRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQ2hDLFNBQVMsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDO1FBQ2xDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7UUFDdEMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztRQUN4QyxtQkFBbUIsRUFBRSx5QkFBeUIsQ0FBQyxNQUFNLENBQUM7UUFDdEQsYUFBYSxFQUFFLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztRQUMxQyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1FBQ3RDLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQzVCLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUM7UUFDeEMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUN0QyxRQUFRLEVBQUUsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUNoQyxZQUFZLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDO1FBQ3hDLFNBQVMsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDO1FBQ2xDLElBQUksRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ3hCLEtBQUssRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDO1FBQzFCLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUM7UUFDMUMsYUFBYSxFQUFFLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztRQUMxQyxhQUFhLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUFDO1FBQzFDLGNBQWMsRUFBRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7S0FDN0MsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBbmltYXRvciBhcyBkZWZpbmVBbmltYXRvcixcbiAgVHJhbnNmb3JtIGFzIGRlZmluZVRyYW5zZm9ybSxcbiAgQXVkaW9Tb3VyY2UgYXMgZGVmaW5lQXVkaW9Tb3VyY2UsXG4gIEF2YXRhckF0dGFjaCBhcyBkZWZpbmVBdmF0YXJBdHRhY2gsXG4gIFZpc2liaWxpdHlDb21wb25lbnQgYXMgZGVmaW5lVmlzaWJpbGl0eUNvbXBvbmVudCxcbiAgR2x0ZkNvbnRhaW5lciBhcyBkZWZpbmVHbHRmQ29udGFpbmVyLFxuICBVaVRyYW5zZm9ybSBhcyBkZWZpbmVVaVRyYW5zZm9ybSxcbiAgVWlUZXh0IGFzIGRlZmluZVVpVGV4dCxcbiAgVWlCYWNrZ3JvdW5kIGFzIGRlZmluZVVpQmFja2dyb3VuZCxcbiAgVmlkZW9QbGF5ZXIgYXMgZGVmaW5lVmlkZW9QbGF5ZXIsXG4gIE1hdGVyaWFsIGFzIGRlZmluZU1hdGVyaWFsLFxuICBNZXNoUmVuZGVyZXIgYXMgZGVmaW5lTWVzaFJlbmRlcmVyLFxuICBCaWxsYm9hcmQgYXMgZGVmaW5lQmlsbGJvYXJkLFxuICBOYW1lIGFzIGRlZmluZU5hbWUsXG4gIFR3ZWVuIGFzIGRlZmluZVR3ZWVuLFxuICBUd2VlblNlcXVlbmNlIGFzIGRlZmluZVR3ZWVuU2VxdWVuY2UsXG4gIFBvaW50ZXJFdmVudHMgYXMgZGVmaW5lUG9pbnRlckV2ZW50cyxcbiAgTmV0d29ya0VudGl0eSBhcyBkZWZpbmVOZXR3b3JrRW50aXR5LFxuICBTeW5jQ29tcG9uZW50cyBhcyBkZWZpbmVTeW5jQ29tcG9uZW50c1xufSBmcm9tICdAZGNsL2Vjcy9kaXN0L2NvbXBvbmVudHMnXG5pbXBvcnQgeyBJRW5naW5lIH0gZnJvbSAnQGRjbC9lY3MnXG5pbXBvcnQgeyBFbmdpbmVDb21wb25lbnRzIH0gZnJvbSAnLi9kZWZpbml0aW9ucydcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4cGxvcmVyQ29tcG9uZW50cyhlbmdpbmU6IElFbmdpbmUpOiBFbmdpbmVDb21wb25lbnRzIHtcbiAgcmV0dXJuIHtcbiAgICBBbmltYXRvcjogZGVmaW5lQW5pbWF0b3IoZW5naW5lKSxcbiAgICBUcmFuc2Zvcm06IGRlZmluZVRyYW5zZm9ybShlbmdpbmUpLFxuICAgIEF1ZGlvU291cmNlOiBkZWZpbmVBdWRpb1NvdXJjZShlbmdpbmUpLFxuICAgIEF2YXRhckF0dGFjaDogZGVmaW5lQXZhdGFyQXR0YWNoKGVuZ2luZSksXG4gICAgVmlzaWJpbGl0eUNvbXBvbmVudDogZGVmaW5lVmlzaWJpbGl0eUNvbXBvbmVudChlbmdpbmUpLFxuICAgIEdsdGZDb250YWluZXI6IGRlZmluZUdsdGZDb250YWluZXIoZW5naW5lKSxcbiAgICBVaVRyYW5zZm9ybTogZGVmaW5lVWlUcmFuc2Zvcm0oZW5naW5lKSxcbiAgICBVaVRleHQ6IGRlZmluZVVpVGV4dChlbmdpbmUpLFxuICAgIFVpQmFja2dyb3VuZDogZGVmaW5lVWlCYWNrZ3JvdW5kKGVuZ2luZSksXG4gICAgVmlkZW9QbGF5ZXI6IGRlZmluZVZpZGVvUGxheWVyKGVuZ2luZSksXG4gICAgTWF0ZXJpYWw6IGRlZmluZU1hdGVyaWFsKGVuZ2luZSksXG4gICAgTWVzaFJlbmRlcmVyOiBkZWZpbmVNZXNoUmVuZGVyZXIoZW5naW5lKSxcbiAgICBCaWxsYm9hcmQ6IGRlZmluZUJpbGxib2FyZChlbmdpbmUpLFxuICAgIE5hbWU6IGRlZmluZU5hbWUoZW5naW5lKSxcbiAgICBUd2VlbjogZGVmaW5lVHdlZW4oZW5naW5lKSxcbiAgICBUd2VlblNlcXVlbmNlOiBkZWZpbmVUd2VlblNlcXVlbmNlKGVuZ2luZSksXG4gICAgUG9pbnRlckV2ZW50czogZGVmaW5lUG9pbnRlckV2ZW50cyhlbmdpbmUpLFxuICAgIE5ldHdvcmtFbnRpdHk6IGRlZmluZU5ldHdvcmtFbnRpdHkoZW5naW5lKSxcbiAgICBTeW5jQ29tcG9uZW50czogZGVmaW5lU3luY0NvbXBvbmVudHMoZW5naW5lKVxuICB9XG59XG4iXX0=
|
package/dist/definitions.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Entity, IEngine, ISchema, MaterialComponentDefinitionExtended, PBMaterial, PBVideoPlayer, AnimatorComponentDefinitionExtended, TransformComponentExtended, LastWriteWinElementSetComponentDefinition, PBAvatarAttach, PBVisibilityComponent, PBGltfContainer, PBUiTransform, PBUiText, PBUiBackground, MeshRendererComponentDefinitionExtended, PBBillboard, NameType, PBTween, PBTweenSequence, PBPointerEvents, AudioSourceComponentDefinitionExtended } from '@dcl/ecs';
|
|
1
|
+
import { Entity, IEngine, ISchema, MaterialComponentDefinitionExtended, PBMaterial, PBVideoPlayer, AnimatorComponentDefinitionExtended, TransformComponentExtended, LastWriteWinElementSetComponentDefinition, PBAvatarAttach, PBVisibilityComponent, PBGltfContainer, PBUiTransform, PBUiText, PBUiBackground, MeshRendererComponentDefinitionExtended, PBBillboard, NameType, PBTween, PBTweenSequence, PBPointerEvents, NetworkEntity, SyncComponents, AudioSourceComponentDefinitionExtended } from '@dcl/ecs';
|
|
2
2
|
import { ComponentName, TweenType, InterpolationType, ActionType, TriggerType, TriggerConditionType, TriggerConditionOperation, AlignMode, Font, Colliders, ProximityLayer } from './enums';
|
|
3
3
|
export * from './enums';
|
|
4
4
|
export * from './action-types';
|
|
@@ -276,6 +276,8 @@ export type EngineComponents = {
|
|
|
276
276
|
Tween: LastWriteWinElementSetComponentDefinition<PBTween>;
|
|
277
277
|
TweenSequence: LastWriteWinElementSetComponentDefinition<PBTweenSequence>;
|
|
278
278
|
PointerEvents: LastWriteWinElementSetComponentDefinition<PBPointerEvents>;
|
|
279
|
+
NetworkEntity: typeof NetworkEntity;
|
|
280
|
+
SyncComponents: typeof SyncComponents;
|
|
279
281
|
};
|
|
280
282
|
export declare function initComponents(engine: IEngine): void;
|
|
281
283
|
export declare function initVideoPlayerComponentMaterial(entity: Entity, { Material }: Pick<EngineComponents, 'Material'>, material?: PBMaterial | null): null | undefined;
|
package/dist/definitions.js
CHANGED
|
@@ -307,4 +307,4 @@ export function getConditionTypesByComponentName(componentName) {
|
|
|
307
307
|
}
|
|
308
308
|
}
|
|
309
309
|
}
|
|
310
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQU9MLE9BQU8sR0FrQlIsTUFBTSxVQUFVLENBQUE7QUFDakIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzlDLE9BQU8sRUFDTCxhQUFhLEVBQ2IsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsV0FBVyxFQUNYLG9CQUFvQixFQUNwQix5QkFBeUIsRUFDekIsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsY0FBYyxHQUNmLE1BQU0sU0FBUyxDQUFBO0FBQ2hCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUVwRCxjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsTUFBTSxDQUFBO0FBQ3BCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsT0FBTyxDQUFBO0FBQ3JCLGNBQWMsU0FBUyxDQUFBO0FBRXZCLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3ZDLFNBQVMsRUFBRSxPQUFPLENBQUMsTUFBTTtRQUN6QixJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0tBQ3hDLENBQUM7SUFDRixDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM1QyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUs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QUE0QjtnQkFDakQsb0JBQW9CLENBQUMseUJBQXlCO2FBQy9DLENBQUE7UUFDSCxDQUFDO1FBQ0QsS0FBSyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUMzQixPQUFPO2dCQUNMLG9CQUFvQixDQUFDLGlDQUFpQztnQkFDdEQsb0JBQW9CLENBQUMsb0NBQW9DO2FBQzFELENBQUE7UUFDSCxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNSLE9BQU8sRUFBRSxDQUFBO1FBQ1gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW50aXR5LFxuICBJRW5naW5lLFxuICBJU2NoZW1hLFxuICBNYXRlcmlhbENvbXBvbmVudERlZmluaXRpb25FeHRlbmRlZCxcbiAgUEJNYXRlcmlhbCxcbiAgUEJWaWRlb1BsYXllcixcbiAgU2NoZW1hcyxcbiAgVmlkZW9UZXh0dXJlLFxuICBBbmltYXRvckNvbXBvbmVudERlZmluaXRpb25FeHRlbmRlZCxcbiAgVHJhbnNmb3JtQ29tcG9uZW50RXh0ZW5kZWQsXG4gIExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uLFxuICBQQkF2YXRhckF0dGFjaCxcbiAgUEJWaXNpYmlsaXR5Q29tcG9uZW50LFxuICBQQkdsdGZDb250YWluZXIsXG4gIFBCVWlUcmFuc2Zvcm0sXG4gIFBCVWlUZXh0LFxuICBQQlVpQmFja2dyb3VuZCxcbiAgTWVzaFJlbmRlcmVyQ29tcG9uZW50RGVmaW5pdGlvbkV4dGVuZGVkLFxuICBQQkJpbGxib2FyZCxcbiAgTmFtZVR5cGUsXG4gIFBCVHdlZW4sXG4gIFBCVHdlZW5TZXF1ZW5jZSxcbiAgUEJQb2ludGVyRXZlbnRzLFxuICBBdWRpb1NvdXJjZUNvbXBvbmVudERlZmluaXRpb25FeHRlbmRlZCxcbn0gZnJvbSAnQGRjbC9lY3MnXG5pbXBvcnQgeyBhZGRBY3Rpb25UeXBlIH0gZnJvbSAnLi9hY3Rpb24tdHlwZXMnXG5pbXBvcnQge1xuICBDb21wb25lbnROYW1lLFxuICBUd2VlblR5cGUsXG4gIEludGVycG9sYXRpb25UeXBlLFxuICBBY3Rpb25UeXBlLFxuICBUcmlnZ2VyVHlwZSxcbiAgVHJpZ2dlckNvbmRpdGlvblR5cGUsXG4gIFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24sXG4gIEFsaWduTW9kZSxcbiAgRm9udCxcbiAgQ29sbGlkZXJzLFxuICBQcm94aW1pdHlMYXllcixcbn0gZnJvbSAnLi9lbnVtcydcbmltcG9ydCB7IGdldEV4cGxvcmVyQ29tcG9uZW50cyB9IGZyb20gJy4vY29tcG9uZW50cydcblxuZXhwb3J0ICogZnJvbSAnLi9lbnVtcydcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uLXR5cGVzJ1xuZXhwb3J0ICogZnJvbSAnLi9ldmVudHMnXG5leHBvcnQgKiBmcm9tICcuL2lkJ1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0ZXMnXG5leHBvcnQgKiBmcm9tICcuL2Nsb25lJ1xuZXhwb3J0ICogZnJvbSAnLi9sd3cnXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgQWN0aW9uU2NoZW1hcyA9IHtcbiAgW0FjdGlvblR5cGUuUExBWV9BTklNQVRJT05dOiBTY2hlbWFzLk1hcCh7XG4gICAgYW5pbWF0aW9uOiBTY2hlbWFzLlN0cmluZyxcbiAgICBsb29wOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuQm9vbGVhbiksXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5TVE9QX0FOSU1BVElPTl06IFNjaGVtYXMuTWFwKHt9KSxcbiAgW0FjdGlvblR5cGUuU0VUX1NUQVRFXTogU2NoZW1hcy5NYXAoeyBzdGF0ZTogU2NoZW1hcy5TdHJpbmcgfSksXG4gIFtBY3Rpb25UeXBlLlNUQVJUX1RXRUVOXTogU2NoZW1hcy5NYXAoe1xuICAgIHR5cGU6IFNjaGVtYXMuRW51bVN0cmluZzxUd2VlblR5cGU+KFR3ZWVuVHlwZSwgVHdlZW5UeXBlLk1PVkVfSVRFTSksXG4gICAgZW5kOiBTY2hlbWFzLlZlY3RvcjMsXG4gICAgaW50ZXJwb2xhdGlvblR5cGU6IFNjaGVtYXMuRW51bVN0cmluZyhcbiAgICAgIEludGVycG9sYXRpb25UeXBlLFxuICAgICAgSW50ZXJwb2xhdGlvblR5cGUuTElORUFSLFxuICAgICksXG4gICAgZHVyYXRpb246IFNjaGVtYXMuRmxvYXQsXG4gICAgcmVsYXRpdmU6IFNjaGVtYXMuQm9vbGVhbixcbiAgfSksXG4gIFtBY3Rpb25UeXBlLlNFVF9DT1VOVEVSXTogU2NoZW1hcy5NYXAoeyBjb3VudGVyOiBTY2hlbWFzLkludCB9KSxcbiAgW0FjdGlvblR5cGUuSU5DUkVNRU5UX0NPVU5URVJdOiBTY2hlbWFzLk1hcCh7XG4gICAgYW1vdW50OiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuSW50KSxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLkRFQ1JFQVNFX0NPVU5URVJdOiBTY2hlbWFzLk1hcCh7XG4gICAgYW1vdW50OiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuSW50KSxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLlBMQVlfU09VTkRdOiBTY2hlbWFzLk1hcCh7XG4gICAgc3JjOiBTY2hlbWFzLlN0cmluZyxcbiAgICBsb29wOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuQm9vbGVhbiksXG4gICAgdm9sdW1lOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuRmxvYXQpLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuU1RPUF9TT1VORF06IFNjaGVtYXMuTWFwKHt9KSxcbiAgW0FjdGlvblR5cGUuU0VUX1ZJU0lCSUxJVFldOiBTY2hlbWFzLk1hcCh7XG4gICAgdmlzaWJsZTogU2NoZW1hcy5Cb29sZWFuLFxuICAgIC8qKiBAZGVwcmVjYXRlZCB1c2UgY29sbGlkZXIgaW5zdGVhZCAqL1xuICAgIHBoeXNpY3NDb2xsaWRlcjogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkJvb2xlYW4pLFxuICAgIGNvbGxpZGVyOiBTY2hlbWFzLk9wdGlvbmFsKFxuICAgICAgU2NoZW1hcy5FbnVtTnVtYmVyKENvbGxpZGVycywgQ29sbGlkZXJzLkNMX1BPSU5URVIpLFxuICAgICksXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5BVFRBQ0hfVE9fUExBWUVSXTogU2NoZW1hcy5NYXAoe1xuICAgIGFuY2hvclBvaW50SWQ6IFNjaGVtYXMuSW50LFxuICB9KSxcbiAgW0FjdGlvblR5cGUuREVUQUNIX0ZST01fUExBWUVSXTogU2NoZW1hcy5NYXAoe30pLFxuICBbQWN0aW9uVHlwZS5QTEFZX1ZJREVPX1NUUkVBTV06IFNjaGVtYXMuTWFwKHtcbiAgICBzcmM6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5TdHJpbmcpLFxuICAgIGxvb3A6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5Cb29sZWFuKSxcbiAgICB2b2x1bWU6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5GbG9hdCksXG4gICAgZGNsQ2FzdDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkJvb2xlYW4pLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuU1RPUF9WSURFT19TVFJFQU1dOiBTY2hlbWFzLk1hcCh7fSksXG4gIFtBY3Rpb25UeXBlLlBMQVlfQVVESU9fU1RSRUFNXTogU2NoZW1hcy5NYXAoe1xuICAgIHVybDogU2NoZW1hcy5TdHJpbmcsXG4gICAgdm9sdW1lOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuRmxvYXQpLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuU1RPUF9BVURJT19TVFJFQU1dOiBTY2hlbWFzLk1hcCh7fSksXG4gIFtBY3Rpb25UeXBlLlRFTEVQT1JUX1BMQVlFUl06IFNjaGVtYXMuTWFwKHtcbiAgICB4OiBTY2hlbWFzLkludCxcbiAgICB5OiBTY2hlbWFzLkludCxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLk1PVkVfUExBWUVSXTogU2NoZW1hcy5NYXAoe1xuICAgIHBvc2l0aW9uOiBTY2hlbWFzLlZlY3RvcjMsXG4gICAgY2FtZXJhVGFyZ2V0OiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuVmVjdG9yMyksXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5QTEFZX0RFRkFVTFRfRU1PVEVdOiBTY2hlbWFzLk1hcCh7XG4gICAgZW1vdGU6IFNjaGVtYXMuU3RyaW5nLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuUExBWV9DVVNUT01fRU1PVEVdOiBTY2hlbWFzLk1hcCh7XG4gICAgc3JjOiBTY2hlbWFzLlN0cmluZyxcbiAgICBsb29wOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuQm9vbGVhbiksXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5PUEVOX0xJTktdOiBTY2hlbWFzLk1hcCh7XG4gICAgdXJsOiBTY2hlbWFzLlN0cmluZyxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLlNIT1dfVEVYVF06IFNjaGVtYXMuTWFwKHtcbiAgICB0ZXh0OiBTY2hlbWFzLlN0cmluZyxcbiAgICBoaWRlQWZ0ZXJTZWNvbmRzOiBTY2hlbWFzLkZsb2F0LFxuICAgIGZvbnQ6IFNjaGVtYXMuRW51bU51bWJlcihGb250LCBGb250LkZfU0FOU19TRVJJRiksXG4gICAgZm9udFNpemU6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5GbG9hdCksXG4gICAgdGV4dEFsaWduOiBTY2hlbWFzLkVudW1OdW1iZXIoQWxpZ25Nb2RlLCBBbGlnbk1vZGUuVEFNX01JRERMRV9DRU5URVIpLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuSElERV9URVhUXTogU2NoZW1hcy5NYXAoe30pLFxuICBbQWN0aW9uVHlwZS5TVEFSVF9ERUxBWV06IFNjaGVtYXMuTWFwKHtcbiAgICBhY3Rpb25zOiBTY2hlbWFzLkFycmF5KFNjaGVtYXMuU3RyaW5nKSxcbiAgICB0aW1lb3V0OiBTY2hlbWFzLkZsb2F0LFxuICB9KSxcbiAgW0FjdGlvblR5cGUuU1RPUF9ERUxBWV06IFNjaGVtYXMuTWFwKHtcbiAgICBhY3Rpb246IFNjaGVtYXMuU3RyaW5nLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuU1RBUlRfTE9PUF06IFNjaGVtYXMuTWFwKHtcbiAgICBhY3Rpb25zOiBTY2hlbWFzLkFycmF5KFNjaGVtYXMuU3RyaW5nKSxcbiAgICBpbnRlcnZhbDogU2NoZW1hcy5GbG9hdCxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLlNUT1BfTE9PUF06IFNjaGVtYXMuTWFwKHtcbiAgICBhY3Rpb246IFNjaGVtYXMuU3RyaW5nLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuQ0xPTkVfRU5USVRZXTogU2NoZW1hcy5NYXAoe1xuICAgIHBvc2l0aW9uOiBTY2hlbWFzLlZlY3RvcjMsXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5SRU1PVkVfRU5USVRZXTogU2NoZW1hcy5NYXAoe30pLFxuICBbQWN0aW9uVHlwZS5TSE9XX0lNQUdFXTogU2NoZW1hcy5NYXAoe1xuICAgIHNyYzogU2NoZW1hcy5TdHJpbmcsXG4gICAgYWxpZ246IFNjaGVtYXMuRW51bU51bWJlcihBbGlnbk1vZGUsIEFsaWduTW9kZS5UQU1fTUlERExFX0NFTlRFUiksXG4gICAgaGVpZ2h0OiBTY2hlbWFzLkZsb2F0LFxuICAgIHdpZHRoOiBTY2hlbWFzLkZsb2F0LFxuICAgIGhpZGVBZnRlclNlY29uZHM6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5GbG9hdCksXG4gICAgdGV4dDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLlN0cmluZyksXG4gICAgZm9udFNpemU6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5GbG9hdCksXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5ISURFX0lNQUdFXTogU2NoZW1hcy5NYXAoe1xuICAgIGltYWdlRW50aXR5OiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuSW50KSxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLkRBTUFHRV06IFNjaGVtYXMuTWFwKHtcbiAgICByYWRpdXM6IFNjaGVtYXMuRmxvYXQsXG4gICAgbGF5ZXI6IFNjaGVtYXMuT3B0aW9uYWwoXG4gICAgICBTY2hlbWFzLkVudW1TdHJpbmcoUHJveGltaXR5TGF5ZXIsIFByb3hpbWl0eUxheWVyLkFMTCksXG4gICAgKSxcbiAgICBoaXRzOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuSW50KSxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLk1PVkVfUExBWUVSX0hFUkVdOiBTY2hlbWFzLk1hcCh7fSksXG4gIFtBY3Rpb25UeXBlLlBMQUNFX09OX1BMQVlFUl06IFNjaGVtYXMuTWFwKHt9KSxcbiAgW0FjdGlvblR5cGUuUk9UQVRFX0FTX1BMQVlFUl06IFNjaGVtYXMuTWFwKHt9KSxcbiAgW0FjdGlvblR5cGUuUExBQ0VfT05fQ0FNRVJBXTogU2NoZW1hcy5NYXAoe30pLFxuICBbQWN0aW9uVHlwZS5ST1RBVEVfQVNfQ0FNRVJBXTogU2NoZW1hcy5NYXAoe30pLFxuICBbQWN0aW9uVHlwZS5TRVRfUE9TSVRJT05dOiBTY2hlbWFzLk1hcCh7XG4gICAgeDogU2NoZW1hcy5GbG9hdCxcbiAgICB5OiBTY2hlbWFzLkZsb2F0LFxuICAgIHo6IFNjaGVtYXMuRmxvYXQsXG4gICAgcmVsYXRpdmU6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5Cb29sZWFuKSxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLlNFVF9ST1RBVElPTl06IFNjaGVtYXMuTWFwKHtcbiAgICB4OiBTY2hlbWFzLkZsb2F0LFxuICAgIHk6IFNjaGVtYXMuRmxvYXQsXG4gICAgejogU2NoZW1hcy5GbG9hdCxcbiAgICByZWxhdGl2ZTogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkJvb2xlYW4pLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuU0VUX1NDQUxFXTogU2NoZW1hcy5NYXAoe1xuICAgIHg6IFNjaGVtYXMuRmxvYXQsXG4gICAgeTogU2NoZW1hcy5GbG9hdCxcbiAgICB6OiBTY2hlbWFzLkZsb2F0LFxuICAgIHJlbGF0aXZlOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuQm9vbGVhbiksXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5GT0xMT1dfUExBWUVSXTogU2NoZW1hcy5NYXAoe1xuICAgIHNwZWVkOiBTY2hlbWFzLkZsb2F0LFxuICAgIHg6IFNjaGVtYXMuQm9vbGVhbixcbiAgICB5OiBTY2hlbWFzLkJvb2xlYW4sXG4gICAgejogU2NoZW1hcy5Cb29sZWFuLFxuICAgIG1pbkRpc3RhbmNlOiBTY2hlbWFzLkZsb2F0LFxuICB9KSxcbiAgW0FjdGlvblR5cGUuU1RPUF9GT0xMT1dJTkdfUExBWUVSXTogU2NoZW1hcy5NYXAoe30pLFxuICBbQWN0aW9uVHlwZS5SQU5ET01dOiBTY2hlbWFzLk1hcCh7XG4gICAgYWN0aW9uczogU2NoZW1hcy5BcnJheShTY2hlbWFzLlN0cmluZyksXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5CQVRDSF06IFNjaGVtYXMuTWFwKHtcbiAgICBhY3Rpb25zOiBTY2hlbWFzLkFycmF5KFNjaGVtYXMuU3RyaW5nKSxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLkhFQUxfUExBWUVSXTogU2NoZW1hcy5NYXAoe1xuICAgIG11bHRpcGxpZXI6IFNjaGVtYXMuSW50LFxuICB9KSxcbn1cblxuZXhwb3J0IHR5cGUgQWN0aW9uUGF5bG9hZDxUIGV4dGVuZHMgQWN0aW9uVHlwZSA9IGFueT4gPVxuICBUIGV4dGVuZHMga2V5b2YgdHlwZW9mIEFjdGlvblNjaGVtYXNcbiAgICA/ICh0eXBlb2YgQWN0aW9uU2NoZW1hcylbVF0gZXh0ZW5kcyBJU2NoZW1hXG4gICAgICA/IFJldHVyblR5cGU8KHR5cGVvZiBBY3Rpb25TY2hlbWFzKVtUXVsnZGVzZXJpYWxpemUnXT5cbiAgICAgIDoge31cbiAgICA6IHt9XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb21wb25lbnQ8VD4oY29tcG9uZW50TmFtZTogc3RyaW5nLCBlbmdpbmU6IElFbmdpbmUpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gZW5naW5lLmdldENvbXBvbmVudChcbiAgICAgIGNvbXBvbmVudE5hbWUsXG4gICAgKSBhcyBMYXN0V3JpdGVXaW5FbGVtZW50U2V0Q29tcG9uZW50RGVmaW5pdGlvbjxUPlxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBgRXJyb3IgdXNpbmcgZ2V0Q29tcG9uZW50IHdpdGggY29tcG9uZW50TmFtZT1cIiR7Y29tcG9uZW50TmFtZX1cImAsXG4gICAgKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbXBvbmVudHMoZW5naW5lOiBJRW5naW5lKSB7XG4gIHJldHVybiB7XG4gICAgQWN0aW9uczogZ2V0Q29tcG9uZW50PEFjdGlvbnM+KENvbXBvbmVudE5hbWUuQUNUSU9OUywgZW5naW5lKSxcbiAgICBTdGF0ZXM6IGdldENvbXBvbmVudDxTdGF0ZXM+KENvbXBvbmVudE5hbWUuU1RBVEVTLCBlbmdpbmUpLFxuICAgIENvdW50ZXI6IGdldENvbXBvbmVudDxDb3VudGVyPihDb21wb25lbnROYW1lLkNPVU5URVIsIGVuZ2luZSksXG4gICAgVHJpZ2dlcnM6IGdldENvbXBvbmVudDxUcmlnZ2Vycz4oQ29tcG9uZW50TmFtZS5UUklHR0VSUywgZW5naW5lKSxcbiAgICBDb3VudGVyQmFyOiBnZXRDb21wb25lbnQ8Q291bnRlckJhcj4oQ29tcG9uZW50TmFtZS5DT1VOVEVSX0JBUiwgZW5naW5lKSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50cyhlbmdpbmU6IElFbmdpbmUpIHtcbiAgY29uc3QgQWN0aW9uVHlwZXMgPSBlbmdpbmUuZGVmaW5lQ29tcG9uZW50KENvbXBvbmVudE5hbWUuQUNUSU9OX1RZUEVTLCB7XG4gICAgdmFsdWU6IFNjaGVtYXMuQXJyYXkoXG4gICAgICBTY2hlbWFzLk1hcCh7XG4gICAgICAgIHR5cGU6IFNjaGVtYXMuU3RyaW5nLFxuICAgICAgICBqc29uU2NoZW1hOiBTY2hlbWFzLlN0cmluZyxcbiAgICAgIH0pLFxuICAgICksXG4gIH0pXG5cbiAgY29uc3QgQWN0aW9ucyA9IGVuZ2luZS5kZWZpbmVDb21wb25lbnQoQ29tcG9uZW50TmFtZS5BQ1RJT05TLCB7XG4gICAgaWQ6IFNjaGVtYXMuSW50LFxuICAgIHZhbHVlOiBTY2hlbWFzLkFycmF5KFxuICAgICAgU2NoZW1hcy5NYXAoe1xuICAgICAgICBuYW1lOiBTY2hlbWFzLlN0cmluZyxcbiAgICAgICAgdHlwZTogU2NoZW1hcy5TdHJpbmcsXG4gICAgICAgIGpzb25QYXlsb2FkOiBTY2hlbWFzLlN0cmluZyxcbiAgICAgICAgYWxsb3dlZEluQmFzaWNWaWV3OiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuQm9vbGVhbiksXG4gICAgICAgIGJhc2ljVmlld0lkOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuU3RyaW5nKSxcbiAgICAgIH0pLFxuICAgICksXG4gIH0pXG5cbiAgY29uc3QgQ291bnRlciA9IGVuZ2luZS5kZWZpbmVDb21wb25lbnQoQ29tcG9uZW50TmFtZS5DT1VOVEVSLCB7XG4gICAgaWQ6IFNjaGVtYXMuTnVtYmVyLFxuICAgIHZhbHVlOiBTY2hlbWFzLkludCxcbiAgfSlcblxuICBjb25zdCBUcmlnZ2VycyA9IGVuZ2luZS5kZWZpbmVDb21wb25lbnQoQ29tcG9uZW50TmFtZS5UUklHR0VSUywge1xuICAgIHZhbHVlOiBTY2hlbWFzLkFycmF5KFxuICAgICAgU2NoZW1hcy5NYXAoe1xuICAgICAgICB0eXBlOiBTY2hlbWFzLkVudW1TdHJpbmc8VHJpZ2dlclR5cGU+KFxuICAgICAgICAgIFRyaWdnZXJUeXBlLFxuICAgICAgICAgIFRyaWdnZXJUeXBlLk9OX0lOUFVUX0FDVElPTixcbiAgICAgICAgKSxcbiAgICAgICAgY29uZGl0aW9uczogU2NoZW1hcy5PcHRpb25hbChcbiAgICAgICAgICBTY2hlbWFzLkFycmF5KFxuICAgICAgICAgICAgU2NoZW1hcy5NYXAoe1xuICAgICAgICAgICAgICBpZDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkludCksXG4gICAgICAgICAgICAgIHR5cGU6IFNjaGVtYXMuRW51bVN0cmluZzxUcmlnZ2VyQ29uZGl0aW9uVHlwZT4oXG4gICAgICAgICAgICAgICAgVHJpZ2dlckNvbmRpdGlvblR5cGUsXG4gICAgICAgICAgICAgICAgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9TVEFURV9JUyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgdmFsdWU6IFNjaGVtYXMuU3RyaW5nLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICAgb3BlcmF0aW9uOiBTY2hlbWFzLk9wdGlvbmFsKFxuICAgICAgICAgIFNjaGVtYXMuRW51bVN0cmluZzxUcmlnZ2VyQ29uZGl0aW9uT3BlcmF0aW9uPihcbiAgICAgICAgICAgIFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24sXG4gICAgICAgICAgICBUcmlnZ2VyQ29uZGl0aW9uT3BlcmF0aW9uLkFORCxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICBhY3Rpb25zOiBTY2hlbWFzLkFycmF5KFxuICAgICAgICAgIFNjaGVtYXMuTWFwKHtcbiAgICAgICAgICAgIGlkOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuSW50KSxcbiAgICAgICAgICAgIG5hbWU6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5TdHJpbmcpLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgICBiYXNpY1ZpZXdJZDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLlN0cmluZyksXG4gICAgICB9KSxcbiAgICApLFxuICB9KVxuXG4gIGNvbnN0IFN0YXRlcyA9IGVuZ2luZS5kZWZpbmVDb21wb25lbnQoQ29tcG9uZW50TmFtZS5TVEFURVMsIHtcbiAgICBpZDogU2NoZW1hcy5OdW1iZXIsXG4gICAgdmFsdWU6IFNjaGVtYXMuQXJyYXkoU2NoZW1hcy5TdHJpbmcpLFxuICAgIGRlZmF1bHRWYWx1ZTogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLlN0cmluZyksXG4gICAgY3VycmVudFZhbHVlOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuU3RyaW5nKSxcbiAgICBwcmV2aW91c1ZhbHVlOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuU3RyaW5nKSxcbiAgfSlcblxuICBjb25zdCBDb3VudGVyQmFyID0gZW5naW5lLmRlZmluZUNvbXBvbmVudChDb21wb25lbnROYW1lLkNPVU5URVJfQkFSLCB7XG4gICAgcHJpbWFyeUNvbG9yOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuU3RyaW5nKSxcbiAgICBzZWNvbmRhcnlDb2xvcjogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLlN0cmluZyksXG4gICAgbWF4VmFsdWU6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5GbG9hdCksXG4gIH0pXG5cbiAgcmV0dXJuIHtcbiAgICBBY3Rpb25UeXBlcyxcbiAgICBBY3Rpb25zLFxuICAgIENvdW50ZXIsXG4gICAgVHJpZ2dlcnMsXG4gICAgU3RhdGVzLFxuICAgIENvdW50ZXJCYXIsXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgRW5naW5lQ29tcG9uZW50cyA9IHtcbiAgQW5pbWF0b3I6IEFuaW1hdG9yQ29tcG9uZW50RGVmaW5pdGlvbkV4dGVuZGVkXG4gIFRyYW5zZm9ybTogVHJhbnNmb3JtQ29tcG9uZW50RXh0ZW5kZWRcbiAgQXVkaW9Tb3VyY2U6IEF1ZGlvU291cmNlQ29tcG9uZW50RGVmaW5pdGlvbkV4dGVuZGVkXG4gIEF2YXRhckF0dGFjaDogTGFzdFdyaXRlV2luRWxlbWVudFNldENvbXBvbmVudERlZmluaXRpb248UEJBdmF0YXJBdHRhY2g+XG4gIFZpc2liaWxpdHlDb21wb25lbnQ6IExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uPFBCVmlzaWJpbGl0eUNvbXBvbmVudD5cbiAgR2x0ZkNvbnRhaW5lcjogTGFzdFdyaXRlV2luRWxlbWVudFNldENvbXBvbmVudERlZmluaXRpb248UEJHbHRmQ29udGFpbmVyPlxuICBNYXRlcmlhbDogTWF0ZXJpYWxDb21wb25lbnREZWZpbml0aW9uRXh0ZW5kZWRcbiAgTWVzaFJlbmRlcmVyOiBNZXNoUmVuZGVyZXJDb21wb25lbnREZWZpbml0aW9uRXh0ZW5kZWRcbiAgVmlkZW9QbGF5ZXI6IExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uPFBCVmlkZW9QbGF5ZXI+XG4gIFVpVHJhbnNmb3JtOiBMYXN0V3JpdGVXaW5FbGVtZW50U2V0Q29tcG9uZW50RGVmaW5pdGlvbjxQQlVpVHJhbnNmb3JtPlxuICBVaVRleHQ6IExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uPFBCVWlUZXh0PlxuICBVaUJhY2tncm91bmQ6IExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uPFBCVWlCYWNrZ3JvdW5kPlxuICBCaWxsYm9hcmQ6IExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uPFBCQmlsbGJvYXJkPlxuICBOYW1lOiBMYXN0V3JpdGVXaW5FbGVtZW50U2V0Q29tcG9uZW50RGVmaW5pdGlvbjxOYW1lVHlwZT5cbiAgVHdlZW46IExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uPFBCVHdlZW4+XG4gIFR3ZWVuU2VxdWVuY2U6IExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uPFBCVHdlZW5TZXF1ZW5jZT5cbiAgUG9pbnRlckV2ZW50czogTGFzdFdyaXRlV2luRWxlbWVudFNldENvbXBvbmVudERlZmluaXRpb248UEJQb2ludGVyRXZlbnRzPlxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdENvbXBvbmVudHMoZW5naW5lOiBJRW5naW5lKSB7XG4gIC8vIEFkZCBhY3Rpb25zIGZyb20gdGhpcyBwYWNrYWdlXG4gIGNvbnN0IGFjdGlvblR5cGVzID0gT2JqZWN0LnZhbHVlcyhBY3Rpb25UeXBlKVxuICBmb3IgKGNvbnN0IHR5cGUgb2YgYWN0aW9uVHlwZXMpIHtcbiAgICBjb25zdCBhY3Rpb25UeXBlID0gdHlwZSBhcyBBY3Rpb25UeXBlXG4gICAgYWRkQWN0aW9uVHlwZShlbmdpbmUsIGFjdGlvblR5cGUsIEFjdGlvblNjaGVtYXNbYWN0aW9uVHlwZV0pXG4gIH1cblxuICAvLyBBZGQgY291bnRlciB0byByb290IGVudGl0eVxuICBjb25zdCBDb3VudGVyID0gZW5naW5lLmdldENvbXBvbmVudChcbiAgICBDb21wb25lbnROYW1lLkNPVU5URVIsXG4gICkgYXMgTGFzdFdyaXRlV2luRWxlbWVudFNldENvbXBvbmVudERlZmluaXRpb248Q291bnRlcj5cbiAgY29uc3QgY291bnRlciA9IENvdW50ZXIuZ2V0T3JDcmVhdGVNdXRhYmxlKGVuZ2luZS5Sb290RW50aXR5KVxuICBjb3VudGVyLnZhbHVlID0gY291bnRlci52YWx1ZSB8fCAwXG5cbiAgY29uc3QgeyBWaWRlb1BsYXllciwgTWF0ZXJpYWwgfSA9IGdldEV4cGxvcmVyQ29tcG9uZW50cyhlbmdpbmUpXG4gIGluaXRWaWRlb1BsYXllckNvbXBvbmVudHMoZW5naW5lLCB7IFZpZGVvUGxheWVyLCBNYXRlcmlhbCB9KVxufVxuXG5mdW5jdGlvbiBnZXRWaWRlb1RleHR1cmUoeyBtYXRlcmlhbCB9OiBQQk1hdGVyaWFsKTogVmlkZW9UZXh0dXJlIHwgdW5kZWZpbmVkIHtcbiAgaWYgKFxuICAgIG1hdGVyaWFsPy4kY2FzZSA9PT0gJ3BicicgJiZcbiAgICBtYXRlcmlhbC5wYnIudGV4dHVyZT8udGV4Py4kY2FzZSA9PT0gJ3ZpZGVvVGV4dHVyZSdcbiAgKSB7XG4gICAgcmV0dXJuIG1hdGVyaWFsLnBici50ZXh0dXJlLnRleC52aWRlb1RleHR1cmVcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRWaWRlb1BsYXllckNvbXBvbmVudE1hdGVyaWFsKFxuICBlbnRpdHk6IEVudGl0eSxcbiAgeyBNYXRlcmlhbCB9OiBQaWNrPEVuZ2luZUNvbXBvbmVudHMsICdNYXRlcmlhbCc+LFxuICBtYXRlcmlhbD86IFBCTWF0ZXJpYWwgfCBudWxsLFxuKSB7XG4gIGlmICghbWF0ZXJpYWwgfHwgIW1hdGVyaWFsLm1hdGVyaWFsIHx8IG1hdGVyaWFsLm1hdGVyaWFsLiRjYXNlICE9PSAncGJyJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBNYXRlcmlhbC5zZXRQYnJNYXRlcmlhbChlbnRpdHksIHtcbiAgICAuLi5tYXRlcmlhbC5tYXRlcmlhbC5wYnIsXG4gICAgdGV4dHVyZTogTWF0ZXJpYWwuVGV4dHVyZS5WaWRlbyh7XG4gICAgICB2aWRlb1BsYXllckVudGl0eTogZW50aXR5LFxuICAgIH0pLFxuICB9KVxufVxuXG5mdW5jdGlvbiBpbml0VmlkZW9QbGF5ZXJDb21wb25lbnRzKFxuICBlbmdpbmU6IElFbmdpbmUsXG4gIGNvbXBvbmVudHM6IFBpY2s8RW5naW5lQ29tcG9uZW50cywgJ01hdGVyaWFsJyB8ICdWaWRlb1BsYXllcic+LFxuKSB7XG4gIGZ1bmN0aW9uIHJlcGxhY2VWaWRlb1RleHR1cmUoKSB7XG4gICAgY29uc3QgeyBNYXRlcmlhbCwgVmlkZW9QbGF5ZXIgfSA9IGNvbXBvbmVudHNcbiAgICBlbmdpbmUucmVtb3ZlU3lzdGVtKHJlcGxhY2VWaWRlb1RleHR1cmUpXG4gICAgZm9yIChjb25zdCBbZW50aXR5LCBtYXRlcmlhbF0gb2YgZW5naW5lLmdldEVudGl0aWVzV2l0aChcbiAgICAgIE1hdGVyaWFsLFxuICAgICAgVmlkZW9QbGF5ZXIsXG4gICAgKSkge1xuICAgICAgY29uc3QgdmlkZW9UZXh0dXJlID0gZ2V0VmlkZW9UZXh0dXJlKG1hdGVyaWFsKVxuICAgICAgaWYgKHZpZGVvVGV4dHVyZT8udmlkZW9QbGF5ZXJFbnRpdHkgPT09IGVuZ2luZS5Sb290RW50aXR5KSB7XG4gICAgICAgIGluaXRWaWRlb1BsYXllckNvbXBvbmVudE1hdGVyaWFsKGVudGl0eSwgY29tcG9uZW50cywgbWF0ZXJpYWwpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIGVuZ2luZS5hZGRTeXN0ZW0ocmVwbGFjZVZpZGVvVGV4dHVyZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmRpdGlvblR5cGVzQnlDb21wb25lbnROYW1lKGNvbXBvbmVudE5hbWU6IENvbXBvbmVudE5hbWUpIHtcbiAgc3dpdGNoIChjb21wb25lbnROYW1lKSB7XG4gICAgY2FzZSBDb21wb25lbnROYW1lLlNUQVRFUzoge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9TVEFURV9JUyxcbiAgICAgICAgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9TVEFURV9JU19OT1QsXG4gICAgICAgIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fUFJFVklPVVNfU1RBVEVfSVMsXG4gICAgICAgIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fUFJFVklPVVNfU1RBVEVfSVNfTk9ULFxuICAgICAgXVxuICAgIH1cbiAgICBjYXNlIENvbXBvbmVudE5hbWUuQ09VTlRFUjoge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9DT1VOVEVSX0VRVUFMUyxcbiAgICAgICAgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9DT1VOVEVSX0lTX0dSRUFURVJfVEhBTixcbiAgICAgICAgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9DT1VOVEVSX0lTX0xFU1NfVEhBTixcbiAgICAgIF1cbiAgICB9XG4gICAgY2FzZSBDb21wb25lbnROYW1lLkFDVElPTlM6IHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fRElTVEFOQ0VfVE9fUExBWUVSX0xFU1NfVEhBTixcbiAgICAgICAgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9ESVNUQU5DRV9UT19QTEFZRVJfR1JFQVRFUl9USEFOLFxuICAgICAgXVxuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gW11cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQ29tcG9uZW50cyA9IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUNvbXBvbmVudHM+XG5cbmV4cG9ydCB0eXBlIEFjdGlvblR5cGVzQ29tcG9uZW50ID0gQ29tcG9uZW50c1snQWN0aW9uVHlwZXMnXVxuZXhwb3J0IHR5cGUgQWN0aW9uVHlwZXMgPSBSZXR1cm5UeXBlPFxuICBBY3Rpb25UeXBlc0NvbXBvbmVudFsnc2NoZW1hJ11bJ2Rlc2VyaWFsaXplJ11cbj5cblxuZXhwb3J0IHR5cGUgQWN0aW9uc0NvbXBvbmVudCA9IENvbXBvbmVudHNbJ0FjdGlvbnMnXVxuZXhwb3J0IHR5cGUgQWN0aW9ucyA9IFJldHVyblR5cGU8QWN0aW9uc0NvbXBvbmVudFsnc2NoZW1hJ11bJ2Rlc2VyaWFsaXplJ10+XG5leHBvcnQgdHlwZSBBY3Rpb24gPSBBY3Rpb25zWyd2YWx1ZSddWzBdXG5cbmV4cG9ydCB0eXBlIENvdW50ZXJDb21wb25lbnQgPSBDb21wb25lbnRzWydDb3VudGVyJ11cbmV4cG9ydCB0eXBlIENvdW50ZXIgPSBSZXR1cm5UeXBlPENvdW50ZXJDb21wb25lbnRbJ3NjaGVtYSddWydkZXNlcmlhbGl6ZSddPlxuXG5leHBvcnQgdHlwZSBDb3VudGVyQmFyQ29tcG9uZW50ID0gQ29tcG9uZW50c1snQ291bnRlckJhciddXG5leHBvcnQgdHlwZSBDb3VudGVyQmFyID0gUmV0dXJuVHlwZTxcbiAgQ291bnRlckJhckNvbXBvbmVudFsnc2NoZW1hJ11bJ2Rlc2VyaWFsaXplJ11cbj5cblxuZXhwb3J0IHR5cGUgVHJpZ2dlcnNDb21wb25lbnQgPSBDb21wb25lbnRzWydUcmlnZ2VycyddXG5leHBvcnQgdHlwZSBUcmlnZ2VycyA9IFJldHVyblR5cGU8VHJpZ2dlcnNDb21wb25lbnRbJ3NjaGVtYSddWydkZXNlcmlhbGl6ZSddPlxuZXhwb3J0IHR5cGUgVHJpZ2dlciA9IFRyaWdnZXJzWyd2YWx1ZSddWzBdXG5leHBvcnQgdHlwZSBUcmlnZ2VyQWN0aW9uID0gVHJpZ2dlclsnYWN0aW9ucyddWzBdXG5leHBvcnQgdHlwZSBUcmlnZ2VyQ29uZGl0aW9uID0gRXhjbHVkZTxUcmlnZ2VyWydjb25kaXRpb25zJ10sIHVuZGVmaW5lZD5bMF1cblxuZXhwb3J0IHR5cGUgU3RhdGVzQ29tcG9uZW50ID0gQ29tcG9uZW50c1snU3RhdGVzJ11cbmV4cG9ydCB0eXBlIFN0YXRlcyA9IFJldHVyblR5cGU8U3RhdGVzQ29tcG9uZW50WydzY2hlbWEnXVsnZGVzZXJpYWxpemUnXT5cbiJdfQ==
|
|
310
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVmaW5pdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQU9MLE9BQU8sR0FvQlIsTUFBTSxVQUFVLENBQUE7QUFDakIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzlDLE9BQU8sRUFDTCxhQUFhLEVBQ2IsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsV0FBVyxFQUNYLG9CQUFvQixFQUNwQix5QkFBeUIsRUFDekIsU0FBUyxFQUNULElBQUksRUFDSixTQUFTLEVBQ1QsY0FBYyxHQUNmLE1BQU0sU0FBUyxDQUFBO0FBQ2hCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUVwRCxjQUFjLFNBQVMsQ0FBQTtBQUN2QixjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsTUFBTSxDQUFBO0FBQ3BCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsT0FBTyxDQUFBO0FBQ3JCLGNBQWMsU0FBUyxDQUFBO0FBRXZCLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3ZDLFNBQVMsRUFBRSxPQUFPLENBQUMsTUFBTTtRQUN6QixJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0tBQ3hDLENBQUM7SUFDRixDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM1QyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5RCxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3BDLElBQUksRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFZLFNBQVMsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ25FLEdBQUcsRUFBRSxPQUFPLENBQUMsT0FBTztRQUNwQixpQkFBaUIsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUNuQyxpQkFBaUIsRUFDakIsaUJBQWlCLENBQUMsTUFBTSxDQUN6QjtRQUNELFFBQVEsRUFBRSxPQUFPLENBQUMsS0FBSztRQUN2QixRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU87S0FDMUIsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQy9ELENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUMxQyxNQUFNLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO0tBQ3RDLENBQUM7SUFDRixDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDekMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztLQUN0QyxDQUFDO0lBQ0YsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNuQyxHQUFHLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDbkIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUN2QyxNQUFNLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0tBQ3hDLENBQUM7SUFDRixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztRQUV4QixlQUFlLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ2xELFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUN4QixPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDLENBQ3BEO0tBQ0YsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUN6QyxhQUFhLEVBQUUsT0FBTyxDQUFDLEdBQUc7S0FDM0IsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDaEQsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQzFDLEdBQUcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDckMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUN2QyxNQUFNLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7S0FDM0MsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDL0MsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQzFDLEdBQUcsRUFBRSxPQUFPLENBQUMsTUFBTTtRQUNuQixNQUFNLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0tBQ3hDLENBQUM7SUFDRixDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQy9DLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDeEMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHO1FBQ2QsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHO0tBQ2YsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDcEMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3pCLFlBQVksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7S0FDaEQsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUMzQyxLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU07S0FDdEIsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUMxQyxHQUFHLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDbkIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztLQUN4QyxDQUFDO0lBQ0YsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNsQyxHQUFHLEVBQUUsT0FBTyxDQUFDLE1BQU07S0FDcEIsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDbEMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ3BCLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQy9CLElBQUksRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ2pELFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDekMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQztLQUN0RSxDQUFDO0lBQ0YsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDdkMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNwQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3RDLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSztLQUN2QixDQUFDO0lBQ0YsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNuQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07S0FDdkIsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDbkMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUN0QyxRQUFRLEVBQUUsT0FBTyxDQUFDLEtBQUs7S0FDeEIsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDbEMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO0tBQ3ZCLENBQUM7SUFDRixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3JDLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTztLQUMxQixDQUFDO0lBQ0YsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDM0MsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNuQyxHQUFHLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDbkIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQztRQUNqRSxNQUFNLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDckIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ3BCLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNqRCxJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3RDLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7S0FDMUMsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDbkMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztLQUMzQyxDQUFDO0lBQ0YsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUMvQixNQUFNLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDckIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQ3JCLE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FDdkQ7UUFDRCxJQUFJLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO0tBQ3BDLENBQUM7SUFDRixDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQzlDLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQzdDLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDOUMsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDN0MsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM5QyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3JDLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSztRQUNoQixDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDaEIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ2hCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7S0FDNUMsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDckMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ2hCLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSztRQUNoQixDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDaEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztLQUM1QyxDQUFDO0lBQ0YsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNsQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDaEIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1FBQ2hCLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSztRQUNoQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0tBQzVDLENBQUM7SUFDRixDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3RDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztRQUNwQixDQUFDLEVBQUUsT0FBTyxDQUFDLE9BQU87UUFDbEIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ2xCLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTztRQUNsQixXQUFXLEVBQUUsT0FBTyxDQUFDLEtBQUs7S0FDM0IsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDbkQsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUMvQixPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0tBQ3ZDLENBQUM7SUFDRixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQzlCLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7S0FDdkMsQ0FBQztJQUNGLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDcEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxHQUFHO0tBQ3hCLENBQUM7Q0FDSCxDQUFBO0FBU0QsTUFBTSxVQUFVLFlBQVksQ0FBSSxhQUFxQixFQUFFLE1BQWU7SUFDcEUsSUFBSSxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUN4QixhQUFhLENBQ2tDLENBQUE7SUFDbkQsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUNYLGdEQUFnRCxhQUFhLEdBQUcsQ0FDakUsQ0FBQTtRQUNELE1BQU0sS0FBSyxDQUFBO0lBQ2IsQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQWU7SUFDM0MsT0FBTztRQUNMLE9BQU8sRUFBRSxZQUFZLENBQVUsYUFBYSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7UUFDN0QsTUFBTSxFQUFFLFlBQVksQ0FBUyxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztRQUMxRCxPQUFPLEVBQUUsWUFBWSxDQUFVLGFBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQzdELFFBQVEsRUFBRSxZQUFZLENBQVcsYUFBYSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7UUFDaEUsVUFBVSxFQUFFLFlBQVksQ0FBYSxhQUFhLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztLQUN4RSxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFlO0lBQzlDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRTtRQUNyRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUNWLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTTtZQUNwQixVQUFVLEVBQUUsT0FBTyxDQUFDLE1BQU07U0FDM0IsQ0FBQyxDQUNIO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFO1FBQzVELEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRztRQUNmLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ1YsSUFBSSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3BCLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTTtZQUNwQixXQUFXLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDM0Isa0JBQWtCLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQ3JELFdBQVcsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7U0FDOUMsQ0FBQyxDQUNIO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFO1FBQzVELEVBQUUsRUFBRSxPQUFPLENBQUMsTUFBTTtRQUNsQixLQUFLLEVBQUUsT0FBTyxDQUFDLEdBQUc7S0FDbkIsQ0FBQyxDQUFBO0lBRUYsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO1FBQzlELEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ1YsSUFBSSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQ3RCLFdBQVcsRUFDWCxXQUFXLENBQUMsZUFBZSxDQUM1QjtZQUNELFVBQVUsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUMxQixPQUFPLENBQUMsS0FBSyxDQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQ1YsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDakMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQ3RCLG9CQUFvQixFQUNwQixvQkFBb0IsQ0FBQyxhQUFhLENBQ25DO2dCQUNELEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTTthQUN0QixDQUFDLENBQ0gsQ0FDRjtZQUNELFNBQVMsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUN6QixPQUFPLENBQUMsVUFBVSxDQUNoQix5QkFBeUIsRUFDekIseUJBQXlCLENBQUMsR0FBRyxDQUM5QixDQUNGO1lBQ0QsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQ1YsRUFBRSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDakMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQzthQUN2QyxDQUFDLENBQ0g7WUFDRCxXQUFXLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1NBQzlDLENBQUMsQ0FDSDtLQUNGLENBQUMsQ0FBQTtJQUVGLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtRQUMxRCxFQUFFLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDbEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUNwQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzlDLFlBQVksRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDOUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztLQUNoRCxDQUFDLENBQUE7SUFFRixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUU7UUFDbkUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM5QyxjQUFjLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ2hELFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7S0FDMUMsQ0FBQyxDQUFBO0lBRUYsT0FBTztRQUNMLFdBQVc7UUFDWCxPQUFPO1FBQ1AsT0FBTztRQUNQLFFBQVE7UUFDUixNQUFNO1FBQ04sVUFBVTtLQUNYLENBQUE7QUFDSCxDQUFDO0FBd0JELE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBZTtJQUU1QyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzdDLEtBQUssTUFBTSxJQUFJLElBQUksV0FBVyxFQUFFLENBQUM7UUFDL0IsTUFBTSxVQUFVLEdBQUcsSUFBa0IsQ0FBQTtRQUNyQyxhQUFhLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtJQUM5RCxDQUFDO0lBR0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FDakMsYUFBYSxDQUFDLE9BQU8sQ0FDZ0MsQ0FBQTtJQUN2RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzdELE9BQU8sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUE7SUFFbEMsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMvRCx5QkFBeUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQTtBQUM5RCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsRUFBRSxRQUFRLEVBQWM7SUFDL0MsSUFDRSxRQUFRLEVBQUUsS0FBSyxLQUFLLEtBQUs7UUFDekIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssS0FBSyxjQUFjLEVBQ25ELENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUE7SUFDOUMsQ0FBQztJQUVELE9BQU8sU0FBUyxDQUFBO0FBQ2xCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0NBQWdDLENBQzlDLE1BQWMsRUFDZCxFQUFFLFFBQVEsRUFBc0MsRUFDaEQsUUFBNEI7SUFFNUIsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDekUsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsUUFBUSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUU7UUFDOUIsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUc7UUFDeEIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzlCLGlCQUFpQixFQUFFLE1BQU07U0FDMUIsQ0FBQztLQUNILENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRCxTQUFTLHlCQUF5QixDQUNoQyxNQUFlLEVBQ2YsVUFBOEQ7SUFFOUQsU0FBUyxtQkFBbUI7UUFDMUIsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsR0FBRyxVQUFVLENBQUE7UUFDNUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBQ3hDLEtBQUssTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsSUFBSSxNQUFNLENBQUMsZUFBZSxDQUNyRCxRQUFRLEVBQ1IsV0FBVyxDQUNaLEVBQUUsQ0FBQztZQUNGLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtZQUM5QyxJQUFJLFlBQVksRUFBRSxpQkFBaUIsS0FBSyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzFELGdDQUFnQyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUE7WUFDaEUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO0FBQ3ZDLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0NBQWdDLENBQUMsYUFBNEI7SUFDM0UsUUFBUSxhQUFhLEVBQUUsQ0FBQztRQUN0QixLQUFLLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzFCLE9BQU87Z0JBQ0wsb0JBQW9CLENBQUMsYUFBYTtnQkFDbEMsb0JBQW9CLENBQUMsaUJBQWlCO2dCQUN0QyxvQkFBb0IsQ0FBQyxzQkFBc0I7Z0JBQzNDLG9CQUFvQixDQUFDLDBCQUEwQjthQUNoRCxDQUFBO1FBQ0gsQ0FBQztRQUNELEtBQUssYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDM0IsT0FBTztnQkFDTCxvQkFBb0IsQ0FBQyxtQkFBbUI7Z0JBQ3hDLG9CQUFvQixDQUFDLDRCQUE0QjtnQkFDakQsb0JBQW9CLENBQUMseUJBQXlCO2FBQy9DLENBQUE7UUFDSCxDQUFDO1FBQ0QsS0FBSyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUMzQixPQUFPO2dCQUNMLG9CQUFvQixDQUFDLGlDQUFpQztnQkFDdEQsb0JBQW9CLENBQUMsb0NBQW9DO2FBQzFELENBQUE7UUFDSCxDQUFDO1FBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNSLE9BQU8sRUFBRSxDQUFBO1FBQ1gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW50aXR5LFxuICBJRW5naW5lLFxuICBJU2NoZW1hLFxuICBNYXRlcmlhbENvbXBvbmVudERlZmluaXRpb25FeHRlbmRlZCxcbiAgUEJNYXRlcmlhbCxcbiAgUEJWaWRlb1BsYXllcixcbiAgU2NoZW1hcyxcbiAgVmlkZW9UZXh0dXJlLFxuICBBbmltYXRvckNvbXBvbmVudERlZmluaXRpb25FeHRlbmRlZCxcbiAgVHJhbnNmb3JtQ29tcG9uZW50RXh0ZW5kZWQsXG4gIExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uLFxuICBQQkF2YXRhckF0dGFjaCxcbiAgUEJWaXNpYmlsaXR5Q29tcG9uZW50LFxuICBQQkdsdGZDb250YWluZXIsXG4gIFBCVWlUcmFuc2Zvcm0sXG4gIFBCVWlUZXh0LFxuICBQQlVpQmFja2dyb3VuZCxcbiAgTWVzaFJlbmRlcmVyQ29tcG9uZW50RGVmaW5pdGlvbkV4dGVuZGVkLFxuICBQQkJpbGxib2FyZCxcbiAgTmFtZVR5cGUsXG4gIFBCVHdlZW4sXG4gIFBCVHdlZW5TZXF1ZW5jZSxcbiAgUEJQb2ludGVyRXZlbnRzLFxuICBOZXR3b3JrRW50aXR5LFxuICBTeW5jQ29tcG9uZW50cyxcbiAgQXVkaW9Tb3VyY2VDb21wb25lbnREZWZpbml0aW9uRXh0ZW5kZWQsXG59IGZyb20gJ0BkY2wvZWNzJ1xuaW1wb3J0IHsgYWRkQWN0aW9uVHlwZSB9IGZyb20gJy4vYWN0aW9uLXR5cGVzJ1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50TmFtZSxcbiAgVHdlZW5UeXBlLFxuICBJbnRlcnBvbGF0aW9uVHlwZSxcbiAgQWN0aW9uVHlwZSxcbiAgVHJpZ2dlclR5cGUsXG4gIFRyaWdnZXJDb25kaXRpb25UeXBlLFxuICBUcmlnZ2VyQ29uZGl0aW9uT3BlcmF0aW9uLFxuICBBbGlnbk1vZGUsXG4gIEZvbnQsXG4gIENvbGxpZGVycyxcbiAgUHJveGltaXR5TGF5ZXIsXG59IGZyb20gJy4vZW51bXMnXG5pbXBvcnQgeyBnZXRFeHBsb3JlckNvbXBvbmVudHMgfSBmcm9tICcuL2NvbXBvbmVudHMnXG5cbmV4cG9ydCAqIGZyb20gJy4vZW51bXMnXG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi10eXBlcydcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnRzJ1xuZXhwb3J0ICogZnJvbSAnLi9pZCdcbmV4cG9ydCAqIGZyb20gJy4vc3RhdGVzJ1xuZXhwb3J0ICogZnJvbSAnLi9jbG9uZSdcbmV4cG9ydCAqIGZyb20gJy4vbHd3J1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcblxuZXhwb3J0IGNvbnN0IEFjdGlvblNjaGVtYXMgPSB7XG4gIFtBY3Rpb25UeXBlLlBMQVlfQU5JTUFUSU9OXTogU2NoZW1hcy5NYXAoe1xuICAgIGFuaW1hdGlvbjogU2NoZW1hcy5TdHJpbmcsXG4gICAgbG9vcDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkJvb2xlYW4pLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuU1RPUF9BTklNQVRJT05dOiBTY2hlbWFzLk1hcCh7fSksXG4gIFtBY3Rpb25UeXBlLlNFVF9TVEFURV06IFNjaGVtYXMuTWFwKHsgc3RhdGU6IFNjaGVtYXMuU3RyaW5nIH0pLFxuICBbQWN0aW9uVHlwZS5TVEFSVF9UV0VFTl06IFNjaGVtYXMuTWFwKHtcbiAgICB0eXBlOiBTY2hlbWFzLkVudW1TdHJpbmc8VHdlZW5UeXBlPihUd2VlblR5cGUsIFR3ZWVuVHlwZS5NT1ZFX0lURU0pLFxuICAgIGVuZDogU2NoZW1hcy5WZWN0b3IzLFxuICAgIGludGVycG9sYXRpb25UeXBlOiBTY2hlbWFzLkVudW1TdHJpbmcoXG4gICAgICBJbnRlcnBvbGF0aW9uVHlwZSxcbiAgICAgIEludGVycG9sYXRpb25UeXBlLkxJTkVBUixcbiAgICApLFxuICAgIGR1cmF0aW9uOiBTY2hlbWFzLkZsb2F0LFxuICAgIHJlbGF0aXZlOiBTY2hlbWFzLkJvb2xlYW4sXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5TRVRfQ09VTlRFUl06IFNjaGVtYXMuTWFwKHsgY291bnRlcjogU2NoZW1hcy5JbnQgfSksXG4gIFtBY3Rpb25UeXBlLklOQ1JFTUVOVF9DT1VOVEVSXTogU2NoZW1hcy5NYXAoe1xuICAgIGFtb3VudDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkludCksXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5ERUNSRUFTRV9DT1VOVEVSXTogU2NoZW1hcy5NYXAoe1xuICAgIGFtb3VudDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkludCksXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5QTEFZX1NPVU5EXTogU2NoZW1hcy5NYXAoe1xuICAgIHNyYzogU2NoZW1hcy5TdHJpbmcsXG4gICAgbG9vcDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkJvb2xlYW4pLFxuICAgIHZvbHVtZTogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkZsb2F0KSxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLlNUT1BfU09VTkRdOiBTY2hlbWFzLk1hcCh7fSksXG4gIFtBY3Rpb25UeXBlLlNFVF9WSVNJQklMSVRZXTogU2NoZW1hcy5NYXAoe1xuICAgIHZpc2libGU6IFNjaGVtYXMuQm9vbGVhbixcbiAgICAvKiogQGRlcHJlY2F0ZWQgdXNlIGNvbGxpZGVyIGluc3RlYWQgKi9cbiAgICBwaHlzaWNzQ29sbGlkZXI6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5Cb29sZWFuKSxcbiAgICBjb2xsaWRlcjogU2NoZW1hcy5PcHRpb25hbChcbiAgICAgIFNjaGVtYXMuRW51bU51bWJlcihDb2xsaWRlcnMsIENvbGxpZGVycy5DTF9QT0lOVEVSKSxcbiAgICApLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuQVRUQUNIX1RPX1BMQVlFUl06IFNjaGVtYXMuTWFwKHtcbiAgICBhbmNob3JQb2ludElkOiBTY2hlbWFzLkludCxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLkRFVEFDSF9GUk9NX1BMQVlFUl06IFNjaGVtYXMuTWFwKHt9KSxcbiAgW0FjdGlvblR5cGUuUExBWV9WSURFT19TVFJFQU1dOiBTY2hlbWFzLk1hcCh7XG4gICAgc3JjOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuU3RyaW5nKSxcbiAgICBsb29wOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuQm9vbGVhbiksXG4gICAgdm9sdW1lOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuRmxvYXQpLFxuICAgIGRjbENhc3Q6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5Cb29sZWFuKSxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLlNUT1BfVklERU9fU1RSRUFNXTogU2NoZW1hcy5NYXAoe30pLFxuICBbQWN0aW9uVHlwZS5QTEFZX0FVRElPX1NUUkVBTV06IFNjaGVtYXMuTWFwKHtcbiAgICB1cmw6IFNjaGVtYXMuU3RyaW5nLFxuICAgIHZvbHVtZTogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkZsb2F0KSxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLlNUT1BfQVVESU9fU1RSRUFNXTogU2NoZW1hcy5NYXAoe30pLFxuICBbQWN0aW9uVHlwZS5URUxFUE9SVF9QTEFZRVJdOiBTY2hlbWFzLk1hcCh7XG4gICAgeDogU2NoZW1hcy5JbnQsXG4gICAgeTogU2NoZW1hcy5JbnQsXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5NT1ZFX1BMQVlFUl06IFNjaGVtYXMuTWFwKHtcbiAgICBwb3NpdGlvbjogU2NoZW1hcy5WZWN0b3IzLFxuICAgIGNhbWVyYVRhcmdldDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLlZlY3RvcjMpLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuUExBWV9ERUZBVUxUX0VNT1RFXTogU2NoZW1hcy5NYXAoe1xuICAgIGVtb3RlOiBTY2hlbWFzLlN0cmluZyxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLlBMQVlfQ1VTVE9NX0VNT1RFXTogU2NoZW1hcy5NYXAoe1xuICAgIHNyYzogU2NoZW1hcy5TdHJpbmcsXG4gICAgbG9vcDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkJvb2xlYW4pLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuT1BFTl9MSU5LXTogU2NoZW1hcy5NYXAoe1xuICAgIHVybDogU2NoZW1hcy5TdHJpbmcsXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5TSE9XX1RFWFRdOiBTY2hlbWFzLk1hcCh7XG4gICAgdGV4dDogU2NoZW1hcy5TdHJpbmcsXG4gICAgaGlkZUFmdGVyU2Vjb25kczogU2NoZW1hcy5GbG9hdCxcbiAgICBmb250OiBTY2hlbWFzLkVudW1OdW1iZXIoRm9udCwgRm9udC5GX1NBTlNfU0VSSUYpLFxuICAgIGZvbnRTaXplOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuRmxvYXQpLFxuICAgIHRleHRBbGlnbjogU2NoZW1hcy5FbnVtTnVtYmVyKEFsaWduTW9kZSwgQWxpZ25Nb2RlLlRBTV9NSURETEVfQ0VOVEVSKSxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLkhJREVfVEVYVF06IFNjaGVtYXMuTWFwKHt9KSxcbiAgW0FjdGlvblR5cGUuU1RBUlRfREVMQVldOiBTY2hlbWFzLk1hcCh7XG4gICAgYWN0aW9uczogU2NoZW1hcy5BcnJheShTY2hlbWFzLlN0cmluZyksXG4gICAgdGltZW91dDogU2NoZW1hcy5GbG9hdCxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLlNUT1BfREVMQVldOiBTY2hlbWFzLk1hcCh7XG4gICAgYWN0aW9uOiBTY2hlbWFzLlN0cmluZyxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLlNUQVJUX0xPT1BdOiBTY2hlbWFzLk1hcCh7XG4gICAgYWN0aW9uczogU2NoZW1hcy5BcnJheShTY2hlbWFzLlN0cmluZyksXG4gICAgaW50ZXJ2YWw6IFNjaGVtYXMuRmxvYXQsXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5TVE9QX0xPT1BdOiBTY2hlbWFzLk1hcCh7XG4gICAgYWN0aW9uOiBTY2hlbWFzLlN0cmluZyxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLkNMT05FX0VOVElUWV06IFNjaGVtYXMuTWFwKHtcbiAgICBwb3NpdGlvbjogU2NoZW1hcy5WZWN0b3IzLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuUkVNT1ZFX0VOVElUWV06IFNjaGVtYXMuTWFwKHt9KSxcbiAgW0FjdGlvblR5cGUuU0hPV19JTUFHRV06IFNjaGVtYXMuTWFwKHtcbiAgICBzcmM6IFNjaGVtYXMuU3RyaW5nLFxuICAgIGFsaWduOiBTY2hlbWFzLkVudW1OdW1iZXIoQWxpZ25Nb2RlLCBBbGlnbk1vZGUuVEFNX01JRERMRV9DRU5URVIpLFxuICAgIGhlaWdodDogU2NoZW1hcy5GbG9hdCxcbiAgICB3aWR0aDogU2NoZW1hcy5GbG9hdCxcbiAgICBoaWRlQWZ0ZXJTZWNvbmRzOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuRmxvYXQpLFxuICAgIHRleHQ6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5TdHJpbmcpLFxuICAgIGZvbnRTaXplOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuRmxvYXQpLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuSElERV9JTUFHRV06IFNjaGVtYXMuTWFwKHtcbiAgICBpbWFnZUVudGl0eTogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkludCksXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5EQU1BR0VdOiBTY2hlbWFzLk1hcCh7XG4gICAgcmFkaXVzOiBTY2hlbWFzLkZsb2F0LFxuICAgIGxheWVyOiBTY2hlbWFzLk9wdGlvbmFsKFxuICAgICAgU2NoZW1hcy5FbnVtU3RyaW5nKFByb3hpbWl0eUxheWVyLCBQcm94aW1pdHlMYXllci5BTEwpLFxuICAgICksXG4gICAgaGl0czogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkludCksXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5NT1ZFX1BMQVlFUl9IRVJFXTogU2NoZW1hcy5NYXAoe30pLFxuICBbQWN0aW9uVHlwZS5QTEFDRV9PTl9QTEFZRVJdOiBTY2hlbWFzLk1hcCh7fSksXG4gIFtBY3Rpb25UeXBlLlJPVEFURV9BU19QTEFZRVJdOiBTY2hlbWFzLk1hcCh7fSksXG4gIFtBY3Rpb25UeXBlLlBMQUNFX09OX0NBTUVSQV06IFNjaGVtYXMuTWFwKHt9KSxcbiAgW0FjdGlvblR5cGUuUk9UQVRFX0FTX0NBTUVSQV06IFNjaGVtYXMuTWFwKHt9KSxcbiAgW0FjdGlvblR5cGUuU0VUX1BPU0lUSU9OXTogU2NoZW1hcy5NYXAoe1xuICAgIHg6IFNjaGVtYXMuRmxvYXQsXG4gICAgeTogU2NoZW1hcy5GbG9hdCxcbiAgICB6OiBTY2hlbWFzLkZsb2F0LFxuICAgIHJlbGF0aXZlOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuQm9vbGVhbiksXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5TRVRfUk9UQVRJT05dOiBTY2hlbWFzLk1hcCh7XG4gICAgeDogU2NoZW1hcy5GbG9hdCxcbiAgICB5OiBTY2hlbWFzLkZsb2F0LFxuICAgIHo6IFNjaGVtYXMuRmxvYXQsXG4gICAgcmVsYXRpdmU6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5Cb29sZWFuKSxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLlNFVF9TQ0FMRV06IFNjaGVtYXMuTWFwKHtcbiAgICB4OiBTY2hlbWFzLkZsb2F0LFxuICAgIHk6IFNjaGVtYXMuRmxvYXQsXG4gICAgejogU2NoZW1hcy5GbG9hdCxcbiAgICByZWxhdGl2ZTogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkJvb2xlYW4pLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuRk9MTE9XX1BMQVlFUl06IFNjaGVtYXMuTWFwKHtcbiAgICBzcGVlZDogU2NoZW1hcy5GbG9hdCxcbiAgICB4OiBTY2hlbWFzLkJvb2xlYW4sXG4gICAgeTogU2NoZW1hcy5Cb29sZWFuLFxuICAgIHo6IFNjaGVtYXMuQm9vbGVhbixcbiAgICBtaW5EaXN0YW5jZTogU2NoZW1hcy5GbG9hdCxcbiAgfSksXG4gIFtBY3Rpb25UeXBlLlNUT1BfRk9MTE9XSU5HX1BMQVlFUl06IFNjaGVtYXMuTWFwKHt9KSxcbiAgW0FjdGlvblR5cGUuUkFORE9NXTogU2NoZW1hcy5NYXAoe1xuICAgIGFjdGlvbnM6IFNjaGVtYXMuQXJyYXkoU2NoZW1hcy5TdHJpbmcpLFxuICB9KSxcbiAgW0FjdGlvblR5cGUuQkFUQ0hdOiBTY2hlbWFzLk1hcCh7XG4gICAgYWN0aW9uczogU2NoZW1hcy5BcnJheShTY2hlbWFzLlN0cmluZyksXG4gIH0pLFxuICBbQWN0aW9uVHlwZS5IRUFMX1BMQVlFUl06IFNjaGVtYXMuTWFwKHtcbiAgICBtdWx0aXBsaWVyOiBTY2hlbWFzLkludCxcbiAgfSksXG59XG5cbmV4cG9ydCB0eXBlIEFjdGlvblBheWxvYWQ8VCBleHRlbmRzIEFjdGlvblR5cGUgPSBhbnk+ID1cbiAgVCBleHRlbmRzIGtleW9mIHR5cGVvZiBBY3Rpb25TY2hlbWFzXG4gICAgPyAodHlwZW9mIEFjdGlvblNjaGVtYXMpW1RdIGV4dGVuZHMgSVNjaGVtYVxuICAgICAgPyBSZXR1cm5UeXBlPCh0eXBlb2YgQWN0aW9uU2NoZW1hcylbVF1bJ2Rlc2VyaWFsaXplJ10+XG4gICAgICA6IHt9XG4gICAgOiB7fVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tcG9uZW50PFQ+KGNvbXBvbmVudE5hbWU6IHN0cmluZywgZW5naW5lOiBJRW5naW5lKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGVuZ2luZS5nZXRDb21wb25lbnQoXG4gICAgICBjb21wb25lbnROYW1lLFxuICAgICkgYXMgTGFzdFdyaXRlV2luRWxlbWVudFNldENvbXBvbmVudERlZmluaXRpb248VD5cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgYEVycm9yIHVzaW5nIGdldENvbXBvbmVudCB3aXRoIGNvbXBvbmVudE5hbWU9XCIke2NvbXBvbmVudE5hbWV9XCJgLFxuICAgIClcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb21wb25lbnRzKGVuZ2luZTogSUVuZ2luZSkge1xuICByZXR1cm4ge1xuICAgIEFjdGlvbnM6IGdldENvbXBvbmVudDxBY3Rpb25zPihDb21wb25lbnROYW1lLkFDVElPTlMsIGVuZ2luZSksXG4gICAgU3RhdGVzOiBnZXRDb21wb25lbnQ8U3RhdGVzPihDb21wb25lbnROYW1lLlNUQVRFUywgZW5naW5lKSxcbiAgICBDb3VudGVyOiBnZXRDb21wb25lbnQ8Q291bnRlcj4oQ29tcG9uZW50TmFtZS5DT1VOVEVSLCBlbmdpbmUpLFxuICAgIFRyaWdnZXJzOiBnZXRDb21wb25lbnQ8VHJpZ2dlcnM+KENvbXBvbmVudE5hbWUuVFJJR0dFUlMsIGVuZ2luZSksXG4gICAgQ291bnRlckJhcjogZ2V0Q29tcG9uZW50PENvdW50ZXJCYXI+KENvbXBvbmVudE5hbWUuQ09VTlRFUl9CQVIsIGVuZ2luZSksXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbXBvbmVudHMoZW5naW5lOiBJRW5naW5lKSB7XG4gIGNvbnN0IEFjdGlvblR5cGVzID0gZW5naW5lLmRlZmluZUNvbXBvbmVudChDb21wb25lbnROYW1lLkFDVElPTl9UWVBFUywge1xuICAgIHZhbHVlOiBTY2hlbWFzLkFycmF5KFxuICAgICAgU2NoZW1hcy5NYXAoe1xuICAgICAgICB0eXBlOiBTY2hlbWFzLlN0cmluZyxcbiAgICAgICAganNvblNjaGVtYTogU2NoZW1hcy5TdHJpbmcsXG4gICAgICB9KSxcbiAgICApLFxuICB9KVxuXG4gIGNvbnN0IEFjdGlvbnMgPSBlbmdpbmUuZGVmaW5lQ29tcG9uZW50KENvbXBvbmVudE5hbWUuQUNUSU9OUywge1xuICAgIGlkOiBTY2hlbWFzLkludCxcbiAgICB2YWx1ZTogU2NoZW1hcy5BcnJheShcbiAgICAgIFNjaGVtYXMuTWFwKHtcbiAgICAgICAgbmFtZTogU2NoZW1hcy5TdHJpbmcsXG4gICAgICAgIHR5cGU6IFNjaGVtYXMuU3RyaW5nLFxuICAgICAgICBqc29uUGF5bG9hZDogU2NoZW1hcy5TdHJpbmcsXG4gICAgICAgIGFsbG93ZWRJbkJhc2ljVmlldzogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkJvb2xlYW4pLFxuICAgICAgICBiYXNpY1ZpZXdJZDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLlN0cmluZyksXG4gICAgICB9KSxcbiAgICApLFxuICB9KVxuXG4gIGNvbnN0IENvdW50ZXIgPSBlbmdpbmUuZGVmaW5lQ29tcG9uZW50KENvbXBvbmVudE5hbWUuQ09VTlRFUiwge1xuICAgIGlkOiBTY2hlbWFzLk51bWJlcixcbiAgICB2YWx1ZTogU2NoZW1hcy5JbnQsXG4gIH0pXG5cbiAgY29uc3QgVHJpZ2dlcnMgPSBlbmdpbmUuZGVmaW5lQ29tcG9uZW50KENvbXBvbmVudE5hbWUuVFJJR0dFUlMsIHtcbiAgICB2YWx1ZTogU2NoZW1hcy5BcnJheShcbiAgICAgIFNjaGVtYXMuTWFwKHtcbiAgICAgICAgdHlwZTogU2NoZW1hcy5FbnVtU3RyaW5nPFRyaWdnZXJUeXBlPihcbiAgICAgICAgICBUcmlnZ2VyVHlwZSxcbiAgICAgICAgICBUcmlnZ2VyVHlwZS5PTl9JTlBVVF9BQ1RJT04sXG4gICAgICAgICksXG4gICAgICAgIGNvbmRpdGlvbnM6IFNjaGVtYXMuT3B0aW9uYWwoXG4gICAgICAgICAgU2NoZW1hcy5BcnJheShcbiAgICAgICAgICAgIFNjaGVtYXMuTWFwKHtcbiAgICAgICAgICAgICAgaWQ6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5JbnQpLFxuICAgICAgICAgICAgICB0eXBlOiBTY2hlbWFzLkVudW1TdHJpbmc8VHJpZ2dlckNvbmRpdGlvblR5cGU+KFxuICAgICAgICAgICAgICAgIFRyaWdnZXJDb25kaXRpb25UeXBlLFxuICAgICAgICAgICAgICAgIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fU1RBVEVfSVMsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIHZhbHVlOiBTY2hlbWFzLlN0cmluZyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICAgIG9wZXJhdGlvbjogU2NoZW1hcy5PcHRpb25hbChcbiAgICAgICAgICBTY2hlbWFzLkVudW1TdHJpbmc8VHJpZ2dlckNvbmRpdGlvbk9wZXJhdGlvbj4oXG4gICAgICAgICAgICBUcmlnZ2VyQ29uZGl0aW9uT3BlcmF0aW9uLFxuICAgICAgICAgICAgVHJpZ2dlckNvbmRpdGlvbk9wZXJhdGlvbi5BTkQsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICAgYWN0aW9uczogU2NoZW1hcy5BcnJheShcbiAgICAgICAgICBTY2hlbWFzLk1hcCh7XG4gICAgICAgICAgICBpZDogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLkludCksXG4gICAgICAgICAgICBuYW1lOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuU3RyaW5nKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICAgYmFzaWNWaWV3SWQ6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5TdHJpbmcpLFxuICAgICAgfSksXG4gICAgKSxcbiAgfSlcblxuICBjb25zdCBTdGF0ZXMgPSBlbmdpbmUuZGVmaW5lQ29tcG9uZW50KENvbXBvbmVudE5hbWUuU1RBVEVTLCB7XG4gICAgaWQ6IFNjaGVtYXMuTnVtYmVyLFxuICAgIHZhbHVlOiBTY2hlbWFzLkFycmF5KFNjaGVtYXMuU3RyaW5nKSxcbiAgICBkZWZhdWx0VmFsdWU6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5TdHJpbmcpLFxuICAgIGN1cnJlbnRWYWx1ZTogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLlN0cmluZyksXG4gICAgcHJldmlvdXNWYWx1ZTogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLlN0cmluZyksXG4gIH0pXG5cbiAgY29uc3QgQ291bnRlckJhciA9IGVuZ2luZS5kZWZpbmVDb21wb25lbnQoQ29tcG9uZW50TmFtZS5DT1VOVEVSX0JBUiwge1xuICAgIHByaW1hcnlDb2xvcjogU2NoZW1hcy5PcHRpb25hbChTY2hlbWFzLlN0cmluZyksXG4gICAgc2Vjb25kYXJ5Q29sb3I6IFNjaGVtYXMuT3B0aW9uYWwoU2NoZW1hcy5TdHJpbmcpLFxuICAgIG1heFZhbHVlOiBTY2hlbWFzLk9wdGlvbmFsKFNjaGVtYXMuRmxvYXQpLFxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgQWN0aW9uVHlwZXMsXG4gICAgQWN0aW9ucyxcbiAgICBDb3VudGVyLFxuICAgIFRyaWdnZXJzLFxuICAgIFN0YXRlcyxcbiAgICBDb3VudGVyQmFyLFxuICB9XG59XG5cbmV4cG9ydCB0eXBlIEVuZ2luZUNvbXBvbmVudHMgPSB7XG4gIEFuaW1hdG9yOiBBbmltYXRvckNvbXBvbmVudERlZmluaXRpb25FeHRlbmRlZFxuICBUcmFuc2Zvcm06IFRyYW5zZm9ybUNvbXBvbmVudEV4dGVuZGVkXG4gIEF1ZGlvU291cmNlOiBBdWRpb1NvdXJjZUNvbXBvbmVudERlZmluaXRpb25FeHRlbmRlZFxuICBBdmF0YXJBdHRhY2g6IExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uPFBCQXZhdGFyQXR0YWNoPlxuICBWaXNpYmlsaXR5Q29tcG9uZW50OiBMYXN0V3JpdGVXaW5FbGVtZW50U2V0Q29tcG9uZW50RGVmaW5pdGlvbjxQQlZpc2liaWxpdHlDb21wb25lbnQ+XG4gIEdsdGZDb250YWluZXI6IExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uPFBCR2x0ZkNvbnRhaW5lcj5cbiAgTWF0ZXJpYWw6IE1hdGVyaWFsQ29tcG9uZW50RGVmaW5pdGlvbkV4dGVuZGVkXG4gIE1lc2hSZW5kZXJlcjogTWVzaFJlbmRlcmVyQ29tcG9uZW50RGVmaW5pdGlvbkV4dGVuZGVkXG4gIFZpZGVvUGxheWVyOiBMYXN0V3JpdGVXaW5FbGVtZW50U2V0Q29tcG9uZW50RGVmaW5pdGlvbjxQQlZpZGVvUGxheWVyPlxuICBVaVRyYW5zZm9ybTogTGFzdFdyaXRlV2luRWxlbWVudFNldENvbXBvbmVudERlZmluaXRpb248UEJVaVRyYW5zZm9ybT5cbiAgVWlUZXh0OiBMYXN0V3JpdGVXaW5FbGVtZW50U2V0Q29tcG9uZW50RGVmaW5pdGlvbjxQQlVpVGV4dD5cbiAgVWlCYWNrZ3JvdW5kOiBMYXN0V3JpdGVXaW5FbGVtZW50U2V0Q29tcG9uZW50RGVmaW5pdGlvbjxQQlVpQmFja2dyb3VuZD5cbiAgQmlsbGJvYXJkOiBMYXN0V3JpdGVXaW5FbGVtZW50U2V0Q29tcG9uZW50RGVmaW5pdGlvbjxQQkJpbGxib2FyZD5cbiAgTmFtZTogTGFzdFdyaXRlV2luRWxlbWVudFNldENvbXBvbmVudERlZmluaXRpb248TmFtZVR5cGU+XG4gIFR3ZWVuOiBMYXN0V3JpdGVXaW5FbGVtZW50U2V0Q29tcG9uZW50RGVmaW5pdGlvbjxQQlR3ZWVuPlxuICBUd2VlblNlcXVlbmNlOiBMYXN0V3JpdGVXaW5FbGVtZW50U2V0Q29tcG9uZW50RGVmaW5pdGlvbjxQQlR3ZWVuU2VxdWVuY2U+XG4gIFBvaW50ZXJFdmVudHM6IExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uPFBCUG9pbnRlckV2ZW50cz5cbiAgTmV0d29ya0VudGl0eTogdHlwZW9mIE5ldHdvcmtFbnRpdHlcbiAgU3luY0NvbXBvbmVudHM6IHR5cGVvZiBTeW5jQ29tcG9uZW50c1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdENvbXBvbmVudHMoZW5naW5lOiBJRW5naW5lKSB7XG4gIC8vIEFkZCBhY3Rpb25zIGZyb20gdGhpcyBwYWNrYWdlXG4gIGNvbnN0IGFjdGlvblR5cGVzID0gT2JqZWN0LnZhbHVlcyhBY3Rpb25UeXBlKVxuICBmb3IgKGNvbnN0IHR5cGUgb2YgYWN0aW9uVHlwZXMpIHtcbiAgICBjb25zdCBhY3Rpb25UeXBlID0gdHlwZSBhcyBBY3Rpb25UeXBlXG4gICAgYWRkQWN0aW9uVHlwZShlbmdpbmUsIGFjdGlvblR5cGUsIEFjdGlvblNjaGVtYXNbYWN0aW9uVHlwZV0pXG4gIH1cblxuICAvLyBBZGQgY291bnRlciB0byByb290IGVudGl0eVxuICBjb25zdCBDb3VudGVyID0gZW5naW5lLmdldENvbXBvbmVudChcbiAgICBDb21wb25lbnROYW1lLkNPVU5URVIsXG4gICkgYXMgTGFzdFdyaXRlV2luRWxlbWVudFNldENvbXBvbmVudERlZmluaXRpb248Q291bnRlcj5cbiAgY29uc3QgY291bnRlciA9IENvdW50ZXIuZ2V0T3JDcmVhdGVNdXRhYmxlKGVuZ2luZS5Sb290RW50aXR5KVxuICBjb3VudGVyLnZhbHVlID0gY291bnRlci52YWx1ZSB8fCAwXG5cbiAgY29uc3QgeyBWaWRlb1BsYXllciwgTWF0ZXJpYWwgfSA9IGdldEV4cGxvcmVyQ29tcG9uZW50cyhlbmdpbmUpXG4gIGluaXRWaWRlb1BsYXllckNvbXBvbmVudHMoZW5naW5lLCB7IFZpZGVvUGxheWVyLCBNYXRlcmlhbCB9KVxufVxuXG5mdW5jdGlvbiBnZXRWaWRlb1RleHR1cmUoeyBtYXRlcmlhbCB9OiBQQk1hdGVyaWFsKTogVmlkZW9UZXh0dXJlIHwgdW5kZWZpbmVkIHtcbiAgaWYgKFxuICAgIG1hdGVyaWFsPy4kY2FzZSA9PT0gJ3BicicgJiZcbiAgICBtYXRlcmlhbC5wYnIudGV4dHVyZT8udGV4Py4kY2FzZSA9PT0gJ3ZpZGVvVGV4dHVyZSdcbiAgKSB7XG4gICAgcmV0dXJuIG1hdGVyaWFsLnBici50ZXh0dXJlLnRleC52aWRlb1RleHR1cmVcbiAgfVxuXG4gIHJldHVybiB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRWaWRlb1BsYXllckNvbXBvbmVudE1hdGVyaWFsKFxuICBlbnRpdHk6IEVudGl0eSxcbiAgeyBNYXRlcmlhbCB9OiBQaWNrPEVuZ2luZUNvbXBvbmVudHMsICdNYXRlcmlhbCc+LFxuICBtYXRlcmlhbD86IFBCTWF0ZXJpYWwgfCBudWxsLFxuKSB7XG4gIGlmICghbWF0ZXJpYWwgfHwgIW1hdGVyaWFsLm1hdGVyaWFsIHx8IG1hdGVyaWFsLm1hdGVyaWFsLiRjYXNlICE9PSAncGJyJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBNYXRlcmlhbC5zZXRQYnJNYXRlcmlhbChlbnRpdHksIHtcbiAgICAuLi5tYXRlcmlhbC5tYXRlcmlhbC5wYnIsXG4gICAgdGV4dHVyZTogTWF0ZXJpYWwuVGV4dHVyZS5WaWRlbyh7XG4gICAgICB2aWRlb1BsYXllckVudGl0eTogZW50aXR5LFxuICAgIH0pLFxuICB9KVxufVxuXG5mdW5jdGlvbiBpbml0VmlkZW9QbGF5ZXJDb21wb25lbnRzKFxuICBlbmdpbmU6IElFbmdpbmUsXG4gIGNvbXBvbmVudHM6IFBpY2s8RW5naW5lQ29tcG9uZW50cywgJ01hdGVyaWFsJyB8ICdWaWRlb1BsYXllcic+LFxuKSB7XG4gIGZ1bmN0aW9uIHJlcGxhY2VWaWRlb1RleHR1cmUoKSB7XG4gICAgY29uc3QgeyBNYXRlcmlhbCwgVmlkZW9QbGF5ZXIgfSA9IGNvbXBvbmVudHNcbiAgICBlbmdpbmUucmVtb3ZlU3lzdGVtKHJlcGxhY2VWaWRlb1RleHR1cmUpXG4gICAgZm9yIChjb25zdCBbZW50aXR5LCBtYXRlcmlhbF0gb2YgZW5naW5lLmdldEVudGl0aWVzV2l0aChcbiAgICAgIE1hdGVyaWFsLFxuICAgICAgVmlkZW9QbGF5ZXIsXG4gICAgKSkge1xuICAgICAgY29uc3QgdmlkZW9UZXh0dXJlID0gZ2V0VmlkZW9UZXh0dXJlKG1hdGVyaWFsKVxuICAgICAgaWYgKHZpZGVvVGV4dHVyZT8udmlkZW9QbGF5ZXJFbnRpdHkgPT09IGVuZ2luZS5Sb290RW50aXR5KSB7XG4gICAgICAgIGluaXRWaWRlb1BsYXllckNvbXBvbmVudE1hdGVyaWFsKGVudGl0eSwgY29tcG9uZW50cywgbWF0ZXJpYWwpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIGVuZ2luZS5hZGRTeXN0ZW0ocmVwbGFjZVZpZGVvVGV4dHVyZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmRpdGlvblR5cGVzQnlDb21wb25lbnROYW1lKGNvbXBvbmVudE5hbWU6IENvbXBvbmVudE5hbWUpIHtcbiAgc3dpdGNoIChjb21wb25lbnROYW1lKSB7XG4gICAgY2FzZSBDb21wb25lbnROYW1lLlNUQVRFUzoge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9TVEFURV9JUyxcbiAgICAgICAgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9TVEFURV9JU19OT1QsXG4gICAgICAgIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fUFJFVklPVVNfU1RBVEVfSVMsXG4gICAgICAgIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fUFJFVklPVVNfU1RBVEVfSVNfTk9ULFxuICAgICAgXVxuICAgIH1cbiAgICBjYXNlIENvbXBvbmVudE5hbWUuQ09VTlRFUjoge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9DT1VOVEVSX0VRVUFMUyxcbiAgICAgICAgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9DT1VOVEVSX0lTX0dSRUFURVJfVEhBTixcbiAgICAgICAgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9DT1VOVEVSX0lTX0xFU1NfVEhBTixcbiAgICAgIF1cbiAgICB9XG4gICAgY2FzZSBDb21wb25lbnROYW1lLkFDVElPTlM6IHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fRElTVEFOQ0VfVE9fUExBWUVSX0xFU1NfVEhBTixcbiAgICAgICAgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9ESVNUQU5DRV9UT19QTEFZRVJfR1JFQVRFUl9USEFOLFxuICAgICAgXVxuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gW11cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQ29tcG9uZW50cyA9IFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZUNvbXBvbmVudHM+XG5cbmV4cG9ydCB0eXBlIEFjdGlvblR5cGVzQ29tcG9uZW50ID0gQ29tcG9uZW50c1snQWN0aW9uVHlwZXMnXVxuZXhwb3J0IHR5cGUgQWN0aW9uVHlwZXMgPSBSZXR1cm5UeXBlPFxuICBBY3Rpb25UeXBlc0NvbXBvbmVudFsnc2NoZW1hJ11bJ2Rlc2VyaWFsaXplJ11cbj5cblxuZXhwb3J0IHR5cGUgQWN0aW9uc0NvbXBvbmVudCA9IENvbXBvbmVudHNbJ0FjdGlvbnMnXVxuZXhwb3J0IHR5cGUgQWN0aW9ucyA9IFJldHVyblR5cGU8QWN0aW9uc0NvbXBvbmVudFsnc2NoZW1hJ11bJ2Rlc2VyaWFsaXplJ10+XG5leHBvcnQgdHlwZSBBY3Rpb24gPSBBY3Rpb25zWyd2YWx1ZSddWzBdXG5cbmV4cG9ydCB0eXBlIENvdW50ZXJDb21wb25lbnQgPSBDb21wb25lbnRzWydDb3VudGVyJ11cbmV4cG9ydCB0eXBlIENvdW50ZXIgPSBSZXR1cm5UeXBlPENvdW50ZXJDb21wb25lbnRbJ3NjaGVtYSddWydkZXNlcmlhbGl6ZSddPlxuXG5leHBvcnQgdHlwZSBDb3VudGVyQmFyQ29tcG9uZW50ID0gQ29tcG9uZW50c1snQ291bnRlckJhciddXG5leHBvcnQgdHlwZSBDb3VudGVyQmFyID0gUmV0dXJuVHlwZTxcbiAgQ291bnRlckJhckNvbXBvbmVudFsnc2NoZW1hJ11bJ2Rlc2VyaWFsaXplJ11cbj5cblxuZXhwb3J0IHR5cGUgVHJpZ2dlcnNDb21wb25lbnQgPSBDb21wb25lbnRzWydUcmlnZ2VycyddXG5leHBvcnQgdHlwZSBUcmlnZ2VycyA9IFJldHVyblR5cGU8VHJpZ2dlcnNDb21wb25lbnRbJ3NjaGVtYSddWydkZXNlcmlhbGl6ZSddPlxuZXhwb3J0IHR5cGUgVHJpZ2dlciA9IFRyaWdnZXJzWyd2YWx1ZSddWzBdXG5leHBvcnQgdHlwZSBUcmlnZ2VyQWN0aW9uID0gVHJpZ2dlclsnYWN0aW9ucyddWzBdXG5leHBvcnQgdHlwZSBUcmlnZ2VyQ29uZGl0aW9uID0gRXhjbHVkZTxUcmlnZ2VyWydjb25kaXRpb25zJ10sIHVuZGVmaW5lZD5bMF1cblxuZXhwb3J0IHR5cGUgU3RhdGVzQ29tcG9uZW50ID0gQ29tcG9uZW50c1snU3RhdGVzJ11cbmV4cG9ydCB0eXBlIFN0YXRlcyA9IFJldHVyblR5cGU8U3RhdGVzQ29tcG9uZW50WydzY2hlbWEnXVsnZGVzZXJpYWxpemUnXT5cbiJdfQ==
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { engine } from '@dcl/ecs';
|
|
2
2
|
import { initAssetPacks } from './scene-entrypoint';
|
|
3
|
-
initAssetPacks(engine);
|
|
3
|
+
initAssetPacks(engine, {});
|
|
4
4
|
export function main() {
|
|
5
5
|
console.log('Scene ready');
|
|
6
6
|
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFbkQsY0FBYyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUUxQixNQUFNLFVBQVUsSUFBSTtJQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbmdpbmUgfSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IGluaXRBc3NldFBhY2tzIH0gZnJvbSAnLi9zY2VuZS1lbnRyeXBvaW50J1xuXG5pbml0QXNzZXRQYWNrcyhlbmdpbmUsIHt9KVxuXG5leHBvcnQgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc29sZS5sb2coJ1NjZW5lIHJlYWR5Jylcbn1cbiJdfQ==
|
|
@@ -1 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { Entity, IEngine } from '@dcl/ecs';
|
|
2
|
+
export type ISdkCache = {
|
|
3
|
+
engine: IEngine;
|
|
4
|
+
syncEntity?: SyncEntitySDK;
|
|
5
|
+
};
|
|
6
|
+
export type SyncEntitySDK = (entityId: Entity, componentIds: number[], entityEnumId?: number | undefined) => void;
|
|
7
|
+
export declare let SdkCache: ISdkCache;
|
|
8
|
+
export declare function initAssetPacks(_engine: unknown, sdkHelpers: Omit<ISdkCache, 'engine'>): void;
|
package/dist/scene-entrypoint.js
CHANGED
|
@@ -7,12 +7,17 @@ import { getExplorerComponents as getEngineComponents } from './components';
|
|
|
7
7
|
import { createTransformSystem } from './transform';
|
|
8
8
|
import { createInputActionSystem } from './input-actions';
|
|
9
9
|
import { createCounterBarSystem } from './counter-bar';
|
|
10
|
+
export let SdkCache;
|
|
10
11
|
let initialized = false;
|
|
11
|
-
export function initAssetPacks(_engine,
|
|
12
|
+
export function initAssetPacks(_engine, sdkHelpers) {
|
|
12
13
|
if (initialized)
|
|
13
14
|
return;
|
|
14
15
|
initialized = true;
|
|
15
16
|
const engine = _engine;
|
|
17
|
+
SdkCache = { engine };
|
|
18
|
+
if ('syncEntity' in sdkHelpers) {
|
|
19
|
+
SdkCache = { ...SdkCache, ...sdkHelpers };
|
|
20
|
+
}
|
|
16
21
|
try {
|
|
17
22
|
const components = getEngineComponents(engine);
|
|
18
23
|
createComponents(engine);
|
|
@@ -31,4 +36,4 @@ export function initAssetPacks(_engine, ..._args) {
|
|
|
31
36
|
console.error(`Error initializing Asset Packs: ${error.message}`);
|
|
32
37
|
}
|
|
33
38
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NlbmUtZW50cnlwb2ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zY2VuZS1lbnRyeXBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLGlCQUFpQixHQUNsQixNQUFNLFVBQVUsQ0FBQTtBQUNqQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzNDLE9BQU8sRUFBRSxxQkFBcUIsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBVXRELE1BQU0sQ0FBQyxJQUFJLFFBQW1CLENBQUE7QUFFOUIsSUFBSSxXQUFXLEdBQVksS0FBSyxDQUFBO0FBS2hDLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZ0IsRUFBRSxVQUFxQztJQUVwRixJQUFJLFdBQVc7UUFBRSxPQUFNO0lBQ3ZCLFdBQVcsR0FBRyxJQUFJLENBQUE7SUFFbEIsTUFBTSxNQUFNLEdBQUcsT0FBa0IsQ0FBQTtJQUVqQyxRQUFRLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQTtJQUVyQixJQUFJLFlBQVksSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMvQixRQUFRLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxHQUFHLFVBQVUsRUFBRSxDQUFBO0lBQzNDLENBQUM7SUFFRCxJQUFJLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUc5QyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUd4QixNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUM3QyxNQUFNLG1CQUFtQixHQUFHLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQTtRQUMxRSxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUc3QyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDdEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQzdDLE1BQU0sQ0FBQyxTQUFTLENBQ2Qsb0JBQW9CLENBQ2xCLE1BQU0sRUFDTixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLFdBQVcsQ0FDWixDQUNGLENBQUE7UUFDRCxNQUFNLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQTtRQUNyQyxNQUFNLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7UUFDdEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtRQUM1RCxNQUFNLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLG1DQUFvQyxLQUFlLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUM5RSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVudGl0eSxcbiAgSUVuZ2luZSxcbiAgY3JlYXRlSW5wdXRTeXN0ZW0sXG4gIGNyZWF0ZVBvaW50ZXJFdmVudHNTeXN0ZW0sXG4gIGNyZWF0ZVR3ZWVuU3lzdGVtLFxufSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IGNyZWF0ZUNvbXBvbmVudHMsIGluaXRDb21wb25lbnRzIH0gZnJvbSAnLi9kZWZpbml0aW9ucydcbmltcG9ydCB7IGNyZWF0ZUFjdGlvbnNTeXN0ZW0gfSBmcm9tICcuL2FjdGlvbnMnXG5pbXBvcnQgeyBjcmVhdGVUcmlnZ2Vyc1N5c3RlbSB9IGZyb20gJy4vdHJpZ2dlcnMnXG5pbXBvcnQgeyBjcmVhdGVUaW1lclN5c3RlbSB9IGZyb20gJy4vdGltZXInXG5pbXBvcnQgeyBnZXRFeHBsb3JlckNvbXBvbmVudHMgYXMgZ2V0RW5naW5lQ29tcG9uZW50cyB9IGZyb20gJy4vY29tcG9uZW50cydcbmltcG9ydCB7IGNyZWF0ZVRyYW5zZm9ybVN5c3RlbSB9IGZyb20gJy4vdHJhbnNmb3JtJ1xuaW1wb3J0IHsgY3JlYXRlSW5wdXRBY3Rpb25TeXN0ZW0gfSBmcm9tICcuL2lucHV0LWFjdGlvbnMnXG5pbXBvcnQgeyBjcmVhdGVDb3VudGVyQmFyU3lzdGVtIH0gZnJvbSAnLi9jb3VudGVyLWJhcidcblxuZXhwb3J0IHR5cGUgSVNka0NhY2hlID0ge1xuICAvLyBTdG9yZSB0aGUgZW5naW5lIHRvIGF2b2lkIHBhc3NpbmcgdGhlIGVuZ2luZSB0byBuZXN0ZWQgZnVuY3Rpb25zLlxuICBlbmdpbmU6IElFbmdpbmVcbiAgLy8gU3luY0VudGl0eSBoZWxwZXIgdG8gY3JlYXRlIG5ldHdvcmsgZW50aXRpZXMgYXQgcnVudGltZS5cbiAgc3luY0VudGl0eT86IFN5bmNFbnRpdHlTREtcbn1cbmV4cG9ydCB0eXBlIFN5bmNFbnRpdHlTREsgPSAgKGVudGl0eUlkOiBFbnRpdHksIGNvbXBvbmVudElkczogbnVtYmVyW10sIGVudGl0eUVudW1JZD86IG51bWJlciB8IHVuZGVmaW5lZCkgPT4gdm9pZFxuXG5leHBvcnQgbGV0IFNka0NhY2hlOiBJU2RrQ2FjaGVcblxubGV0IGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2Vcbi8qKlxuICogdGhlIF9hcmdzIHBhcmFtIGlzIHRoZXJlIHRvIG1hbnRhaW4gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBhbGwgdmVyc2lvbnMuXG4gKiBCZWZvcmUgaXQgd2FzIGluaXRBc3NldFBhY2tzKGVuZ2luZSwgcG9pbnRlckV2ZW50c1N5c3RlbSwgY29tcG9uZW50cylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluaXRBc3NldFBhY2tzKF9lbmdpbmU6IHVua25vd24sIHNka0hlbHBlcnM6IE9taXQ8SVNka0NhY2hlLCAnZW5naW5lJz4pIHtcbiAgLy8gQXZvaWQgY3JlYXRpbmcgdGhlIHNhbWUgc3lzdGVtcyBpZiBhc3NldC1wYWNrIGlzIGNhbGxlZCBtb3JlIHRoYW4gb25jZVxuICBpZiAoaW5pdGlhbGl6ZWQpIHJldHVyblxuICBpbml0aWFsaXplZCA9IHRydWVcblxuICBjb25zdCBlbmdpbmUgPSBfZW5naW5lIGFzIElFbmdpbmVcblxuICBTZGtDYWNoZSA9IHsgZW5naW5lIH1cblxuICBpZiAoJ3N5bmNFbnRpdHknIGluIHNka0hlbHBlcnMpIHtcbiAgICBTZGtDYWNoZSA9IHsgLi4uU2RrQ2FjaGUsIC4uLnNka0hlbHBlcnMgfVxuICB9XG5cbiAgdHJ5IHtcbiAgICAvLyBnZXQgZW5naW5lIGNvbXBvbmVudHNcbiAgICBjb25zdCBjb21wb25lbnRzID0gZ2V0RW5naW5lQ29tcG9uZW50cyhlbmdpbmUpXG5cbiAgICAvLyBjcmVhdGUgYXNzZXQgcGFja3MgY29tcG9uZW50c1xuICAgIGNyZWF0ZUNvbXBvbmVudHMoZW5naW5lKVxuXG4gICAgLy8gY3JlYXRlIGNvcmUgc3lzdGVtc1xuICAgIGNvbnN0IGlucHV0U3lzdGVtID0gY3JlYXRlSW5wdXRTeXN0ZW0oZW5naW5lKVxuICAgIGNvbnN0IHBvaW50ZXJFdmVudHNTeXN0ZW0gPSBjcmVhdGVQb2ludGVyRXZlbnRzU3lzdGVtKGVuZ2luZSwgaW5wdXRTeXN0ZW0pXG4gICAgY29uc3QgdHdlZW5TeXN0ZW0gPSBjcmVhdGVUd2VlblN5c3RlbShlbmdpbmUpXG5cbiAgICAvLyBjcmVhdGUgc3lzdGVtcyB0aGF0IHNvbWUgY29tcG9uZW50cyBuZWVkcyAoVmlkZW9QbGF5ZXIsIGV0YylcbiAgICBpbml0Q29tcG9uZW50cyhlbmdpbmUpXG4gICAgZW5naW5lLmFkZFN5c3RlbShjcmVhdGVBY3Rpb25zU3lzdGVtKGVuZ2luZSkpXG4gICAgZW5naW5lLmFkZFN5c3RlbShcbiAgICAgIGNyZWF0ZVRyaWdnZXJzU3lzdGVtKFxuICAgICAgICBlbmdpbmUsXG4gICAgICAgIGNvbXBvbmVudHMsXG4gICAgICAgIHBvaW50ZXJFdmVudHNTeXN0ZW0sXG4gICAgICAgIHR3ZWVuU3lzdGVtLFxuICAgICAgKSxcbiAgICApXG4gICAgZW5naW5lLmFkZFN5c3RlbShjcmVhdGVUaW1lclN5c3RlbSgpKVxuICAgIGVuZ2luZS5hZGRTeXN0ZW0oY3JlYXRlSW5wdXRBY3Rpb25TeXN0ZW0oaW5wdXRTeXN0ZW0pKVxuICAgIGVuZ2luZS5hZGRTeXN0ZW0oY3JlYXRlQ291bnRlckJhclN5c3RlbShlbmdpbmUsIGNvbXBvbmVudHMpKVxuICAgIGVuZ2luZS5hZGRTeXN0ZW0oY3JlYXRlVHJhbnNmb3JtU3lzdGVtKGNvbXBvbmVudHMpKVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGluaXRpYWxpemluZyBBc3NldCBQYWNrczogJHsoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2V9YClcbiAgfVxufVxuIl19
|
package/dist/triggers.js
CHANGED
|
@@ -246,24 +246,28 @@ export function createTriggersSystem(engine, components, pointerEventsSystem, tw
|
|
|
246
246
|
return null;
|
|
247
247
|
}
|
|
248
248
|
function initOnClickTrigger(entity) {
|
|
249
|
+
const pointerEvent = PointerEvents.getMutableOrNull(entity);
|
|
250
|
+
const opts = { button: 0, hoverText: 'Click' };
|
|
251
|
+
if (pointerEvent) {
|
|
252
|
+
pointerEvent.pointerEvents = pointerEvent.pointerEvents.filter($ => !($.eventInfo?.button === opts.button && $.eventInfo.hoverText === opts.hoverText));
|
|
253
|
+
}
|
|
249
254
|
pointerEventsSystem.onPointerDown({
|
|
250
255
|
entity,
|
|
251
|
-
opts
|
|
252
|
-
button: 0,
|
|
253
|
-
hoverText: 'Click',
|
|
254
|
-
},
|
|
256
|
+
opts
|
|
255
257
|
}, () => {
|
|
256
258
|
const triggerEvents = getTriggerEvents(entity);
|
|
257
259
|
triggerEvents.emit(TriggerType.ON_CLICK);
|
|
258
260
|
});
|
|
259
261
|
}
|
|
260
262
|
function initOnInputActionTrigger(entity) {
|
|
261
|
-
const pointerEvent = PointerEvents.
|
|
263
|
+
const pointerEvent = PointerEvents.getMutableOrNull(entity);
|
|
262
264
|
const opts = {
|
|
263
|
-
button:
|
|
264
|
-
|
|
265
|
-
...(pointerEvent === null ? { hoverText: 'Press' } : {}),
|
|
265
|
+
button: 1,
|
|
266
|
+
hoverText: 'Press'
|
|
266
267
|
};
|
|
268
|
+
if (pointerEvent) {
|
|
269
|
+
pointerEvent.pointerEvents = pointerEvent.pointerEvents.filter($ => !($.eventInfo?.button === opts.button && $.eventInfo.hoverText === opts.hoverText));
|
|
270
|
+
}
|
|
267
271
|
pointerEventsSystem.onPointerDown({
|
|
268
272
|
entity,
|
|
269
273
|
opts,
|
|
@@ -323,4 +327,4 @@ export function createTriggersSystem(engine, components, pointerEventsSystem, tw
|
|
|
323
327
|
}
|
|
324
328
|
}
|
|
325
329
|
}
|
|
326
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHJpZ2dlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQVFMLFVBQVUsR0FFWCxNQUFNLFVBQVUsQ0FBQTtBQUNqQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFDTCxRQUFRLEVBQ1IsT0FBTyxFQUNQLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ2pCLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUVMLGFBQWEsRUFJYix5QkFBeUIsRUFDekIsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxnQ0FBZ0MsRUFDaEMsYUFBYSxHQUVkLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUVqQyxNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0FBQ3hDLE1BQU0sV0FBVyxHQUF5QyxFQUFFLENBQUE7QUFFNUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7QUFDOUMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7QUFFNUMsSUFBSSxvQkFBb0IsR0FBc0MsSUFBSSxDQUFBO0FBRWxFLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBYztJQUN6QyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDekIsT0FBTyxvQkFBb0IsQ0FB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YSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQzlDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFDckQsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsU0FBUyxVQUFVLENBQUMsTUFBYztRQUNoQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQ3JCLENBQUM7SUFHRCxTQUFTLGdCQUFnQixDQUFDLE1BQWM7UUFDdEMsSUFDRSxjQUFjLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUNoQyxVQUFVLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssTUFBa0M7WUFDckUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFDbEMsQ0FBQztZQUNELE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQzlDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQzlDLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElFbmdpbmUsXG4gIEVudGl0eSxcbiAgSW5wdXRBY3Rpb24sXG4gIExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uLFxuICBEZWVwUmVhZG9ubHlPYmplY3QsXG4gIFBvaW50ZXJFdmVudHNTeXN0ZW0sXG4gIFR3ZWVuU3lzdGVtLFxuICBUd2VlblN0YXRlLFxuICBUd2VlblN0YXRlU3RhdHVzLFxufSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IFZlY3RvcjMgfSBmcm9tICdAZGNsL3Nkay9tYXRoJ1xuaW1wb3J0IHtcbiAgdHJpZ2dlcnMsXG4gIExBWUVSXzEsXG4gIE5PX0xBWUVSUyxcbiAgZ2V0UGxheWVyUG9zaXRpb24sXG4gIGdldFdvcmxkUG9zaXRpb24sXG59IGZyb20gJ0BkY2wtc2RrL3V0aWxzJ1xuaW1wb3J0IHtcbiAgQWN0aW9uLFxuICBDb21wb25lbnROYW1lLFxuICBUcmlnZ2VyLFxuICBUcmlnZ2VyQWN0aW9uLFxuICBUcmlnZ2VyQ29uZGl0aW9uLFxuICBUcmlnZ2VyQ29uZGl0aW9uT3BlcmF0aW9uLFxuICBUcmlnZ2VyQ29uZGl0aW9uVHlwZSxcbiAgVHJpZ2dlclR5cGUsXG4gIGdldENvbmRpdGlvblR5cGVzQnlDb21wb25lbnROYW1lLFxuICBnZXRDb21wb25lbnRzLFxuICBFbmdpbmVDb21wb25lbnRzLFxufSBmcm9tICcuL2RlZmluaXRpb25zJ1xuaW1wb3J0IHsgZ2V0Q3VycmVudFZhbHVlLCBnZXRQcmV2aW91c1ZhbHVlIH0gZnJvbSAnLi9zdGF0ZXMnXG5pbXBvcnQgeyBnZXRBY3Rpb25FdmVudHMsIGdldFRyaWdnZXJFdmVudHMgfSBmcm9tICcuL2V2ZW50cydcbmltcG9ydCB7IGdldFBheWxvYWQgfSBmcm9tICcuL2FjdGlvbi10eXBlcydcbmltcG9ydCB7IGdsb2JhbElucHV0QWN0aW9ucyB9IGZyb20gJy4vaW5wdXQtYWN0aW9ucydcbmltcG9ydCB7IHRpY2tTZXQgfSBmcm9tICcuL3RpbWVyJ1xuXG5jb25zdCBpbml0ZWRFbnRpdGllcyA9IG5ldyBTZXQ8RW50aXR5PigpXG5jb25zdCBhY3Rpb25RdWV1ZTogeyBlbnRpdHk6IEVudGl0eTsgYWN0aW9uOiBBY3Rpb24gfVtdID0gW11cblxuZXhwb3J0IGNvbnN0IGRhbWFnZVRhcmdldHMgPSBuZXcgU2V0PEVudGl0eT4oKVxuZXhwb3J0IGNvbnN0IGhlYWxUYXJnZXRzID0gbmV3IFNldDxFbnRpdHk+KClcblxubGV0IGludGVybmFsSW5pdFRyaWdnZXJzOiAoKGVudGl0eTogRW50aXR5KSA9PiB2b2lkKSB8IG51bGwgPSBudWxsXG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0VHJpZ2dlcnMoZW50aXR5OiBFbnRpdHkpIHtcbiAgaWYgKGludGVybmFsSW5pdFRyaWdnZXJzKSB7XG4gICAgcmV0dXJuIGludGVybmFsSW5pdFRyaWdnZXJzKGVudGl0eSlcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgYENhbm5vdCBjYWxsIGluaXRUcmlnZ2VycyB3aGlsZSB0cmlnZ2Vyc1N5c3RlbSBoYXMgbm90IGJlZW4gY3JlYXRlZGAsXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyaWdnZXJzU3lzdGVtKFxuICBlbmdpbmU6IElFbmdpbmUsXG4gIGNvbXBvbmVudHM6IEVuZ2luZUNvbXBvbmVudHMsXG4gIHBvaW50ZXJFdmVudHNTeXN0ZW06IFBvaW50ZXJFdmVudHNTeXN0ZW0sXG4gIHR3ZWVuU3lzdGVtOiBUd2VlblN5c3RlbSxcbikge1xuICBjb25zdCB7IFRyYW5zZm9ybSwgVHdlZW46IFR3ZWVuQ29tcG9uZW50LCBQb2ludGVyRXZlbnRzIH0gPSBjb21wb25lbnRzXG4gIGNvbnN0IHsgQWN0aW9ucywgU3RhdGVzLCBDb3VudGVyLCBUcmlnZ2VycyB9ID0gZ2V0Q29tcG9uZW50cyhlbmdpbmUpXG5cbiAgLy8gc2F2ZSByZWZlcmVuY2UgdG8gdGhlIGluaXQgZnVuY3Rpb25cbiAgaW50ZXJuYWxJbml0VHJpZ2dlcnMgPSBpbml0RW50aXR5VHJpZ2dlcnNcblxuICByZXR1cm4gZnVuY3Rpb24gdHJpZ2dlcnNTeXN0ZW0oX2R0OiBudW1iZXIpIHtcbiAgICAvLyBwcm9jZXNzIGFjdGlvbiBxdWV1ZVxuICAgIHdoaWxlIChhY3Rpb25RdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IGVudGl0eSwgYWN0aW9uIH0gPSBhY3Rpb25RdWV1ZS5zaGlmdCgpIVxuICAgICAgY29uc3QgYWN0aW9uRXZlbnRzID0gZ2V0QWN0aW9uRXZlbnRzKGVudGl0eSlcbiAgICAgIGFjdGlvbkV2ZW50cy5lbWl0KGFjdGlvbi5uYW1lLCBnZXRQYXlsb2FkKGFjdGlvbikpXG4gICAgfVxuXG4gICAgY29uc3QgZW50aXRpZXNXaXRoVHJpZ2dlcnMgPSBlbmdpbmUuZ2V0RW50aXRpZXNXaXRoKFRyaWdnZXJzKVxuICAgIGZvciAoY29uc3QgW2VudGl0eV0gb2YgZW50aXRpZXNXaXRoVHJpZ2dlcnMpIHtcbiAgICAgIGluaXRFbnRpdHlUcmlnZ2VycyhlbnRpdHkpXG4gICAgICBoYW5kbGVPblR3ZWVuRW5kKGVudGl0eSlcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpbml0RW50aXR5VHJpZ2dlcnMoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBpZiAoIVRyaWdnZXJzLmhhcyhlbnRpdHkpIHx8IGluaXRlZEVudGl0aWVzLmhhcyhlbnRpdHkpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBnZXQgdHJpZ2dlcnMgZGF0YVxuICAgIGNvbnN0IHRyaWdnZXJzID0gVHJpZ2dlcnMuZ2V0KGVudGl0eSlcblxuICAgIC8vIGluaXRpYWxpemUgdHJpZ2dlcnMgZm9yIGdpdmVuIGVudGl0eVxuICAgIGNvbnN0IHR5cGVzID0gdHJpZ2dlcnMudmFsdWUucmVkdWNlKFxuICAgICAgKHR5cGVzLCB0cmlnZ2VyKSA9PiB0eXBlcy5hZGQodHJpZ2dlci50eXBlKSxcbiAgICAgIG5ldyBTZXQ8VHJpZ2dlclR5cGU+KCksXG4gICAgKVxuICAgIGZvciAoY29uc3QgdHlwZSBvZiB0eXBlcykge1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIC8qKiBAZGVwcmVjYXRlZCB1c2UgT05fSU5QVVRfQUNUSU9OIGluc3RlYWQgKi9cbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9DTElDSzoge1xuICAgICAgICAgIGluaXRPbkNsaWNrVHJpZ2dlcihlbnRpdHkpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX0lOUFVUX0FDVElPTjoge1xuICAgICAgICAgIGluaXRPbklucHV0QWN0aW9uVHJpZ2dlcihlbnRpdHkpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX1BMQVlFUl9FTlRFUlNfQVJFQTpcbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9QTEFZRVJfTEVBVkVTX0FSRUE6IHtcbiAgICAgICAgICBpbml0T25QbGF5ZXJUcmlnZ2VyQXJlYShlbnRpdHkpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX0RBTUFHRToge1xuICAgICAgICAgIGluaXRPbkRhbWFnZShlbnRpdHkpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX0hFQUxfUExBWUVSOiB7XG4gICAgICAgICAgaW5pdE9uSGVhbFBsYXllcihlbnRpdHkpXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9HTE9CQUxfQ0xJQ0s6IHtcbiAgICAgICAgICBpbml0T25HbG9iYWxDaWNrKGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fR0xPQkFMX1BSSU1BUlk6IHtcbiAgICAgICAgICBpbml0T25HbG9iYWxQcmltYXJ5KGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fR0xPQkFMX1NFQ09OREFSWToge1xuICAgICAgICAgIGluaXRPbkdsb2JhbFNlY29uZGFyeShlbnRpdHkpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX1RJQ0s6IHtcbiAgICAgICAgICBpbml0T25UaWNrKGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYmluZCB0cmlnZ2Vyc1xuICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSlcbiAgICBmb3IgKGNvbnN0IHRyaWdnZXIgb2YgdHJpZ2dlcnMudmFsdWUpIHtcbiAgICAgIHRyaWdnZXJFdmVudHMub24odHJpZ2dlci50eXBlLCAoKSA9PiB7XG4gICAgICAgIGlmIChjaGVja0NvbmRpdGlvbnModHJpZ2dlcikpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHRyaWdnZXJBY3Rpb24gb2YgdHJpZ2dlci5hY3Rpb25zKSB7XG4gICAgICAgICAgICBpZiAoaXNWYWxpZEFjdGlvbih0cmlnZ2VyQWN0aW9uKSkge1xuICAgICAgICAgICAgICBjb25zdCBlbnRpdHkgPSBnZXRFbnRpdHlCeUFjdGlvbih0cmlnZ2VyQWN0aW9uKVxuICAgICAgICAgICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aW9ucyA9IEFjdGlvbnMuZ2V0T3JOdWxsKGVudGl0eSlcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9ucykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gYWN0aW9ucy52YWx1ZS5maW5kKFxuICAgICAgICAgICAgICAgICAgICAoJCkgPT4gJC5uYW1lID09PSB0cmlnZ2VyQWN0aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBpZiAoYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFjdGlvbnMgYXJlIGVucXVldWVkIHRvIGJlIGV4ZWN1dGVkIG9uIHRoZSBuZXh0IHRpY2sgYWZ0ZXIgYWxsIHRoZSB0cmlnZ2VycyBoYXZlIGJlZW4gcHJvY2Vzc2VkLFxuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIHRvIGF2b2lkIG9uZSB0cmlnZ2VyIG1lc3Npbmcgd2l0aCBvdGhlciB0cmlnZ2VyJ3MgY29uZGl0aW9uc1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb25RdWV1ZS5wdXNoKHsgZW50aXR5LCBhY3Rpb24gfSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9TUEFXTilcblxuICAgIGluaXRlZEVudGl0aWVzLmFkZChlbnRpdHkpXG4gIH1cblxuICBmdW5jdGlvbiBpc1ZhbGlkQWN0aW9uKGFjdGlvbjogVHJpZ2dlckFjdGlvbikge1xuICAgIGNvbnN0IHsgaWQsIG5hbWUgfSA9IGFjdGlvblxuICAgIHJldHVybiAhIWlkICYmICEhbmFtZVxuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tDb25kaXRpb25zKHRyaWdnZXI6IERlZXBSZWFkb25seU9iamVjdDxUcmlnZ2VyPikge1xuICAgIGlmICh0cmlnZ2VyLmNvbmRpdGlvbnMgJiYgdHJpZ2dlci5jb25kaXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGNvbmRpdGlvbnMgPSB0cmlnZ2VyLmNvbmRpdGlvbnMubWFwKGNoZWNrQ29uZGl0aW9uKVxuICAgICAgY29uc3QgaXNUcnVlID0gKHJlc3VsdD86IGJvb2xlYW4pID0+ICEhcmVzdWx0XG4gICAgICBjb25zdCBvcGVyYXRpb24gPSB0cmlnZ2VyLm9wZXJhdGlvbiB8fCBUcmlnZ2VyQ29uZGl0aW9uT3BlcmF0aW9uLkFORFxuICAgICAgc3dpdGNoIChvcGVyYXRpb24pIHtcbiAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uT3BlcmF0aW9uLkFORDoge1xuICAgICAgICAgIHJldHVybiBjb25kaXRpb25zLmV2ZXJ5KGlzVHJ1ZSlcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24uT1I6IHtcbiAgICAgICAgICByZXR1cm4gY29uZGl0aW9ucy5zb21lKGlzVHJ1ZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBpZiB0aGVyZSBhcmUgbm8gY29uZGl0aW9ucywgdGhlIHRyaWdnZXIgY2FuIGNvbnRpbnVlXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGZ1bmN0aW9uIGNoZWNrQ29uZGl0aW9uKGNvbmRpdGlvbjogVHJpZ2dlckNvbmRpdGlvbikge1xuICAgIGNvbnN0IGVudGl0eSA9IGdldEVudGl0eUJ5Q29uZGl0aW9uKGNvbmRpdGlvbilcbiAgICBpZiAoZW50aXR5KSB7XG4gICAgICB0cnkge1xuICAgICAgICBzd2l0Y2ggKGNvbmRpdGlvbi50eXBlKSB7XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX1NUQVRFX0lTOiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZXMgPSBTdGF0ZXMuZ2V0T3JOdWxsKGVudGl0eSlcbiAgICAgICAgICAgIGlmIChzdGF0ZXMgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gZ2V0Q3VycmVudFZhbHVlKHN0YXRlcylcbiAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZSA9PT0gY29uZGl0aW9uLnZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fU1RBVEVfSVNfTk9UOiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZXMgPSBTdGF0ZXMuZ2V0T3JOdWxsKGVudGl0eSlcbiAgICAgICAgICAgIGlmIChzdGF0ZXMgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gZ2V0Q3VycmVudFZhbHVlKHN0YXRlcylcbiAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZSAhPT0gY29uZGl0aW9uLnZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fUFJFVklPVVNfU1RBVEVfSVM6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlcyA9IFN0YXRlcy5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgaWYgKHN0YXRlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gZ2V0UHJldmlvdXNWYWx1ZShzdGF0ZXMpXG4gICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c1ZhbHVlID09PSBjb25kaXRpb24udmFsdWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9QUkVWSU9VU19TVEFURV9JU19OT1Q6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlcyA9IFN0YXRlcy5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgaWYgKHN0YXRlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gZ2V0UHJldmlvdXNWYWx1ZShzdGF0ZXMpXG4gICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c1ZhbHVlICE9PSBjb25kaXRpb24udmFsdWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9DT1VOVEVSX0VRVUFMUzoge1xuICAgICAgICAgICAgY29uc3QgY291bnRlciA9IENvdW50ZXIuZ2V0T3JOdWxsKGVudGl0eSlcbiAgICAgICAgICAgIGlmIChjb3VudGVyICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG51bWVyaWMgPSBOdW1iZXIoY29uZGl0aW9uLnZhbHVlKVxuICAgICAgICAgICAgICBpZiAoIWlzTmFOKG51bWVyaWMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50ZXIudmFsdWUgPT09IG51bWVyaWNcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX0NPVU5URVJfSVNfR1JFQVRFUl9USEFOOiB7XG4gICAgICAgICAgICBjb25zdCBjb3VudGVyID0gQ291bnRlci5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgaWYgKGNvdW50ZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IE51bWJlcihjb25kaXRpb24udmFsdWUpXG4gICAgICAgICAgICAgIGlmICghaXNOYU4obnVtZXJpYykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY291bnRlci52YWx1ZSA+IG51bWVyaWNcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX0NPVU5URVJfSVNfTEVTU19USEFOOiB7XG4gICAgICAgICAgICBjb25zdCBjb3VudGVyID0gQ291bnRlci5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgaWYgKGNvdW50ZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IE51bWJlcihjb25kaXRpb24udmFsdWUpXG4gICAgICAgICAgICAgIGlmICghaXNOYU4obnVtZXJpYykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY291bnRlci52YWx1ZSA8IG51bWVyaWNcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX0RJU1RBTkNFX1RPX1BMQVlFUl9MRVNTX1RIQU46IHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gZ2V0V29ybGRQb3NpdGlvbihlbnRpdHkpXG5cbiAgICAgICAgICAgIGNvbnN0IG51bWVyaWMgPSBOdW1iZXIoY29uZGl0aW9uLnZhbHVlKVxuICAgICAgICAgICAgaWYgKCFpc05hTihudW1lcmljKSkge1xuICAgICAgICAgICAgICByZXR1cm4gVmVjdG9yMy5kaXN0YW5jZShwb3NpdGlvbiwgZ2V0UGxheWVyUG9zaXRpb24oKSkgPCBudW1lcmljXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9ESVNUQU5DRV9UT19QTEFZRVJfR1JFQVRFUl9USEFOOiB7XG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IGdldFdvcmxkUG9zaXRpb24oZW50aXR5KVxuICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IE51bWJlcihjb25kaXRpb24udmFsdWUpXG4gICAgICAgICAgICBpZiAoIWlzTmFOKG51bWVyaWMpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBWZWN0b3IzLmRpc3RhbmNlKHBvc2l0aW9uLCBnZXRQbGF5ZXJQb3NpdGlvbigpKSA+IG51bWVyaWNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBjb25kaXRpb24nLCBjb25kaXRpb24pXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0RW50aXR5QnlJZDxUIGV4dGVuZHMgeyBpZDogbnVtYmVyIH0+KFxuICAgIGNvbXBvbmVudE5hbWU6IHN0cmluZyxcbiAgICBpZDogbnVtYmVyLFxuICApIHtcbiAgICBjb25zdCBDb21wb25lbnQgPSBlbmdpbmUuZ2V0Q29tcG9uZW50KFxuICAgICAgY29tcG9uZW50TmFtZSxcbiAgICApIGFzIExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uPFQ+XG4gICAgY29uc3QgZW50aXRpZXMgPSBBcnJheS5mcm9tKGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoQ29tcG9uZW50KSlcbiAgICBjb25zdCByZXN1bHQgPSBlbnRpdGllcy5maW5kKChbX2VudGl0eSwgdmFsdWVdKSA9PiB2YWx1ZS5pZCA9PT0gaWQpXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocmVzdWx0KSAmJiByZXN1bHQubGVuZ3RoID4gMCA/IHJlc3VsdFswXSA6IG51bGxcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEVudGl0eUJ5QWN0aW9uKGFjdGlvbjogVHJpZ2dlckFjdGlvbikge1xuICAgIGlmIChhY3Rpb24uaWQpIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IGdldEVudGl0eUJ5SWQoQ29tcG9uZW50TmFtZS5BQ1RJT05TLCBhY3Rpb24uaWQpXG4gICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgIHJldHVybiBlbnRpdHlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEVudGl0eUJ5Q29uZGl0aW9uKGNvbmRpdGlvbjogVHJpZ2dlckNvbmRpdGlvbikge1xuICAgIGNvbnN0IGNvbXBvbmVudE5hbWUgPSBPYmplY3QudmFsdWVzKENvbXBvbmVudE5hbWUpXG4gICAgICAubWFwKChjb21wb25lbnROYW1lKSA9PiAoe1xuICAgICAgICBjb21wb25lbnROYW1lLFxuICAgICAgICBjb25kaXRpb25UeXBlczogZ2V0Q29uZGl0aW9uVHlwZXNCeUNvbXBvbmVudE5hbWUoY29tcG9uZW50TmFtZSksXG4gICAgICB9KSlcbiAgICAgIC5yZWR1Y2U8Q29tcG9uZW50TmFtZSB8IG51bGw+KFxuICAgICAgICAocmVzdWx0LCB7IGNvbXBvbmVudE5hbWUsIGNvbmRpdGlvblR5cGVzIH0pID0+XG4gICAgICAgICAgY29uZGl0aW9uVHlwZXMuaW5jbHVkZXMoY29uZGl0aW9uLnR5cGUpID8gY29tcG9uZW50TmFtZSA6IHJlc3VsdCxcbiAgICAgICAgbnVsbCxcbiAgICAgIClcbiAgICBpZiAoY29tcG9uZW50TmFtZSAmJiBjb25kaXRpb24uaWQpIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IGdldEVudGl0eUJ5SWQoY29tcG9uZW50TmFtZSwgY29uZGl0aW9uLmlkKVxuICAgICAgaWYgKGVudGl0eSkge1xuICAgICAgICByZXR1cm4gZW50aXR5XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgdXNlIE9OX0lOUFVUX0FDVElPTiBpbnN0ZWFkICovXG4gIC8vIE9OX0NMSUNLXG4gIGZ1bmN0aW9uIGluaXRPbkNsaWNrVHJpZ2dlcihlbnRpdHk6IEVudGl0eSkge1xuICAgIHBvaW50ZXJFdmVudHNTeXN0ZW0ub25Qb2ludGVyRG93bihcbiAgICAgIHtcbiAgICAgICAgZW50aXR5LFxuICAgICAgICBvcHRzOiB7XG4gICAgICAgICAgYnV0dG9uOiBJbnB1dEFjdGlvbi5JQV9QT0lOVEVSLFxuICAgICAgICAgIGhvdmVyVGV4dDogJ0NsaWNrJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSlcbiAgICAgICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX0NMSUNLKVxuICAgICAgfSxcbiAgICApXG4gIH1cblxuICAvLyBPTl9JTlBVVF9BQ1RJT05cbiAgZnVuY3Rpb24gaW5pdE9uSW5wdXRBY3Rpb25UcmlnZ2VyKGVudGl0eTogRW50aXR5KSB7XG4gICAgY29uc3QgcG9pbnRlckV2ZW50ID0gUG9pbnRlckV2ZW50cy5nZXRPck51bGwoZW50aXR5KVxuXG4gICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgIGJ1dHRvbjpcbiAgICAgICAgcG9pbnRlckV2ZW50Py5wb2ludGVyRXZlbnRzWzBdLmV2ZW50SW5mbz8uYnV0dG9uIHx8XG4gICAgICAgIElucHV0QWN0aW9uLklBX1BSSU1BUlksXG4gICAgICAuLi4ocG9pbnRlckV2ZW50ID09PSBudWxsID8geyBob3ZlclRleHQ6ICdQcmVzcycgfSA6IHt9KSxcbiAgICB9XG5cbiAgICBwb2ludGVyRXZlbnRzU3lzdGVtLm9uUG9pbnRlckRvd24oXG4gICAgICB7XG4gICAgICAgIGVudGl0eSxcbiAgICAgICAgb3B0cyxcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSlcbiAgICAgICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX0lOUFVUX0FDVElPTilcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgLy8gT05fUExBWUVSX0VOVEVSU19BUkVBIC8gT05fUExBWUVSX0xFQVZFU19BUkVBXG4gIGZ1bmN0aW9uIGluaXRPblBsYXllclRyaWdnZXJBcmVhKGVudGl0eTogRW50aXR5KSB7XG4gICAgY29uc3QgdHJhbnNmb3JtID0gVHJhbnNmb3JtLmdldE9yTnVsbChlbnRpdHkpXG4gICAgdHJpZ2dlcnMuYWRkVHJpZ2dlcihcbiAgICAgIGVudGl0eSxcbiAgICAgIE5PX0xBWUVSUyxcbiAgICAgIExBWUVSXzEsXG4gICAgICBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYm94JyxcbiAgICAgICAgICBzY2FsZTogdHJhbnNmb3JtID8gdHJhbnNmb3JtLnNjYWxlIDogeyB4OiAxLCB5OiAxLCB6OiAxIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9QTEFZRVJfRU5URVJTX0FSRUEpXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9QTEFZRVJfTEVBVkVTX0FSRUEpXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRPbkRhbWFnZShlbnRpdHk6IEVudGl0eSkge1xuICAgIGRhbWFnZVRhcmdldHMuYWRkKGVudGl0eSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRPbkhlYWxQbGF5ZXIoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBoZWFsVGFyZ2V0cy5hZGQoZW50aXR5KVxuICB9XG5cbiAgZnVuY3Rpb24gaW5pdE9uR2xvYmFsQ2ljayhlbnRpdHk6IEVudGl0eSkge1xuICAgIGdsb2JhbElucHV0QWN0aW9ucy5vbihJbnB1dEFjdGlvbi5JQV9QT0lOVEVSLCAoKSA9PiB7XG4gICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fR0xPQkFMX0NMSUNLKVxuICAgIH0pXG4gIH1cblxuICBmdW5jdGlvbiBpbml0T25HbG9iYWxQcmltYXJ5KGVudGl0eTogRW50aXR5KSB7XG4gICAgZ2xvYmFsSW5wdXRBY3Rpb25zLm9uKElucHV0QWN0aW9uLklBX1BSSU1BUlksICgpID0+IHtcbiAgICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSlcbiAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9HTE9CQUxfUFJJTUFSWSlcbiAgICB9KVxuICB9XG5cbiAgZnVuY3Rpb24gaW5pdE9uR2xvYmFsU2Vjb25kYXJ5KGVudGl0eTogRW50aXR5KSB7XG4gICAgZ2xvYmFsSW5wdXRBY3Rpb25zLm9uKElucHV0QWN0aW9uLklBX1NFQ09OREFSWSwgKCkgPT4ge1xuICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KVxuICAgICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX0dMT0JBTF9TRUNPTkRBUlkpXG4gICAgfSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRPblRpY2soZW50aXR5OiBFbnRpdHkpIHtcbiAgICB0aWNrU2V0LmFkZChlbnRpdHkpXG4gIH1cblxuICAvLyBPTl9UV0VFTl9FTkRcbiAgZnVuY3Rpb24gaGFuZGxlT25Ud2VlbkVuZChlbnRpdHk6IEVudGl0eSkge1xuICAgIGlmIChcbiAgICAgIFR3ZWVuQ29tcG9uZW50LmdldE9yTnVsbChlbnRpdHkpICYmXG4gICAgICBUd2VlblN0YXRlLmdldE9yTnVsbChlbnRpdHkpPy5zdGF0ZSA9PT0gVHdlZW5TdGF0ZVN0YXR1cy5UU19DT01QTEVURUQgJiZcbiAgICAgIHR3ZWVuU3lzdGVtLnR3ZWVuQ29tcGxldGVkKGVudGl0eSlcbiAgICApIHtcbiAgICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSlcbiAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9UV0VFTl9FTkQpXG4gICAgfVxuICB9XG59XG4iXX0=
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHJpZ2dlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQVFMLFVBQVUsR0FFWCxNQUFNLFVBQVUsQ0FBQTtBQUNqQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFDTCxRQUFRLEVBQ1IsT0FBTyxFQUNQLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ2pCLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUVMLGFBQWEsRUFJYix5QkFBeUIsRUFDekIsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxnQ0FBZ0MsRUFDaEMsYUFBYSxHQUVkLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUVqQyxNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0FBQ3hDLE1BQU0sV0FBVyxHQUF5QyxFQUFFLENBQUE7QUFFNUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7QUFDOUMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7QUFFNUMsSUFBSSxvQkFBb0IsR0FBc0MsSUFBSSxDQUFBO0FBRWxFLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBYztJQUN6QyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDekIsT0FBTyxvQkFBb0IsQ0FB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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSUVuZ2luZSxcbiAgRW50aXR5LFxuICBJbnB1dEFjdGlvbixcbiAgTGFzdFdyaXRlV2luRWxlbWVudFNldENvbXBvbmVudERlZmluaXRpb24sXG4gIERlZXBSZWFkb25seU9iamVjdCxcbiAgUG9pbnRlckV2ZW50c1N5c3RlbSxcbiAgVHdlZW5TeXN0ZW0sXG4gIFR3ZWVuU3RhdGUsXG4gIFR3ZWVuU3RhdGVTdGF0dXMsXG59IGZyb20gJ0BkY2wvZWNzJ1xuaW1wb3J0IHsgVmVjdG9yMyB9IGZyb20gJ0BkY2wvc2RrL21hdGgnXG5pbXBvcnQge1xuICB0cmlnZ2VycyxcbiAgTEFZRVJfMSxcbiAgTk9fTEFZRVJTLFxuICBnZXRQbGF5ZXJQb3NpdGlvbixcbiAgZ2V0V29ybGRQb3NpdGlvbixcbn0gZnJvbSAnQGRjbC1zZGsvdXRpbHMnXG5pbXBvcnQge1xuICBBY3Rpb24sXG4gIENvbXBvbmVudE5hbWUsXG4gIFRyaWdnZXIsXG4gIFRyaWdnZXJBY3Rpb24sXG4gIFRyaWdnZXJDb25kaXRpb24sXG4gIFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24sXG4gIFRyaWdnZXJDb25kaXRpb25UeXBlLFxuICBUcmlnZ2VyVHlwZSxcbiAgZ2V0Q29uZGl0aW9uVHlwZXNCeUNvbXBvbmVudE5hbWUsXG4gIGdldENvbXBvbmVudHMsXG4gIEVuZ2luZUNvbXBvbmVudHMsXG59IGZyb20gJy4vZGVmaW5pdGlvbnMnXG5pbXBvcnQgeyBnZXRDdXJyZW50VmFsdWUsIGdldFByZXZpb3VzVmFsdWUgfSBmcm9tICcuL3N0YXRlcydcbmltcG9ydCB7IGdldEFjdGlvbkV2ZW50cywgZ2V0VHJpZ2dlckV2ZW50cyB9IGZyb20gJy4vZXZlbnRzJ1xuaW1wb3J0IHsgZ2V0UGF5bG9hZCB9IGZyb20gJy4vYWN0aW9uLXR5cGVzJ1xuaW1wb3J0IHsgZ2xvYmFsSW5wdXRBY3Rpb25zIH0gZnJvbSAnLi9pbnB1dC1hY3Rpb25zJ1xuaW1wb3J0IHsgdGlja1NldCB9IGZyb20gJy4vdGltZXInXG5cbmNvbnN0IGluaXRlZEVudGl0aWVzID0gbmV3IFNldDxFbnRpdHk+KClcbmNvbnN0IGFjdGlvblF1ZXVlOiB7IGVudGl0eTogRW50aXR5OyBhY3Rpb246IEFjdGlvbiB9W10gPSBbXVxuXG5leHBvcnQgY29uc3QgZGFtYWdlVGFyZ2V0cyA9IG5ldyBTZXQ8RW50aXR5PigpXG5leHBvcnQgY29uc3QgaGVhbFRhcmdldHMgPSBuZXcgU2V0PEVudGl0eT4oKVxuXG5sZXQgaW50ZXJuYWxJbml0VHJpZ2dlcnM6ICgoZW50aXR5OiBFbnRpdHkpID0+IHZvaWQpIHwgbnVsbCA9IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRUcmlnZ2VycyhlbnRpdHk6IEVudGl0eSkge1xuICBpZiAoaW50ZXJuYWxJbml0VHJpZ2dlcnMpIHtcbiAgICByZXR1cm4gaW50ZXJuYWxJbml0VHJpZ2dlcnMoZW50aXR5KVxuICB9XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgQ2Fubm90IGNhbGwgaW5pdFRyaWdnZXJzIHdoaWxlIHRyaWdnZXJzU3lzdGVtIGhhcyBub3QgYmVlbiBjcmVhdGVkYCxcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJpZ2dlcnNTeXN0ZW0oXG4gIGVuZ2luZTogSUVuZ2luZSxcbiAgY29tcG9uZW50czogRW5naW5lQ29tcG9uZW50cyxcbiAgcG9pbnRlckV2ZW50c1N5c3RlbTogUG9pbnRlckV2ZW50c1N5c3RlbSxcbiAgdHdlZW5TeXN0ZW06IFR3ZWVuU3lzdGVtLFxuKSB7XG4gIGNvbnN0IHsgVHJhbnNmb3JtLCBUd2VlbjogVHdlZW5Db21wb25lbnQsIFBvaW50ZXJFdmVudHMgfSA9IGNvbXBvbmVudHNcbiAgY29uc3QgeyBBY3Rpb25zLCBTdGF0ZXMsIENvdW50ZXIsIFRyaWdnZXJzIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSlcblxuICAvLyBzYXZlIHJlZmVyZW5jZSB0byB0aGUgaW5pdCBmdW5jdGlvblxuICBpbnRlcm5hbEluaXRUcmlnZ2VycyA9IGluaXRFbnRpdHlUcmlnZ2Vyc1xuXG4gIHJldHVybiBmdW5jdGlvbiB0cmlnZ2Vyc1N5c3RlbShfZHQ6IG51bWJlcikge1xuICAgIC8vIHByb2Nlc3MgYWN0aW9uIHF1ZXVlXG4gICAgd2hpbGUgKGFjdGlvblF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgZW50aXR5LCBhY3Rpb24gfSA9IGFjdGlvblF1ZXVlLnNoaWZ0KCkhXG4gICAgICBjb25zdCBhY3Rpb25FdmVudHMgPSBnZXRBY3Rpb25FdmVudHMoZW50aXR5KVxuICAgICAgYWN0aW9uRXZlbnRzLmVtaXQoYWN0aW9uLm5hbWUsIGdldFBheWxvYWQoYWN0aW9uKSlcbiAgICB9XG5cbiAgICBjb25zdCBlbnRpdGllc1dpdGhUcmlnZ2VycyA9IGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoVHJpZ2dlcnMpXG4gICAgZm9yIChjb25zdCBbZW50aXR5XSBvZiBlbnRpdGllc1dpdGhUcmlnZ2Vycykge1xuICAgICAgaW5pdEVudGl0eVRyaWdnZXJzKGVudGl0eSlcbiAgICAgIGhhbmRsZU9uVHdlZW5FbmQoZW50aXR5KVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRFbnRpdHlUcmlnZ2VycyhlbnRpdHk6IEVudGl0eSkge1xuICAgIGlmICghVHJpZ2dlcnMuaGFzKGVudGl0eSkgfHwgaW5pdGVkRW50aXRpZXMuaGFzKGVudGl0eSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIGdldCB0cmlnZ2VycyBkYXRhXG4gICAgY29uc3QgdHJpZ2dlcnMgPSBUcmlnZ2Vycy5nZXQoZW50aXR5KVxuXG4gICAgLy8gaW5pdGlhbGl6ZSB0cmlnZ2VycyBmb3IgZ2l2ZW4gZW50aXR5XG4gICAgY29uc3QgdHlwZXMgPSB0cmlnZ2Vycy52YWx1ZS5yZWR1Y2UoXG4gICAgICAodHlwZXMsIHRyaWdnZXIpID0+IHR5cGVzLmFkZCh0cmlnZ2VyLnR5cGUpLFxuICAgICAgbmV3IFNldDxUcmlnZ2VyVHlwZT4oKSxcbiAgICApXG4gICAgZm9yIChjb25zdCB0eXBlIG9mIHR5cGVzKSB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgLyoqIEBkZXByZWNhdGVkIHVzZSBPTl9JTlBVVF9BQ1RJT04gaW5zdGVhZCAqL1xuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX0NMSUNLOiB7XG4gICAgICAgICAgaW5pdE9uQ2xpY2tUcmlnZ2VyKGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fSU5QVVRfQUNUSU9OOiB7XG4gICAgICAgICAgaW5pdE9uSW5wdXRBY3Rpb25UcmlnZ2VyKGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fUExBWUVSX0VOVEVSU19BUkVBOlxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX1BMQVlFUl9MRUFWRVNfQVJFQToge1xuICAgICAgICAgIGluaXRPblBsYXllclRyaWdnZXJBcmVhKGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fREFNQUdFOiB7XG4gICAgICAgICAgaW5pdE9uRGFtYWdlKGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fSEVBTF9QTEFZRVI6IHtcbiAgICAgICAgICBpbml0T25IZWFsUGxheWVyKGVudGl0eSlcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX0dMT0JBTF9DTElDSzoge1xuICAgICAgICAgIGluaXRPbkdsb2JhbENpY2soZW50aXR5KVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9HTE9CQUxfUFJJTUFSWToge1xuICAgICAgICAgIGluaXRPbkdsb2JhbFByaW1hcnkoZW50aXR5KVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9HTE9CQUxfU0VDT05EQVJZOiB7XG4gICAgICAgICAgaW5pdE9uR2xvYmFsU2Vjb25kYXJ5KGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fVElDSzoge1xuICAgICAgICAgIGluaXRPblRpY2soZW50aXR5KVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBiaW5kIHRyaWdnZXJzXG4gICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KVxuICAgIGZvciAoY29uc3QgdHJpZ2dlciBvZiB0cmlnZ2Vycy52YWx1ZSkge1xuICAgICAgdHJpZ2dlckV2ZW50cy5vbih0cmlnZ2VyLnR5cGUsICgpID0+IHtcbiAgICAgICAgaWYgKGNoZWNrQ29uZGl0aW9ucyh0cmlnZ2VyKSkge1xuICAgICAgICAgIGZvciAoY29uc3QgdHJpZ2dlckFjdGlvbiBvZiB0cmlnZ2VyLmFjdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkQWN0aW9uKHRyaWdnZXJBY3Rpb24pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVudGl0eSA9IGdldEVudGl0eUJ5QWN0aW9uKHRyaWdnZXJBY3Rpb24pXG4gICAgICAgICAgICAgIGlmIChlbnRpdHkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb25zID0gQWN0aW9ucy5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgICAgIGlmIChhY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb24gPSBhY3Rpb25zLnZhbHVlLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICgkKSA9PiAkLm5hbWUgPT09IHRyaWdnZXJBY3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIGlmIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWN0aW9ucyBhcmUgZW5xdWV1ZWQgdG8gYmUgZXhlY3V0ZWQgb24gdGhlIG5leHQgdGljayBhZnRlciBhbGwgdGhlIHRyaWdnZXJzIGhhdmUgYmVlbiBwcm9jZXNzZWQsXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgdG8gYXZvaWQgb25lIHRyaWdnZXIgbWVzc2luZyB3aXRoIG90aGVyIHRyaWdnZXIncyBjb25kaXRpb25zXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvblF1ZXVlLnB1c2goeyBlbnRpdHksIGFjdGlvbiB9KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX1NQQVdOKVxuXG4gICAgaW5pdGVkRW50aXRpZXMuYWRkKGVudGl0eSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzVmFsaWRBY3Rpb24oYWN0aW9uOiBUcmlnZ2VyQWN0aW9uKSB7XG4gICAgY29uc3QgeyBpZCwgbmFtZSB9ID0gYWN0aW9uXG4gICAgcmV0dXJuICEhaWQgJiYgISFuYW1lXG4gIH1cblxuICBmdW5jdGlvbiBjaGVja0NvbmRpdGlvbnModHJpZ2dlcjogRGVlcFJlYWRvbmx5T2JqZWN0PFRyaWdnZXI+KSB7XG4gICAgaWYgKHRyaWdnZXIuY29uZGl0aW9ucyAmJiB0cmlnZ2VyLmNvbmRpdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY29uZGl0aW9ucyA9IHRyaWdnZXIuY29uZGl0aW9ucy5tYXAoY2hlY2tDb25kaXRpb24pXG4gICAgICBjb25zdCBpc1RydWUgPSAocmVzdWx0PzogYm9vbGVhbikgPT4gISFyZXN1bHRcbiAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IHRyaWdnZXIub3BlcmF0aW9uIHx8IFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24uQU5EXG4gICAgICBzd2l0Y2ggKG9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24uQU5EOiB7XG4gICAgICAgICAgcmV0dXJuIGNvbmRpdGlvbnMuZXZlcnkoaXNUcnVlKVxuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvbk9wZXJhdGlvbi5PUjoge1xuICAgICAgICAgIHJldHVybiBjb25kaXRpb25zLnNvbWUoaXNUcnVlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGlmIHRoZXJlIGFyZSBubyBjb25kaXRpb25zLCB0aGUgdHJpZ2dlciBjYW4gY29udGludWVcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tDb25kaXRpb24oY29uZGl0aW9uOiBUcmlnZ2VyQ29uZGl0aW9uKSB7XG4gICAgY29uc3QgZW50aXR5ID0gZ2V0RW50aXR5QnlDb25kaXRpb24oY29uZGl0aW9uKVxuICAgIGlmIChlbnRpdHkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHN3aXRjaCAoY29uZGl0aW9uLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fU1RBVEVfSVM6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlcyA9IFN0YXRlcy5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgaWYgKHN0YXRlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBnZXRDdXJyZW50VmFsdWUoc3RhdGVzKVxuICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlID09PSBjb25kaXRpb24udmFsdWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9TVEFURV9JU19OT1Q6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlcyA9IFN0YXRlcy5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgaWYgKHN0YXRlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBnZXRDdXJyZW50VmFsdWUoc3RhdGVzKVxuICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlICE9PSBjb25kaXRpb24udmFsdWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9QUkVWSU9VU19TVEFURV9JUzoge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGVzID0gU3RhdGVzLmdldE9yTnVsbChlbnRpdHkpXG4gICAgICAgICAgICBpZiAoc3RhdGVzICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBnZXRQcmV2aW91c1ZhbHVlKHN0YXRlcylcbiAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWUgPT09IGNvbmRpdGlvbi52YWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX1BSRVZJT1VTX1NUQVRFX0lTX05PVDoge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGVzID0gU3RhdGVzLmdldE9yTnVsbChlbnRpdHkpXG4gICAgICAgICAgICBpZiAoc3RhdGVzICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBnZXRQcmV2aW91c1ZhbHVlKHN0YXRlcylcbiAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWUgIT09IGNvbmRpdGlvbi52YWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX0NPVU5URVJfRVFVQUxTOiB7XG4gICAgICAgICAgICBjb25zdCBjb3VudGVyID0gQ291bnRlci5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgaWYgKGNvdW50ZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IE51bWJlcihjb25kaXRpb24udmFsdWUpXG4gICAgICAgICAgICAgIGlmICghaXNOYU4obnVtZXJpYykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY291bnRlci52YWx1ZSA9PT0gbnVtZXJpY1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fQ09VTlRFUl9JU19HUkVBVEVSX1RIQU46IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ZXIgPSBDb3VudGVyLmdldE9yTnVsbChlbnRpdHkpXG4gICAgICAgICAgICBpZiAoY291bnRlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBudW1lcmljID0gTnVtYmVyKGNvbmRpdGlvbi52YWx1ZSlcbiAgICAgICAgICAgICAgaWYgKCFpc05hTihudW1lcmljKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb3VudGVyLnZhbHVlID4gbnVtZXJpY1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fQ09VTlRFUl9JU19MRVNTX1RIQU46IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ZXIgPSBDb3VudGVyLmdldE9yTnVsbChlbnRpdHkpXG4gICAgICAgICAgICBpZiAoY291bnRlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBudW1lcmljID0gTnVtYmVyKGNvbmRpdGlvbi52YWx1ZSlcbiAgICAgICAgICAgICAgaWYgKCFpc05hTihudW1lcmljKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb3VudGVyLnZhbHVlIDwgbnVtZXJpY1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fRElTVEFOQ0VfVE9fUExBWUVSX0xFU1NfVEhBTjoge1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSBnZXRXb3JsZFBvc2l0aW9uKGVudGl0eSlcblxuICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IE51bWJlcihjb25kaXRpb24udmFsdWUpXG4gICAgICAgICAgICBpZiAoIWlzTmFOKG51bWVyaWMpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBWZWN0b3IzLmRpc3RhbmNlKHBvc2l0aW9uLCBnZXRQbGF5ZXJQb3NpdGlvbigpKSA8IG51bWVyaWNcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX0RJU1RBTkNFX1RPX1BMQVlFUl9HUkVBVEVSX1RIQU46IHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gZ2V0V29ybGRQb3NpdGlvbihlbnRpdHkpXG4gICAgICAgICAgICBjb25zdCBudW1lcmljID0gTnVtYmVyKGNvbmRpdGlvbi52YWx1ZSlcbiAgICAgICAgICAgIGlmICghaXNOYU4obnVtZXJpYykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFZlY3RvcjMuZGlzdGFuY2UocG9zaXRpb24sIGdldFBsYXllclBvc2l0aW9uKCkpID4gbnVtZXJpY1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIGNvbmRpdGlvbicsIGNvbmRpdGlvbilcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBmdW5jdGlvbiBnZXRFbnRpdHlCeUlkPFQgZXh0ZW5kcyB7IGlkOiBudW1iZXIgfT4oXG4gICAgY29tcG9uZW50TmFtZTogc3RyaW5nLFxuICAgIGlkOiBudW1iZXIsXG4gICkge1xuICAgIGNvbnN0IENvbXBvbmVudCA9IGVuZ2luZS5nZXRDb21wb25lbnQoXG4gICAgICBjb21wb25lbnROYW1lLFxuICAgICkgYXMgTGFzdFdyaXRlV2luRWxlbWVudFNldENvbXBvbmVudERlZmluaXRpb248VD5cbiAgICBjb25zdCBlbnRpdGllcyA9IEFycmF5LmZyb20oZW5naW5lLmdldEVudGl0aWVzV2l0aChDb21wb25lbnQpKVxuICAgIGNvbnN0IHJlc3VsdCA9IGVudGl0aWVzLmZpbmQoKFtfZW50aXR5LCB2YWx1ZV0pID0+IHZhbHVlLmlkID09PSBpZClcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShyZXN1bHQpICYmIHJlc3VsdC5sZW5ndGggPiAwID8gcmVzdWx0WzBdIDogbnVsbFxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0RW50aXR5QnlBY3Rpb24oYWN0aW9uOiBUcmlnZ2VyQWN0aW9uKSB7XG4gICAgaWYgKGFjdGlvbi5pZCkge1xuICAgICAgY29uc3QgZW50aXR5ID0gZ2V0RW50aXR5QnlJZChDb21wb25lbnROYW1lLkFDVElPTlMsIGFjdGlvbi5pZClcbiAgICAgIGlmIChlbnRpdHkpIHtcbiAgICAgICAgcmV0dXJuIGVudGl0eVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0RW50aXR5QnlDb25kaXRpb24oY29uZGl0aW9uOiBUcmlnZ2VyQ29uZGl0aW9uKSB7XG4gICAgY29uc3QgY29tcG9uZW50TmFtZSA9IE9iamVjdC52YWx1ZXMoQ29tcG9uZW50TmFtZSlcbiAgICAgIC5tYXAoKGNvbXBvbmVudE5hbWUpID0+ICh7XG4gICAgICAgIGNvbXBvbmVudE5hbWUsXG4gICAgICAgIGNvbmRpdGlvblR5cGVzOiBnZXRDb25kaXRpb25UeXBlc0J5Q29tcG9uZW50TmFtZShjb21wb25lbnROYW1lKSxcbiAgICAgIH0pKVxuICAgICAgLnJlZHVjZTxDb21wb25lbnROYW1lIHwgbnVsbD4oXG4gICAgICAgIChyZXN1bHQsIHsgY29tcG9uZW50TmFtZSwgY29uZGl0aW9uVHlwZXMgfSkgPT5cbiAgICAgICAgICBjb25kaXRpb25UeXBlcy5pbmNsdWRlcyhjb25kaXRpb24udHlwZSkgPyBjb21wb25lbnROYW1lIDogcmVzdWx0LFxuICAgICAgICBudWxsLFxuICAgICAgKVxuICAgIGlmIChjb21wb25lbnROYW1lICYmIGNvbmRpdGlvbi5pZCkge1xuICAgICAgY29uc3QgZW50aXR5ID0gZ2V0RW50aXR5QnlJZChjb21wb25lbnROYW1lLCBjb25kaXRpb24uaWQpXG4gICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgIHJldHVybiBlbnRpdHlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCB1c2UgT05fSU5QVVRfQUNUSU9OIGluc3RlYWQgKi9cbiAgLy8gT05fQ0xJQ0tcbiAgZnVuY3Rpb24gaW5pdE9uQ2xpY2tUcmlnZ2VyKGVudGl0eTogRW50aXR5KSB7XG4gICAgY29uc3QgcG9pbnRlckV2ZW50ID0gUG9pbnRlckV2ZW50cy5nZXRNdXRhYmxlT3JOdWxsKGVudGl0eSlcbiAgICBjb25zdCBvcHRzID0geyBidXR0b246IElucHV0QWN0aW9uLklBX1BPSU5URVIsIGhvdmVyVGV4dDogJ0NsaWNrJyB9XG5cbiAgICBpZiAocG9pbnRlckV2ZW50KSB7XG4gICAgICAvLyBBdm9pZCBjcmVhdGluZyBkdXBsaWNhdHMgb2YgdGhlIHNhbWUgcG9pbnRlckV2ZW50LlxuICAgICAgLy8gVGhpcyBpc3N1YWxseSBoYXBwZW5zIHdpdGggZW50aXRpZXMgdGhhdCBhcmUgY3JlYXRlZCBhdCBydW50aW1lIGFuZCBhcmUgYmVpbmcgc3luY3Jvbml6ZWQuXG4gICAgICAvLyBJZiB5b3UgcmVjZWl2ZSBhbiBlbnRpdHkgd2l0aCBwb2ludGVyRXZlbnQgdGhpcyBmdW5jdGlvbiBpbnNpZGUgdGhlIGNyZWF0ZVRyaWdnZXJTeXN0ZW0gaXMgZ2VuZXJhdGluZyBhbm90aGVyIG9uZSB3aXRoIHRoZSBzYW1lIHZhbHVlcy5cbiAgICAgIHBvaW50ZXJFdmVudC5wb2ludGVyRXZlbnRzID0gcG9pbnRlckV2ZW50LnBvaW50ZXJFdmVudHMuZmlsdGVyKCQgPT4gISgkLmV2ZW50SW5mbz8uYnV0dG9uID09PSBvcHRzLmJ1dHRvbiAmJiAkLmV2ZW50SW5mby5ob3ZlclRleHQgPT09IG9wdHMuaG92ZXJUZXh0KSlcbiAgICB9XG5cbiAgICBwb2ludGVyRXZlbnRzU3lzdGVtLm9uUG9pbnRlckRvd24oXG4gICAgICB7XG4gICAgICAgIGVudGl0eSxcbiAgICAgICAgb3B0c1xuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KVxuICAgICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fQ0xJQ0spXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIC8vIE9OX0lOUFVUX0FDVElPTlxuICBmdW5jdGlvbiBpbml0T25JbnB1dEFjdGlvblRyaWdnZXIoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBjb25zdCBwb2ludGVyRXZlbnQgPSBQb2ludGVyRXZlbnRzLmdldE11dGFibGVPck51bGwoZW50aXR5KVxuXG4gICAgY29uc3Qgb3B0cyA9IHtcbiAgICAgIGJ1dHRvbjogSW5wdXRBY3Rpb24uSUFfUFJJTUFSWSxcbiAgICAgIGhvdmVyVGV4dDogJ1ByZXNzJ1xuICAgIH1cblxuICAgIGlmIChwb2ludGVyRXZlbnQpIHtcbiAgICAgIC8vIEF2b2lkIGNyZWF0aW5nIGR1cGxpY2F0ZXMgb2YgdGhlIHNhbWUgcG9pbnRlckV2ZW50LlxuICAgICAgcG9pbnRlckV2ZW50LnBvaW50ZXJFdmVudHMgPSBwb2ludGVyRXZlbnQucG9pbnRlckV2ZW50cy5maWx0ZXIoJCA9PiAhKCQuZXZlbnRJbmZvPy5idXR0b24gPT09IG9wdHMuYnV0dG9uICYmICQuZXZlbnRJbmZvLmhvdmVyVGV4dCA9PT0gb3B0cy5ob3ZlclRleHQpKVxuICAgIH1cblxuXG4gICAgcG9pbnRlckV2ZW50c1N5c3RlbS5vblBvaW50ZXJEb3duKFxuICAgICAge1xuICAgICAgICBlbnRpdHksXG4gICAgICAgIG9wdHMsXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9JTlBVVF9BQ1RJT04pXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIC8vIE9OX1BMQVlFUl9FTlRFUlNfQVJFQSAvIE9OX1BMQVlFUl9MRUFWRVNfQVJFQVxuICBmdW5jdGlvbiBpbml0T25QbGF5ZXJUcmlnZ2VyQXJlYShlbnRpdHk6IEVudGl0eSkge1xuICAgIGNvbnN0IHRyYW5zZm9ybSA9IFRyYW5zZm9ybS5nZXRPck51bGwoZW50aXR5KVxuICAgIHRyaWdnZXJzLmFkZFRyaWdnZXIoXG4gICAgICBlbnRpdHksXG4gICAgICBOT19MQVlFUlMsXG4gICAgICBMQVlFUl8xLFxuICAgICAgW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2JveCcsXG4gICAgICAgICAgc2NhbGU6IHRyYW5zZm9ybSA/IHRyYW5zZm9ybS5zY2FsZSA6IHsgeDogMSwgeTogMSwgejogMSB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KVxuICAgICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fUExBWUVSX0VOVEVSU19BUkVBKVxuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KVxuICAgICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fUExBWUVSX0xFQVZFU19BUkVBKVxuICAgICAgfSxcbiAgICApXG4gIH1cblxuICBmdW5jdGlvbiBpbml0T25EYW1hZ2UoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBkYW1hZ2VUYXJnZXRzLmFkZChlbnRpdHkpXG4gIH1cblxuICBmdW5jdGlvbiBpbml0T25IZWFsUGxheWVyKGVudGl0eTogRW50aXR5KSB7XG4gICAgaGVhbFRhcmdldHMuYWRkKGVudGl0eSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRPbkdsb2JhbENpY2soZW50aXR5OiBFbnRpdHkpIHtcbiAgICBnbG9iYWxJbnB1dEFjdGlvbnMub24oSW5wdXRBY3Rpb24uSUFfUE9JTlRFUiwgKCkgPT4ge1xuICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KVxuICAgICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX0dMT0JBTF9DTElDSylcbiAgICB9KVxuICB9XG5cbiAgZnVuY3Rpb24gaW5pdE9uR2xvYmFsUHJpbWFyeShlbnRpdHk6IEVudGl0eSkge1xuICAgIGdsb2JhbElucHV0QWN0aW9ucy5vbihJbnB1dEFjdGlvbi5JQV9QUklNQVJZLCAoKSA9PiB7XG4gICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fR0xPQkFMX1BSSU1BUlkpXG4gICAgfSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRPbkdsb2JhbFNlY29uZGFyeShlbnRpdHk6IEVudGl0eSkge1xuICAgIGdsb2JhbElucHV0QWN0aW9ucy5vbihJbnB1dEFjdGlvbi5JQV9TRUNPTkRBUlksICgpID0+IHtcbiAgICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSlcbiAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9HTE9CQUxfU0VDT05EQVJZKVxuICAgIH0pXG4gIH1cblxuICBmdW5jdGlvbiBpbml0T25UaWNrKGVudGl0eTogRW50aXR5KSB7XG4gICAgdGlja1NldC5hZGQoZW50aXR5KVxuICB9XG5cbiAgLy8gT05fVFdFRU5fRU5EXG4gIGZ1bmN0aW9uIGhhbmRsZU9uVHdlZW5FbmQoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBpZiAoXG4gICAgICBUd2VlbkNvbXBvbmVudC5nZXRPck51bGwoZW50aXR5KSAmJlxuICAgICAgVHdlZW5TdGF0ZS5nZXRPck51bGwoZW50aXR5KT8uc3RhdGUgPT09IFR3ZWVuU3RhdGVTdGF0dXMuVFNfQ09NUExFVEVEICYmXG4gICAgICB0d2VlblN5c3RlbS50d2VlbkNvbXBsZXRlZChlbnRpdHkpXG4gICAgKSB7XG4gICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fVFdFRU5fRU5EKVxuICAgIH1cbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcl/asset-packs",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/definitions.js",
|
|
6
6
|
"typings": "dist/definitions.d.ts",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"semi": false,
|
|
65
65
|
"printWidth": 80
|
|
66
66
|
},
|
|
67
|
-
"commit": "
|
|
67
|
+
"commit": "b1b92cf321ae6d452c1da816e65a4045241e6b14"
|
|
68
68
|
}
|