dcl-npc-toolkit 1.0.7 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +90 -134
- package/dist/bubble.js +39 -60
- package/dist/dialog.d.ts +13 -3
- package/dist/dialog.js +107 -14
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -3
- package/dist/npc.d.ts +5 -1
- package/dist/npc.js +39 -5
- package/dist/systems.js +1 -3
- package/dist/ui.js +17 -2
- package/package.json +2 -2
package/dist/dialog.js
CHANGED
|
@@ -3,7 +3,7 @@ import { AudioSource, engine } from "@dcl/sdk/ecs";
|
|
|
3
3
|
import { activeNPC, npcDataComponent } from "./npc";
|
|
4
4
|
import { IsTypingDialog } from "./components";
|
|
5
5
|
import { NPCState } from "./types";
|
|
6
|
-
import { section } from './ui';
|
|
6
|
+
import { lightTheme, section } from './ui';
|
|
7
7
|
import { getBubbleTextLength } from './bubble';
|
|
8
8
|
export const npcDialogComponent = new Map();
|
|
9
9
|
export const npcDialogTypingSystems = new Map();
|
|
@@ -15,7 +15,33 @@ export var ConfirmMode;
|
|
|
15
15
|
ConfirmMode[ConfirmMode["Button3"] = 3] = "Button3";
|
|
16
16
|
ConfirmMode[ConfirmMode["Button4"] = 4] = "Button4";
|
|
17
17
|
})(ConfirmMode || (ConfirmMode = {}));
|
|
18
|
-
export
|
|
18
|
+
export let UIscaleMultiplier = 0.75;
|
|
19
|
+
let portraitXPos = -50 * UIscaleMultiplier;
|
|
20
|
+
let portraitYPos = 20 * UIscaleMultiplier;
|
|
21
|
+
let imageXPos = 350 * UIscaleMultiplier;
|
|
22
|
+
let imageYPos = 50 * UIscaleMultiplier;
|
|
23
|
+
let portraitScale = 256 * UIscaleMultiplier;
|
|
24
|
+
let imageScale = 256 * UIscaleMultiplier;
|
|
25
|
+
let textSize = 24 * UIscaleMultiplier;
|
|
26
|
+
let textYPos = 10 * UIscaleMultiplier;
|
|
27
|
+
let buttonWidth = 174 * UIscaleMultiplier;
|
|
28
|
+
let buttonHeight = 46 * UIscaleMultiplier;
|
|
29
|
+
let buttonTextSize = 20 * UIscaleMultiplier;
|
|
30
|
+
let button1XPos = 150 * UIscaleMultiplier;
|
|
31
|
+
let button2XPos = -80 * UIscaleMultiplier;
|
|
32
|
+
let button3XPos = -80 * UIscaleMultiplier;
|
|
33
|
+
let button4XPos = 150 * UIscaleMultiplier;
|
|
34
|
+
let button1YPos = -65 * UIscaleMultiplier;
|
|
35
|
+
let button2YPos = -65 * UIscaleMultiplier;
|
|
36
|
+
let button1YPos4 = -20 * UIscaleMultiplier;
|
|
37
|
+
let button2YPos4 = -20 * UIscaleMultiplier;
|
|
38
|
+
let button3YPos = -80 * UIscaleMultiplier;
|
|
39
|
+
let button4YPos = -80 * UIscaleMultiplier;
|
|
40
|
+
let skipButtonXPos = -300 * UIscaleMultiplier;
|
|
41
|
+
let skipButtonYPos = -100 * UIscaleMultiplier;
|
|
42
|
+
let buttonIconWidth = 26 * UIscaleMultiplier;
|
|
43
|
+
let buttonIconHeight = 26 * UIscaleMultiplier;
|
|
44
|
+
export function addDialog(npc, sound, defaultPortrait) {
|
|
19
45
|
console.log('adding dialog for npc', npc);
|
|
20
46
|
npcDialogComponent.set(npc, {
|
|
21
47
|
typing: true,
|
|
@@ -25,15 +51,41 @@ export function addDialog(npc, sound) {
|
|
|
25
51
|
fullText: "",
|
|
26
52
|
timer: 0,
|
|
27
53
|
speed: 30,
|
|
54
|
+
originalScript: [],
|
|
28
55
|
script: [],
|
|
29
56
|
index: 0,
|
|
30
57
|
sound: sound ? sound : undefined,
|
|
31
58
|
soundPlayer: sound ? engine.addEntity() : undefined,
|
|
32
59
|
fontSize: 22,
|
|
33
60
|
isQuestion: false,
|
|
34
|
-
buttons: 0
|
|
61
|
+
buttons: 0,
|
|
62
|
+
defaultPortrait: defaultPortrait ? defaultPortrait : null,
|
|
63
|
+
defaultPortraitTexture: defaultPortrait ? defaultPortrait.path : lightTheme,
|
|
64
|
+
portraitWidth: defaultPortrait && defaultPortrait.width ? defaultPortrait.width * UIscaleMultiplier : portraitScale,
|
|
65
|
+
portraitHeight: defaultPortrait && defaultPortrait.height ? defaultPortrait.height * UIscaleMultiplier : portraitScale,
|
|
66
|
+
portraitX: defaultPortrait && defaultPortrait.offsetX ? defaultPortrait.offsetX * UIscaleMultiplier + portraitXPos : portraitXPos,
|
|
67
|
+
portraitY: defaultPortrait && defaultPortrait.offsetY ? defaultPortrait.offsetY * UIscaleMultiplier + portraitYPos : portraitYPos,
|
|
68
|
+
displayPortrait: false
|
|
35
69
|
});
|
|
36
70
|
}
|
|
71
|
+
export function displayPortrait() {
|
|
72
|
+
return activeNPC == 0 || !npcDialogComponent.has(activeNPC) ? "" : npcDialogComponent.get(activeNPC).displayPortrait;
|
|
73
|
+
}
|
|
74
|
+
export function positionPortaitX() {
|
|
75
|
+
return activeNPC == 0 || !npcDialogComponent.has(activeNPC) ? "" : npcDialogComponent.get(activeNPC).portraitX;
|
|
76
|
+
}
|
|
77
|
+
export function positionPortaitY() {
|
|
78
|
+
return activeNPC == 0 || !npcDialogComponent.has(activeNPC) ? "" : npcDialogComponent.get(activeNPC).portraitY;
|
|
79
|
+
}
|
|
80
|
+
export function portraitWidth() {
|
|
81
|
+
return activeNPC == 0 || !npcDialogComponent.has(activeNPC) ? "" : npcDialogComponent.get(activeNPC).portraitWidth;
|
|
82
|
+
}
|
|
83
|
+
export function portraitHeight() {
|
|
84
|
+
return activeNPC == 0 || !npcDialogComponent.has(activeNPC) ? "" : npcDialogComponent.get(activeNPC).portraitHeight;
|
|
85
|
+
}
|
|
86
|
+
export function getPortrait() {
|
|
87
|
+
return activeNPC == 0 || !npcDialogComponent.has(activeNPC) ? "" : npcDialogComponent.get(activeNPC).defaultPortraitTexture;
|
|
88
|
+
}
|
|
37
89
|
export function getText() {
|
|
38
90
|
return activeNPC == 0 || !npcDialogComponent.has(activeNPC) ? "" : npcDialogComponent.get(activeNPC).visibleText;
|
|
39
91
|
}
|
|
@@ -79,23 +131,35 @@ export function closeDialog(npc) {
|
|
|
79
131
|
dialogData.fullText = "";
|
|
80
132
|
dialogData.timer = 0;
|
|
81
133
|
dialogData.index = 0;
|
|
82
|
-
dialogData.script =
|
|
134
|
+
dialogData.script.length = 0;
|
|
83
135
|
dialogData.buttons = 0;
|
|
84
136
|
dialogData.margin = 0;
|
|
137
|
+
dialogData.displayPortrait = false;
|
|
138
|
+
console.log('dialog data is now ', dialogData);
|
|
85
139
|
}
|
|
86
140
|
export function talk(npc, dialog, startIndex, duration) {
|
|
87
141
|
npcDataComponent.get(npc).introduced = true;
|
|
88
|
-
console.log('trying to talk npc');
|
|
89
142
|
if (npcDialogComponent.has(npc)) {
|
|
90
|
-
console.log('we have npc dialog compoentn for ', npc);
|
|
91
143
|
npcDataComponent.get(npc).state = NPCState.TALKING;
|
|
92
|
-
|
|
144
|
+
let index;
|
|
145
|
+
if (!startIndex) {
|
|
146
|
+
index = 0;
|
|
147
|
+
}
|
|
148
|
+
else if (typeof startIndex === 'number') {
|
|
149
|
+
index = startIndex;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
index = findDialogByName(dialog, startIndex);
|
|
153
|
+
}
|
|
154
|
+
openDialog(npc, dialog, index);
|
|
93
155
|
}
|
|
94
156
|
}
|
|
95
|
-
function openDialog(npc, dialog, startIndex) {
|
|
157
|
+
export function openDialog(npc, dialog, startIndex) {
|
|
158
|
+
console.log('script to talk is', dialog);
|
|
96
159
|
let dialogData = npcDialogComponent.get(npc);
|
|
97
|
-
dialogData.script =
|
|
160
|
+
dialogData.script = dialog.slice();
|
|
98
161
|
dialogData.index = startIndex;
|
|
162
|
+
console.log('dialog data is now', dialogData);
|
|
99
163
|
let currentText = dialog[startIndex] ? dialog[startIndex] : { text: '' };
|
|
100
164
|
if (currentText.audio) {
|
|
101
165
|
AudioSource.createOrReplace(dialogData.soundPlayer, {
|
|
@@ -119,9 +183,12 @@ function openDialog(npc, dialog, startIndex) {
|
|
|
119
183
|
}
|
|
120
184
|
beginTyping(npc);
|
|
121
185
|
}
|
|
186
|
+
export function addLineBreak(text, bubble) {
|
|
187
|
+
return lineBreak(text, bubble ? getBubbleTextLength(text) : 45);
|
|
188
|
+
}
|
|
122
189
|
function beginTyping(npc) {
|
|
123
190
|
let dialogData = npcDialogComponent.get(npc);
|
|
124
|
-
dialogData.fullText = dialogData.script[dialogData.index].text;
|
|
191
|
+
dialogData.fullText = addLineBreak(dialogData.script[dialogData.index].text);
|
|
125
192
|
dialogData.visible = true;
|
|
126
193
|
dialogData.typing = true;
|
|
127
194
|
dialogData.visibleText = "";
|
|
@@ -129,6 +196,25 @@ function beginTyping(npc) {
|
|
|
129
196
|
dialogData.timer = 0;
|
|
130
197
|
dialogData.isQuestion = false;
|
|
131
198
|
dialogData.buttons = 0;
|
|
199
|
+
let currentText = dialogData.script[dialogData.index] ? dialogData.script[dialogData.index] : { text: '' };
|
|
200
|
+
if (currentText.portrait) {
|
|
201
|
+
dialogData.defaultPortraitTexture = currentText.portrait.path;
|
|
202
|
+
dialogData.portraitX = currentText.portrait.offsetX
|
|
203
|
+
? currentText.portrait.offsetX * UIscaleMultiplier + portraitXPos
|
|
204
|
+
: portraitXPos;
|
|
205
|
+
dialogData.portraitY = currentText.portrait.offsetY
|
|
206
|
+
? currentText.portrait.offsetY * UIscaleMultiplier + portraitYPos
|
|
207
|
+
: portraitYPos;
|
|
208
|
+
dialogData.portraitWidth = currentText.portrait.width ? currentText.portrait.width * UIscaleMultiplier : portraitScale;
|
|
209
|
+
dialogData.portraitHeight = currentText.portrait.height ? currentText.portrait.height * UIscaleMultiplier : portraitScale;
|
|
210
|
+
dialogData.displayPortrait = true;
|
|
211
|
+
}
|
|
212
|
+
else if (dialogData.defaultPortrait) {
|
|
213
|
+
dialogData.displayPortrait = true;
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
dialogData.displayPortrait = false;
|
|
217
|
+
}
|
|
132
218
|
if (dialogData.script[dialogData.index].isQuestion) {
|
|
133
219
|
dialogData.buttons = dialogData.script[dialogData.index].buttons.length;
|
|
134
220
|
if (dialogData.buttons >= 3) {
|
|
@@ -163,10 +249,9 @@ function beginTyping(npc) {
|
|
|
163
249
|
}
|
|
164
250
|
}
|
|
165
251
|
export function addLineBreaks(dialog, bubble) {
|
|
166
|
-
let cleaned =
|
|
167
|
-
|
|
252
|
+
let cleaned = dialog.slice();
|
|
253
|
+
cleaned.forEach((d) => {
|
|
168
254
|
d.text = lineBreak(d.text, bubble ? getBubbleTextLength(d.text) : 50);
|
|
169
|
-
cleaned.push(d);
|
|
170
255
|
});
|
|
171
256
|
return cleaned;
|
|
172
257
|
}
|
|
@@ -282,4 +367,12 @@ export function realWidth(width) {
|
|
|
282
367
|
export function realHeight(height) {
|
|
283
368
|
return height ? height : section.sourceHeight;
|
|
284
369
|
}
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFBO0FBRXZDLE9BQU8sRUFBRSxXQUFXLEVBQVUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQVUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFxQixJQUFJLEdBQUcsRUFBRSxDQUFBO0FBQzdELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFxQixJQUFJLEdBQUcsRUFBRSxDQUFBO0FBRWpFLE1BQU0sQ0FBTixJQUFZLFdBTVQ7QUFOSCxXQUFZLFdBQVc7SUFDbkIsbURBQVcsQ0FBQTtJQUNYLGlEQUFVLENBQUE7SUFDViw2Q0FBUSxDQUFBO0lBQ1IsbURBQVcsQ0FBQTtJQUNYLG1EQUFXLENBQUE7QUFDYixDQUFDLEVBTlMsV0FBVyxLQUFYLFdBQVcsUUFNcEI7QUFFSCxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVUsRUFBRSxLQUFhO0lBQy9DLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDekMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtRQUN4QixNQUFNLEVBQUMsSUFBSTtRQUNYLE9BQU8sRUFBQyxLQUFLO1FBQ2IsV0FBVyxFQUFDLEVBQUU7UUFDZCxZQUFZLEVBQUMsQ0FBQztRQUNkLFFBQVEsRUFB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QUFVLEdBQUcsV0FBVyxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsV0FBVyxHQUFHLFNBQVMsR0FBRyxZQUFZLENBQUMsR0FBRyxXQUFXO0tBQ2hHLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxLQUFhO0lBQ3JDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUE7QUFDNUMsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsTUFBYztJQUN2QyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFBO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlscyBmcm9tICdAZGNsLXNkay91dGlscydcblxuaW1wb3J0IHsgQXVkaW9Tb3VyY2UsIEVudGl0eSwgZW5naW5lIH0gZnJvbSBcIkBkY2wvc2RrL2Vjc1wiO1xuaW1wb3J0IHsgYWN0aXZlTlBDLCBucGNEYXRhQ29tcG9uZW50IH0gZnJvbSBcIi4vbnBjXCI7XG5pbXBvcnQgeyBJc1R5cGluZ0RpYWxvZyB9IGZyb20gXCIuL2NvbXBvbmVudHNcIjtcbmltcG9ydCB7IGhhbmRsZURpYWxvZ1R5cGluZyB9IGZyb20gXCIuL3N5c3RlbXNcIjtcbmltcG9ydCB7IERpYWxvZywgTlBDU3RhdGUgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgc2VjdGlvbiB9IGZyb20gJy4vdWknO1xuaW1wb3J0IHsgZ2V0QnViYmxlVGV4dExlbmd0aCB9IGZyb20gJy4vYnViYmxlJztcblxuXG5leHBvcnQgY29uc3QgbnBjRGlhbG9nQ29tcG9uZW50OiBNYXA8RW50aXR5LCBhbnk+ID0gbmV3IE1hcCgpXG5leHBvcnQgY29uc3QgbnBjRGlhbG9nVHlwaW5nU3lzdGVtczogTWFwPEVudGl0eSwgYW55PiA9IG5ldyBNYXAoKVxuXG5leHBvcnQgZW51bSBDb25maXJtTW9kZSB7XG4gICAgQ29uZmlybSA9IDAsXG4gICAgQ2FuY2VsID0gMSxcbiAgICBOZXh0ID0gMixcbiAgICBCdXR0b24zID0gMyxcbiAgICBCdXR0b240ID0gNFxuICB9XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGREaWFsb2cobnBjOkVudGl0eSwgc291bmQ/OnN0cmluZyl7XG4gICAgY29uc29sZS5sb2coJ2FkZGluZyBkaWFsb2cgZm9yIG5wYycsIG5wYylcbiAgICBucGNEaWFsb2dDb21wb25lbnQuc2V0KG5wYywge1xuICAgICAgICB0eXBpbmc6dHJ1ZSxcbiAgICAgICAgdmlzaWJsZTpmYWxzZSxcbiAgICAgICAgdmlzaWJsZVRleHQ6XCJcIixcbiAgICAgICAgdmlzaWJsZUNoYXJzOjAsXG4gICAgICAgIGZ1bGxUZXh0OlwiXCIsXG4gICAgICAgIHRpbWVyOjAsXG4gICAgICAgIHNwZWVkOjMwLFxuICAgICAgICBzY3JpcHQ6W10sXG4gICAgICAgIGluZGV4OjAsXG4gICAgICAgIHNvdW5kOiBzb3VuZCA/IHNvdW5kIDogdW5kZWZpbmVkLFxuICAgICAgICBzb3VuZFBsYXllcjogc291bmQgPyBlbmdpbmUuYWRkRW50aXR5KCkgOiB1bmRlZmluZWQsXG4gICAgICAgIGZvbnRTaXplOjIyLFxuICAgICAgICBpc1F1ZXN0aW9uOmZhbHNlLFxuICAgICAgICBidXR0b25zOjBcbiAgICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGV4dCgpe1xuICAgIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IFwiXCIgOiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLnZpc2libGVUZXh0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCdXR0b25UZXh0KGJ1dHRvbjpudW1iZXIpe1xuICAgIGxldCB0ZXh0ID0gXCJcIlxuXG4gICAgaWYoYWN0aXZlTlBDICE9IDAgJiYgbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSl7XG4gICAgICAgIGxldCBkaWFsb2dEYXRhID0gbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KVxuICAgICAgICBpZihkaWFsb2dEYXRhLmlzUXVlc3Rpb24gJiYgZGlhbG9nRGF0YS5idXR0b25zID4gYnV0dG9uKXtcbiAgICAgICAgICAgIHRleHQgPSBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5idXR0b25zW2J1dHRvbl0ubGFiZWxcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGV4dFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9udFNpemUoKXtcbiAgICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyAyMiA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuZm9udFNpemVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BsYXlEaWFsb2coKXtcbiAgICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBmYWxzZSA6ICBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLnZpc2libGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BsYXlCdXR0b24oYnV0dG9uOm51bWJlcil7XG4gICAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gZmFsc2UgOiAgbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5pc1F1ZXN0aW9uICYmIG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuYnV0dG9ucyA+PSBidXR0b25cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BsYXlGaXJzdEJ1dHRvbkNvbnRhaW5lcigpe1xuICAgIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IGZhbHNlIDogIG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuaXNRdWVzdGlvbiAmJiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLmJ1dHRvbnMgPj0gMVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheVNlY29uZEJ1dHRvbkNvbnRhaW5lcigpe1xuICAgIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IGZhbHNlIDogIG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuaXNRdWVzdGlvbiAmJiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLmJ1dHRvbnMgPj0gM1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGV4dFBvc2l0aW9uKCl7XG4gICAgLy9jb25zb2xlLmxvZyhucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLmJ1dHRvbnMpXG4gICAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8ge3RvcDowfSA6IHt0b3A6bnBjRGF0YUNvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkubWFyZ2lufVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnV0dG9uQ2xpY2soYnV0dG9uOm51bWJlcil7XG4gICAgaWYoYWN0aXZlTlBDICE9IDAgJiYgbnBjRGF0YUNvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkpe1xuICAgICAgICBjb25maXJtVGV4dChhY3RpdmVOUEMgYXMgRW50aXR5LCBidXR0b24pXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xvc2VEaWFsb2cobnBjOkVudGl0eSl7XG4gICAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYylcbiAgICBkaWFsb2dEYXRhLnZpc2libGUgPSBmYWxzZVxuICAgIGRpYWxvZ0RhdGEudHlwaW5nID0gZmFsc2VcbiAgICBkaWFsb2dEYXRhLnZpc2libGVUZXh0ID0gXCJcIlxuICAgIGRpYWxvZ0RhdGEudmlzaWJsZUNoYXJzID0gMFxuICAgIGRpYWxvZ0RhdGEuZnVsbFRleHQgPSBcIlwiXG4gICAgZGlhbG9nRGF0YS50aW1lciA9IDBcbiAgICBkaWFsb2dEYXRhLmluZGV4ID0gMFxuICAgIGRpYWxvZ0RhdGEuc2NyaXB0ID0gW11cbiAgICBkaWFsb2dEYXRhLmJ1dHRvbnMgPSAwXG4gICAgZGlhbG9nRGF0YS5tYXJnaW4gPSAwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWxrKG5wYzpFbnRpdHksIGRpYWxvZzpEaWFsb2dbXSwgc3RhcnRJbmRleD86bnVtYmVyLCBkdXJhdGlvbj86bnVtYmVyKXtcbiAgICBucGNEYXRhQ29tcG9uZW50LmdldChucGMpLmludHJvZHVjZWQgPSB0cnVlXG4gICAgY29uc29sZS5sb2coJ3RyeWluZyB0byB0YWxrIG5wYycpXG4gICAgaWYobnBjRGlhbG9nQ29tcG9uZW50LmhhcyhucGMpKXtcbiAgICAgICAgY29uc29sZS5sb2coJ3dlIGhhdmUgbnBjIGRpYWxvZyBjb21wb2VudG4gZm9yICcsIG5wYylcbiAgICAgICAgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS5zdGF0ZSA9IE5QQ1N0YXRlLlRBTEtJTkdcbiAgICAgICAgb3BlbkRpYWxvZyhucGMsZGlhbG9nLCBzdGFydEluZGV4ID8gc3RhcnRJbmRleCA6IDApXG4gICAgfVxufVxuXG5mdW5jdGlvbiBvcGVuRGlhbG9nKG5wYzpFbnRpdHksIGRpYWxvZzphbnlbXSwgc3RhcnRJbmRleDpudW1iZXIpe1xuICAgIGxldCBkaWFsb2dEYXRhID0gbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpXG4gICAgZGlhbG9nRGF0YS5zY3JpcHQgPSBhZGRMaW5lQnJlYWtzKGRpYWxvZylcbiAgICBkaWFsb2dEYXRhLmluZGV4ID0gc3RhcnRJbmRleFxuICAgIFxuICAgIGxldCBjdXJyZW50VGV4dDogRGlhbG9nID0gZGlhbG9nW3N0YXJ0SW5kZXhdID8gZGlhbG9nW3N0YXJ0SW5kZXhdIDogeyB0ZXh0OiAnJyB9XG5cbiAgICBpZiAoY3VycmVudFRleHQuYXVkaW8pIHtcbiAgICAgICAgQXVkaW9Tb3VyY2UuY3JlYXRlT3JSZXBsYWNlKGRpYWxvZ0RhdGEuc291bmRQbGF5ZXIsIHtcbiAgICAgICAgICAgIGF1ZGlvQ2xpcFVybDogY3VycmVudFRleHQuYXVkaW8sXG4gICAgICAgICAgICBsb29wOiBmYWxzZSxcbiAgICAgICAgICAgIHBsYXlpbmc6IGZhbHNlXG4gICAgICAgIH0pXG4gICAgICAgIGxldCBhdWRpbyA9IEF1ZGlvU291cmNlLmdldE11dGFibGUoZGlhbG9nRGF0YS5zb3VuZFBsYXllcilcbiAgICAgICAgYXVkaW8udm9sdW1lID0gMC41XG4gICAgICAgIGF1ZGlvLnBsYXlpbmcgPSB0cnVlXG4gICAgfSBlbHNlIGlmIChkaWFsb2dEYXRhLnNvdW5kKSB7XG4gICAgICAgIEF1ZGlvU291cmNlLmNyZWF0ZU9yUmVwbGFjZShkaWFsb2dEYXRhLnNvdW5kUGxheWVyLCB7XG4gICAgICAgICAgICBhdWRpb0NsaXBVcmw6IGRpYWxvZ0RhdGEuc291bmQsXG4gICAgICAgICAgICBsb29wOiBmYWxzZSxcbiAgICAgICAgICAgIHBsYXlpbmc6IGZhbHNlXG4gICAgICAgIH0pXG4gICAgICAgIGxldCBhdWRpbyA9IEF1ZGlvU291cmNlLmdldE11dGFibGUoZGlhbG9nRGF0YS5zb3VuZFBsYXllcilcbiAgICAgICAgYXVkaW8udm9sdW1lID0gMC41XG4gICAgICAgIGF1ZGlvLnBsYXlpbmcgPSB0cnVlXG4gICAgfVxuXG4gICAgLy9UT0RPXG4gICAgLy9zZXQgcG9ydHJhaXRcbiAgICAvL3NldCBpbWFnZSBvbiB0aGUgcmlnaHRcbiAgICAvL3NldCB0ZXh0XG4gICAgLy9nbG9iYWwgYnV0dG9uIGFjdGlvbnNcblxuICAgIGJlZ2luVHlwaW5nKG5wYylcbn1cblxuZnVuY3Rpb24gYmVnaW5UeXBpbmcobnBjOkVudGl0eSl7XG4gICAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYylcbiAgICBkaWFsb2dEYXRhLmZ1bGxUZXh0ID0gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0udGV4dFxuICAgIGRpYWxvZ0RhdGEudmlzaWJsZSA9IHRydWVcbiAgICBkaWFsb2dEYXRhLnR5cGluZyA9IHRydWVcbiAgICBkaWFsb2dEYXRhLnZpc2libGVUZXh0ID0gXCJcIlxuICAgIGRpYWxvZ0RhdGEudmlzaWJsZUNoYXJzID0gMFxuICAgIGRpYWxvZ0RhdGEudGltZXIgPSAwXG4gICAgZGlhbG9nRGF0YS5pc1F1ZXN0aW9uID0gZmFsc2VcbiAgICBkaWFsb2dEYXRhLmJ1dHRvbnMgPSAwXG5cbiAgICBpZihkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5pc1F1ZXN0aW9uKXtcbiAgICAgICAgZGlhbG9nRGF0YS5idXR0b25zID0gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uYnV0dG9ucy5sZW5ndGhcbiAgICAgICAgaWYoZGlhbG9nRGF0YS5idXR0b25zID49IDMpe1xuICAgICAgICAgICAgZGlhbG9nRGF0YS5tYXJnaW4gPSAtMzAwXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZihkaWFsb2dEYXRhLmJ1dHRvbnMgPj0xKXtcbiAgICAgICAgICAgIGRpYWxvZ0RhdGEubWFyZ2luID0gLTMwMFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5sb2coZGlhbG9nRGF0YSlcbiAgICAgICAgdXRpbHMudGltZXJzLnNldFRpbWVvdXQoXG4gICAgICAgICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnc2V0dGluZyBxdWVzdGlvbiB0byB0cnVlJylcbiAgICAgICAgICAgICAgICBkaWFsb2dEYXRhLmlzUXVlc3Rpb24gPSB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgNzAwXG4gICAgICAgICAgKVxuICAgIH1cblxuICAgIGRpYWxvZ0RhdGEub3BlblRpbWUgPSBNYXRoLmZsb29yKERhdGUubm93KCkpXG4gICAgaWYoZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uZm9udFNpemUpe1xuICAgICAgICBkaWFsb2dEYXRhLmZvbnRTaXplID0gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uZm9udFNpemVcbiAgICB9XG4gICAgXG4gICAgaWYoZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uaGFzT3duUHJvcGVydHkoXCJ0eXBlU3BlZWRcIikpe1xuICAgICAgICBkaWFsb2dEYXRhLnNwZWVkID0gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0udHlwZVNwZWVkXG4gICAgfVxuICAgIGVsc2V7XG4gICAgICAgIGRpYWxvZ0RhdGEuc3BlZWQgPSAzMFxuICAgIH1cblxuICAgIGlmKGRpYWxvZ0RhdGEuc3BlZWQgPD0gMCl7XG4gICAgICAgIHJ1c2hUZXh0KG5wYylcbiAgICB9XG4gICAgZWxzZXtcbiAgICAgICAgaWYoIUlzVHlwaW5nRGlhbG9nLmhhcyhucGMpKXtcbiAgICAgICAgICAgIElzVHlwaW5nRGlhbG9nLmNyZWF0ZShucGMpXG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgLy8gaWYoIW5wY0RpYWxvZ1R5cGluZ1N5c3RlbXMuaGFzKG5wYykpe1xuICAgICAgICAvLyAgICAgbnBjRGlhbG9nVHlwaW5nU3lzdGVtcy5zZXQobnBjLGVuZ2luZS5hZGRTeXN0ZW0oaGFuZGxlRGlhbG9nVHlwaW5nKSlcbiAgICAgICAgLy8gfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZExpbmVCcmVha3MoZGlhbG9nOkRpYWxvZ1tdLCBidWJibGU/OmJvb2xlYW4pe1xuICAgIGxldCBjbGVhbmVkOkRpYWxvZ1tdID0gW11cbiAgICBkaWFsb2cuZm9yRWFjaCgoZCk9PntcbiAgICAgICAgZC50ZXh0ID0gbGluZUJyZWFrKGQudGV4dCwgYnViYmxlPyBnZXRCdWJibGVUZXh0TGVuZ3RoKGQudGV4dCkhIDogNTApXG4gICAgICAgIGNsZWFuZWQucHVzaChkKVxuICAgIH0pXG4gICAgcmV0dXJuIGNsZWFuZWRcbn1cblxuZnVuY3Rpb24gbGluZUJyZWFrKHRleHQ6IHN0cmluZywgbWF4TGluZUxlbmd0aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCB3b3JkcyA9IHRleHQuc3BsaXQoJyAnKTtcbiAgICBsZXQgY3VycmVudExpbmUgPSAnJztcbiAgICBjb25zdCBsaW5lcyA9IFtdO1xuICBcbiAgICBmb3IgKGNvbnN0IHdvcmQgb2Ygd29yZHMpIHtcbiAgICAgIGlmIChjdXJyZW50TGluZS5sZW5ndGggKyB3b3JkLmxlbmd0aCArIDEgPD0gbWF4TGluZUxlbmd0aCkge1xuICAgICAgICBjdXJyZW50TGluZSArPSBgJHt3b3JkfSBgO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGluZXMucHVzaChjdXJyZW50TGluZS50cmltKCkpO1xuICAgICAgICBjdXJyZW50TGluZSA9IGAke3dvcmR9IGA7XG4gICAgICB9XG4gICAgfVxuICAgIGxpbmVzLnB1c2goY3VycmVudExpbmUudHJpbSgpKTtcbiAgICByZXR1cm4gbGluZXMuam9pbignXFxuJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVEaWFsb2dDbGljaygpe1xuICAgIGxldCBucGMgPSBhY3RpdmVOUEMgYXMgRW50aXR5XG4gICAgaWYobnBjRGlhbG9nQ29tcG9uZW50LmhhcyhucGMpKXtcbiAgICAgICAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYylcbiAgICAgICAgaWYoIWRpYWxvZ0RhdGEudmlzaWJsZSB8fCAoTWF0aC5mbG9vcihEYXRlLm5vdygpKSAtIGRpYWxvZ0RhdGEub3BlblRpbWUgIDwgMTAwKSkgcmV0dXJuXG4gICAgICAgIFxuICAgICAgICBpZihkaWFsb2dEYXRhLnR5cGluZyl7XG4gICAgICAgICAgICBydXNoVGV4dChucGMpXG4gICAgICAgIH1cbiAgICAgICAgZWxzZXtcbiAgICAgICAgICAgIGNvbmZpcm1UZXh0KG5wYywgQ29uZmlybU1vZGUuTmV4dClcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gcnVzaFRleHQobnBjOkVudGl0eSl7XG4gICAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYylcbiAgICBkaWFsb2dEYXRhLnR5cGluZyA9IGZhbHNlXG4gICAgZGlhbG9nRGF0YS50aW1lciA9IDBcbiAgICBkaWFsb2dEYXRhLnZpc2libGVDaGFycyA9IGRpYWxvZ0RhdGEuZnVsbFRleHQubGVuZ3RoXG4gICAgZGlhbG9nRGF0YS52aXNpYmxlVGV4dCA9IGRpYWxvZ0RhdGEuZnVsbFRleHRcbiAgICAvL2VuZ2luZS5yZW1vdmVTeXN0ZW0obnBjRGlhbG9nVHlwaW5nU3lzdGVtcy5nZXQobnBjKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpcm1UZXh0KG5wYzpFbnRpdHksIG1vZGU6IENvbmZpcm1Nb2RlKTogdm9pZCB7XG4gICAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYylcbiAgICBkaWFsb2dEYXRhLm9wZW5UaW1lID0gTWF0aC5mbG9vcihEYXRlLm5vdygpKVxuXG4gICAgbGV0IGN1cnJlbnRUZXh0ID0gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF1cbiAgICAvLyBVcGRhdGUgYWN0aXZlIHRleHRcbiAgICBpZiAobW9kZSA9PSBDb25maXJtTW9kZS5OZXh0KSB7XG4gICAgICAgIGlmICghY3VycmVudFRleHQuaXNRdWVzdGlvbikge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRUZXh0LnRyaWdnZXJlZEJ5TmV4dCkge1xuICAgICAgICAgICAgY3VycmVudFRleHQudHJpZ2dlcmVkQnlOZXh0KClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdXJyZW50VGV4dC5pc0VuZE9mRGlhbG9nKSB7XG4gICAgICAgICAgICBjbG9zZURpYWxvZyhucGMpXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpYWxvZ0RhdGEuaW5kZXgrK1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1vZGUgPT0gQ29uZmlybU1vZGUuQ29uZmlybSkge1xuICAgICAgICBpZiAoY3VycmVudFRleHQuYnV0dG9ucyAmJiBjdXJyZW50VGV4dC5idXR0b25zLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50VGV4dC5idXR0b25zWzBdLmdvVG9EaWFsb2cgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBkaWFsb2dEYXRhLmluZGV4ID0gY3VycmVudFRleHQuYnV0dG9uc1swXS5nb1RvRGlhbG9nXG4gICAgICAgICAgfSBcblxuICAgICAgICAgIC8vVE9ET1xuICAgICAgICAgIC8vYWxsb3cgZGlhbG9ncyB0byBiZSBpbmRleCBieSBuYW1lXG4gICAgICAgIC8vICAgZWxzZSB7XG4gICAgICAgIC8vICAgICB0aGlzLmFjdGl2ZVRleHRJZCA9IGZpbmREaWFsb2dCeU5hbWUodGhpcy5OUENTY3JpcHQsIGN1cnJlbnRUZXh0LmJ1dHRvbnNbMF0uZ29Ub0RpYWxvZylcbiAgICAgICAgLy8gICB9XG4gICAgICAgICAgaWYgKGN1cnJlbnRUZXh0LmJ1dHRvbnNbMF0udHJpZ2dlcmVkQWN0aW9ucykge1xuICAgICAgICAgICAgY3VycmVudFRleHQuYnV0dG9uc1swXS50cmlnZ2VyZWRBY3Rpb25zKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobW9kZSA9PSBDb25maXJtTW9kZS5DYW5jZWwpIHtcbiAgICAgICAgaWYgKGN1cnJlbnRUZXh0LmJ1dHRvbnMgJiYgY3VycmVudFRleHQuYnV0dG9ucy5sZW5ndGggPj0gMSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudFRleHQuYnV0dG9uc1sxXS5nb1RvRGlhbG9nID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgZGlhbG9nRGF0YS5pbmRleCA9IGN1cnJlbnRUZXh0LmJ1dHRvbnNbMV0uZ29Ub0RpYWxvZ1xuICAgICAgICAgIH0gXG5cbiAgICAgICAgICAvL1RPRE9cbiAgICAgICAgICAvL2FsbG93IGRpYWxvZ3MgdG8gYmUgaW5kZXggYnkgbmFtZVxuICAgICAgICAvLyAgIGVsc2Uge1xuICAgICAgICAvLyAgICAgdGhpcy5hY3RpdmVUZXh0SWQgPSBmaW5kRGlhbG9nQnlOYW1lKHRoaXMuTlBDU2NyaXB0LCBjdXJyZW50VGV4dC5idXR0b25zWzBdLmdvVG9EaWFsb2cpXG4gICAgICAgIC8vICAgfVxuICAgICAgICAgIGlmIChjdXJyZW50VGV4dC5idXR0b25zWzFdLnRyaWdnZXJlZEFjdGlvbnMpIHtcbiAgICAgICAgICAgIGN1cnJlbnRUZXh0LmJ1dHRvbnNbMV0udHJpZ2dlcmVkQWN0aW9ucygpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1vZGUgPT0gQ29uZmlybU1vZGUuQnV0dG9uMykge1xuICAgICAgICBpZiAoY3VycmVudFRleHQuYnV0dG9ucyAmJiBjdXJyZW50VGV4dC5idXR0b25zLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50VGV4dC5idXR0b25zWzJdLmdvVG9EaWFsb2cgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBkaWFsb2dEYXRhLmluZGV4ID0gY3VycmVudFRleHQuYnV0dG9uc1syXS5nb1RvRGlhbG9nXG4gICAgICAgICAgfSBcblxuICAgICAgICAgIC8vVE9ET1xuICAgICAgICAgIC8vYWxsb3cgZGlhbG9ncyB0byBiZSBpbmRleCBieSBuYW1lXG4gICAgICAgIC8vICAgZWxzZSB7XG4gICAgICAgIC8vICAgICB0aGlzLmFjdGl2ZVRleHRJZCA9IGZpbmREaWFsb2dCeU5hbWUodGhpcy5OUENTY3JpcHQsIGN1cnJlbnRUZXh0LmJ1dHRvbnNbMF0uZ29Ub0RpYWxvZylcbiAgICAgICAgLy8gICB9XG4gICAgICAgICAgaWYgKGN1cnJlbnRUZXh0LmJ1dHRvbnNbMl0udHJpZ2dlcmVkQWN0aW9ucykge1xuICAgICAgICAgICAgY3VycmVudFRleHQuYnV0dG9uc1syXS50cmlnZ2VyZWRBY3Rpb25zKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobW9kZSA9PSBDb25maXJtTW9kZS5CdXR0b240KSB7XG4gICAgICAgIGlmIChjdXJyZW50VGV4dC5idXR0b25zICYmIGN1cnJlbnRUZXh0LmJ1dHRvbnMubGVuZ3RoID49IDEpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRUZXh0LmJ1dHRvbnNbM10uZ29Ub0RpYWxvZyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIGRpYWxvZ0RhdGEuaW5kZXggPSBjdXJyZW50VGV4dC5idXR0b25zWzNdLmdvVG9EaWFsb2dcbiAgICAgICAgICB9IFxuXG4gICAgICAgICAgLy9UT0RPXG4gICAgICAgICAgLy9hbGxvdyBkaWFsb2dzIHRvIGJlIGluZGV4IGJ5IG5hbWVcbiAgICAgICAgLy8gICBlbHNlIHtcbiAgICAgICAgLy8gICAgIHRoaXMuYWN0aXZlVGV4dElkID0gZmluZERpYWxvZ0J5TmFtZSh0aGlzLk5QQ1NjcmlwdCwgY3VycmVudFRleHQuYnV0dG9uc1swXS5nb1RvRGlhbG9nKVxuICAgICAgICAvLyAgIH1cbiAgICAgICAgICBpZiAoY3VycmVudFRleHQuYnV0dG9uc1szXS50cmlnZ2VyZWRBY3Rpb25zKSB7XG4gICAgICAgICAgICBjdXJyZW50VGV4dC5idXR0b25zWzNdLnRyaWdnZXJlZEFjdGlvbnMoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgYmVnaW5UeXBpbmcobnBjKVxufVxuXG5leHBvcnQgdHlwZSBJbWFnZUF0bGFzRGF0YSA9IHtcbiAgICBhdGxhc1dpZHRoOiBudW1iZXI7XG4gICAgYXRsYXNIZWlnaHQ6IG51bWJlcjtcbiAgICBzb3VyY2VXaWR0aDogbnVtYmVyO1xuICAgIHNvdXJjZUhlaWdodDogbnVtYmVyO1xuICAgIHNvdXJjZUxlZnQ6IG51bWJlcjtcbiAgICBzb3VyY2VUb3A6IG51bWJlcjtcbiAgfVxuICBcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEltYWdlQXRsYXNNYXBwaW5nKGRhdGE/OiBJbWFnZUF0bGFzRGF0YSk6IG51bWJlcltdIHtcbiAgICBpZiAoIWRhdGEpIHJldHVybiBbXVxuICBcbiAgICBjb25zdCB7XG4gICAgICBhdGxhc1dpZHRoLFxuICAgICAgYXRsYXNIZWlnaHQsXG4gICAgICBzb3VyY2VXaWR0aCxcbiAgICAgIHNvdXJjZUhlaWdodCxcbiAgICAgIHNvdXJjZVRvcCxcbiAgICAgIHNvdXJjZUxlZnQsXG4gICAgfSA9IGRhdGFcbiAgXG4gICAgcmV0dXJuIFtcbiAgICAgIHNvdXJjZUxlZnQgLyBhdGxhc1dpZHRoLCAoYXRsYXNIZWlnaHQgLSBzb3VyY2VUb3AgLSBzb3VyY2VIZWlnaHQpIC8gYXRsYXNIZWlnaHQsXG4gICAgICBzb3VyY2VMZWZ0IC8gYXRsYXNXaWR0aCwgKGF0bGFzSGVpZ2h0IC0gc291cmNlVG9wKSAvIGF0bGFzSGVpZ2h0LFxuICAgICAgKHNvdXJjZUxlZnQgKyBzb3VyY2VXaWR0aCkgLyBhdGxhc1dpZHRoLCAoYXRsYXNIZWlnaHQgLSBzb3VyY2VUb3ApIC8gYXRsYXNIZWlnaHQsXG4gICAgICAoc291cmNlTGVmdCArIHNvdXJjZVdpZHRoKSAvIGF0bGFzV2lkdGgsIChhdGxhc0hlaWdodCAtIHNvdXJjZVRvcCAtIHNvdXJjZUhlaWdodCkgLyBhdGxhc0hlaWdodCxcbiAgICBdXG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gcmVhbFdpZHRoKHdpZHRoPzpudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiB3aWR0aCA/IHdpZHRoIDogc2VjdGlvbi5zb3VyY2VXaWR0aFxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHJlYWxIZWlnaHQoaGVpZ2h0PzpudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBoZWlnaHQgPyBoZWlnaHQgOiBzZWN0aW9uLnNvdXJjZUhlaWdodFxuICB9XG4iXX0=
|
|
370
|
+
export function findDialogByName(dialogs, name) {
|
|
371
|
+
for (let i = 0; i < dialogs.length; i++) {
|
|
372
|
+
if (dialogs[i].name && dialogs[i].name == name) {
|
|
373
|
+
return i;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
return 0;
|
|
377
|
+
}
|
|
378
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFBO0FBRXZDLE9BQU8sRUFBRSxXQUFXLEVBQVUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQXFCLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHL0MsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQXFCLElBQUksR0FBRyxFQUFFLENBQUE7QUFDN0QsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQXFCLElBQUksR0FBRyxFQUFFLENBQUE7QUFFakUsTUFBTSxDQUFOLElBQVksV0FNVDtBQU5ILFdBQVksV0FBVztJQUNuQixtREFBVyxDQUFBO0lBQ1gsaURBQVUsQ0FBQTtJQUNWLDZDQUFRLENBQUE7SUFDUixtREFBVyxDQUFBO0lBQ1gsbURBQVcsQ0FBQTtBQUNiLENBQUMsRUFOUyxXQUFXLEtBQVgsV0FBVyxRQU1wQjtBQUVILE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQTtBQUVuQyxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUMxQyxJQUFJLFlBQVksR0FBRyxFQUFFLEdBQUcsaUJBQWlCLENBQUE7QUFFekMsSUFBSSxTQUFTLEdBQUcsR0FBRyxHQUFHLGlCQUFpQixDQUFBO0FBQ3ZDLElBQUksU0FBUyxHQUFHLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUV0QyxJQUFJLGFBQWEsR0FBRyxHQUFHLEdBQUcsaUJBQWlCLENBQUE7QUFDM0MsSUFBSSxVQUFVLEdBQUcsR0FBRyxHQUFHLGlCQUFpQixDQUFBO0FBRXhDLElBQUksUUFBUSxHQUFHLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUNyQyxJQUFJLFFBQVEsR0FBRyxFQUFFLEdBQUcsaUJBQWlCLENBQUE7QUFFckMsSUFBSSxXQUFXLEdBQUcsR0FBRyxHQUFFLGlCQUFpQixDQUFBO0FBQ3hDLElBQUksWUFBWSxHQUFHLEVBQUUsR0FBRSxpQkFBaUIsQ0FBQTtBQUd4QyxJQUFJLGNBQWMsR0FBRyxFQUFFLEdBQUcsaUJBQWlCLENBQUE7QUFFM0MsSUFBSSxXQUFXLEdBQUcsR0FBRyxHQUFHLGlCQUFpQixDQUFBO0FBQ3pDLElBQUksV0FBVyxHQUFHLENBQUMsRUFBRSxHQUFHLGlCQUFpQixDQUFBO0FBQ3pDLElBQUksV0FBVyxHQUFHLENBQUMsRUFBRSxHQUFHLGlCQUFpQixDQUFBO0FBQ3pDLElBQUksV0FBVyxHQUFHLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQTtBQUV6QyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUN6QyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUN6QyxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUMxQyxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUMxQyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUN6QyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUV6QyxJQUFJLGNBQWMsR0FBRyxDQUFDLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQTtBQUM3QyxJQUFJLGNBQWMsR0FBRyxDQUFDLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQTtBQUU3QyxJQUFJLGVBQWUsR0FBRyxFQUFFLEdB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LFVBQVUsQ0FBQyxNQUFjO0lBQ3ZDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUE7QUFDL0MsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxPQUFpQixFQUFFLElBQVk7SUFDOUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDdkMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFO1lBQzlDLE9BQU8sQ0FBQyxDQUFBO1NBQ1Q7S0FDRjtJQUNELE9BQU8sQ0FBQyxDQUFBO0FBQ1YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWxzIGZyb20gJ0BkY2wtc2RrL3V0aWxzJ1xuXG5pbXBvcnQgeyBBdWRpb1NvdXJjZSwgRW50aXR5LCBlbmdpbmUgfSBmcm9tIFwiQGRjbC9zZGsvZWNzXCI7XG5pbXBvcnQgeyBhY3RpdmVOUEMsIG5wY0RhdGFDb21wb25lbnQgfSBmcm9tIFwiLi9ucGNcIjtcbmltcG9ydCB7IElzVHlwaW5nRGlhbG9nIH0gZnJvbSBcIi4vY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgaGFuZGxlRGlhbG9nVHlwaW5nIH0gZnJvbSBcIi4vc3lzdGVtc1wiO1xuaW1wb3J0IHsgRGlhbG9nLCBJbWFnZURhdGEsIE5QQ1N0YXRlIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGxpZ2h0VGhlbWUsIHNlY3Rpb24gfSBmcm9tICcuL3VpJztcbmltcG9ydCB7IGdldEJ1YmJsZVRleHRMZW5ndGggfSBmcm9tICcuL2J1YmJsZSc7XG5cblxuZXhwb3J0IGNvbnN0IG5wY0RpYWxvZ0NvbXBvbmVudDogTWFwPEVudGl0eSwgYW55PiA9IG5ldyBNYXAoKVxuZXhwb3J0IGNvbnN0IG5wY0RpYWxvZ1R5cGluZ1N5c3RlbXM6IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcblxuZXhwb3J0IGVudW0gQ29uZmlybU1vZGUge1xuICAgIENvbmZpcm0gPSAwLFxuICAgIENhbmNlbCA9IDEsXG4gICAgTmV4dCA9IDIsXG4gICAgQnV0dG9uMyA9IDMsXG4gICAgQnV0dG9uNCA9IDRcbiAgfVxuXG5leHBvcnQgbGV0IFVJc2NhbGVNdWx0aXBsaWVyID0gMC43NVxuXG5sZXQgcG9ydHJhaXRYUG9zID0gLTUwICogVUlzY2FsZU11bHRpcGxpZXIgXG5sZXQgcG9ydHJhaXRZUG9zID0gMjAgKiBVSXNjYWxlTXVsdGlwbGllclxuXG5sZXQgaW1hZ2VYUG9zID0gMzUwICogVUlzY2FsZU11bHRpcGxpZXJcbmxldCBpbWFnZVlQb3MgPSA1MCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5cbmxldCBwb3J0cmFpdFNjYWxlID0gMjU2ICogVUlzY2FsZU11bHRpcGxpZXIgXG5sZXQgaW1hZ2VTY2FsZSA9IDI1NiAqIFVJc2NhbGVNdWx0aXBsaWVyIFxuXG5sZXQgdGV4dFNpemUgPSAyNCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5sZXQgdGV4dFlQb3MgPSAxMCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5cbmxldCBidXR0b25XaWR0aCA9IDE3NCogVUlzY2FsZU11bHRpcGxpZXJcbmxldCBidXR0b25IZWlnaHQgPSA0NiogVUlzY2FsZU11bHRpcGxpZXJcblxuXG5sZXQgYnV0dG9uVGV4dFNpemUgPSAyMCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5cbmxldCBidXR0b24xWFBvcyA9IDE1MCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5sZXQgYnV0dG9uMlhQb3MgPSAtODAgKiBVSXNjYWxlTXVsdGlwbGllclxubGV0IGJ1dHRvbjNYUG9zID0gLTgwICogVUlzY2FsZU11bHRpcGxpZXJcbmxldCBidXR0b240WFBvcyA9IDE1MCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5cbmxldCBidXR0b24xWVBvcyA9IC02NSAqIFVJc2NhbGVNdWx0aXBsaWVyXG5sZXQgYnV0dG9uMllQb3MgPSAtNjUgKiBVSXNjYWxlTXVsdGlwbGllclxubGV0IGJ1dHRvbjFZUG9zNCA9IC0yMCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5sZXQgYnV0dG9uMllQb3M0ID0gLTIwICogVUlzY2FsZU11bHRpcGxpZXJcbmxldCBidXR0b24zWVBvcyA9IC04MCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5sZXQgYnV0dG9uNFlQb3MgPSAtODAgKiBVSXNjYWxlTXVsdGlwbGllclxuXG5sZXQgc2tpcEJ1dHRvblhQb3MgPSAtMzAwICogVUlzY2FsZU11bHRpcGxpZXJcbmxldCBza2lwQnV0dG9uWVBvcyA9IC0xMDAgKiBVSXNjYWxlTXVsdGlwbGllclxuXG5sZXQgYnV0dG9uSWNvbldpZHRoID0gMjYgKiBVSXNjYWxlTXVsdGlwbGllclxubGV0IGJ1dHRvbkljb25IZWlnaHQgPSAyNiAqIFVJc2NhbGVNdWx0aXBsaWVyXG5cbmV4cG9ydCBmdW5jdGlvbiBhZGREaWFsb2cobnBjOkVudGl0eSwgc291bmQ/OnN0cmluZywgZGVmYXVsdFBvcnRyYWl0PzpJbWFnZURhdGEpe1xuICAgIGNvbnNvbGUubG9nKCdhZGRpbmcgZGlhbG9nIGZvciBucGMnLCBucGMpXG4gICAgbnBjRGlhbG9nQ29tcG9uZW50LnNldChucGMsIHtcbiAgICAgICAgdHlwaW5nOnRydWUsXG4gICAgICAgIHZpc2libGU6ZmFsc2UsXG4gICAgICAgIHZpc2libGVUZXh0OlwiXCIsXG4gICAgICAgIHZpc2libGVDaGFyczowLFxuICAgICAgICBmdWxsVGV4dDpcIlwiLFxuICAgICAgICB0aW1lcjowLFxuICAgICAgICBzcGVlZDozMCxcbiAgICAgICAgb3JpZ2luYWxTY3JpcHQ6W10sXG4gICAgICAgIHNjcmlwdDpbXSxcbiAgICAgICAgaW5kZXg6MCxcbiAgICAgICAgc291bmQ6IHNvdW5kID8gc291bmQgOiB1bmRlZmluZWQsXG4gICAgICAgIHNvdW5kUGxheWVyOiBzb3VuZCA/IGVuZ2luZS5hZGRFbnRpdHkoKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZm9udFNpemU6MjIsXG4gICAgICAgIGlzUXVlc3Rpb246ZmFsc2UsXG4gICAgICAgIGJ1dHRvbnM6MCxcbiAgICAgICAgZGVmYXVsdFBvcnRyYWl0OiBkZWZhdWx0UG9ydHJhaXQgPyBkZWZhdWx0UG9ydHJhaXQgOiBudWxsLFxuICAgICAgICBkZWZhdWx0UG9ydHJhaXRUZXh0dXJlOiBkZWZhdWx0UG9ydHJhaXQgPyBkZWZhdWx0UG9ydHJhaXQucGF0aCA6IGxpZ2h0VGhlbWUsXG4gICAgICAgIHBvcnRyYWl0V2lkdGg6IGRlZmF1bHRQb3J0cmFpdCAmJiBkZWZhdWx0UG9ydHJhaXQud2lkdGggPyBkZWZhdWx0UG9ydHJhaXQud2lkdGggKiBVSXNjYWxlTXVsdGlwbGllciA6IHBvcnRyYWl0U2NhbGUsXG4gICAgICAgIHBvcnRyYWl0SGVpZ2h0OiBkZWZhdWx0UG9ydHJhaXQgJiYgZGVmYXVsdFBvcnRyYWl0LmhlaWdodCA/IGRlZmF1bHRQb3J0cmFpdC5oZWlnaHQgKiBVSXNjYWxlTXVsdGlwbGllciA6IHBvcnRyYWl0U2NhbGUsXG4gICAgICAgIHBvcnRyYWl0WDogZGVmYXVsdFBvcnRyYWl0ICYmIGRlZmF1bHRQb3J0cmFpdC5vZmZzZXRYID8gZGVmYXVsdFBvcnRyYWl0Lm9mZnNldFggKiBVSXNjYWxlTXVsdGlwbGllciArIHBvcnRyYWl0WFBvcyA6IHBvcnRyYWl0WFBvcyxcbiAgICAgICAgcG9ydHJhaXRZOiAgZGVmYXVsdFBvcnRyYWl0ICYmIGRlZmF1bHRQb3J0cmFpdC5vZmZzZXRZID8gZGVmYXVsdFBvcnRyYWl0Lm9mZnNldFkgKiBVSXNjYWxlTXVsdGlwbGllciArIHBvcnRyYWl0WVBvcyA6IHBvcnRyYWl0WVBvcyxcbiAgICAgICAgZGlzcGxheVBvcnRyYWl0OmZhbHNlXG4gICAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BsYXlQb3J0cmFpdCgpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBcIlwiIDogbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5kaXNwbGF5UG9ydHJhaXRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvc2l0aW9uUG9ydGFpdFgoKXtcbiAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gXCJcIiA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkucG9ydHJhaXRYXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3NpdGlvblBvcnRhaXRZKCl7XG4gIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IFwiXCIgOiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLnBvcnRyYWl0WVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9ydHJhaXRXaWR0aCgpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBcIlwiIDogbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5wb3J0cmFpdFdpZHRoXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3J0cmFpdEhlaWdodCgpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBcIlwiIDogbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5wb3J0cmFpdEhlaWdodFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9ydHJhaXQoKXtcbiAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gXCJcIiA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuZGVmYXVsdFBvcnRyYWl0VGV4dHVyZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGV4dCgpe1xuICAgIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IFwiXCIgOiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLnZpc2libGVUZXh0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCdXR0b25UZXh0KGJ1dHRvbjpudW1iZXIpe1xuICAgIGxldCB0ZXh0ID0gXCJcIlxuXG4gICAgaWYoYWN0aXZlTlBDICE9IDAgJiYgbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSl7XG4gICAgICAgIGxldCBkaWFsb2dEYXRhID0gbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KVxuICAgICAgICBpZihkaWFsb2dEYXRhLmlzUXVlc3Rpb24gJiYgZGlhbG9nRGF0YS5idXR0b25zID4gYnV0dG9uKXtcbiAgICAgICAgICAgIHRleHQgPSBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5idXR0b25zW2J1dHRvbl0ubGFiZWxcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGV4dFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9udFNpemUoKXtcbiAgICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyAyMiA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuZm9udFNpemVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BsYXlEaWFsb2coKXtcbiAgICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBmYWxzZSA6ICBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLnZpc2libGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BsYXlCdXR0b24oYnV0dG9uOm51bWJlcil7XG4gICAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gZmFsc2UgOiAgbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5pc1F1ZXN0aW9uICYmIG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuYnV0dG9ucyA+PSBidXR0b25cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BsYXlGaXJzdEJ1dHRvbkNvbnRhaW5lcigpe1xuICAgIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IGZhbHNlIDogIG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuaXNRdWVzdGlvbiAmJiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLmJ1dHRvbnMgPj0gMVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheVNlY29uZEJ1dHRvbkNvbnRhaW5lcigpe1xuICAgIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IGZhbHNlIDogIG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuaXNRdWVzdGlvbiAmJiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLmJ1dHRvbnMgPj0gM1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGV4dFBvc2l0aW9uKCl7XG4gICAgLy9jb25zb2xlLmxvZyhucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLmJ1dHRvbnMpXG4gICAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8ge3RvcDowfSA6IHt0b3A6bnBjRGF0YUNvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkubWFyZ2lufVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnV0dG9uQ2xpY2soYnV0dG9uOm51bWJlcil7XG4gICAgaWYoYWN0aXZlTlBDICE9IDAgJiYgbnBjRGF0YUNvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkpe1xuICAgICAgICBjb25maXJtVGV4dChhY3RpdmVOUEMgYXMgRW50aXR5LCBidXR0b24pXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xvc2VEaWFsb2cobnBjOkVudGl0eSl7XG4gICAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYylcbiAgICBkaWFsb2dEYXRhLnZpc2libGUgPSBmYWxzZVxuICAgIGRpYWxvZ0RhdGEudHlwaW5nID0gZmFsc2VcbiAgICBkaWFsb2dEYXRhLnZpc2libGVUZXh0ID0gXCJcIlxuICAgIGRpYWxvZ0RhdGEudmlzaWJsZUNoYXJzID0gMFxuICAgIGRpYWxvZ0RhdGEuZnVsbFRleHQgPSBcIlwiXG4gICAgZGlhbG9nRGF0YS50aW1lciA9IDBcbiAgICBkaWFsb2dEYXRhLmluZGV4ID0gMFxuICAgIGRpYWxvZ0RhdGEuc2NyaXB0Lmxlbmd0aCA9IDBcbiAgICBkaWFsb2dEYXRhLmJ1dHRvbnMgPSAwXG4gICAgZGlhbG9nRGF0YS5tYXJnaW4gPSAwXG4gICAgZGlhbG9nRGF0YS5kaXNwbGF5UG9ydHJhaXQgPSBmYWxzZVxuICAgIGNvbnNvbGUubG9nKCdkaWFsb2cgZGF0YSBpcyBub3cgJywgZGlhbG9nRGF0YSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRhbGsobnBjOkVudGl0eSwgZGlhbG9nOkRpYWxvZ1tdLCBzdGFydEluZGV4PzpudW1iZXIgfCBzdHJpbmcsIGR1cmF0aW9uPzpudW1iZXIpe1xuICAgIG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykuaW50cm9kdWNlZCA9IHRydWVcbiAgICBpZihucGNEaWFsb2dDb21wb25lbnQuaGFzKG5wYykpe1xuICAgICAgICBucGNEYXRhQ29tcG9uZW50LmdldChucGMpLnN0YXRlID0gTlBDU3RhdGUuVEFMS0lOR1xuXG4gICAgICAgIGxldCBpbmRleDphbnlcblxuICAgICAgICBpZiAoIXN0YXJ0SW5kZXgpIHtcbiAgICAgICAgICBpbmRleCA9IDBcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc3RhcnRJbmRleCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICBpbmRleCA9IHN0YXJ0SW5kZXhcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbmRleCA9IGZpbmREaWFsb2dCeU5hbWUoZGlhbG9nLCBzdGFydEluZGV4KVxuICAgICAgICB9XG5cbiAgICAgICAgb3BlbkRpYWxvZyhucGMsZGlhbG9nLCBpbmRleClcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcGVuRGlhbG9nKG5wYzpFbnRpdHksIGRpYWxvZzpEaWFsb2dbXSwgc3RhcnRJbmRleDpudW1iZXIpe1xuICAgIGNvbnNvbGUubG9nKCdzY3JpcHQgdG8gdGFsayBpcycsIGRpYWxvZylcbiAgICBsZXQgZGlhbG9nRGF0YSA9IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQobnBjKVxuICAgIGRpYWxvZ0RhdGEuc2NyaXB0ID0gZGlhbG9nLnNsaWNlKClcbiAgICBkaWFsb2dEYXRhLmluZGV4ID0gc3RhcnRJbmRleFxuXG4gICAgY29uc29sZS5sb2coJ2RpYWxvZyBkYXRhIGlzIG5vdycsIGRpYWxvZ0RhdGEpXG4gICAgXG4gICAgbGV0IGN1cnJlbnRUZXh0OiBEaWFsb2cgPSBkaWFsb2dbc3RhcnRJbmRleF0gPyBkaWFsb2dbc3RhcnRJbmRleF0gOiB7IHRleHQ6ICcnIH1cblxuICAgIGlmIChjdXJyZW50VGV4dC5hdWRpbykge1xuICAgICAgICBBdWRpb1NvdXJjZS5jcmVhdGVPclJlcGxhY2UoZGlhbG9nRGF0YS5zb3VuZFBsYXllciwge1xuICAgICAgICAgICAgYXVkaW9DbGlwVXJsOiBjdXJyZW50VGV4dC5hdWRpbyxcbiAgICAgICAgICAgIGxvb3A6IGZhbHNlLFxuICAgICAgICAgICAgcGxheWluZzogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgbGV0IGF1ZGlvID0gQXVkaW9Tb3VyY2UuZ2V0TXV0YWJsZShkaWFsb2dEYXRhLnNvdW5kUGxheWVyKVxuICAgICAgICBhdWRpby52b2x1bWUgPSAwLjVcbiAgICAgICAgYXVkaW8ucGxheWluZyA9IHRydWVcbiAgICB9IGVsc2UgaWYgKGRpYWxvZ0RhdGEuc291bmQpIHtcbiAgICAgICAgQXVkaW9Tb3VyY2UuY3JlYXRlT3JSZXBsYWNlKGRpYWxvZ0RhdGEuc291bmRQbGF5ZXIsIHtcbiAgICAgICAgICAgIGF1ZGlvQ2xpcFVybDogZGlhbG9nRGF0YS5zb3VuZCxcbiAgICAgICAgICAgIGxvb3A6IGZhbHNlLFxuICAgICAgICAgICAgcGxheWluZzogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgbGV0IGF1ZGlvID0gQXVkaW9Tb3VyY2UuZ2V0TXV0YWJsZShkaWFsb2dEYXRhLnNvdW5kUGxheWVyKVxuICAgICAgICBhdWRpby52b2x1bWUgPSAwLjVcbiAgICAgICAgYXVkaW8ucGxheWluZyA9IHRydWVcbiAgICB9XG5cbiAgICAvL1RPRE9cbiAgICAvL3NldCBwb3J0cmFpdFxuICAgIC8vc2V0IGltYWdlIG9uIHRoZSByaWdodFxuICAgIC8vc2V0IHRleHRcbiAgICAvL2dsb2JhbCBidXR0b24gYWN0aW9uc1xuXG4gICAgYmVnaW5UeXBpbmcobnBjKVxufSBcblxuZXhwb3J0IGZ1bmN0aW9uIGFkZExpbmVCcmVhayh0ZXh0OnN0cmluZywgYnViYmxlPzpib29sZWFuKXtcbiAgcmV0dXJuIGxpbmVCcmVhayh0ZXh0LCBidWJibGU/IGdldEJ1YmJsZVRleHRMZW5ndGgodGV4dCkhIDogNDUpXG59XG5cbmZ1bmN0aW9uIGJlZ2luVHlwaW5nKG5wYzpFbnRpdHkpe1xuICAgIGxldCBkaWFsb2dEYXRhID0gbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpXG4gICAgZGlhbG9nRGF0YS5mdWxsVGV4dCA9IGFkZExpbmVCcmVhayhkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS50ZXh0KSAvL2RpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLnRleHRcbiAgICBkaWFsb2dEYXRhLnZpc2libGUgPSB0cnVlXG4gICAgZGlhbG9nRGF0YS50eXBpbmcgPSB0cnVlXG4gICAgZGlhbG9nRGF0YS52aXNpYmxlVGV4dCA9IFwiXCJcbiAgICBkaWFsb2dEYXRhLnZpc2libGVDaGFycyA9IDBcbiAgICBkaWFsb2dEYXRhLnRpbWVyID0gMFxuICAgIGRpYWxvZ0RhdGEuaXNRdWVzdGlvbiA9IGZhbHNlXG4gICAgZGlhbG9nRGF0YS5idXR0b25zID0gMFxuXG4gICAgbGV0IGN1cnJlbnRUZXh0OiBEaWFsb2cgPSBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XSA/IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdIDogeyB0ZXh0OiAnJyB9XG4gICAgaWYoY3VycmVudFRleHQucG9ydHJhaXQpe1xuICAgICAgZGlhbG9nRGF0YS5kZWZhdWx0UG9ydHJhaXRUZXh0dXJlID0gY3VycmVudFRleHQucG9ydHJhaXQucGF0aFxuXG4gICAgICBkaWFsb2dEYXRhLnBvcnRyYWl0WCA9IGN1cnJlbnRUZXh0LnBvcnRyYWl0Lm9mZnNldFhcbiAgICAgID8gY3VycmVudFRleHQucG9ydHJhaXQub2Zmc2V0WCAqIFVJc2NhbGVNdWx0aXBsaWVyICsgcG9ydHJhaXRYUG9zXG4gICAgICA6IHBvcnRyYWl0WFBvc1xuXG4gICAgICBkaWFsb2dEYXRhLnBvcnRyYWl0WSA9IGN1cnJlbnRUZXh0LnBvcnRyYWl0Lm9mZnNldFlcbiAgICAgID8gY3VycmVudFRleHQucG9ydHJhaXQub2Zmc2V0WSAqIFVJc2NhbGVNdWx0aXBsaWVyICsgcG9ydHJhaXRZUG9zXG4gICAgICA6IHBvcnRyYWl0WVBvc1xuXG4gICAgICBkaWFsb2dEYXRhLnBvcnRyYWl0V2lkdGggPSBjdXJyZW50VGV4dC5wb3J0cmFpdC53aWR0aCA/IGN1cnJlbnRUZXh0LnBvcnRyYWl0LndpZHRoICogVUlzY2FsZU11bHRpcGxpZXIgOiBwb3J0cmFpdFNjYWxlXG5cbiAgICAgIGRpYWxvZ0RhdGEucG9ydHJhaXRIZWlnaHQgPSBjdXJyZW50VGV4dC5wb3J0cmFpdC5oZWlnaHQgPyBjdXJyZW50VGV4dC5wb3J0cmFpdC5oZWlnaHQgKiBVSXNjYWxlTXVsdGlwbGllciA6IHBvcnRyYWl0U2NhbGVcbiAgICAgIGRpYWxvZ0RhdGEuZGlzcGxheVBvcnRyYWl0ID0gdHJ1ZVxuICAgIH1lbHNlIGlmKGRpYWxvZ0RhdGEuZGVmYXVsdFBvcnRyYWl0KXtcbiAgICAgIGRpYWxvZ0RhdGEuZGlzcGxheVBvcnRyYWl0ID0gdHJ1ZVxuICAgIH1cbiAgICBlbHNle1xuICAgICAgZGlhbG9nRGF0YS5kaXNwbGF5UG9ydHJhaXQgPSBmYWxzZVxuICAgIH1cblxuICAgIGlmKGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLmlzUXVlc3Rpb24pe1xuICAgICAgICBkaWFsb2dEYXRhLmJ1dHRvbnMgPSBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5idXR0b25zLmxlbmd0aFxuICAgICAgICBpZihkaWFsb2dEYXRhLmJ1dHRvbnMgPj0gMyl7XG4gICAgICAgICAgICBkaWFsb2dEYXRhLm1hcmdpbiA9IC0zMDBcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmKGRpYWxvZ0RhdGEuYnV0dG9ucyA+PTEpe1xuICAgICAgICAgICAgZGlhbG9nRGF0YS5tYXJnaW4gPSAtMzAwXG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZyhkaWFsb2dEYXRhKVxuICAgICAgICB1dGlscy50aW1lcnMuc2V0VGltZW91dChcbiAgICAgICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzZXR0aW5nIHF1ZXN0aW9uIHRvIHRydWUnKVxuICAgICAgICAgICAgICAgIGRpYWxvZ0RhdGEuaXNRdWVzdGlvbiA9IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICA3MDBcbiAgICAgICAgICApXG4gICAgfVxuXG4gICAgZGlhbG9nRGF0YS5vcGVuVGltZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSlcbiAgICBpZihkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5mb250U2l6ZSl7XG4gICAgICAgIGRpYWxvZ0RhdGEuZm9udFNpemUgPSBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5mb250U2l6ZVxuICAgIH1cbiAgICBcbiAgICBpZihkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5oYXNPd25Qcm9wZXJ0eShcInR5cGVTcGVlZFwiKSl7XG4gICAgICAgIGRpYWxvZ0RhdGEuc3BlZWQgPSBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS50eXBlU3BlZWRcbiAgICB9XG4gICAgZWxzZXtcbiAgICAgICAgZGlhbG9nRGF0YS5zcGVlZCA9IDMwXG4gICAgfVxuXG4gICAgaWYoZGlhbG9nRGF0YS5zcGVlZCA8PSAwKXtcbiAgICAgICAgcnVzaFRleHQobnBjKVxuICAgIH1cbiAgICBlbHNle1xuICAgICAgICBpZighSXNUeXBpbmdEaWFsb2cuaGFzKG5wYykpe1xuICAgICAgICAgICAgSXNUeXBpbmdEaWFsb2cuY3JlYXRlKG5wYylcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAvLyBpZighbnBjRGlhbG9nVHlwaW5nU3lzdGVtcy5oYXMobnBjKSl7XG4gICAgICAgIC8vICAgICBucGNEaWFsb2dUeXBpbmdTeXN0ZW1zLnNldChucGMsZW5naW5lLmFkZFN5c3RlbShoYW5kbGVEaWFsb2dUeXBpbmcpKVxuICAgICAgICAvLyB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkTGluZUJyZWFrcyhkaWFsb2c6RGlhbG9nW10sIGJ1YmJsZT86Ym9vbGVhbil7XG4gICAgbGV0IGNsZWFuZWQ6RGlhbG9nW10gPSBkaWFsb2cuc2xpY2UoKVxuICAgIGNsZWFuZWQuZm9yRWFjaCgoZCk9PntcbiAgICAgIGQudGV4dCA9IGxpbmVCcmVhayhkLnRleHQsIGJ1YmJsZT8gZ2V0QnViYmxlVGV4dExlbmd0aChkLnRleHQpISA6IDUwKVxuICAgIH0pXG4gICAgcmV0dXJuIGNsZWFuZWRcbn1cblxuZnVuY3Rpb24gbGluZUJyZWFrKHRleHQ6IHN0cmluZywgbWF4TGluZUxlbmd0aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCB3b3JkcyA9IHRleHQuc3BsaXQoJyAnKTtcbiAgICBsZXQgY3VycmVudExpbmUgPSAnJztcbiAgICBjb25zdCBsaW5lcyA9IFtdO1xuICBcbiAgICBmb3IgKGNvbnN0IHdvcmQgb2Ygd29yZHMpIHtcbiAgICAgIGlmIChjdXJyZW50TGluZS5sZW5ndGggKyB3b3JkLmxlbmd0aCArIDEgPD0gbWF4TGluZUxlbmd0aCkge1xuICAgICAgICBjdXJyZW50TGluZSArPSBgJHt3b3JkfSBgO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGluZXMucHVzaChjdXJyZW50TGluZS50cmltKCkpO1xuICAgICAgICBjdXJyZW50TGluZSA9IGAke3dvcmR9IGA7XG4gICAgICB9XG4gICAgfVxuICAgIGxpbmVzLnB1c2goY3VycmVudExpbmUudHJpbSgpKTtcbiAgICByZXR1cm4gbGluZXMuam9pbignXFxuJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVEaWFsb2dDbGljaygpe1xuICAgIGxldCBucGMgPSBhY3RpdmVOUEMgYXMgRW50aXR5XG4gICAgaWYobnBjRGlhbG9nQ29tcG9uZW50LmhhcyhucGMpKXtcbiAgICAgICAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYylcbiAgICAgICAgaWYoIWRpYWxvZ0RhdGEudmlzaWJsZSB8fCAoTWF0aC5mbG9vcihEYXRlLm5vdygpKSAtIGRpYWxvZ0RhdGEub3BlblRpbWUgIDwgMTAwKSkgcmV0dXJuXG4gICAgICAgIFxuICAgICAgICBpZihkaWFsb2dEYXRhLnR5cGluZyl7XG4gICAgICAgICAgICBydXNoVGV4dChucGMpXG4gICAgICAgIH1cbiAgICAgICAgZWxzZXtcbiAgICAgICAgICAgIGNvbmZpcm1UZXh0KG5wYywgQ29uZmlybU1vZGUuTmV4dClcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gcnVzaFRleHQobnBjOkVudGl0eSl7XG4gICAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYylcbiAgICBkaWFsb2dEYXRhLnR5cGluZyA9IGZhbHNlXG4gICAgZGlhbG9nRGF0YS50aW1lciA9IDBcbiAgICBkaWFsb2dEYXRhLnZpc2libGVDaGFycyA9IGRpYWxvZ0RhdGEuZnVsbFRleHQubGVuZ3RoXG4gICAgZGlhbG9nRGF0YS52aXNpYmxlVGV4dCA9IGRpYWxvZ0RhdGEuZnVsbFRleHRcbiAgICAvL2VuZ2luZS5yZW1vdmVTeXN0ZW0obnBjRGlhbG9nVHlwaW5nU3lzdGVtcy5nZXQobnBjKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpcm1UZXh0KG5wYzpFbnRpdHksIG1vZGU6IENvbmZpcm1Nb2RlKTogdm9pZCB7XG4gICAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYylcbiAgICBkaWFsb2dEYXRhLm9wZW5UaW1lID0gTWF0aC5mbG9vcihEYXRlLm5vdygpKVxuXG4gICAgbGV0IGN1cnJlbnRUZXh0ID0gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF1cbiAgICAvLyBVcGRhdGUgYWN0aXZlIHRleHRcbiAgICBpZiAobW9kZSA9PSBDb25maXJtTW9kZS5OZXh0KSB7XG4gICAgICAgIGlmICghY3VycmVudFRleHQuaXNRdWVzdGlvbikge1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRUZXh0LnRyaWdnZXJlZEJ5TmV4dCkge1xuICAgICAgICAgICAgY3VycmVudFRleHQudHJpZ2dlcmVkQnlOZXh0KClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdXJyZW50VGV4dC5pc0VuZE9mRGlhbG9nKSB7XG4gICAgICAgICAgICBjbG9zZURpYWxvZyhucGMpXG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpYWxvZ0RhdGEuaW5kZXgrK1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1vZGUgPT0gQ29uZmlybU1vZGUuQ29uZmlybSkge1xuICAgICAgICBpZiAoY3VycmVudFRleHQuYnV0dG9ucyAmJiBjdXJyZW50VGV4dC5idXR0b25zLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50VGV4dC5idXR0b25zWzBdLmdvVG9EaWFsb2cgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBkaWFsb2dEYXRhLmluZGV4ID0gY3VycmVudFRleHQuYnV0dG9uc1swXS5nb1RvRGlhbG9nXG4gICAgICAgICAgfSBcblxuICAgICAgICAgIC8vVE9ET1xuICAgICAgICAgIC8vYWxsb3cgZGlhbG9ncyB0byBiZSBpbmRleCBieSBuYW1lXG4gICAgICAgIC8vICAgZWxzZSB7XG4gICAgICAgIC8vICAgICB0aGlzLmFjdGl2ZVRleHRJZCA9IGZpbmREaWFsb2dCeU5hbWUodGhpcy5OUENTY3JpcHQsIGN1cnJlbnRUZXh0LmJ1dHRvbnNbMF0uZ29Ub0RpYWxvZylcbiAgICAgICAgLy8gICB9XG4gICAgICAgICAgaWYgKGN1cnJlbnRUZXh0LmJ1dHRvbnNbMF0udHJpZ2dlcmVkQWN0aW9ucykge1xuICAgICAgICAgICAgY3VycmVudFRleHQuYnV0dG9uc1swXS50cmlnZ2VyZWRBY3Rpb25zKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobW9kZSA9PSBDb25maXJtTW9kZS5DYW5jZWwpIHtcbiAgICAgICAgaWYgKGN1cnJlbnRUZXh0LmJ1dHRvbnMgJiYgY3VycmVudFRleHQuYnV0dG9ucy5sZW5ndGggPj0gMSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudFRleHQuYnV0dG9uc1sxXS5nb1RvRGlhbG9nID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgZGlhbG9nRGF0YS5pbmRleCA9IGN1cnJlbnRUZXh0LmJ1dHRvbnNbMV0uZ29Ub0RpYWxvZ1xuICAgICAgICAgIH0gXG5cbiAgICAgICAgICAvL1RPRE9cbiAgICAgICAgICAvL2FsbG93IGRpYWxvZ3MgdG8gYmUgaW5kZXggYnkgbmFtZVxuICAgICAgICAvLyAgIGVsc2Uge1xuICAgICAgICAvLyAgICAgdGhpcy5hY3RpdmVUZXh0SWQgPSBmaW5kRGlhbG9nQnlOYW1lKHRoaXMuTlBDU2NyaXB0LCBjdXJyZW50VGV4dC5idXR0b25zWzBdLmdvVG9EaWFsb2cpXG4gICAgICAgIC8vICAgfVxuICAgICAgICAgIGlmIChjdXJyZW50VGV4dC5idXR0b25zWzFdLnRyaWdnZXJlZEFjdGlvbnMpIHtcbiAgICAgICAgICAgIGN1cnJlbnRUZXh0LmJ1dHRvbnNbMV0udHJpZ2dlcmVkQWN0aW9ucygpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1vZGUgPT0gQ29uZmlybU1vZGUuQnV0dG9uMykge1xuICAgICAgICBpZiAoY3VycmVudFRleHQuYnV0dG9ucyAmJiBjdXJyZW50VGV4dC5idXR0b25zLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50VGV4dC5idXR0b25zWzJdLmdvVG9EaWFsb2cgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBkaWFsb2dEYXRhLmluZGV4ID0gY3VycmVudFRleHQuYnV0dG9uc1syXS5nb1RvRGlhbG9nXG4gICAgICAgICAgfSBcblxuICAgICAgICAgIC8vVE9ET1xuICAgICAgICAgIC8vYWxsb3cgZGlhbG9ncyB0byBiZSBpbmRleCBieSBuYW1lXG4gICAgICAgIC8vICAgZWxzZSB7XG4gICAgICAgIC8vICAgICB0aGlzLmFjdGl2ZVRleHRJZCA9IGZpbmREaWFsb2dCeU5hbWUodGhpcy5OUENTY3JpcHQsIGN1cnJlbnRUZXh0LmJ1dHRvbnNbMF0uZ29Ub0RpYWxvZylcbiAgICAgICAgLy8gICB9XG4gICAgICAgICAgaWYgKGN1cnJlbnRUZXh0LmJ1dHRvbnNbMl0udHJpZ2dlcmVkQWN0aW9ucykge1xuICAgICAgICAgICAgY3VycmVudFRleHQuYnV0dG9uc1syXS50cmlnZ2VyZWRBY3Rpb25zKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobW9kZSA9PSBDb25maXJtTW9kZS5CdXR0b240KSB7XG4gICAgICAgIGlmIChjdXJyZW50VGV4dC5idXR0b25zICYmIGN1cnJlbnRUZXh0LmJ1dHRvbnMubGVuZ3RoID49IDEpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRUZXh0LmJ1dHRvbnNbM10uZ29Ub0RpYWxvZyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIGRpYWxvZ0RhdGEuaW5kZXggPSBjdXJyZW50VGV4dC5idXR0b25zWzNdLmdvVG9EaWFsb2dcbiAgICAgICAgICB9IFxuXG4gICAgICAgICAgLy9UT0RPXG4gICAgICAgICAgLy9hbGxvdyBkaWFsb2dzIHRvIGJlIGluZGV4IGJ5IG5hbWVcbiAgICAgICAgLy8gICBlbHNlIHtcbiAgICAgICAgLy8gICAgIHRoaXMuYWN0aXZlVGV4dElkID0gZmluZERpYWxvZ0J5TmFtZSh0aGlzLk5QQ1NjcmlwdCwgY3VycmVudFRleHQuYnV0dG9uc1swXS5nb1RvRGlhbG9nKVxuICAgICAgICAvLyAgIH1cbiAgICAgICAgICBpZiAoY3VycmVudFRleHQuYnV0dG9uc1szXS50cmlnZ2VyZWRBY3Rpb25zKSB7XG4gICAgICAgICAgICBjdXJyZW50VGV4dC5idXR0b25zWzNdLnRyaWdnZXJlZEFjdGlvbnMoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgYmVnaW5UeXBpbmcobnBjKVxufVxuXG5leHBvcnQgdHlwZSBJbWFnZUF0bGFzRGF0YSA9IHtcbiAgICBhdGxhc1dpZHRoOiBudW1iZXI7XG4gICAgYXRsYXNIZWlnaHQ6IG51bWJlcjtcbiAgICBzb3VyY2VXaWR0aDogbnVtYmVyO1xuICAgIHNvdXJjZUhlaWdodDogbnVtYmVyO1xuICAgIHNvdXJjZUxlZnQ6IG51bWJlcjtcbiAgICBzb3VyY2VUb3A6IG51bWJlcjtcbiAgfVxuICBcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEltYWdlQXRsYXNNYXBwaW5nKGRhdGE/OiBJbWFnZUF0bGFzRGF0YSk6IG51bWJlcltdIHtcbiAgICBpZiAoIWRhdGEpIHJldHVybiBbXVxuICBcbiAgICBjb25zdCB7XG4gICAgICBhdGxhc1dpZHRoLFxuICAgICAgYXRsYXNIZWlnaHQsXG4gICAgICBzb3VyY2VXaWR0aCxcbiAgICAgIHNvdXJjZUhlaWdodCxcbiAgICAgIHNvdXJjZVRvcCxcbiAgICAgIHNvdXJjZUxlZnQsXG4gICAgfSA9IGRhdGFcbiAgXG4gICAgcmV0dXJuIFtcbiAgICAgIHNvdXJjZUxlZnQgLyBhdGxhc1dpZHRoLCAoYXRsYXNIZWlnaHQgLSBzb3VyY2VUb3AgLSBzb3VyY2VIZWlnaHQpIC8gYXRsYXNIZWlnaHQsXG4gICAgICBzb3VyY2VMZWZ0IC8gYXRsYXNXaWR0aCwgKGF0bGFzSGVpZ2h0IC0gc291cmNlVG9wKSAvIGF0bGFzSGVpZ2h0LFxuICAgICAgKHNvdXJjZUxlZnQgKyBzb3VyY2VXaWR0aCkgLyBhdGxhc1dpZHRoLCAoYXRsYXNIZWlnaHQgLSBzb3VyY2VUb3ApIC8gYXRsYXNIZWlnaHQsXG4gICAgICAoc291cmNlTGVmdCArIHNvdXJjZVdpZHRoKSAvIGF0bGFzV2lkdGgsIChhdGxhc0hlaWdodCAtIHNvdXJjZVRvcCAtIHNvdXJjZUhlaWdodCkgLyBhdGxhc0hlaWdodCxcbiAgICBdXG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gcmVhbFdpZHRoKHdpZHRoPzpudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiB3aWR0aCA/IHdpZHRoIDogc2VjdGlvbi5zb3VyY2VXaWR0aFxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHJlYWxIZWlnaHQoaGVpZ2h0PzpudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBoZWlnaHQgPyBoZWlnaHQgOiBzZWN0aW9uLnNvdXJjZUhlaWdodFxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGZpbmREaWFsb2dCeU5hbWUoZGlhbG9nczogRGlhbG9nW10sIG5hbWU6IHN0cmluZykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGlhbG9ncy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGRpYWxvZ3NbaV0ubmFtZSAmJiBkaWFsb2dzW2ldLm5hbWUgPT0gbmFtZSkge1xuICAgICAgICByZXR1cm4gaVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gMFxuICB9XG4gICJdfQ==
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { activate, stopWalking, followPath, create, handleWalkAway, playAnimation, showDebug, getData, changeIdleAnim, talkBubble } from "./npc";
|
|
1
|
+
import { activate, stopWalking, followPath, create, handleWalkAway, playAnimation, showDebug, getData, changeIdleAnim, talkBubble, createDialogWindow, openDialogWindow, closeDialogWindow } from "./npc";
|
|
2
2
|
import { talk } from "./dialog";
|
|
3
3
|
import { Dialog, NPCPathType, NPCType } from "./types";
|
|
4
4
|
import { closeBubble, closeBubbleEndAll } from "./bubble";
|
|
5
|
-
export { activate, stopWalking, followPath, create, handleWalkAway, playAnimation, showDebug, talk, Dialog, getData, NPCPathType, NPCType, changeIdleAnim, talkBubble, closeBubble, closeBubbleEndAll };
|
|
5
|
+
export { activate, stopWalking, followPath, create, handleWalkAway, playAnimation, showDebug, talk, Dialog, getData, NPCPathType, NPCType, changeIdleAnim, talkBubble, closeBubble, closeBubbleEndAll, createDialogWindow, openDialogWindow, closeDialogWindow };
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { activate, stopWalking, followPath, create, handleWalkAway, playAnimation, showDebug, getData, changeIdleAnim, talkBubble } from "./npc";
|
|
1
|
+
import { activate, stopWalking, followPath, create, handleWalkAway, playAnimation, showDebug, getData, changeIdleAnim, talkBubble, createDialogWindow, openDialogWindow, closeDialogWindow } from "./npc";
|
|
2
2
|
import { talk } from "./dialog";
|
|
3
3
|
import { NPCPathType, NPCType } from "./types";
|
|
4
4
|
import { closeBubble, closeBubbleEndAll } from "./bubble";
|
|
5
|
-
export { activate, stopWalking, followPath, create, handleWalkAway, playAnimation, showDebug, talk, getData, NPCPathType, NPCType, changeIdleAnim, talkBubble, closeBubble, closeBubbleEndAll };
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export { activate, stopWalking, followPath, create, handleWalkAway, playAnimation, showDebug, talk, getData, NPCPathType, NPCType, changeIdleAnim, talkBubble, closeBubble, closeBubbleEndAll, createDialogWindow, openDialogWindow, closeDialogWindow };
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsVUFBVSxFQUNWLE1BQU0sRUFDTixjQUFjLEVBQ2QsYUFBYSxFQUNiLFNBQVMsRUFDVCxPQUFPLEVBQ1AsY0FBYyxFQUNkLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNuQixNQUFNLE9BQU8sQ0FBQztBQUNoQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sRUFBVSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXZELE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFMUQsT0FBTyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsVUFBVSxFQUNWLE1BQU0sRUFDTixjQUFjLEVBQ2QsYUFBYSxFQUNiLFNBQVMsRUFDVCxJQUFJLEVBRUosT0FBTyxFQUNQLFdBQVcsRUFDWCxPQUFPLEVBQ1AsY0FBYyxFQUNkLFVBQVUsRUFDVixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ3BCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBcbiAgICBhY3RpdmF0ZSwgXG4gICAgc3RvcFdhbGtpbmcsIFxuICAgIGZvbGxvd1BhdGgsIFxuICAgIGNyZWF0ZSwgXG4gICAgaGFuZGxlV2Fsa0F3YXksIFxuICAgIHBsYXlBbmltYXRpb24sIFxuICAgIHNob3dEZWJ1ZyxcbiAgICBnZXREYXRhLFxuICAgIGNoYW5nZUlkbGVBbmltLFxuICAgIHRhbGtCdWJibGUsXG4gICAgY3JlYXRlRGlhbG9nV2luZG93LFxuICAgIG9wZW5EaWFsb2dXaW5kb3csXG4gICAgY2xvc2VEaWFsb2dXaW5kb3dcbiB9IGZyb20gXCIuL25wY1wiO1xuaW1wb3J0IHsgdGFsayB9IGZyb20gXCIuL2RpYWxvZ1wiO1xuaW1wb3J0IHsgRGlhbG9nLCBOUENQYXRoVHlwZSwgTlBDVHlwZSB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmltcG9ydCB7IGNsb3NlQnViYmxlLCBjbG9zZUJ1YmJsZUVuZEFsbCB9IGZyb20gXCIuL2J1YmJsZVwiO1xuXG5leHBvcnQge1xuICAgIGFjdGl2YXRlLCBcbiAgICBzdG9wV2Fsa2luZywgXG4gICAgZm9sbG93UGF0aCwgXG4gICAgY3JlYXRlLCBcbiAgICBoYW5kbGVXYWxrQXdheSwgXG4gICAgcGxheUFuaW1hdGlvbiwgXG4gICAgc2hvd0RlYnVnLCBcbiAgICB0YWxrLFxuICAgIERpYWxvZyxcbiAgICBnZXREYXRhLFxuICAgIE5QQ1BhdGhUeXBlLFxuICAgIE5QQ1R5cGUsXG4gICAgY2hhbmdlSWRsZUFuaW0sXG4gICAgdGFsa0J1YmJsZSxcbiAgICBjbG9zZUJ1YmJsZSxcbiAgICBjbG9zZUJ1YmJsZUVuZEFsbCxcbiAgICBjcmVhdGVEaWFsb2dXaW5kb3csXG4gICAgb3BlbkRpYWxvZ1dpbmRvdyxcbiAgICBjbG9zZURpYWxvZ1dpbmRvd1xufSJdfQ==
|
package/dist/npc.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Entity } from '@dcl/sdk/ecs';
|
|
2
|
-
import { Dialog, FollowPathData, NPCData } from './types';
|
|
2
|
+
import { Dialog, FollowPathData, ImageData, NPCData } from './types';
|
|
3
3
|
export declare const walkingTimers: Map<Entity, number>;
|
|
4
4
|
export declare const npcDataComponent: Map<Entity, any>;
|
|
5
5
|
export declare let activeNPC: number;
|
|
6
|
+
export declare let blankDialog: number;
|
|
6
7
|
export declare function showDebug(debug: boolean): void;
|
|
7
8
|
export declare function getData(npc: Entity): any;
|
|
8
9
|
export declare function create(transform: any, data: NPCData): Entity;
|
|
@@ -13,3 +14,6 @@ export declare function handleWalkAway(npc: Entity): void;
|
|
|
13
14
|
export declare function playAnimation(npc: Entity, anim: string, noLoop?: boolean, duration?: number): void;
|
|
14
15
|
export declare function changeIdleAnim(npc: Entity, animation: string, play?: boolean): void;
|
|
15
16
|
export declare function talkBubble(npc: Entity, script: Dialog[], startIndex?: number): void;
|
|
17
|
+
export declare function createDialogWindow(defaultPortrait?: ImageData, sound?: string): Entity;
|
|
18
|
+
export declare function openDialogWindow(npc: Entity, dialog: Dialog[], startIndex?: number | string): void;
|
|
19
|
+
export declare function closeDialogWindow(): void;
|