dcl-npc-toolkit 1.1.2-20230602122025.commit-4741fbd → 1.1.2-20230602175626.commit-fe68218
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dialog.d.ts +1 -0
- package/dist/dialog.js +4 -4
- package/dist/npc.js +6 -2
- package/dist/ui.d.ts +25 -1
- package/dist/ui.js +35 -18
- package/package.json +2 -2
package/dist/dialog.d.ts
CHANGED
|
@@ -55,6 +55,7 @@ export declare function displayFirstButtonContainer(): any;
|
|
|
55
55
|
export declare function displaySecondButtonContainer(): any;
|
|
56
56
|
export declare function getTextPosition(): {
|
|
57
57
|
top: any;
|
|
58
|
+
left: any;
|
|
58
59
|
};
|
|
59
60
|
export declare function buttonClick(button: number): void;
|
|
60
61
|
export declare function closeDialog(npc: Entity): void;
|
package/dist/dialog.js
CHANGED
|
@@ -160,7 +160,7 @@ export function displaySecondButtonContainer() {
|
|
|
160
160
|
return activeNPC == 0 || !npcDialogComponent.has(activeNPC) ? false : npcDialogComponent.get(activeNPC).isQuestion && npcDialogComponent.get(activeNPC).buttons >= 3;
|
|
161
161
|
}
|
|
162
162
|
export function getTextPosition() {
|
|
163
|
-
return activeNPC == 0 || !npcDialogComponent.has(activeNPC) ? { top: 0 } : { top:
|
|
163
|
+
return activeNPC == 0 || !npcDialogComponent.has(activeNPC) ? { top: 0, left: 0 } : { top: npcDialogComponent.get(activeNPC).margin + npcDialogComponent.get(activeNPC).positionY, left: npcDialogComponent.get(activeNPC).positionX };
|
|
164
164
|
}
|
|
165
165
|
export function buttonClick(button) {
|
|
166
166
|
if (activeNPC != 0 && npcDataComponent.has(activeNPC)) {
|
|
@@ -272,10 +272,10 @@ function beginTyping(npc) {
|
|
|
272
272
|
if (dialogData.script[dialogData.index].isQuestion) {
|
|
273
273
|
dialogData.buttons = dialogData.script[dialogData.index].buttons.length;
|
|
274
274
|
if (dialogData.buttons >= 3) {
|
|
275
|
-
dialogData.margin = -
|
|
275
|
+
dialogData.margin = -25;
|
|
276
276
|
}
|
|
277
277
|
else if (dialogData.buttons >= 1) {
|
|
278
|
-
dialogData.margin = -
|
|
278
|
+
dialogData.margin = -25;
|
|
279
279
|
}
|
|
280
280
|
console.log(dialogData);
|
|
281
281
|
utils.timers.setTimeout(function () {
|
|
@@ -466,4 +466,4 @@ export function findDialogByName(dialogs, name) {
|
|
|
466
466
|
}
|
|
467
467
|
return 0;
|
|
468
468
|
}
|
|
469
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFBO0FBRXZDLE9BQU8sRUFBRSxXQUFXLEVBQVUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQWMsZ0JBQWdCLEVBQVksV0FBVyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzFHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFxQixRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEksT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQXFCLElBQUksR0FBRyxFQUFFLENBQUE7QUFDN0QsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQXFCLElBQUksR0FBRyxFQUFFLENBQUE7QUFDakUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQW9CLElBQUksR0FBRyxFQUFFLENBQUE7QUFFaEUsTUFBTSxDQUFOLElBQVksV0FNVDtBQU5ILFdBQVksV0FBVztJQUNuQixtREFBVyxDQUFBO0lBQ1gsaURBQVUsQ0FBQTtJQUNWLDZDQUFRLENBQUE7SUFDUixtREFBVyxDQUFBO0lBQ1gsbURBQVcsQ0FBQTtBQUNiLENBQUMsRUFOUyxXQUFXLEtBQVgsV0FBVyxRQU1wQjtBQUVILE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQTtBQUVuQyxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUMxQyxJQUFJLFlBQVksR0FBRyxFQUFFLEdBQUcsaUJBQWlCLENBQUE7QUFFekMsSUFBSSxTQUFTLEdBQUcsR0FBRyxHQUFHLGlCQUFpQixDQUFBO0FBQ3ZDLElBQUksU0FBUyxHQUFHLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUV0QyxJQUFJLGFBQWEsR0FBRyxHQUFHLEdBQUcsaUJBQWlCLENBQUE7QUFDM0MsSUFBSSxVQUFVLEdBQUcsR0FBRyxHQUFHLGlCQUFpQixDQUFBO0FBRXhDLElBQUksUUFBUSxHQUFHLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUNyQyxJQUFJLFFBQVEsR0FBRyxFQUFFLEdBQUcsaUJBQWlCLENBQUE7QUFFckMsSUFBSSxXQUFXLEdBQUcsR0FBRyxHQUFFLGlCQUFpQixDQUFBO0FBQ3hDLElBQUksWUFBWSxHQUFHLEVBQUUsR0FBRSxpQkFBaUIsQ0FBQTtBQUd4QyxJQUFJLGNBQWMsR0FBRyxFQUFFLEdBQUcsaUJBQWlCLENBQUE7QUFFM0MsSUFBSSxXQUFXLEdBQUcsR0FBRyxHQUFHLGlCQUFpQixDQUFBO0FBQ3pDLElBQUksV0FBVyxHQUFHLENBQUMsRUFBRSxHQUFHLGlCQUFpQixDQUFBO0FBQ3pDLElBQUksV0FBVyxHQUFHLENBQUMsRUFBRSxHQUFHLGlCQUFpQixDQUFBO0FBQ3pDLElBQUksV0FBVyxHQUFHLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQTtBQUV6QyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUN6QyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUN6QyxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUMxQyxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUMxQyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUN6QyxJQUFJLFdBQVcsR0FBRyxDQUFDLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQTtBQUV6QyxJQUFJLGNBQWMsR0FBRyxDQUFDLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQTtBQUM3QyxJQUFJLGNBQWMsR0FBRyxDQUFDLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQTtBQUU3QyxJQUFJLGVBQWUsR0FBRyxFQUFFLEdBQUcsaUJBQWlCLENBQUE7QUFDNUMsSUFBSSxnQkFBZ0IsR0FBRyxFQUFFLEdBQUcsaUJBQWlCLENBQUE7QUFFN0MsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFVLEVBQUUsS0FBYSxFQUFFLGVBQTBCO0lBQzNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDekMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtRQUN4QixNQUFNLEVBQUMsSUFBSTtRQUNYLE9BQU8sRUFBQyxLQUFLO1FBQ2IsV0FBVyxFQUFDLEVBQUU7UUFDZCxZQUFZLEVBQUMsQ0FBQztRQUNkLFFBQVEsRUFBQyxFQUFFO1FBQ1gsS0FBSyxFQUFDLENBQUM7UUFDUCxLQUFLLEVBQUMsRUFBRTtRQUNSLGNBQWMsRUFBQyxFQUFFO1FBQ2pCLE1BQU0sRUFBQyxFQUFFO1FBQ1QsS0FBSyxFQUFDLENBQUM7UUFDUCxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDaEMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ25ELFFBQVEsRUFBQyxFQUFFO1FBQ1gsVUFBVSxFQUFDLEtBQUs7UUFDaEIsT0FBTyxFQUFDLENBQUM7UUFDVCxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7UUFDL0MsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ3pELHNCQUFzQixFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUMzRSxhQUFhLEVBQUUsZUFBZSxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGFBQWE7UUFDbkgsY0FBYyxFQUFFLGVBQWUsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxhQUFhO1FBQ3RILFNBQVMsRUFBRSxlQUFlLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVk7UUFDakksU0FBUyxFQUFHLGVBQWUsSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxHQUFHLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWTtRQUNsSSxjQUFjLEVBQUUsZUFBZSxJQUFJLGVBQWUsQ0FBQyxPQUFPLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHO1FBQy9JLGNBQWMsRUFBRSxlQUFlLElBQUksZUFBZSxDQUFDLE9BQU8sSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUc7UUFDN0ksV0FBVyxFQUFFLGVBQWUsSUFBSSxlQUFlLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwSSxhQUFhLEVBQUUsZUFBZSxJQUFJLGVBQWUsQ0FBQyxPQUFPLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzNJLENBQUMsQ0FBQTtBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWTtJQUMxQixPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsWUFBWSxDQUFBO0FBQzFJLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZTtJQUM3QixPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsZUFBZSxDQUFBO0FBQzdJLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZTtJQUM3QixPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsUUFBUSxDQUFBO0FBQ3RJLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE9BQU8sU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLEtBQUssSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQTtBQUM3TSxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQjtJQUMvQixPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFNBQW1CLENBQUMsQ0FBQyxLQUFLLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUE7QUFDdE0sQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQW1CLENBQUMsQ0FBQyxTQUFTLENBQUE7QUFDcEksQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQW1CLENBQUMsQ0FBQyxTQUFTLENBQUE7QUFDcEksQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0I7SUFDOUIsT0FBTyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtBQUNwSSxDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsU0FBUyxDQUFBO0FBQ3BJLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsYUFBYSxDQUFBO0FBQ3hJLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYztJQUM1QixPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsY0FBYyxDQUFBO0FBQ3pJLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYztJQUM1QixPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsTUFBTSxDQUFBO0FBQ2pJLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYztJQUM1QixPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsTUFBTSxDQUFBO0FBQ2pJLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVTtJQUN4QixPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsVUFBVSxDQUFBO0FBQ3JJLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVztJQUN6QixPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsV0FBVyxDQUFBO0FBQ3RJLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVztJQUN6QixPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsc0JBQXNCLENBQUE7QUFDakosQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRO0lBQ3RCLE9BQU8sU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQW1CLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQTtBQUM3SSxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU87SUFDbkIsT0FBTyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLFdBQVcsQ0FBQTtBQUN4SSxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVk7SUFDMUIsT0FBTyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLEtBQUssSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFBO0FBQzFMLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUTtJQUN0QixPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsS0FBSyxDQUFBO0FBQ3RJLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE1BQWE7SUFDdkMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFBO0lBRWIsSUFBRyxTQUFTLElBQUksQ0FBQyxJQUFJLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLEVBQUM7UUFDN0QsSUFBSSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQW1CLENBQUMsQ0FBQTtRQUM1RCxJQUFHLFVBQVUsQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLE9BQU8sR0FBRyxNQUFNLEVBQUM7WUFDcEQsSUFBSSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUE7U0FDbkU7S0FDSjtJQUNELE9BQU8sSUFBSSxDQUFBO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXO0lBQ3ZCLE9BQU8sU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQW1CLENBQUMsQ0FBQyxRQUFRLENBQUE7QUFDckksQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhO0lBQ3pCLE9BQU8sU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQW1CLENBQUMsQ0FBQyxPQUFPLENBQUE7QUFDeEksQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBYTtJQUN2QyxPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFFLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsVUFBVSxJQUFJLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQTtBQUM1TSxDQUFDO0FBRUQsTUFBTSxVQUFVLDJCQUEyQjtJQUN2QyxPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFFLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsVUFBVSxJQUFJLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQTtBQUN2TSxDQUFDO0FBRUQsTUFBTSxVQUFVLDRCQUE0QjtJQUN4QyxPQUFPLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsU0FBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFFLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsVUFBVSxJQUFJLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQTtBQUN2TSxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWU7SUFFM0IsT0FBTyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFNBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxTQUFtQixDQUFDLENBQUMsTUFBTSxFQUFDLENBQUE7QUFDNUksQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsTUFBYTtJQUNyQyxJQUFHLFNBQVMsSUFBSSxDQUFDLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFNBQW1CLENBQUMsRUFBQztRQUMzRCxXQUFXLENBQUMsU0FBbUIsRUFBRSxNQUFNLENBQUMsQ0FBQTtLQUMzQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQVU7SUFDbEMsSUFBSSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzVDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO0lBQzFCLFVBQVUsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO0lBQ3pCLFVBQVUsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFBO0lBQzNCLFVBQVUsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFBO0lBQzNCLFVBQVUsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFBO0lBQ3hCLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBQ3BCLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBQ3BCLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtJQUM1QixVQUFVLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQTtJQUN0QixVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtJQUNyQixVQUFVLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQTtJQUNsQyxVQUFVLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtJQUMzQixVQUFVLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQTtJQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLFVBQVUsQ0FBQyxDQUFBO0FBS2xELENBQUM7QUFFRCxNQUFNLFVBQVUsSUFBSSxDQUFDLEdBQVUsRUFBRSxNQUFlLEVBQUUsVUFBMkIsRUFBRSxRQUFnQjtJQUMzRixnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQTtJQUMzQyxJQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBQztRQUUzQixJQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBQztZQUN4RCxPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUE7WUFDakQsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ2pCO1FBRUQsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFBO1FBR2xELElBQUksS0FBUyxDQUFBO1FBRWIsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLEtBQUssR0FBRyxDQUFDLENBQUE7U0FDVjthQUFNLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFO1lBQ3pDLEtBQUssR0FBRyxVQUFVLENBQUE7U0FDbkI7YUFBTTtZQUNMLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUE7U0FDN0M7UUFFRCxVQUFVLENBQUMsR0FBRyxFQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQTtLQUNoQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEdBQVUsRUFBRSxNQUFlLEVBQUUsVUFBaUI7SUFDckUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUN4QyxJQUFJLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDNUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDbEMsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUE7SUFFN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUU3QyxJQUFJLFdBQVcsR0FBVyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUE7SUFFaEYsSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFO1FBQ25CLFdBQVcsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRTtZQUNoRCxZQUFZLEVBQUUsV0FBVyxDQUFDLEtBQUs7WUFDL0IsSUFBSSxFQUFFLEtBQUs7WUFDWCxPQUFPLEVBQUUsS0FBSztTQUNqQixDQUFDLENBQUE7UUFDRixJQUFJLEtBQUssR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUMxRCxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQTtRQUNsQixLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtLQUN2QjtTQUFNLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRTtRQUN6QixXQUFXLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUU7WUFDaEQsWUFBWSxFQUFFLFVBQVUsQ0FBQyxLQUFLO1lBQzlCLElBQUksRUFBRSxLQUFLO1lBQ1gsT0FBTyxFQUFFLEtBQUs7U0FDakIsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxLQUFLLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDMUQsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUE7UUFDbEIsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUE7S0FDdkI7SUFLRCxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBVyxFQUFFLE1BQWU7SUFDdkQsT0FBTyxTQUFTLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQSxDQUFDLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ2pFLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxHQUFVO0lBQzNCLElBQUksVUFBVSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM1QyxVQUFVLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM1RSxVQUFVLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtJQUN6QixVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQTtJQUN4QixVQUFVLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQTtJQUMzQixVQUFVLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQTtJQUMzQixVQUFVLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQTtJQUNwQixVQUFVLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQTtJQUM3QixVQUFVLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQTtJQUN0QixVQUFVLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQTtJQUNsQyxVQUFVLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQTtJQUMvQixVQUFVLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtJQUUzQixJQUFJLFdBQVcsR0FBVyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFBO0lBQ2xILElBQUcsV0FBVyxDQUFDLFFBQVEsRUFBQztRQUN0QixVQUFVLENBQUMsc0JBQXNCLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUE7UUFFN0QsVUFBVSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU87WUFDbkQsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLGlCQUFpQixHQUFHLFlBQVk7WUFDakUsQ0FBQyxDQUFDLFlBQVksQ0FBQTtRQUVkLFVBQVUsQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPO1lBQ25ELENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsR0FBRyxZQUFZO1lBQ2pFLENBQUMsQ0FBQyxZQUFZLENBQUE7UUFFZCxVQUFVLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFBO1FBRXRILFVBQVUsQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUE7UUFDekgsVUFBVSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUE7S0FDbEM7U0FBSyxJQUFHLFVBQVUsQ0FBQyxlQUFlLEVBQUM7UUFDbEMsVUFBVSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUE7S0FDbEM7U0FDRztRQUNGLFVBQVUsQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFBO0tBQ25DO0lBRUQsSUFBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEVBQUM7UUFDOUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFBO1FBQ3ZFLElBQUcsVUFBVSxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUM7WUFDdkIsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQTtTQUMzQjthQUNJLElBQUcsVUFBVSxDQUFDLE9BQU8sSUFBRyxDQUFDLEVBQUM7WUFDM0IsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQTtTQUMzQjtRQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDdkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQ25CO1lBQ0ksT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFBO1lBQ3ZDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFBO1FBQ2hDLENBQUMsRUFDRCxHQUFHLENBQ0osQ0FBQTtLQUNOO0lBRUQsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO0lBQzVDLElBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFDO1FBQzVDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFBO0tBQ3JFO0lBRUQsSUFBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUM7UUFDOUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7S0FDM0I7U0FDRztRQUNGLFVBQVUsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO0tBQzVCO0lBRUQsSUFBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUM7UUFDM0MsVUFBVSxDQUFDLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUE7UUFDOUUsVUFBVSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFDL0osVUFBVSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQzlKLFVBQVUsQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUE7UUFDdkosVUFBVSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxD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QU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFO1lBQzlDLE9BQU8sQ0FBQyxDQUFBO1NBQ1Q7S0FDRjtJQUNELE9BQU8sQ0FBQyxDQUFBO0FBQ1YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWxzIGZyb20gJ0BkY2wtc2RrL3V0aWxzJ1xuXG5pbXBvcnQgeyBBdWRpb1NvdXJjZSwgRW50aXR5LCBlbmdpbmUgfSBmcm9tIFwiQGRjbC9zZGsvZWNzXCI7XG5pbXBvcnQgeyBhY3RpdmVOUEMsIGNsb3NlRGlhbG9nV2luZG93LCBmb2xsb3dQYXRoLCBucGNEYXRhQ29tcG9uZW50LCBzdG9wUGF0aCwgc3RvcFdhbGtpbmcgfSBmcm9tIFwiLi9ucGNcIjtcbmltcG9ydCB7IElzVHlwaW5nRGlhbG9nIH0gZnJvbSBcIi4vY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgaGFuZGxlRGlhbG9nVHlwaW5nIH0gZnJvbSBcIi4vc3lzdGVtc1wiO1xuaW1wb3J0IHsgRGlhbG9nLCBJbWFnZURhdGEsIE5QQ1N0YXRlIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGxlZnRDbGlja1NlY3Rpb24sIGxlZnRDbGlja1NlY3Rpb25iQmxhY2ssIGxpZ2h0VGhlbWUsIHNlY3Rpb24sIHNraXBCdXR0b25TZWN0aW9uLCBza2lwQnV0dG9uU2VjdGlvbkJsYWNrIH0gZnJvbSAnLi91aSc7XG5pbXBvcnQgeyBnZXRCdWJibGVUZXh0TGVuZ3RoIH0gZnJvbSAnLi9idWJibGUnO1xuaW1wb3J0IHsgQ29sb3I0IH0gZnJvbSAnQGRjbC9zZGsvbWF0aCc7XG5cblxuZXhwb3J0IGNvbnN0IG5wY0RpYWxvZ0NvbXBvbmVudDogTWFwPEVudGl0eSwgYW55PiA9IG5ldyBNYXAoKVxuZXhwb3J0IGNvbnN0IG5wY0RpYWxvZ1R5cGluZ1N5c3RlbXM6IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcbmV4cG9ydCBjb25zdCBucGNEaWFsb2dJbnB1dExpc3RlbmVyOiBNYXA8RW50aXR5LGFueT4gPSBuZXcgTWFwKClcblxuZXhwb3J0IGVudW0gQ29uZmlybU1vZGUge1xuICAgIENvbmZpcm0gPSAwLFxuICAgIENhbmNlbCA9IDEsXG4gICAgTmV4dCA9IDIsXG4gICAgQnV0dG9uMyA9IDMsXG4gICAgQnV0dG9uNCA9IDRcbiAgfVxuXG5leHBvcnQgbGV0IFVJc2NhbGVNdWx0aXBsaWVyID0gMC43NVxuXG5sZXQgcG9ydHJhaXRYUG9zID0gLTUwICogVUlzY2FsZU11bHRpcGxpZXIgXG5sZXQgcG9ydHJhaXRZUG9zID0gMjAgKiBVSXNjYWxlTXVsdGlwbGllclxuXG5sZXQgaW1hZ2VYUG9zID0gMzUwICogVUlzY2FsZU11bHRpcGxpZXJcbmxldCBpbWFnZVlQb3MgPSA1MCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5cbmxldCBwb3J0cmFpdFNjYWxlID0gMjU2ICogVUlzY2FsZU11bHRpcGxpZXIgXG5sZXQgaW1hZ2VTY2FsZSA9IDI1NiAqIFVJc2NhbGVNdWx0aXBsaWVyIFxuXG5sZXQgdGV4dFNpemUgPSAyNCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5sZXQgdGV4dFlQb3MgPSAxMCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5cbmxldCBidXR0b25XaWR0aCA9IDE3NCogVUlzY2FsZU11bHRpcGxpZXJcbmxldCBidXR0b25IZWlnaHQgPSA0NiogVUlzY2FsZU11bHRpcGxpZXJcblxuXG5sZXQgYnV0dG9uVGV4dFNpemUgPSAyMCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5cbmxldCBidXR0b24xWFBvcyA9IDE1MCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5sZXQgYnV0dG9uMlhQb3MgPSAtODAgKiBVSXNjYWxlTXVsdGlwbGllclxubGV0IGJ1dHRvbjNYUG9zID0gLTgwICogVUlzY2FsZU11bHRpcGxpZXJcbmxldCBidXR0b240WFBvcyA9IDE1MCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5cbmxldCBidXR0b24xWVBvcyA9IC02NSAqIFVJc2NhbGVNdWx0aXBsaWVyXG5sZXQgYnV0dG9uMllQb3MgPSAtNjUgKiBVSXNjYWxlTXVsdGlwbGllclxubGV0IGJ1dHRvbjFZUG9zNCA9IC0yMCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5sZXQgYnV0dG9uMllQb3M0ID0gLTIwICogVUlzY2FsZU11bHRpcGxpZXJcbmxldCBidXR0b24zWVBvcyA9IC04MCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5sZXQgYnV0dG9uNFlQb3MgPSAtODAgKiBVSXNjYWxlTXVsdGlwbGllclxuXG5sZXQgc2tpcEJ1dHRvblhQb3MgPSAtMzAwICogVUlzY2FsZU11bHRpcGxpZXJcbmxldCBza2lwQnV0dG9uWVBvcyA9IC0xMDAgKiBVSXNjYWxlTXVsdGlwbGllclxuXG5sZXQgYnV0dG9uSWNvbldpZHRoID0gMjYgKiBVSXNjYWxlTXVsdGlwbGllclxubGV0IGJ1dHRvbkljb25IZWlnaHQgPSAyNiAqIFVJc2NhbGVNdWx0aXBsaWVyXG5cbmV4cG9ydCBmdW5jdGlvbiBhZGREaWFsb2cobnBjOkVudGl0eSwgc291bmQ/OnN0cmluZywgZGVmYXVsdFBvcnRyYWl0PzpJbWFnZURhdGEpe1xuICAgIGNvbnNvbGUubG9nKCdhZGRpbmcgZGlhbG9nIGZvciBucGMnLCBucGMpXG4gICAgbnBjRGlhbG9nQ29tcG9uZW50LnNldChucGMsIHtcbiAgICAgICAgdHlwaW5nOnRydWUsXG4gICAgICAgIHZpc2libGU6ZmFsc2UsXG4gICAgICAgIHZpc2libGVUZXh0OlwiXCIsXG4gICAgICAgIHZpc2libGVDaGFyczowLFxuICAgICAgICBmdWxsVGV4dDpcIlwiLFxuICAgICAgICB0aW1lcjowLFxuICAgICAgICBzcGVlZDozMCxcbiAgICAgICAgb3JpZ2luYWxTY3JpcHQ6W10sXG4gICAgICAgIHNjcmlwdDpbXSxcbiAgICAgICAgaW5kZXg6MCxcbiAgICAgICAgc291bmQ6IHNvdW5kID8gc291bmQgOiB1bmRlZmluZWQsXG4gICAgICAgIHNvdW5kUGxheWVyOiBzb3VuZCA/IGVuZ2luZS5hZGRFbnRpdHkoKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZm9udFNpemU6MjIsXG4gICAgICAgIGlzUXVlc3Rpb246ZmFsc2UsXG4gICAgICAgIGJ1dHRvbnM6MCxcbiAgICAgICAgZGlzcGxheVBvcnRyYWl0OiBkZWZhdWx0UG9ydHJhaXQgPyB0cnVlIDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHRQb3J0cmFpdDogZGVmYXVsdFBvcnRyYWl0ID8gZGVmYXVsdFBvcnRyYWl0IDogbnVsbCxcbiAgICAgICAgZGVmYXVsdFBvcnRyYWl0VGV4dHVyZTogZGVmYXVsdFBvcnRyYWl0ID8gZGVmYXVsdFBvcnRyYWl0LnBhdGggOiBsaWdodFRoZW1lLFxuICAgICAgICBwb3J0cmFpdFdpZHRoOiBkZWZhdWx0UG9ydHJhaXQgJiYgZGVmYXVsdFBvcnRyYWl0LndpZHRoID8gZGVmYXVsdFBvcnRyYWl0LndpZHRoICogVUlzY2FsZU11bHRpcGxpZXIgOiBwb3J0cmFpdFNjYWxlLFxuICAgICAgICBwb3J0cmFpdEhlaWdodDogZGVmYXVsdFBvcnRyYWl0ICYmIGRlZmF1bHRQb3J0cmFpdC5oZWlnaHQgPyBkZWZhdWx0UG9ydHJhaXQuaGVpZ2h0ICogVUlzY2FsZU11bHRpcGxpZXIgOiBwb3J0cmFpdFNjYWxlLFxuICAgICAgICBwb3J0cmFpdFg6IGRlZmF1bHRQb3J0cmFpdCAmJiBkZWZhdWx0UG9ydHJhaXQub2Zmc2V0WCA/IGRlZmF1bHRQb3J0cmFpdC5vZmZzZXRYICogVUlzY2FsZU11bHRpcGxpZXIgKyBwb3J0cmFpdFhQb3MgOiBwb3J0cmFpdFhQb3MsXG4gICAgICAgIHBvcnRyYWl0WTogIGRlZmF1bHRQb3J0cmFpdCAmJiBkZWZhdWx0UG9ydHJhaXQub2Zmc2V0WSA/IGRlZmF1bHRQb3J0cmFpdC5vZmZzZXRZICogVUlzY2FsZU11bHRpcGxpZXIgKyBwb3J0cmFpdFlQb3MgOiBwb3J0cmFpdFlQb3MsXG4gICAgICAgIHBvcnRhaXRTSGVpZ2h0OiBkZWZhdWx0UG9ydHJhaXQgJiYgZGVmYXVsdFBvcnRyYWl0LnNlY3Rpb24gJiYgZGVmYXVsdFBvcnRyYWl0LnNlY3Rpb24uc291cmNlSGVpZ2h0ID8gZGVmYXVsdFBvcnRyYWl0LnNlY3Rpb24uc291cmNlSGVpZ2h0IDogMjU2LFxuICAgICAgICBwb3J0cmFpdFNXaWR0aDogZGVmYXVsdFBvcnRyYWl0ICYmIGRlZmF1bHRQb3J0cmFpdC5zZWN0aW9uICYmIGRlZmF1bHRQb3J0cmFpdC5zZWN0aW9uLnNvdXJjZVdpZHRoID8gZGVmYXVsdFBvcnRyYWl0LnNlY3Rpb24uc291cmNlV2lkdGggOiAyNTYsXG4gICAgICAgIHBvcnRhaXRTVG9wOiBkZWZhdWx0UG9ydHJhaXQgJiYgZGVmYXVsdFBvcnRyYWl0LnNlY3Rpb24gJiYgZGVmYXVsdFBvcnRyYWl0LnNlY3Rpb24uc291cmNlVG9wID8gZGVmYXVsdFBvcnRyYWl0LnNlY3Rpb24uc291cmNlVG9wIDogMCxcbiAgICAgICAgcG9ydHJhaXRTTGVmdDogZGVmYXVsdFBvcnRyYWl0ICYmIGRlZmF1bHRQb3J0cmFpdC5zZWN0aW9uICYmIGRlZmF1bHRQb3J0cmFpdC5zZWN0aW9uLnNvdXJjZUxlZnQgPyBkZWZhdWx0UG9ydHJhaXQuc2VjdGlvbi5zb3VyY2VMZWZ0IDogMFxuICAgIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwbGF5SW1hZ2UoKXtcbiAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gZmFsc2UgOiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLmRpc3BsYXlJbWFnZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheVBvcnRyYWl0KCl7XG4gIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IGZhbHNlIDogbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5kaXNwbGF5UG9ydHJhaXRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BsYXlTa2lwYWJsZSgpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBmYWxzZSA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuc2tpcGFibGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNraXBhYmxlVGhlbWUoKXtcbiAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gc2tpcEJ1dHRvblNlY3Rpb25CbGFjayA6IG5wY0RhdGFDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLnRoZW1lID09IGxpZ2h0VGhlbWUgPyBza2lwQnV0dG9uU2VjdGlvbkJsYWNrIDogc2tpcEJ1dHRvblNlY3Rpb25cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExlZnRDbGlja1RoZW1lKCl7XG4gIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IGxlZnRDbGlja1NlY3Rpb24gOiBucGNEYXRhQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS50aGVtZSA9PSBsaWdodFRoZW1lID8gbGVmdENsaWNrU2VjdGlvbiA6IGxlZnRDbGlja1NlY3Rpb25iQmxhY2tcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvc2l0aW9uVGV4dFgoKXtcbiAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gXCJcIiA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkucG9zaXRpb25YXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3NpdGlvblRleHRZKCl7XG4gIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IFwiXCIgOiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLnBvc2l0aW9uWVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9zaXRpb25Qb3J0YWl0WCgpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBcIlwiIDogbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5wb3J0cmFpdFhcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvc2l0aW9uUG9ydGFpdFkoKXtcbiAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gXCJcIiA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkucG9ydHJhaXRZXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3J0cmFpdFdpZHRoKCl7XG4gIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IFwiXCIgOiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLnBvcnRyYWl0V2lkdGhcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvcnRyYWl0SGVpZ2h0KCl7XG4gIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IFwiXCIgOiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLnBvcnRyYWl0SGVpZ2h0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3NpdGlvbkltYWdlWCgpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBcIlwiIDogbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5pbWFnZVhcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvc2l0aW9uSW1hZ2VZKCl7XG4gIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IFwiXCIgOiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLmltYWdlWVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2VXaWR0aCgpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBcIlwiIDogbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5pbWFnZVdpZHRoXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbWFnZUhlaWdodCgpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBcIlwiIDogbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5pbWFnZUhlaWdodFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9ydHJhaXQoKXtcbiAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gXCJcIiA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuZGVmYXVsdFBvcnRyYWl0VGV4dHVyZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW1hZ2UoKXtcbiAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gXCJcIiA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuZGlhbG9nSW1hZ2VUZXh0dXJlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXh0KCl7XG4gICAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gXCJcIiA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkudmlzaWJsZVRleHRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRleHRDb2xvcigpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBDb2xvcjQuQmxhY2soKSA6IG5wY0RhdGFDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLnRoZW1lID09IGxpZ2h0VGhlbWUgPyBDb2xvcjQuQmxhY2soKSA6IENvbG9yNC5XaGl0ZSgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUaGVtZSgpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBsaWdodFRoZW1lIDogbnBjRGF0YUNvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkudGhlbWVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJ1dHRvblRleHQoYnV0dG9uOm51bWJlcil7XG4gICAgbGV0IHRleHQgPSBcIlwiXG5cbiAgICBpZihhY3RpdmVOUEMgIT0gMCAmJiBucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpKXtcbiAgICAgICAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpXG4gICAgICAgIGlmKGRpYWxvZ0RhdGEuaXNRdWVzdGlvbiAmJiBkaWFsb2dEYXRhLmJ1dHRvbnMgPiBidXR0b24pe1xuICAgICAgICAgICAgdGV4dCA9IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLmJ1dHRvbnNbYnV0dG9uXS5sYWJlbFxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0ZXh0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb250U2l6ZSgpe1xuICAgIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IDIyIDogbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5mb250U2l6ZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheURpYWxvZygpe1xuICAgIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IGZhbHNlIDogIG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkudmlzaWJsZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheUJ1dHRvbihidXR0b246bnVtYmVyKXtcbiAgICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBmYWxzZSA6ICBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLmlzUXVlc3Rpb24gJiYgbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5idXR0b25zID49IGJ1dHRvblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheUZpcnN0QnV0dG9uQ29udGFpbmVyKCl7XG4gICAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gZmFsc2UgOiAgbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5pc1F1ZXN0aW9uICYmIG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuYnV0dG9ucyA+PSAxXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwbGF5U2Vjb25kQnV0dG9uQ29udGFpbmVyKCl7XG4gICAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gZmFsc2UgOiAgbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5pc1F1ZXN0aW9uICYmIG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuYnV0dG9ucyA+PSAzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXh0UG9zaXRpb24oKXtcbiAgICAvL2NvbnNvbGUubG9nKG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuYnV0dG9ucylcbiAgICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyB7dG9wOjB9IDoge3RvcDpucGNEYXRhQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5tYXJnaW59XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidXR0b25DbGljayhidXR0b246bnVtYmVyKXtcbiAgICBpZihhY3RpdmVOUEMgIT0gMCAmJiBucGNEYXRhQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSl7XG4gICAgICAgIGNvbmZpcm1UZXh0KGFjdGl2ZU5QQyBhcyBFbnRpdHksIGJ1dHRvbilcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbG9zZURpYWxvZyhucGM6RW50aXR5KXtcbiAgICBsZXQgZGlhbG9nRGF0YSA9IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQobnBjKVxuICAgIGRpYWxvZ0RhdGEudmlzaWJsZSA9IGZhbHNlXG4gICAgZGlhbG9nRGF0YS50eXBpbmcgPSBmYWxzZVxuICAgIGRpYWxvZ0RhdGEudmlzaWJsZVRleHQgPSBcIlwiXG4gICAgZGlhbG9nRGF0YS52aXNpYmxlQ2hhcnMgPSAwXG4gICAgZGlhbG9nRGF0YS5mdWxsVGV4dCA9IFwiXCJcbiAgICBkaWFsb2dEYXRhLnRpbWVyID0gMFxuICAgIGRpYWxvZ0RhdGEuaW5kZXggPSAwXG4gICAgZGlhbG9nRGF0YS5zY3JpcHQubGVuZ3RoID0gMFxuICAgIGRpYWxvZ0RhdGEuYnV0dG9ucyA9IDBcbiAgICBkaWFsb2dEYXRhLm1hcmdpbiA9IDBcbiAgICBkaWFsb2dEYXRhLmRpc3BsYXlQb3J0cmFpdCA9IGZhbHNlXG4gICAgZGlhbG9nRGF0YS5za2lwYWJsZSA9IGZhbHNlXG4gICAgZGlhbG9nRGF0YS5kaXNwbGF5SW1hZ2UgPSBmYWxzZVxuICAgIGNvbnNvbGUubG9nKCdkaWFsb2cgZGF0YSBpcyBub3cgJywgZGlhbG9nRGF0YSlcbiAgICAvLyBpZihucGNEYXRhQ29tcG9uZW50LmdldChucGMpLm1hbnVhbFN0b3Ape1xuICAgIC8vICAgY29uc29sZS5sb2coJ2RpYWxvZyBlbmRlZCwgbmVlZHRvIHdhbGsgYWdhaW4nKVxuICAgIC8vICAgZm9sbG93UGF0aChucGMpXG4gICAgLy8gfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdGFsayhucGM6RW50aXR5LCBkaWFsb2c6RGlhbG9nW10sIHN0YXJ0SW5kZXg/Om51bWJlciB8IHN0cmluZywgZHVyYXRpb24/Om51bWJlcil7XG4gICAgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS5pbnRyb2R1Y2VkID0gdHJ1ZVxuICAgIGlmKG5wY0RpYWxvZ0NvbXBvbmVudC5oYXMobnBjKSl7XG5cbiAgICAgICAgaWYobnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS5zdGF0ZSA9PSBOUENTdGF0ZS5GT0xMT1dQQVRIKXtcbiAgICAgICAgICBjb25zb2xlLmxvZyhcInNwZWFraW5nIGRpYWxvZywgbmVlZCB0byBzdG9wIHBhdGhcIilcbiAgICAgICAgICBzdG9wV2Fsa2luZyhucGMpXG4gICAgICAgIH1cblxuICAgICAgICBucGNEYXRhQ29tcG9uZW50LmdldChucGMpLnN0YXRlID0gTlBDU3RhdGUuVEFMS0lOR1xuXG5cbiAgICAgICAgbGV0IGluZGV4OmFueVxuXG4gICAgICAgIGlmICghc3RhcnRJbmRleCkge1xuICAgICAgICAgIGluZGV4ID0gMFxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzdGFydEluZGV4ID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIGluZGV4ID0gc3RhcnRJbmRleFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGluZGV4ID0gZmluZERpYWxvZ0J5TmFtZShkaWFsb2csIHN0YXJ0SW5kZXgpXG4gICAgICAgIH1cblxuICAgICAgICBvcGVuRGlhbG9nKG5wYyxkaWFsb2csIGluZGV4KVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9wZW5EaWFsb2cobnBjOkVudGl0eSwgZGlhbG9nOkRpYWxvZ1tdLCBzdGFydEluZGV4Om51bWJlcil7XG4gICAgY29uc29sZS5sb2coJ3NjcmlwdCB0byB0YWxrIGlzJywgZGlhbG9nKVxuICAgIGxldCBkaWFsb2dEYXRhID0gbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpXG4gICAgZGlhbG9nRGF0YS5zY3JpcHQgPSBkaWFsb2cuc2xpY2UoKVxuICAgIGRpYWxvZ0RhdGEuaW5kZXggPSBzdGFydEluZGV4XG5cbiAgICBjb25zb2xlLmxvZygnZGlhbG9nIGRhdGEgaXMgbm93JywgZGlhbG9nRGF0YSlcbiAgICBcbiAgICBsZXQgY3VycmVudFRleHQ6IERpYWxvZyA9IGRpYWxvZ1tzdGFydEluZGV4XSA/IGRpYWxvZ1tzdGFydEluZGV4XSA6IHsgdGV4dDogJycgfVxuXG4gICAgaWYgKGN1cnJlbnRUZXh0LmF1ZGlvKSB7XG4gICAgICAgIEF1ZGlvU291cmNlLmNyZWF0ZU9yUmVwbGFjZShkaWFsb2dEYXRhLnNvdW5kUGxheWVyLCB7XG4gICAgICAgICAgICBhdWRpb0NsaXBVcmw6IGN1cnJlbnRUZXh0LmF1ZGlvLFxuICAgICAgICAgICAgbG9vcDogZmFsc2UsXG4gICAgICAgICAgICBwbGF5aW5nOiBmYWxzZVxuICAgICAgICB9KVxuICAgICAgICBsZXQgYXVkaW8gPSBBdWRpb1NvdXJjZS5nZXRNdXRhYmxlKGRpYWxvZ0RhdGEuc291bmRQbGF5ZXIpXG4gICAgICAgIGF1ZGlvLnZvbHVtZSA9IDAuNVxuICAgICAgICBhdWRpby5wbGF5aW5nID0gdHJ1ZVxuICAgIH0gZWxzZSBpZiAoZGlhbG9nRGF0YS5zb3VuZCkge1xuICAgICAgICBBdWRpb1NvdXJjZS5jcmVhdGVPclJlcGxhY2UoZGlhbG9nRGF0YS5zb3VuZFBsYXllciwge1xuICAgICAgICAgICAgYXVkaW9DbGlwVXJsOiBkaWFsb2dEYXRhLnNvdW5kLFxuICAgICAgICAgICAgbG9vcDogZmFsc2UsXG4gICAgICAgICAgICBwbGF5aW5nOiBmYWxzZVxuICAgICAgICB9KVxuICAgICAgICBsZXQgYXVkaW8gPSBBdWRpb1NvdXJjZS5nZXRNdXRhYmxlKGRpYWxvZ0RhdGEuc291bmRQbGF5ZXIpXG4gICAgICAgIGF1ZGlvLnZvbHVtZSA9IDAuNVxuICAgICAgICBhdWRpby5wbGF5aW5nID0gdHJ1ZVxuICAgIH1cblxuICAgIC8vVE9ET1xuICAgIC8vc2V0IGltYWdlIG9uIHRoZSByaWdodFxuICAgIC8vc2V0IHRleHRcbiAgICBiZWdpblR5cGluZyhucGMpXG59IFxuXG5leHBvcnQgZnVuY3Rpb24gYWRkTGluZUJyZWFrKHRleHQ6c3RyaW5nLCBidWJibGU/OmJvb2xlYW4pe1xuICByZXR1cm4gbGluZUJyZWFrKHRleHQsIGJ1YmJsZT8gZ2V0QnViYmxlVGV4dExlbmd0aCh0ZXh0KSEgOiA0NSlcbn1cblxuZnVuY3Rpb24gYmVnaW5UeXBpbmcobnBjOkVudGl0eSl7XG4gICAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYylcbiAgICBkaWFsb2dEYXRhLmZ1bGxUZXh0ID0gYWRkTGluZUJyZWFrKGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLnRleHQpIC8vZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0udGV4dFxuICAgIGRpYWxvZ0RhdGEudmlzaWJsZSA9IHRydWVcbiAgICBkaWFsb2dEYXRhLnR5cGluZyA9IHRydWVcbiAgICBkaWFsb2dEYXRhLnZpc2libGVUZXh0ID0gXCJcIlxuICAgIGRpYWxvZ0RhdGEudmlzaWJsZUNoYXJzID0gMFxuICAgIGRpYWxvZ0RhdGEudGltZXIgPSAwXG4gICAgZGlhbG9nRGF0YS5pc1F1ZXN0aW9uID0gZmFsc2VcbiAgICBkaWFsb2dEYXRhLmJ1dHRvbnMgPSAwXG4gICAgZGlhbG9nRGF0YS5kaXNwbGF5UG9ydHJhaXQgPSBmYWxzZVxuICAgIGRpYWxvZ0RhdGEuZGlzcGxheUltYWdlID0gZmFsc2VcbiAgICBkaWFsb2dEYXRhLnNraXBhYmxlID0gZmFsc2VcblxuICAgIGxldCBjdXJyZW50VGV4dDogRGlhbG9nID0gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0gPyBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XSA6IHsgdGV4dDogJycgfVxuICAgIGlmKGN1cnJlbnRUZXh0LnBvcnRyYWl0KXtcbiAgICAgIGRpYWxvZ0RhdGEuZGVmYXVsdFBvcnRyYWl0VGV4dHVyZSA9IGN1cnJlbnRUZXh0LnBvcnRyYWl0LnBhdGhcblxuICAgICAgZGlhbG9nRGF0YS5wb3J0cmFpdFggPSBjdXJyZW50VGV4dC5wb3J0cmFpdC5vZmZzZXRYXG4gICAgICA/IGN1cnJlbnRUZXh0LnBvcnRyYWl0Lm9mZnNldFggKiBVSXNjYWxlTXVsdGlwbGllciArIHBvcnRyYWl0WFBvc1xuICAgICAgOiBwb3J0cmFpdFhQb3NcblxuICAgICAgZGlhbG9nRGF0YS5wb3J0cmFpdFkgPSBjdXJyZW50VGV4dC5wb3J0cmFpdC5vZmZzZXRZXG4gICAgICA/IGN1cnJlbnRUZXh0LnBvcnRyYWl0Lm9mZnNldFkgKiBVSXNjYWxlTXVsdGlwbGllciArIHBvcnRyYWl0WVBvc1xuICAgICAgOiBwb3J0cmFpdFlQb3NcblxuICAgICAgZGlhbG9nRGF0YS5wb3J0cmFpdFdpZHRoID0gY3VycmVudFRleHQucG9ydHJhaXQud2lkdGggPyBjdXJyZW50VGV4dC5wb3J0cmFpdC53aWR0aCAqIFVJc2NhbGVNdWx0aXBsaWVyIDogcG9ydHJhaXRTY2FsZVxuXG4gICAgICBkaWFsb2dEYXRhLnBvcnRyYWl0SGVpZ2h0ID0gY3VycmVudFRleHQucG9ydHJhaXQuaGVpZ2h0ID8gY3VycmVudFRleHQucG9ydHJhaXQuaGVpZ2h0ICogVUlzY2FsZU11bHRpcGxpZXIgOiBwb3J0cmFpdFNjYWxlXG4gICAgICBkaWFsb2dEYXRhLmRpc3BsYXlQb3J0cmFpdCA9IHRydWVcbiAgICB9ZWxzZSBpZihkaWFsb2dEYXRhLmRlZmF1bHRQb3J0cmFpdCl7XG4gICAgICBkaWFsb2dEYXRhLmRpc3BsYXlQb3J0cmFpdCA9IHRydWVcbiAgICB9XG4gICAgZWxzZXtcbiAgICAgIGRpYWxvZ0RhdGEuZGlzcGxheVBvcnRyYWl0ID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZihkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5pc1F1ZXN0aW9uKXtcbiAgICAgICAgZGlhbG9nRGF0YS5idXR0b25zID0gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uYnV0dG9ucy5sZW5ndGhcbiAgICAgICAgaWYoZGlhbG9nRGF0YS5idXR0b25zID49IDMpe1xuICAgICAgICAgICAgZGlhbG9nRGF0YS5tYXJnaW4gPSAtMzAwXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZihkaWFsb2dEYXRhLmJ1dHRvbnMgPj0xKXtcbiAgICAgICAgICAgIGRpYWxvZ0RhdGEubWFyZ2luID0gLTMwMFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5sb2coZGlhbG9nRGF0YSlcbiAgICAgICAgdXRpbHMudGltZXJzLnNldFRpbWVvdXQoXG4gICAgICAgICAgICBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnc2V0dGluZyBxdWVzdGlvbiB0byB0cnVlJylcbiAgICAgICAgICAgICAgICBkaWFsb2dEYXRhLmlzUXVlc3Rpb24gPSB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgNzAwXG4gICAgICAgICAgKVxuICAgIH1cblxuICAgIGRpYWxvZ0RhdGEub3BlblRpbWUgPSBNYXRoLmZsb29yKERhdGUubm93KCkpXG4gICAgaWYoZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uZm9udFNpemUpe1xuICAgICAgICBkaWFsb2dEYXRhLmZvbnRTaXplID0gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uZm9udFNpemVcbiAgICB9XG5cbiAgICBpZihkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5za2lwYWJsZSl7XG4gICAgICBkaWFsb2dEYXRhLnNraXBhYmxlID0gdHJ1ZVxuICAgIH1cbiAgICBlbHNle1xuICAgICAgZGlhbG9nRGF0YS5za2lwYWJsZSA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYoZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uaW1hZ2Upe1xuICAgICAgZGlhbG9nRGF0YS5kaWFsb2dJbWFnZVRleHR1cmUgPSBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5pbWFnZS5wYXRoXG4gICAgICBkaWFsb2dEYXRhLmltYWdlWCA9IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLmltYWdlLm9mZnNldFggPyBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5pbWFnZS5vZmZzZXRYICogVUlzY2FsZU11bHRpcGxpZXIgKyBpbWFnZVhQb3MgOiAtNDBcbiAgICAgIGRpYWxvZ0RhdGEuaW1hZ2VZID0gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uaW1hZ2Uub2Zmc2V0WSA/IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLmltYWdlLm9mZnNldFkgKiBVSXNjYWxlTXVsdGlwbGllciArIGltYWdlWVBvcyA6IDQwXG4gICAgICBkaWFsb2dEYXRhLmltYWdlSGVpZ2h0ID0gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uaW1hZ2UuaGVpZ2h0ID8gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uaGVpZ2h0ICogVUlzY2FsZU11bHRpcGxpZXIgOiBpbWFnZVNjYWxlXG4gICAgICBkaWFsb2dEYXRhLmltYWdlV2lkdGggPSBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5pbWFnZS53aWR0aCA/IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLndpZHRoICogVUlzY2FsZU11bHRpcGxpZXIgOiBpbWFnZVNjYWxlXG4gICAgICBkaWFsb2dEYXRhLmRpc3BsYXlJbWFnZSA9IHRydWVcbiAgICB9XG5cbiAgICBkaWFsb2dEYXRhLnBvc2l0aW9uWCA9IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLm9mZnNldFggPyBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5vZmZzZXRYICogVUlzY2FsZU11bHRpcGxpZXIgOiAnMjIlJ1xuICAgIGRpYWxvZ0RhdGEucG9zaXRpb25ZID0gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0ub2Zmc2V0WSA/IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLm9mZnNldFkgKiBVSXNjYWxlTXVsdGlwbGllciArIHRleHRZUG9zIDogdGV4dFlQb3NcbiAgICBcbiAgICBpZihkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5oYXNPd25Qcm9wZXJ0eShcInR5cGVTcGVlZFwiKSl7XG4gICAgICAgIGRpYWxvZ0RhdGEuc3BlZWQgPSBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS50eXBlU3BlZWRcbiAgICB9XG4gICAgZWxzZXtcbiAgICAgICAgZGlhbG9nRGF0YS5zcGVlZCA9IDMwXG4gICAgfVxuXG4gICAgaWYoZGlhbG9nRGF0YS5zcGVlZCA8PSAwKXtcbiAgICAgICAgcnVzaFRleHQobnBjKVxuICAgIH1cbiAgICBlbHNle1xuICAgICAgICBpZighSXNUeXBpbmdEaWFsb2cuaGFzKG5wYykpe1xuICAgICAgICAgICAgSXNUeXBpbmdEaWFsb2cuY3JlYXRlKG5wYylcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAvLyBpZighbnBjRGlhbG9nVHlwaW5nU3lzdGVtcy5oYXMobnBjKSl7XG4gICAgICAgIC8vICAgICBucGNEaWFsb2dUeXBpbmdTeXN0ZW1zLnNldChucGMsZW5naW5lLmFkZFN5c3RlbShoYW5kbGVEaWFsb2dUeXBpbmcpKVxuICAgICAgICAvLyB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkTGluZUJyZWFrcyhkaWFsb2c6RGlhbG9nW10sIGJ1YmJsZT86Ym9vbGVhbil7XG4gICAgbGV0IGNsZWFuZWQ6RGlhbG9nW10gPSBkaWFsb2cuc2xpY2UoKVxuICAgIGNsZWFuZWQuZm9yRWFjaCgoZCk9PntcbiAgICAgIGQudGV4dCA9IGxpbmVCcmVhayhkLnRleHQsIGJ1YmJsZT8gZ2V0QnViYmxlVGV4dExlbmd0aChkLnRleHQpISA6IDUwKVxuICAgIH0pXG4gICAgcmV0dXJuIGNsZWFuZWRcbn1cblxuZnVuY3Rpb24gbGluZUJyZWFrKHRleHQ6IHN0cmluZywgbWF4TGluZUxlbmd0aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCB3b3JkcyA9IHRleHQuc3BsaXQoJyAnKTtcbiAgICBsZXQgY3VycmVudExpbmUgPSAnJztcbiAgICBjb25zdCBsaW5lcyA9IFtdO1xuICBcbiAgICBmb3IgKGNvbnN0IHdvcmQgb2Ygd29yZHMpIHtcbiAgICAgIGlmIChjdXJyZW50TGluZS5sZW5ndGggKyB3b3JkLmxlbmd0aCArIDEgPD0gbWF4TGluZUxlbmd0aCkge1xuICAgICAgICBjdXJyZW50TGluZSArPSBgJHt3b3JkfSBgO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGluZXMucHVzaChjdXJyZW50TGluZS50cmltKCkpO1xuICAgICAgICBjdXJyZW50TGluZSA9IGAke3dvcmR9IGA7XG4gICAgICB9XG4gICAgfVxuICAgIGxpbmVzLnB1c2goY3VycmVudExpbmUudHJpbSgpKTtcbiAgICByZXR1cm4gbGluZXMuam9pbignXFxuJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVEaWFsb2dDbGljaygpe1xuICBjb25zb2xlLmxvZygnaGFuZGxpbmcgY2xpY2snKVxuICAgIGxldCBucGMgPSBhY3RpdmVOUEMgYXMgRW50aXR5XG4gICAgaWYobnBjRGlhbG9nQ29tcG9uZW50LmhhcyhucGMpKXtcbiAgICAgICAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYylcbiAgICAgICAgaWYoIWRpYWxvZ0RhdGEudmlzaWJsZSB8fCAoTWF0aC5mbG9vcihEYXRlLm5vdygpKSAtIGRpYWxvZ0RhdGEub3BlblRpbWUgIDwgMTAwKSkgcmV0dXJuXG4gICAgICAgIFxuICAgICAgICBpZihkaWFsb2dEYXRhLnR5cGluZyl7XG4gICAgICAgICAgICBydXNoVGV4dChucGMpXG4gICAgICAgIH1cbiAgICAgICAgZWxzZXtcbiAgICAgICAgICAgIGNvbmZpcm1UZXh0KG5wYywgQ29uZmlybU1vZGUuTmV4dClcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1c2hUZXh0KG5wYzpFbnRpdHkpe1xuICAgIGxldCBkaWFsb2dEYXRhID0gbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpXG4gICAgZGlhbG9nRGF0YS50eXBpbmcgPSBmYWxzZVxuICAgIGRpYWxvZ0RhdGEudGltZXIgPSAwXG4gICAgZGlhbG9nRGF0YS52aXNpYmxlQ2hhcnMgPSBkaWFsb2dEYXRhLmZ1bGxUZXh0Lmxlbmd0aFxuICAgIGRpYWxvZ0RhdGEudmlzaWJsZVRleHQgPSBkaWFsb2dEYXRhLmZ1bGxUZXh0XG4gICAgLy9lbmdpbmUucmVtb3ZlU3lzdGVtKG5wY0RpYWxvZ1R5cGluZ1N5c3RlbXMuZ2V0KG5wYykpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25maXJtVGV4dChucGM6RW50aXR5LCBtb2RlOiBDb25maXJtTW9kZSk6IHZvaWQge1xuICBjb25zb2xlLmxvZygnY29uZmlybSB0ZXh0JylcbiAgICBsZXQgZGlhbG9nRGF0YSA9IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQobnBjKVxuICAgIGRpYWxvZ0RhdGEub3BlblRpbWUgPSBNYXRoLmZsb29yKERhdGUubm93KCkpXG5cbiAgICBsZXQgY3VycmVudFRleHQgPSBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XVxuICAgIC8vIFVwZGF0ZSBhY3RpdmUgdGV4dFxuICAgIGlmIChtb2RlID09IENvbmZpcm1Nb2RlLk5leHQpIHtcbiAgICAgICAgaWYgKCFjdXJyZW50VGV4dC5pc1F1ZXN0aW9uKSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudFRleHQudHJpZ2dlcmVkQnlOZXh0KSB7XG4gICAgICAgICAgICBjdXJyZW50VGV4dC50cmlnZ2VyZWRCeU5leHQoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGN1cnJlbnRUZXh0LmlzRW5kT2ZEaWFsb2cpIHtcbiAgICAgICAgICAgIGNsb3NlRGlhbG9nKG5wYylcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGlhbG9nRGF0YS5pbmRleCsrXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobW9kZSA9PSBDb25maXJtTW9kZS5Db25maXJtKSB7XG4gICAgICAgIGlmIChjdXJyZW50VGV4dC5idXR0b25zICYmIGN1cnJlbnRUZXh0LmJ1dHRvbnMubGVuZ3RoID49IDEpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRUZXh0LmJ1dHRvbnNbMF0uZ29Ub0RpYWxvZyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIGRpYWxvZ0RhdGEuaW5kZXggPSBjdXJyZW50VGV4dC5idXR0b25zWzBdLmdvVG9EaWFsb2dcbiAgICAgICAgICB9IFxuXG4gICAgICAgICAgLy9UT0RPXG4gICAgICAgICAgLy9hbGxvdyBkaWFsb2dzIHRvIGJlIGluZGV4IGJ5IG5hbWVcbiAgICAgICAgLy8gICBlbHNlIHtcbiAgICAgICAgLy8gICAgIHRoaXMuYWN0aXZlVGV4dElkID0gZmluZERpYWxvZ0J5TmFtZSh0aGlzLk5QQ1NjcmlwdCwgY3VycmVudFRleHQuYnV0dG9uc1swXS5nb1RvRGlhbG9nKVxuICAgICAgICAvLyAgIH1cbiAgICAgICAgICBpZiAoY3VycmVudFRleHQuYnV0dG9uc1swXS50cmlnZ2VyZWRBY3Rpb25zKSB7XG4gICAgICAgICAgICBjdXJyZW50VGV4dC5idXR0b25zWzBdLnRyaWdnZXJlZEFjdGlvbnMoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtb2RlID09IENvbmZpcm1Nb2RlLkNhbmNlbCkge1xuICAgICAgICBpZiAoY3VycmVudFRleHQuYnV0dG9ucyAmJiBjdXJyZW50VGV4dC5idXR0b25zLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50VGV4dC5idXR0b25zWzFdLmdvVG9EaWFsb2cgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBkaWFsb2dEYXRhLmluZGV4ID0gY3VycmVudFRleHQuYnV0dG9uc1sxXS5nb1RvRGlhbG9nXG4gICAgICAgICAgfSBcblxuICAgICAgICAgIC8vVE9ET1xuICAgICAgICAgIC8vYWxsb3cgZGlhbG9ncyB0byBiZSBpbmRleCBieSBuYW1lXG4gICAgICAgIC8vICAgZWxzZSB7XG4gICAgICAgIC8vICAgICB0aGlzLmFjdGl2ZVRleHRJZCA9IGZpbmREaWFsb2dCeU5hbWUodGhpcy5OUENTY3JpcHQsIGN1cnJlbnRUZXh0LmJ1dHRvbnNbMF0uZ29Ub0RpYWxvZylcbiAgICAgICAgLy8gICB9XG4gICAgICAgICAgaWYgKGN1cnJlbnRUZXh0LmJ1dHRvbnNbMV0udHJpZ2dlcmVkQWN0aW9ucykge1xuICAgICAgICAgICAgY3VycmVudFRleHQuYnV0dG9uc1sxXS50cmlnZ2VyZWRBY3Rpb25zKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobW9kZSA9PSBDb25maXJtTW9kZS5CdXR0b24zKSB7XG4gICAgICAgIGlmIChjdXJyZW50VGV4dC5idXR0b25zICYmIGN1cnJlbnRUZXh0LmJ1dHRvbnMubGVuZ3RoID49IDEpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRUZXh0LmJ1dHRvbnNbMl0uZ29Ub0RpYWxvZyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIGRpYWxvZ0RhdGEuaW5kZXggPSBjdXJyZW50VGV4dC5idXR0b25zWzJdLmdvVG9EaWFsb2dcbiAgICAgICAgICB9IFxuXG4gICAgICAgICAgLy9UT0RPXG4gICAgICAgICAgLy9hbGxvdyBkaWFsb2dzIHRvIGJlIGluZGV4IGJ5IG5hbWVcbiAgICAgICAgLy8gICBlbHNlIHtcbiAgICAgICAgLy8gICAgIHRoaXMuYWN0aXZlVGV4dElkID0gZmluZERpYWxvZ0J5TmFtZSh0aGlzLk5QQ1NjcmlwdCwgY3VycmVudFRleHQuYnV0dG9uc1swXS5nb1RvRGlhbG9nKVxuICAgICAgICAvLyAgIH1cbiAgICAgICAgICBpZiAoY3VycmVudFRleHQuYnV0dG9uc1syXS50cmlnZ2VyZWRBY3Rpb25zKSB7XG4gICAgICAgICAgICBjdXJyZW50VGV4dC5idXR0b25zWzJdLnRyaWdnZXJlZEFjdGlvbnMoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtb2RlID09IENvbmZpcm1Nb2RlLkJ1dHRvbjQpIHtcbiAgICAgICAgaWYgKGN1cnJlbnRUZXh0LmJ1dHRvbnMgJiYgY3VycmVudFRleHQuYnV0dG9ucy5sZW5ndGggPj0gMSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudFRleHQuYnV0dG9uc1szXS5nb1RvRGlhbG9nID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgZGlhbG9nRGF0YS5pbmRleCA9IGN1cnJlbnRUZXh0LmJ1dHRvbnNbM10uZ29Ub0RpYWxvZ1xuICAgICAgICAgIH0gXG5cbiAgICAgICAgICAvL1RPRE9cbiAgICAgICAgICAvL2FsbG93IGRpYWxvZ3MgdG8gYmUgaW5kZXggYnkgbmFtZVxuICAgICAgICAvLyAgIGVsc2Uge1xuICAgICAgICAvLyAgICAgdGhpcy5hY3RpdmVUZXh0SWQgPSBmaW5kRGlhbG9nQnlOYW1lKHRoaXMuTlBDU2NyaXB0LCBjdXJyZW50VGV4dC5idXR0b25zWzBdLmdvVG9EaWFsb2cpXG4gICAgICAgIC8vICAgfVxuICAgICAgICAgIGlmIChjdXJyZW50VGV4dC5idXR0b25zWzNdLnRyaWdnZXJlZEFjdGlvbnMpIHtcbiAgICAgICAgICAgIGN1cnJlbnRUZXh0LmJ1dHRvbnNbM10udHJpZ2dlcmVkQWN0aW9ucygpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBiZWdpblR5cGluZyhucGMpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBza2lwRGlhbG9ncyhucGM6RW50aXR5KSB7XG4gIGxldCBkaWFsb2dEYXRhID0gbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpXG4gIGlmICghZGlhbG9nRGF0YS52aXNpYmxlIHx8ICtEYXRlLm5vdygpIC0gZGlhbG9nRGF0YS5vcGVuVGltZSA8IDEwMCkgcmV0dXJuXG5cbiAgd2hpbGUgKFxuICAgIGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdICYmXG4gICAgICBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5za2lwYWJsZSAmJlxuICAgICAgICBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5pc1F1ZXN0aW9uXG4gICl7XG4gICAgaWYoZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0udHJpZ2dlcmVkQnlOZXh0KXtcbiAgICAgIGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLnRyaWdnZXJlZEJ5TmV4dCgpXG4gICAgfVxuXG4gICAgaWYoZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uc2tpcGFibGUgJiZcbiAgICAgIGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLmlzRW5kT2ZEaWFsb2dcbiAgICAgICl7XG4gICAgICAgIGNsb3NlRGlhbG9nV2luZG93KG5wYylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgXG4gICAgICBkaWFsb2dEYXRhLmluZGV4ICs9IDFcbiAgfVxuICBjb25maXJtVGV4dChucGMsIENvbmZpcm1Nb2RlLk5leHQpXG59XG5cbmV4cG9ydCB0eXBlIEltYWdlQXRsYXNEYXRhID0ge1xuICAgIGF0bGFzV2lkdGg6IG51bWJlcjtcbiAgICBhdGxhc0hlaWdodDogbnVtYmVyO1xuICAgIHNvdXJjZVdpZHRoOiBudW1iZXI7XG4gICAgc291cmNlSGVpZ2h0OiBudW1iZXI7XG4gICAgc291cmNlTGVmdDogbnVtYmVyO1xuICAgIHNvdXJjZVRvcDogbnVtYmVyO1xuICB9XG4gIFxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW1hZ2VBdGxhc01hcHBpbmcoZGF0YT86IEltYWdlQXRsYXNEYXRhKTogbnVtYmVyW10ge1xuICAgIGlmICghZGF0YSkgcmV0dXJuIFtdXG4gIFxuICAgIGNvbnN0IHtcbiAgICAgIGF0bGFzV2lkdGgsXG4gICAgICBhdGxhc0hlaWdodCxcbiAgICAgIHNvdXJjZVdpZHRoLFxuICAgICAgc291cmNlSGVpZ2h0LFxuICAgICAgc291cmNlVG9wLFxuICAgICAgc291cmNlTGVmdCxcbiAgICB9ID0gZGF0YVxuICBcbiAgICByZXR1cm4gW1xuICAgICAgc291cmNlTGVmdCAvIGF0bGFzV2lkdGgsIChhdGxhc0hlaWdodCAtIHNvdXJjZVRvcCAtIHNvdXJjZUhlaWdodCkgLyBhdGxhc0hlaWdodCxcbiAgICAgIHNvdXJjZUxlZnQgLyBhdGxhc1dpZHRoLCAoYXRsYXNIZWlnaHQgLSBzb3VyY2VUb3ApIC8gYXRsYXNIZWlnaHQsXG4gICAgICAoc291cmNlTGVmdCArIHNvdXJjZVdpZHRoKSAvIGF0bGFzV2lkdGgsIChhdGxhc0hlaWdodCAtIHNvdXJjZVRvcCkgLyBhdGxhc0hlaWdodCxcbiAgICAgIChzb3VyY2VMZWZ0ICsgc291cmNlV2lkdGgpIC8gYXRsYXNXaWR0aCwgKGF0bGFzSGVpZ2h0IC0gc291cmNlVG9wIC0gc291cmNlSGVpZ2h0KSAvIGF0bGFzSGVpZ2h0LFxuICAgIF1cbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiByZWFsV2lkdGgod2lkdGg/Om51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHdpZHRoID8gd2lkdGggOiBzZWN0aW9uLnNvdXJjZVdpZHRoXG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gcmVhbEhlaWdodChoZWlnaHQ/Om51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIGhlaWdodCA/IGhlaWdodCA6IHNlY3Rpb24uc291cmNlSGVpZ2h0XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZmluZERpYWxvZ0J5TmFtZShkaWFsb2dzOiBEaWFsb2dbXSwgbmFtZTogc3RyaW5nKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaWFsb2dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZiAoZGlhbG9nc1tpXS5uYW1lICYmIGRpYWxvZ3NbaV0ubmFtZSA9PSBuYW1lKSB7XG4gICAgICAgIHJldHVybiBpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAwXG4gIH1cbiAgIl19
|
|
469
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2RpYWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFBO0FBRXZDLE9BQU8sRUFBRSxXQUFXLEVBQVUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQWMsZ0JBQWdCLEVBQVksV0FBVyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzFHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFOUMsT0FBTyxFQUFxQixRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEksT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQXFCLElBQUksR0FBRyxFQUFFLENBQUE7QUFDN0QsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQXFCLElBQUksR0FBRyxFQUFFLENBQUE7QUFDakUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQW9CLElBQUksR0FBRyxFQUFFLENBQUE7QUFFaEUsTUFBTSxDQUFOLElBQVksV0FNVDtBQU5ILFdBQVksV0FBVztJQUNuQixtREFBVyxDQUFBO0lBQ1gsaURBQVUsQ0FBQTtJQUNWLDZDQUFRLENBQUE7SUFDUixtREFBVyxDQUFBO0lBQ1gsbURBQVcsQ0FBQTtBQUNiLENBQUMsRUFOUyxXQUFXLEtBQVgsV0FBVyxRQU1wQjtBQUVILE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQTtBQUVuQyxJ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QUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUM7UUFDOUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7S0FDM0I7U0FDRztRQUNGLFVBQVUsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO0tBQzVCO0lBRUQsSUFBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUM7UUFDM0MsVUFBVSxDQUFDLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUE7UUFDOUUsVUFBVSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFDL0osVUFBVSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQzlKLFVBQVUsQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxV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OUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDdkMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFO1lBQzlDLE9BQU8sQ0FBQyxDQUFBO1NBQ1Q7S0FDRjtJQUNELE9BQU8sQ0FBQyxDQUFBO0FBQ1YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0aWxzIGZyb20gJ0BkY2wtc2RrL3V0aWxzJ1xuXG5pbXBvcnQgeyBBdWRpb1NvdXJjZSwgRW50aXR5LCBlbmdpbmUgfSBmcm9tIFwiQGRjbC9zZGsvZWNzXCI7XG5pbXBvcnQgeyBhY3RpdmVOUEMsIGNsb3NlRGlhbG9nV2luZG93LCBmb2xsb3dQYXRoLCBucGNEYXRhQ29tcG9uZW50LCBzdG9wUGF0aCwgc3RvcFdhbGtpbmcgfSBmcm9tIFwiLi9ucGNcIjtcbmltcG9ydCB7IElzVHlwaW5nRGlhbG9nIH0gZnJvbSBcIi4vY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgaGFuZGxlRGlhbG9nVHlwaW5nIH0gZnJvbSBcIi4vc3lzdGVtc1wiO1xuaW1wb3J0IHsgRGlhbG9nLCBJbWFnZURhdGEsIE5QQ1N0YXRlIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IGxlZnRDbGlja1NlY3Rpb24sIGxlZnRDbGlja1NlY3Rpb25iQmxhY2ssIGxpZ2h0VGhlbWUsIHNlY3Rpb24sIHNraXBCdXR0b25TZWN0aW9uLCBza2lwQnV0dG9uU2VjdGlvbkJsYWNrIH0gZnJvbSAnLi91aSc7XG5pbXBvcnQgeyBnZXRCdWJibGVUZXh0TGVuZ3RoIH0gZnJvbSAnLi9idWJibGUnO1xuaW1wb3J0IHsgQ29sb3I0IH0gZnJvbSAnQGRjbC9zZGsvbWF0aCc7XG5cblxuZXhwb3J0IGNvbnN0IG5wY0RpYWxvZ0NvbXBvbmVudDogTWFwPEVudGl0eSwgYW55PiA9IG5ldyBNYXAoKVxuZXhwb3J0IGNvbnN0IG5wY0RpYWxvZ1R5cGluZ1N5c3RlbXM6IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcbmV4cG9ydCBjb25zdCBucGNEaWFsb2dJbnB1dExpc3RlbmVyOiBNYXA8RW50aXR5LGFueT4gPSBuZXcgTWFwKClcblxuZXhwb3J0IGVudW0gQ29uZmlybU1vZGUge1xuICAgIENvbmZpcm0gPSAwLFxuICAgIENhbmNlbCA9IDEsXG4gICAgTmV4dCA9IDIsXG4gICAgQnV0dG9uMyA9IDMsXG4gICAgQnV0dG9uNCA9IDRcbiAgfVxuXG5leHBvcnQgbGV0IFVJc2NhbGVNdWx0aXBsaWVyID0gMC43NVxuXG5sZXQgcG9ydHJhaXRYUG9zID0gLTUwICogVUlzY2FsZU11bHRpcGxpZXIgXG5sZXQgcG9ydHJhaXRZUG9zID0gMjAgKiBVSXNjYWxlTXVsdGlwbGllclxuXG5sZXQgaW1hZ2VYUG9zID0gMzUwICogVUlzY2FsZU11bHRpcGxpZXJcbmxldCBpbWFnZVlQb3MgPSA1MCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5cbmxldCBwb3J0cmFpdFNjYWxlID0gMjU2ICogVUlzY2FsZU11bHRpcGxpZXIgXG5sZXQgaW1hZ2VTY2FsZSA9IDI1NiAqIFVJc2NhbGVNdWx0aXBsaWVyIFxuXG5sZXQgdGV4dFNpemUgPSAyNCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5sZXQgdGV4dFlQb3MgPSAxMCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5cbmxldCBidXR0b25XaWR0aCA9IDE3NCogVUlzY2FsZU11bHRpcGxpZXJcbmxldCBidXR0b25IZWlnaHQgPSA0NiogVUlzY2FsZU11bHRpcGxpZXJcblxuXG5sZXQgYnV0dG9uVGV4dFNpemUgPSAyMCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5cbmxldCBidXR0b24xWFBvcyA9IDE1MCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5sZXQgYnV0dG9uMlhQb3MgPSAtODAgKiBVSXNjYWxlTXVsdGlwbGllclxubGV0IGJ1dHRvbjNYUG9zID0gLTgwICogVUlzY2FsZU11bHRpcGxpZXJcbmxldCBidXR0b240WFBvcyA9IDE1MCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5cbmxldCBidXR0b24xWVBvcyA9IC02NSAqIFVJc2NhbGVNdWx0aXBsaWVyXG5sZXQgYnV0dG9uMllQb3MgPSAtNjUgKiBVSXNjYWxlTXVsdGlwbGllclxubGV0IGJ1dHRvbjFZUG9zNCA9IC0yMCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5sZXQgYnV0dG9uMllQb3M0ID0gLTIwICogVUlzY2FsZU11bHRpcGxpZXJcbmxldCBidXR0b24zWVBvcyA9IC04MCAqIFVJc2NhbGVNdWx0aXBsaWVyXG5sZXQgYnV0dG9uNFlQb3MgPSAtODAgKiBVSXNjYWxlTXVsdGlwbGllclxuXG5sZXQgc2tpcEJ1dHRvblhQb3MgPSAtMzAwICogVUlzY2FsZU11bHRpcGxpZXJcbmxldCBza2lwQnV0dG9uWVBvcyA9IC0xMDAgKiBVSXNjYWxlTXVsdGlwbGllclxuXG5sZXQgYnV0dG9uSWNvbldpZHRoID0gMjYgKiBVSXNjYWxlTXVsdGlwbGllclxubGV0IGJ1dHRvbkljb25IZWlnaHQgPSAyNiAqIFVJc2NhbGVNdWx0aXBsaWVyXG5cbmV4cG9ydCBmdW5jdGlvbiBhZGREaWFsb2cobnBjOkVudGl0eSwgc291bmQ/OnN0cmluZywgZGVmYXVsdFBvcnRyYWl0PzpJbWFnZURhdGEpe1xuICAgIGNvbnNvbGUubG9nKCdhZGRpbmcgZGlhbG9nIGZvciBucGMnLCBucGMpXG4gICAgbnBjRGlhbG9nQ29tcG9uZW50LnNldChucGMsIHtcbiAgICAgICAgdHlwaW5nOnRydWUsXG4gICAgICAgIHZpc2libGU6ZmFsc2UsXG4gICAgICAgIHZpc2libGVUZXh0OlwiXCIsXG4gICAgICAgIHZpc2libGVDaGFyczowLFxuICAgICAgICBmdWxsVGV4dDpcIlwiLFxuICAgICAgICB0aW1lcjowLFxuICAgICAgICBzcGVlZDozMCxcbiAgICAgICAgb3JpZ2luYWxTY3JpcHQ6W10sXG4gICAgICAgIHNjcmlwdDpbXSxcbiAgICAgICAgaW5kZXg6MCxcbiAgICAgICAgc291bmQ6IHNvdW5kID8gc291bmQgOiB1bmRlZmluZWQsXG4gICAgICAgIHNvdW5kUGxheWVyOiBzb3VuZCA/IGVuZ2luZS5hZGRFbnRpdHkoKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZm9udFNpemU6MjIsXG4gICAgICAgIGlzUXVlc3Rpb246ZmFsc2UsXG4gICAgICAgIGJ1dHRvbnM6MCxcbiAgICAgICAgZGlzcGxheVBvcnRyYWl0OiBkZWZhdWx0UG9ydHJhaXQgPyB0cnVlIDogZmFsc2UsXG4gICAgICAgIGRlZmF1bHRQb3J0cmFpdDogZGVmYXVsdFBvcnRyYWl0ID8gZGVmYXVsdFBvcnRyYWl0IDogbnVsbCxcbiAgICAgICAgZGVmYXVsdFBvcnRyYWl0VGV4dHVyZTogZGVmYXVsdFBvcnRyYWl0ID8gZGVmYXVsdFBvcnRyYWl0LnBhdGggOiBsaWdodFRoZW1lLFxuICAgICAgICBwb3J0cmFpdFdpZHRoOiBkZWZhdWx0UG9ydHJhaXQgJiYgZGVmYXVsdFBvcnRyYWl0LndpZHRoID8gZGVmYXVsdFBvcnRyYWl0LndpZHRoICogVUlzY2FsZU11bHRpcGxpZXIgOiBwb3J0cmFpdFNjYWxlLFxuICAgICAgICBwb3J0cmFpdEhlaWdodDogZGVmYXVsdFBvcnRyYWl0ICYmIGRlZmF1bHRQb3J0cmFpdC5oZWlnaHQgPyBkZWZhdWx0UG9ydHJhaXQuaGVpZ2h0ICogVUlzY2FsZU11bHRpcGxpZXIgOiBwb3J0cmFpdFNjYWxlLFxuICAgICAgICBwb3J0cmFpdFg6IGRlZmF1bHRQb3J0cmFpdCAmJiBkZWZhdWx0UG9ydHJhaXQub2Zmc2V0WCA/IGRlZmF1bHRQb3J0cmFpdC5vZmZzZXRYICogVUlzY2FsZU11bHRpcGxpZXIgKyBwb3J0cmFpdFhQb3MgOiBwb3J0cmFpdFhQb3MsXG4gICAgICAgIHBvcnRyYWl0WTogIGRlZmF1bHRQb3J0cmFpdCAmJiBkZWZhdWx0UG9ydHJhaXQub2Zmc2V0WSA/IGRlZmF1bHRQb3J0cmFpdC5vZmZzZXRZICogVUlzY2FsZU11bHRpcGxpZXIgKyBwb3J0cmFpdFlQb3MgOiBwb3J0cmFpdFlQb3MsXG4gICAgICAgIHBvcnRhaXRTSGVpZ2h0OiBkZWZhdWx0UG9ydHJhaXQgJiYgZGVmYXVsdFBvcnRyYWl0LnNlY3Rpb24gJiYgZGVmYXVsdFBvcnRyYWl0LnNlY3Rpb24uc291cmNlSGVpZ2h0ID8gZGVmYXVsdFBvcnRyYWl0LnNlY3Rpb24uc291cmNlSGVpZ2h0IDogMjU2LFxuICAgICAgICBwb3J0cmFpdFNXaWR0aDogZGVmYXVsdFBvcnRyYWl0ICYmIGRlZmF1bHRQb3J0cmFpdC5zZWN0aW9uICYmIGRlZmF1bHRQb3J0cmFpdC5zZWN0aW9uLnNvdXJjZVdpZHRoID8gZGVmYXVsdFBvcnRyYWl0LnNlY3Rpb24uc291cmNlV2lkdGggOiAyNTYsXG4gICAgICAgIHBvcnRhaXRTVG9wOiBkZWZhdWx0UG9ydHJhaXQgJiYgZGVmYXVsdFBvcnRyYWl0LnNlY3Rpb24gJiYgZGVmYXVsdFBvcnRyYWl0LnNlY3Rpb24uc291cmNlVG9wID8gZGVmYXVsdFBvcnRyYWl0LnNlY3Rpb24uc291cmNlVG9wIDogMCxcbiAgICAgICAgcG9ydHJhaXRTTGVmdDogZGVmYXVsdFBvcnRyYWl0ICYmIGRlZmF1bHRQb3J0cmFpdC5zZWN0aW9uICYmIGRlZmF1bHRQb3J0cmFpdC5zZWN0aW9uLnNvdXJjZUxlZnQgPyBkZWZhdWx0UG9ydHJhaXQuc2VjdGlvbi5zb3VyY2VMZWZ0IDogMFxuICAgIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwbGF5SW1hZ2UoKXtcbiAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gZmFsc2UgOiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLmRpc3BsYXlJbWFnZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheVBvcnRyYWl0KCl7XG4gIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IGZhbHNlIDogbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5kaXNwbGF5UG9ydHJhaXRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BsYXlTa2lwYWJsZSgpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBmYWxzZSA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuc2tpcGFibGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNraXBhYmxlVGhlbWUoKXtcbiAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gc2tpcEJ1dHRvblNlY3Rpb25CbGFjayA6IG5wY0RhdGFDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLnRoZW1lID09IGxpZ2h0VGhlbWUgPyBza2lwQnV0dG9uU2VjdGlvbkJsYWNrIDogc2tpcEJ1dHRvblNlY3Rpb25cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExlZnRDbGlja1RoZW1lKCl7XG4gIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IGxlZnRDbGlja1NlY3Rpb24gOiBucGNEYXRhQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS50aGVtZSA9PSBsaWdodFRoZW1lID8gbGVmdENsaWNrU2VjdGlvbiA6IGxlZnRDbGlja1NlY3Rpb25iQmxhY2tcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvc2l0aW9uVGV4dFgoKXtcbiAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gXCJcIiA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkucG9zaXRpb25YXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3NpdGlvblRleHRZKCl7XG4gIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IFwiXCIgOiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLnBvc2l0aW9uWVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcG9zaXRpb25Qb3J0YWl0WCgpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBcIlwiIDogbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5wb3J0cmFpdFhcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvc2l0aW9uUG9ydGFpdFkoKXtcbiAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gXCJcIiA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkucG9ydHJhaXRZXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3J0cmFpdFdpZHRoKCl7XG4gIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IFwiXCIgOiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLnBvcnRyYWl0V2lkdGhcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvcnRyYWl0SGVpZ2h0KCl7XG4gIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IFwiXCIgOiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLnBvcnRyYWl0SGVpZ2h0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3NpdGlvbkltYWdlWCgpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBcIlwiIDogbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5pbWFnZVhcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBvc2l0aW9uSW1hZ2VZKCl7XG4gIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IFwiXCIgOiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLmltYWdlWVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW1hZ2VXaWR0aCgpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBcIlwiIDogbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5pbWFnZVdpZHRoXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbWFnZUhlaWdodCgpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBcIlwiIDogbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5pbWFnZUhlaWdodFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9ydHJhaXQoKXtcbiAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gXCJcIiA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuZGVmYXVsdFBvcnRyYWl0VGV4dHVyZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW1hZ2UoKXtcbiAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gXCJcIiA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuZGlhbG9nSW1hZ2VUZXh0dXJlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXh0KCl7XG4gICAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gXCJcIiA6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkudmlzaWJsZVRleHRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRleHRDb2xvcigpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBDb2xvcjQuQmxhY2soKSA6IG5wY0RhdGFDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLnRoZW1lID09IGxpZ2h0VGhlbWUgPyBDb2xvcjQuQmxhY2soKSA6IENvbG9yNC5XaGl0ZSgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUaGVtZSgpe1xuICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBsaWdodFRoZW1lIDogbnBjRGF0YUNvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkudGhlbWVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJ1dHRvblRleHQoYnV0dG9uOm51bWJlcil7XG4gICAgbGV0IHRleHQgPSBcIlwiXG5cbiAgICBpZihhY3RpdmVOUEMgIT0gMCAmJiBucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpKXtcbiAgICAgICAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpXG4gICAgICAgIGlmKGRpYWxvZ0RhdGEuaXNRdWVzdGlvbiAmJiBkaWFsb2dEYXRhLmJ1dHRvbnMgPiBidXR0b24pe1xuICAgICAgICAgICAgdGV4dCA9IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLmJ1dHRvbnNbYnV0dG9uXS5sYWJlbFxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0ZXh0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb250U2l6ZSgpe1xuICAgIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IDIyIDogbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5mb250U2l6ZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheURpYWxvZygpe1xuICAgIHJldHVybiBhY3RpdmVOUEMgPT0gMCB8fCAhbnBjRGlhbG9nQ29tcG9uZW50LmhhcyhhY3RpdmVOUEMgYXMgRW50aXR5KSA/IGZhbHNlIDogIG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkudmlzaWJsZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheUJ1dHRvbihidXR0b246bnVtYmVyKXtcbiAgICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyBmYWxzZSA6ICBucGNEaWFsb2dDb21wb25lbnQuZ2V0KGFjdGl2ZU5QQyBhcyBFbnRpdHkpLmlzUXVlc3Rpb24gJiYgbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5idXR0b25zID49IGJ1dHRvblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGlzcGxheUZpcnN0QnV0dG9uQ29udGFpbmVyKCl7XG4gICAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gZmFsc2UgOiAgbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5pc1F1ZXN0aW9uICYmIG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuYnV0dG9ucyA+PSAxXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkaXNwbGF5U2Vjb25kQnV0dG9uQ29udGFpbmVyKCl7XG4gICAgcmV0dXJuIGFjdGl2ZU5QQyA9PSAwIHx8ICFucGNEaWFsb2dDb21wb25lbnQuaGFzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpID8gZmFsc2UgOiAgbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5pc1F1ZXN0aW9uICYmIG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuYnV0dG9ucyA+PSAzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXh0UG9zaXRpb24oKXtcbiAgICAvL2NvbnNvbGUubG9nKG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkuYnV0dG9ucylcbiAgICByZXR1cm4gYWN0aXZlTlBDID09IDAgfHwgIW5wY0RpYWxvZ0NvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkgPyB7dG9wOjAsIGxlZnQ6MH0gOiB7dG9wOm5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkubWFyZ2luICsgbnBjRGlhbG9nQ29tcG9uZW50LmdldChhY3RpdmVOUEMgYXMgRW50aXR5KS5wb3NpdGlvblksIGxlZnQ6IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQoYWN0aXZlTlBDIGFzIEVudGl0eSkucG9zaXRpb25YfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnV0dG9uQ2xpY2soYnV0dG9uOm51bWJlcil7XG4gICAgaWYoYWN0aXZlTlBDICE9IDAgJiYgbnBjRGF0YUNvbXBvbmVudC5oYXMoYWN0aXZlTlBDIGFzIEVudGl0eSkpe1xuICAgICAgICBjb25maXJtVGV4dChhY3RpdmVOUEMgYXMgRW50aXR5LCBidXR0b24pXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xvc2VEaWFsb2cobnBjOkVudGl0eSl7XG4gICAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYylcbiAgICBkaWFsb2dEYXRhLnZpc2libGUgPSBmYWxzZVxuICAgIGRpYWxvZ0RhdGEudHlwaW5nID0gZmFsc2VcbiAgICBkaWFsb2dEYXRhLnZpc2libGVUZXh0ID0gXCJcIlxuICAgIGRpYWxvZ0RhdGEudmlzaWJsZUNoYXJzID0gMFxuICAgIGRpYWxvZ0RhdGEuZnVsbFRleHQgPSBcIlwiXG4gICAgZGlhbG9nRGF0YS50aW1lciA9IDBcbiAgICBkaWFsb2dEYXRhLmluZGV4ID0gMFxuICAgIGRpYWxvZ0RhdGEuc2NyaXB0Lmxlbmd0aCA9IDBcbiAgICBkaWFsb2dEYXRhLmJ1dHRvbnMgPSAwXG4gICAgZGlhbG9nRGF0YS5tYXJnaW4gPSAwXG4gICAgZGlhbG9nRGF0YS5kaXNwbGF5UG9ydHJhaXQgPSBmYWxzZVxuICAgIGRpYWxvZ0RhdGEuc2tpcGFibGUgPSBmYWxzZVxuICAgIGRpYWxvZ0RhdGEuZGlzcGxheUltYWdlID0gZmFsc2VcbiAgICBjb25zb2xlLmxvZygnZGlhbG9nIGRhdGEgaXMgbm93ICcsIGRpYWxvZ0RhdGEpXG4gICAgLy8gaWYobnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS5tYW51YWxTdG9wKXtcbiAgICAvLyAgIGNvbnNvbGUubG9nKCdkaWFsb2cgZW5kZWQsIG5lZWR0byB3YWxrIGFnYWluJylcbiAgICAvLyAgIGZvbGxvd1BhdGgobnBjKVxuICAgIC8vIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRhbGsobnBjOkVudGl0eSwgZGlhbG9nOkRpYWxvZ1tdLCBzdGFydEluZGV4PzpudW1iZXIgfCBzdHJpbmcsIGR1cmF0aW9uPzpudW1iZXIpe1xuICAgIG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykuaW50cm9kdWNlZCA9IHRydWVcbiAgICBpZihucGNEaWFsb2dDb21wb25lbnQuaGFzKG5wYykpe1xuXG4gICAgICAgIGlmKG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykuc3RhdGUgPT0gTlBDU3RhdGUuRk9MTE9XUEFUSCl7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJzcGVha2luZyBkaWFsb2csIG5lZWQgdG8gc3RvcCBwYXRoXCIpXG4gICAgICAgICAgc3RvcFdhbGtpbmcobnBjKVxuICAgICAgICB9XG5cbiAgICAgICAgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS5zdGF0ZSA9IE5QQ1N0YXRlLlRBTEtJTkdcblxuXG4gICAgICAgIGxldCBpbmRleDphbnlcblxuICAgICAgICBpZiAoIXN0YXJ0SW5kZXgpIHtcbiAgICAgICAgICBpbmRleCA9IDBcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc3RhcnRJbmRleCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICBpbmRleCA9IHN0YXJ0SW5kZXhcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpbmRleCA9IGZpbmREaWFsb2dCeU5hbWUoZGlhbG9nLCBzdGFydEluZGV4KVxuICAgICAgICB9XG5cbiAgICAgICAgb3BlbkRpYWxvZyhucGMsZGlhbG9nLCBpbmRleClcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcGVuRGlhbG9nKG5wYzpFbnRpdHksIGRpYWxvZzpEaWFsb2dbXSwgc3RhcnRJbmRleDpudW1iZXIpe1xuICAgIGNvbnNvbGUubG9nKCdzY3JpcHQgdG8gdGFsayBpcycsIGRpYWxvZylcbiAgICBsZXQgZGlhbG9nRGF0YSA9IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQobnBjKVxuICAgIGRpYWxvZ0RhdGEuc2NyaXB0ID0gZGlhbG9nLnNsaWNlKClcbiAgICBkaWFsb2dEYXRhLmluZGV4ID0gc3RhcnRJbmRleFxuXG4gICAgY29uc29sZS5sb2coJ2RpYWxvZyBkYXRhIGlzIG5vdycsIGRpYWxvZ0RhdGEpXG4gICAgXG4gICAgbGV0IGN1cnJlbnRUZXh0OiBEaWFsb2cgPSBkaWFsb2dbc3RhcnRJbmRleF0gPyBkaWFsb2dbc3RhcnRJbmRleF0gOiB7IHRleHQ6ICcnIH1cblxuICAgIGlmIChjdXJyZW50VGV4dC5hdWRpbykge1xuICAgICAgICBBdWRpb1NvdXJjZS5jcmVhdGVPclJlcGxhY2UoZGlhbG9nRGF0YS5zb3VuZFBsYXllciwge1xuICAgICAgICAgICAgYXVkaW9DbGlwVXJsOiBjdXJyZW50VGV4dC5hdWRpbyxcbiAgICAgICAgICAgIGxvb3A6IGZhbHNlLFxuICAgICAgICAgICAgcGxheWluZzogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgbGV0IGF1ZGlvID0gQXVkaW9Tb3VyY2UuZ2V0TXV0YWJsZShkaWFsb2dEYXRhLnNvdW5kUGxheWVyKVxuICAgICAgICBhdWRpby52b2x1bWUgPSAwLjVcbiAgICAgICAgYXVkaW8ucGxheWluZyA9IHRydWVcbiAgICB9IGVsc2UgaWYgKGRpYWxvZ0RhdGEuc291bmQpIHtcbiAgICAgICAgQXVkaW9Tb3VyY2UuY3JlYXRlT3JSZXBsYWNlKGRpYWxvZ0RhdGEuc291bmRQbGF5ZXIsIHtcbiAgICAgICAgICAgIGF1ZGlvQ2xpcFVybDogZGlhbG9nRGF0YS5zb3VuZCxcbiAgICAgICAgICAgIGxvb3A6IGZhbHNlLFxuICAgICAgICAgICAgcGxheWluZzogZmFsc2VcbiAgICAgICAgfSlcbiAgICAgICAgbGV0IGF1ZGlvID0gQXVkaW9Tb3VyY2UuZ2V0TXV0YWJsZShkaWFsb2dEYXRhLnNvdW5kUGxheWVyKVxuICAgICAgICBhdWRpby52b2x1bWUgPSAwLjVcbiAgICAgICAgYXVkaW8ucGxheWluZyA9IHRydWVcbiAgICB9XG5cbiAgICAvL1RPRE9cbiAgICAvL3NldCBpbWFnZSBvbiB0aGUgcmlnaHRcbiAgICAvL3NldCB0ZXh0XG4gICAgYmVnaW5UeXBpbmcobnBjKVxufSBcblxuZXhwb3J0IGZ1bmN0aW9uIGFkZExpbmVCcmVhayh0ZXh0OnN0cmluZywgYnViYmxlPzpib29sZWFuKXtcbiAgcmV0dXJuIGxpbmVCcmVhayh0ZXh0LCBidWJibGU/IGdldEJ1YmJsZVRleHRMZW5ndGgodGV4dCkhIDogNDUpXG59XG5cbmZ1bmN0aW9uIGJlZ2luVHlwaW5nKG5wYzpFbnRpdHkpe1xuICAgIGxldCBkaWFsb2dEYXRhID0gbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpXG4gICAgZGlhbG9nRGF0YS5mdWxsVGV4dCA9IGFkZExpbmVCcmVhayhkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS50ZXh0KSAvL2RpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLnRleHRcbiAgICBkaWFsb2dEYXRhLnZpc2libGUgPSB0cnVlXG4gICAgZGlhbG9nRGF0YS50eXBpbmcgPSB0cnVlXG4gICAgZGlhbG9nRGF0YS52aXNpYmxlVGV4dCA9IFwiXCJcbiAgICBkaWFsb2dEYXRhLnZpc2libGVDaGFycyA9IDBcbiAgICBkaWFsb2dEYXRhLnRpbWVyID0gMFxuICAgIGRpYWxvZ0RhdGEuaXNRdWVzdGlvbiA9IGZhbHNlXG4gICAgZGlhbG9nRGF0YS5idXR0b25zID0gMFxuICAgIGRpYWxvZ0RhdGEuZGlzcGxheVBvcnRyYWl0ID0gZmFsc2VcbiAgICBkaWFsb2dEYXRhLmRpc3BsYXlJbWFnZSA9IGZhbHNlXG4gICAgZGlhbG9nRGF0YS5za2lwYWJsZSA9IGZhbHNlXG5cbiAgICBsZXQgY3VycmVudFRleHQ6IERpYWxvZyA9IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdID8gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0gOiB7IHRleHQ6ICcnIH1cbiAgICBpZihjdXJyZW50VGV4dC5wb3J0cmFpdCl7XG4gICAgICBkaWFsb2dEYXRhLmRlZmF1bHRQb3J0cmFpdFRleHR1cmUgPSBjdXJyZW50VGV4dC5wb3J0cmFpdC5wYXRoXG5cbiAgICAgIGRpYWxvZ0RhdGEucG9ydHJhaXRYID0gY3VycmVudFRleHQucG9ydHJhaXQub2Zmc2V0WFxuICAgICAgPyBjdXJyZW50VGV4dC5wb3J0cmFpdC5vZmZzZXRYICogVUlzY2FsZU11bHRpcGxpZXIgKyBwb3J0cmFpdFhQb3NcbiAgICAgIDogcG9ydHJhaXRYUG9zXG5cbiAgICAgIGRpYWxvZ0RhdGEucG9ydHJhaXRZID0gY3VycmVudFRleHQucG9ydHJhaXQub2Zmc2V0WVxuICAgICAgPyBjdXJyZW50VGV4dC5wb3J0cmFpdC5vZmZzZXRZICogVUlzY2FsZU11bHRpcGxpZXIgKyBwb3J0cmFpdFlQb3NcbiAgICAgIDogcG9ydHJhaXRZUG9zXG5cbiAgICAgIGRpYWxvZ0RhdGEucG9ydHJhaXRXaWR0aCA9IGN1cnJlbnRUZXh0LnBvcnRyYWl0LndpZHRoID8gY3VycmVudFRleHQucG9ydHJhaXQud2lkdGggKiBVSXNjYWxlTXVsdGlwbGllciA6IHBvcnRyYWl0U2NhbGVcblxuICAgICAgZGlhbG9nRGF0YS5wb3J0cmFpdEhlaWdodCA9IGN1cnJlbnRUZXh0LnBvcnRyYWl0LmhlaWdodCA/IGN1cnJlbnRUZXh0LnBvcnRyYWl0LmhlaWdodCAqIFVJc2NhbGVNdWx0aXBsaWVyIDogcG9ydHJhaXRTY2FsZVxuICAgICAgZGlhbG9nRGF0YS5kaXNwbGF5UG9ydHJhaXQgPSB0cnVlXG4gICAgfWVsc2UgaWYoZGlhbG9nRGF0YS5kZWZhdWx0UG9ydHJhaXQpe1xuICAgICAgZGlhbG9nRGF0YS5kaXNwbGF5UG9ydHJhaXQgPSB0cnVlXG4gICAgfVxuICAgIGVsc2V7XG4gICAgICBkaWFsb2dEYXRhLmRpc3BsYXlQb3J0cmFpdCA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYoZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uaXNRdWVzdGlvbil7XG4gICAgICAgIGRpYWxvZ0RhdGEuYnV0dG9ucyA9IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLmJ1dHRvbnMubGVuZ3RoXG4gICAgICAgIGlmKGRpYWxvZ0RhdGEuYnV0dG9ucyA+PSAzKXtcbiAgICAgICAgICAgIGRpYWxvZ0RhdGEubWFyZ2luID0gLTI1XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZihkaWFsb2dEYXRhLmJ1dHRvbnMgPj0xKXtcbiAgICAgICAgICAgIGRpYWxvZ0RhdGEubWFyZ2luID0gLTI1XG4gICAgICAgIH1cblxuICAgICAgICBjb25zb2xlLmxvZyhkaWFsb2dEYXRhKVxuICAgICAgICB1dGlscy50aW1lcnMuc2V0VGltZW91dChcbiAgICAgICAgICAgIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzZXR0aW5nIHF1ZXN0aW9uIHRvIHRydWUnKVxuICAgICAgICAgICAgICAgIGRpYWxvZ0RhdGEuaXNRdWVzdGlvbiA9IHRydWVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICA3MDBcbiAgICAgICAgICApXG4gICAgfVxuXG4gICAgZGlhbG9nRGF0YS5vcGVuVGltZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSlcbiAgICBpZihkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5mb250U2l6ZSl7XG4gICAgICAgIGRpYWxvZ0RhdGEuZm9udFNpemUgPSBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5mb250U2l6ZVxuICAgIH1cblxuICAgIGlmKGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLnNraXBhYmxlKXtcbiAgICAgIGRpYWxvZ0RhdGEuc2tpcGFibGUgPSB0cnVlXG4gICAgfVxuICAgIGVsc2V7XG4gICAgICBkaWFsb2dEYXRhLnNraXBhYmxlID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZihkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5pbWFnZSl7XG4gICAgICBkaWFsb2dEYXRhLmRpYWxvZ0ltYWdlVGV4dHVyZSA9IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLmltYWdlLnBhdGhcbiAgICAgIGRpYWxvZ0RhdGEuaW1hZ2VYID0gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uaW1hZ2Uub2Zmc2V0WCA/IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLmltYWdlLm9mZnNldFggKiBVSXNjYWxlTXVsdGlwbGllciArIGltYWdlWFBvcyA6IC00MFxuICAgICAgZGlhbG9nRGF0YS5pbWFnZVkgPSBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5pbWFnZS5vZmZzZXRZID8gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uaW1hZ2Uub2Zmc2V0WSAqIFVJc2NhbGVNdWx0aXBsaWVyICsgaW1hZ2VZUG9zIDogNDBcbiAgICAgIGRpYWxvZ0RhdGEuaW1hZ2VIZWlnaHQgPSBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5pbWFnZS5oZWlnaHQgPyBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5oZWlnaHQgKiBVSXNjYWxlTXVsdGlwbGllciA6IGltYWdlU2NhbGVcbiAgICAgIGRpYWxvZ0RhdGEuaW1hZ2VXaWR0aCA9IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLmltYWdlLndpZHRoID8gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0ud2lkdGggKiBVSXNjYWxlTXVsdGlwbGllciA6IGltYWdlU2NhbGVcbiAgICAgIGRpYWxvZ0RhdGEuZGlzcGxheUltYWdlID0gdHJ1ZVxuICAgIH1cblxuICAgIGRpYWxvZ0RhdGEucG9zaXRpb25YID0gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0ub2Zmc2V0WCA/IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLm9mZnNldFggKiBVSXNjYWxlTXVsdGlwbGllciA6ICcyMiUnXG4gICAgZGlhbG9nRGF0YS5wb3NpdGlvblkgPSBkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5vZmZzZXRZID8gZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0ub2Zmc2V0WSAqIFVJc2NhbGVNdWx0aXBsaWVyICsgdGV4dFlQb3MgOiB0ZXh0WVBvc1xuICAgIFxuICAgIGlmKGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLmhhc093blByb3BlcnR5KFwidHlwZVNwZWVkXCIpKXtcbiAgICAgICAgZGlhbG9nRGF0YS5zcGVlZCA9IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLnR5cGVTcGVlZFxuICAgIH1cbiAgICBlbHNle1xuICAgICAgICBkaWFsb2dEYXRhLnNwZWVkID0gMzBcbiAgICB9XG5cbiAgICBpZihkaWFsb2dEYXRhLnNwZWVkIDw9IDApe1xuICAgICAgICBydXNoVGV4dChucGMpXG4gICAgfVxuICAgIGVsc2V7XG4gICAgICAgIGlmKCFJc1R5cGluZ0RpYWxvZy5oYXMobnBjKSl7XG4gICAgICAgICAgICBJc1R5cGluZ0RpYWxvZy5jcmVhdGUobnBjKVxuICAgICAgICB9XG4gICAgXG4gICAgICAgIC8vIGlmKCFucGNEaWFsb2dUeXBpbmdTeXN0ZW1zLmhhcyhucGMpKXtcbiAgICAgICAgLy8gICAgIG5wY0RpYWxvZ1R5cGluZ1N5c3RlbXMuc2V0KG5wYyxlbmdpbmUuYWRkU3lzdGVtKGhhbmRsZURpYWxvZ1R5cGluZykpXG4gICAgICAgIC8vIH1cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRMaW5lQnJlYWtzKGRpYWxvZzpEaWFsb2dbXSwgYnViYmxlPzpib29sZWFuKXtcbiAgICBsZXQgY2xlYW5lZDpEaWFsb2dbXSA9IGRpYWxvZy5zbGljZSgpXG4gICAgY2xlYW5lZC5mb3JFYWNoKChkKT0+e1xuICAgICAgZC50ZXh0ID0gbGluZUJyZWFrKGQudGV4dCwgYnViYmxlPyBnZXRCdWJibGVUZXh0TGVuZ3RoKGQudGV4dCkhIDogNTApXG4gICAgfSlcbiAgICByZXR1cm4gY2xlYW5lZFxufVxuXG5mdW5jdGlvbiBsaW5lQnJlYWsodGV4dDogc3RyaW5nLCBtYXhMaW5lTGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHdvcmRzID0gdGV4dC5zcGxpdCgnICcpO1xuICAgIGxldCBjdXJyZW50TGluZSA9ICcnO1xuICAgIGNvbnN0IGxpbmVzID0gW107XG4gIFxuICAgIGZvciAoY29uc3Qgd29yZCBvZiB3b3Jkcykge1xuICAgICAgaWYgKGN1cnJlbnRMaW5lLmxlbmd0aCArIHdvcmQubGVuZ3RoICsgMSA8PSBtYXhMaW5lTGVuZ3RoKSB7XG4gICAgICAgIGN1cnJlbnRMaW5lICs9IGAke3dvcmR9IGA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsaW5lcy5wdXNoKGN1cnJlbnRMaW5lLnRyaW0oKSk7XG4gICAgICAgIGN1cnJlbnRMaW5lID0gYCR7d29yZH0gYDtcbiAgICAgIH1cbiAgICB9XG4gICAgbGluZXMucHVzaChjdXJyZW50TGluZS50cmltKCkpO1xuICAgIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZURpYWxvZ0NsaWNrKCl7XG4gIGNvbnNvbGUubG9nKCdoYW5kbGluZyBjbGljaycpXG4gICAgbGV0IG5wYyA9IGFjdGl2ZU5QQyBhcyBFbnRpdHlcbiAgICBpZihucGNEaWFsb2dDb21wb25lbnQuaGFzKG5wYykpe1xuICAgICAgICBsZXQgZGlhbG9nRGF0YSA9IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQobnBjKVxuICAgICAgICBpZighZGlhbG9nRGF0YS52aXNpYmxlIHx8IChNYXRoLmZsb29yKERhdGUubm93KCkpIC0gZGlhbG9nRGF0YS5vcGVuVGltZSAgPCAxMDApKSByZXR1cm5cbiAgICAgICAgXG4gICAgICAgIGlmKGRpYWxvZ0RhdGEudHlwaW5nKXtcbiAgICAgICAgICAgIHJ1c2hUZXh0KG5wYylcbiAgICAgICAgfVxuICAgICAgICBlbHNle1xuICAgICAgICAgICAgY29uZmlybVRleHQobnBjLCBDb25maXJtTW9kZS5OZXh0KVxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVzaFRleHQobnBjOkVudGl0eSl7XG4gICAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYylcbiAgICBkaWFsb2dEYXRhLnR5cGluZyA9IGZhbHNlXG4gICAgZGlhbG9nRGF0YS50aW1lciA9IDBcbiAgICBkaWFsb2dEYXRhLnZpc2libGVDaGFycyA9IGRpYWxvZ0RhdGEuZnVsbFRleHQubGVuZ3RoXG4gICAgZGlhbG9nRGF0YS52aXNpYmxlVGV4dCA9IGRpYWxvZ0RhdGEuZnVsbFRleHRcbiAgICAvL2VuZ2luZS5yZW1vdmVTeXN0ZW0obnBjRGlhbG9nVHlwaW5nU3lzdGVtcy5nZXQobnBjKSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpcm1UZXh0KG5wYzpFbnRpdHksIG1vZGU6IENvbmZpcm1Nb2RlKTogdm9pZCB7XG4gIGNvbnNvbGUubG9nKCdjb25maXJtIHRleHQnKVxuICAgIGxldCBkaWFsb2dEYXRhID0gbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpXG4gICAgZGlhbG9nRGF0YS5vcGVuVGltZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSlcblxuICAgIGxldCBjdXJyZW50VGV4dCA9IGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdXG4gICAgLy8gVXBkYXRlIGFjdGl2ZSB0ZXh0XG4gICAgaWYgKG1vZGUgPT0gQ29uZmlybU1vZGUuTmV4dCkge1xuICAgICAgICBpZiAoIWN1cnJlbnRUZXh0LmlzUXVlc3Rpb24pIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50VGV4dC50cmlnZ2VyZWRCeU5leHQpIHtcbiAgICAgICAgICAgIGN1cnJlbnRUZXh0LnRyaWdnZXJlZEJ5TmV4dCgpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3VycmVudFRleHQuaXNFbmRPZkRpYWxvZykge1xuICAgICAgICAgICAgY2xvc2VEaWFsb2cobnBjKVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkaWFsb2dEYXRhLmluZGV4KytcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtb2RlID09IENvbmZpcm1Nb2RlLkNvbmZpcm0pIHtcbiAgICAgICAgaWYgKGN1cnJlbnRUZXh0LmJ1dHRvbnMgJiYgY3VycmVudFRleHQuYnV0dG9ucy5sZW5ndGggPj0gMSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudFRleHQuYnV0dG9uc1swXS5nb1RvRGlhbG9nID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgZGlhbG9nRGF0YS5pbmRleCA9IGN1cnJlbnRUZXh0LmJ1dHRvbnNbMF0uZ29Ub0RpYWxvZ1xuICAgICAgICAgIH0gXG5cbiAgICAgICAgICAvL1RPRE9cbiAgICAgICAgICAvL2FsbG93IGRpYWxvZ3MgdG8gYmUgaW5kZXggYnkgbmFtZVxuICAgICAgICAvLyAgIGVsc2Uge1xuICAgICAgICAvLyAgICAgdGhpcy5hY3RpdmVUZXh0SWQgPSBmaW5kRGlhbG9nQnlOYW1lKHRoaXMuTlBDU2NyaXB0LCBjdXJyZW50VGV4dC5idXR0b25zWzBdLmdvVG9EaWFsb2cpXG4gICAgICAgIC8vICAgfVxuICAgICAgICAgIGlmIChjdXJyZW50VGV4dC5idXR0b25zWzBdLnRyaWdnZXJlZEFjdGlvbnMpIHtcbiAgICAgICAgICAgIGN1cnJlbnRUZXh0LmJ1dHRvbnNbMF0udHJpZ2dlcmVkQWN0aW9ucygpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1vZGUgPT0gQ29uZmlybU1vZGUuQ2FuY2VsKSB7XG4gICAgICAgIGlmIChjdXJyZW50VGV4dC5idXR0b25zICYmIGN1cnJlbnRUZXh0LmJ1dHRvbnMubGVuZ3RoID49IDEpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIGN1cnJlbnRUZXh0LmJ1dHRvbnNbMV0uZ29Ub0RpYWxvZyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIGRpYWxvZ0RhdGEuaW5kZXggPSBjdXJyZW50VGV4dC5idXR0b25zWzFdLmdvVG9EaWFsb2dcbiAgICAgICAgICB9IFxuXG4gICAgICAgICAgLy9UT0RPXG4gICAgICAgICAgLy9hbGxvdyBkaWFsb2dzIHRvIGJlIGluZGV4IGJ5IG5hbWVcbiAgICAgICAgLy8gICBlbHNlIHtcbiAgICAgICAgLy8gICAgIHRoaXMuYWN0aXZlVGV4dElkID0gZmluZERpYWxvZ0J5TmFtZSh0aGlzLk5QQ1NjcmlwdCwgY3VycmVudFRleHQuYnV0dG9uc1swXS5nb1RvRGlhbG9nKVxuICAgICAgICAvLyAgIH1cbiAgICAgICAgICBpZiAoY3VycmVudFRleHQuYnV0dG9uc1sxXS50cmlnZ2VyZWRBY3Rpb25zKSB7XG4gICAgICAgICAgICBjdXJyZW50VGV4dC5idXR0b25zWzFdLnRyaWdnZXJlZEFjdGlvbnMoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtb2RlID09IENvbmZpcm1Nb2RlLkJ1dHRvbjMpIHtcbiAgICAgICAgaWYgKGN1cnJlbnRUZXh0LmJ1dHRvbnMgJiYgY3VycmVudFRleHQuYnV0dG9ucy5sZW5ndGggPj0gMSkge1xuICAgICAgICAgIGlmICh0eXBlb2YgY3VycmVudFRleHQuYnV0dG9uc1syXS5nb1RvRGlhbG9nID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgZGlhbG9nRGF0YS5pbmRleCA9IGN1cnJlbnRUZXh0LmJ1dHRvbnNbMl0uZ29Ub0RpYWxvZ1xuICAgICAgICAgIH0gXG5cbiAgICAgICAgICAvL1RPRE9cbiAgICAgICAgICAvL2FsbG93IGRpYWxvZ3MgdG8gYmUgaW5kZXggYnkgbmFtZVxuICAgICAgICAvLyAgIGVsc2Uge1xuICAgICAgICAvLyAgICAgdGhpcy5hY3RpdmVUZXh0SWQgPSBmaW5kRGlhbG9nQnlOYW1lKHRoaXMuTlBDU2NyaXB0LCBjdXJyZW50VGV4dC5idXR0b25zWzBdLmdvVG9EaWFsb2cpXG4gICAgICAgIC8vICAgfVxuICAgICAgICAgIGlmIChjdXJyZW50VGV4dC5idXR0b25zWzJdLnRyaWdnZXJlZEFjdGlvbnMpIHtcbiAgICAgICAgICAgIGN1cnJlbnRUZXh0LmJ1dHRvbnNbMl0udHJpZ2dlcmVkQWN0aW9ucygpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1vZGUgPT0gQ29uZmlybU1vZGUuQnV0dG9uNCkge1xuICAgICAgICBpZiAoY3VycmVudFRleHQuYnV0dG9ucyAmJiBjdXJyZW50VGV4dC5idXR0b25zLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50VGV4dC5idXR0b25zWzNdLmdvVG9EaWFsb2cgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBkaWFsb2dEYXRhLmluZGV4ID0gY3VycmVudFRleHQuYnV0dG9uc1szXS5nb1RvRGlhbG9nXG4gICAgICAgICAgfSBcblxuICAgICAgICAgIC8vVE9ET1xuICAgICAgICAgIC8vYWxsb3cgZGlhbG9ncyB0byBiZSBpbmRleCBieSBuYW1lXG4gICAgICAgIC8vICAgZWxzZSB7XG4gICAgICAgIC8vICAgICB0aGlzLmFjdGl2ZVRleHRJZCA9IGZpbmREaWFsb2dCeU5hbWUodGhpcy5OUENTY3JpcHQsIGN1cnJlbnRUZXh0LmJ1dHRvbnNbMF0uZ29Ub0RpYWxvZylcbiAgICAgICAgLy8gICB9XG4gICAgICAgICAgaWYgKGN1cnJlbnRUZXh0LmJ1dHRvbnNbM10udHJpZ2dlcmVkQWN0aW9ucykge1xuICAgICAgICAgICAgY3VycmVudFRleHQuYnV0dG9uc1szXS50cmlnZ2VyZWRBY3Rpb25zKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIGJlZ2luVHlwaW5nKG5wYylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNraXBEaWFsb2dzKG5wYzpFbnRpdHkpIHtcbiAgbGV0IGRpYWxvZ0RhdGEgPSBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYylcbiAgaWYgKCFkaWFsb2dEYXRhLnZpc2libGUgfHwgK0RhdGUubm93KCkgLSBkaWFsb2dEYXRhLm9wZW5UaW1lIDwgMTAwKSByZXR1cm5cblxuICB3aGlsZSAoXG4gICAgZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0gJiZcbiAgICAgIGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLnNraXBhYmxlICYmXG4gICAgICAgIGRpYWxvZ0RhdGEuc2NyaXB0W2RpYWxvZ0RhdGEuaW5kZXhdLmlzUXVlc3Rpb25cbiAgKXtcbiAgICBpZihkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS50cmlnZ2VyZWRCeU5leHQpe1xuICAgICAgZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0udHJpZ2dlcmVkQnlOZXh0KClcbiAgICB9XG5cbiAgICBpZihkaWFsb2dEYXRhLnNjcmlwdFtkaWFsb2dEYXRhLmluZGV4XS5za2lwYWJsZSAmJlxuICAgICAgZGlhbG9nRGF0YS5zY3JpcHRbZGlhbG9nRGF0YS5pbmRleF0uaXNFbmRPZkRpYWxvZ1xuICAgICAgKXtcbiAgICAgICAgY2xvc2VEaWFsb2dXaW5kb3cobnBjKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICBcbiAgICAgIGRpYWxvZ0RhdGEuaW5kZXggKz0gMVxuICB9XG4gIGNvbmZpcm1UZXh0KG5wYywgQ29uZmlybU1vZGUuTmV4dClcbn1cblxuZXhwb3J0IHR5cGUgSW1hZ2VBdGxhc0RhdGEgPSB7XG4gICAgYXRsYXNXaWR0aDogbnVtYmVyO1xuICAgIGF0bGFzSGVpZ2h0OiBudW1iZXI7XG4gICAgc291cmNlV2lkdGg6IG51bWJlcjtcbiAgICBzb3VyY2VIZWlnaHQ6IG51bWJlcjtcbiAgICBzb3VyY2VMZWZ0OiBudW1iZXI7XG4gICAgc291cmNlVG9wOiBudW1iZXI7XG4gIH1cbiAgXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbWFnZUF0bGFzTWFwcGluZyhkYXRhPzogSW1hZ2VBdGxhc0RhdGEpOiBudW1iZXJbXSB7XG4gICAgaWYgKCFkYXRhKSByZXR1cm4gW11cbiAgXG4gICAgY29uc3Qge1xuICAgICAgYXRsYXNXaWR0aCxcbiAgICAgIGF0bGFzSGVpZ2h0LFxuICAgICAgc291cmNlV2lkdGgsXG4gICAgICBzb3VyY2VIZWlnaHQsXG4gICAgICBzb3VyY2VUb3AsXG4gICAgICBzb3VyY2VMZWZ0LFxuICAgIH0gPSBkYXRhXG4gIFxuICAgIHJldHVybiBbXG4gICAgICBzb3VyY2VMZWZ0IC8gYXRsYXNXaWR0aCwgKGF0bGFzSGVpZ2h0IC0gc291cmNlVG9wIC0gc291cmNlSGVpZ2h0KSAvIGF0bGFzSGVpZ2h0LFxuICAgICAgc291cmNlTGVmdCAvIGF0bGFzV2lkdGgsIChhdGxhc0hlaWdodCAtIHNvdXJjZVRvcCkgLyBhdGxhc0hlaWdodCxcbiAgICAgIChzb3VyY2VMZWZ0ICsgc291cmNlV2lkdGgpIC8gYXRsYXNXaWR0aCwgKGF0bGFzSGVpZ2h0IC0gc291cmNlVG9wKSAvIGF0bGFzSGVpZ2h0LFxuICAgICAgKHNvdXJjZUxlZnQgKyBzb3VyY2VXaWR0aCkgLyBhdGxhc1dpZHRoLCAoYXRsYXNIZWlnaHQgLSBzb3VyY2VUb3AgLSBzb3VyY2VIZWlnaHQpIC8gYXRsYXNIZWlnaHQsXG4gICAgXVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHJlYWxXaWR0aCh3aWR0aD86bnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gd2lkdGggPyB3aWR0aCA6IHNlY3Rpb24uc291cmNlV2lkdGhcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiByZWFsSGVpZ2h0KGhlaWdodD86bnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaGVpZ2h0ID8gaGVpZ2h0IDogc2VjdGlvbi5zb3VyY2VIZWlnaHRcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBmaW5kRGlhbG9nQnlOYW1lKGRpYWxvZ3M6IERpYWxvZ1tdLCBuYW1lOiBzdHJpbmcpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRpYWxvZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChkaWFsb2dzW2ldLm5hbWUgJiYgZGlhbG9nc1tpXS5uYW1lID09IG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIGlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIDBcbiAgfVxuICAiXX0=
|
package/dist/npc.js
CHANGED
|
@@ -400,7 +400,11 @@ export function playAnimation(npc, anim, noLoop, duration) {
|
|
|
400
400
|
console.log("npc-toolkit", "npc", "playAnimation", anim);
|
|
401
401
|
Animator.playSingleAnimation(npc, anim, true);
|
|
402
402
|
if (duration) {
|
|
403
|
-
console.log(
|
|
403
|
+
console.log('have a duration to play animation');
|
|
404
|
+
if (animTimers.has(npc)) {
|
|
405
|
+
utils.timers.clearTimeout(animTimers.get(npc));
|
|
406
|
+
animTimers.delete(npc);
|
|
407
|
+
}
|
|
404
408
|
animTimers.set(npc, utils.timers.setTimeout(() => {
|
|
405
409
|
animTimers.delete(npc);
|
|
406
410
|
Animator.stopAllAnimations(npc, true);
|
|
@@ -455,4 +459,4 @@ export function closeDialogWindow(window) {
|
|
|
455
459
|
closeDialog(dialog);
|
|
456
460
|
}
|
|
457
461
|
}
|
|
458
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25wYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQVUsYUFBYSxFQUFlLFlBQVksRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFpQixNQUFNLGNBQWMsQ0FBQTtBQUMzSyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDM0QsT0FBTyxFQUE4QyxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBZSxNQUFNLFNBQVMsQ0FBQztBQUNsSCxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pILE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFN0MsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUF3QixJQUFJLEdBQUcsRUFBRSxDQUFBO0FBQzNELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFxQixJQUFJLEdBQUcsRUFBRSxDQUFBO0FBQzNELE1BQU0sQ0FBQyxJQUFJLFNBQVMsR0FBVyxDQUFDLENBQUE7QUFDaEMsTUFBTSxDQUFDLElBQUksV0FBVyxHQUFXLENBQUMs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QUksSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUYsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDNUQsU0FBUyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7UUFDakQsU0FBUyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVU7S0FDOUMsQ0FBQyxDQUFBO0lBRUYsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHO1NBQ3JCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDNUIsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0tBQ3ZKO1NBQ0k7UUFDRCxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtLQUMxRTtJQUVELElBQUksSUFBSSxJQUFJLElBQUksQ0FB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QUE7QUFDdkMsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxlQUEyQixFQUFFLEtBQWM7SUFDMUUsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQy9CLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLGVBQWUsQ0FBQyxDQUFBO0lBQ3pDLE9BQU8sTUFBTSxDQUFBO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLE1BQWdCLEVBQUUsVUFBNEI7SUFDeEYsU0FBUyxHQUFHLEdBQUcsQ0FBQTtJQUVmLElBQUksa0JBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQzdCLElBQUksS0FBVSxDQUFBO1FBQ2QsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNiLEtBQUssR0FBRyxDQUFDLENBQUE7U0FDWjthQUFNLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFO1lBQ3ZDLEtBQUssR0FBRyxVQUFVLENBQUE7U0FDckI7YUFBTTtZQUNILEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUE7U0FDL0M7UUFDRCxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQTtLQUNqQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsTUFBYztJQUM1QyxJQUFJLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDM0MsSUFBSSxNQUFNLEVBQUU7UUFDUixXQUFXLENBQUMsTUFBTSxDQUFDLENBQUE7S0FDdEI7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0RWNzIGZyb20gJ0BkY2wvc2RrL3JlYWN0LWVjcydcbmltcG9ydCB7IEFuaW1hdG9yLCBBdmF0YXJTaGFwZSwgZW5naW5lLCBFbnRpdHksIEdsdGZDb250YWluZXIsIElucHV0QWN0aW9uLCBNZXNoQ29sbGlkZXIsIE1lc2hSZW5kZXJlciwgcG9pbnRlckV2ZW50c1N5c3RlbSwgVHJhbnNmb3JtLCBUcmFuc2Zvcm1UeXBlIH0gZnJvbSAnQGRjbC9zZGsvZWNzJ1xuaW1wb3J0IHsgQ29sb3IzLCBRdWF0ZXJuaW9uLCBWZWN0b3IzIH0gZnJvbSAnQGRjbC9zZGsvbWF0aCdcbmltcG9ydCB7IERpYWxvZywgRm9sbG93UGF0aERhdGEsIEltYWdlRGF0YSwgTlBDRGF0YSwgTlBDUGF0aFR5cGUsIE5QQ1N0YXRlLCBOUENUeXBlLCBUcmlnZ2VyRGF0YSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnQGRjbC1zZGsvdXRpbHMnXG5pbXBvcnQgeyBJc0ZvbGxvd2luZ1BhdGgsIFRyYWNrVXNlckZsYWcgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgZmFjZVVzZXJTeXN0ZW0sIGhhbmRsZUJ1YmJsZXR5cGluZywgaGFuZGxlRGlhbG9nVHlwaW5nLCBoYW5kbGVQYXRoVGltZXMsIGlucHV0TGlzdGVuZXJTeXN0ZW0gfSBmcm9tICcuL3N5c3RlbXMnO1xuaW1wb3J0IHsgYWRkRGlhbG9nLCBjbG9zZURpYWxvZywgZmluZERpYWxvZ0J5TmFtZSwgbnBjRGlhbG9nQ29tcG9uZW50LCBvcGVuRGlhbG9nIH0gZnJvbSAnLi9kaWFsb2cnO1xuaW1wb3J0IHsgYnViYmxlcywgY2xvc2VCdWJibGUsIGNyZWF0ZURpYWxvZ0J1YmJsZSwgb3BlbkJ1YmJsZSB9IGZyb20gJy4vYnViYmxlJztcbmltcG9ydCB7IGRhcmtUaGVtZSwgbGlnaHRUaGVtZSB9IGZyb20gJy4vdWknO1xuXG5leHBvcnQgY29uc3Qgd2Fsa2luZ1RpbWVyczogTWFwPEVudGl0eSwgbnVtYmVyPiA9IG5ldyBNYXAoKVxuZXhwb3J0IGNvbnN0IG5wY0RhdGFDb21wb25lbnQ6IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcbmV4cG9ydCBsZXQgYWN0aXZlTlBDOiBudW1iZXIgPSAwXG5leHBvcnQgbGV0IGJsYW5rRGlhbG9nOiBudW1iZXIgPSAwXG5cbmVuZ2luZS5hZGRTeXN0ZW0oaGFuZGxlUGF0aFRpbWVzKVxuZW5naW5lLmFkZFN5c3RlbShoYW5kbGVEaWFsb2dUeXBpbmcpXG5lbmdpbmUuYWRkU3lzdGVtKGhhbmRsZUJ1YmJsZXR5cGluZylcbmVuZ2luZS5hZGRTeXN0ZW0oZmFjZVVzZXJTeXN0ZW0pXG5lbmdpbmUuYWRkU3lzdGVtKGlucHV0TGlzdGVuZXJTeXN0ZW0pXG5cbmNvbnN0IGlzQ29vbGRvd246IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcbmNvbnN0IG9uQWN0aXZhdGVDYnM6IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcbmNvbnN0IG9uV2Fsa0F3YXlDYnM6IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcbmNvbnN0IGFuaW1UaW1lcnM6IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcbmNvbnN0IHBvaW50UmVhY2hlZENhbGxiYWNrczogTWFwPEVudGl0eSwgYW55PiA9IG5ldyBNYXAoKVxuY29uc3Qgb25GaW5pc2hDYWxsYmFja3M6IE1hcDxFbnRpdHksIGFueT4gPSBuZXcgTWFwKClcblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dEZWJ1ZyhkZWJ1ZzogYm9vbGVhbikge1xuICAgIHV0aWxzLnRyaWdnZXJzLmVuYWJsZURlYnVnRHJhdyhkZWJ1Zylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGEobnBjOiBFbnRpdHkpIHtcbiAgICByZXR1cm4gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlKFxuICAgIHRyYW5zZm9ybTogYW55LFxuICAgIGRhdGE6IE5QQ0RhdGFcbikge1xuICAgIGxldCBucGMgPSBlbmdpbmUuYWRkRW50aXR5KClcblxuICAgIGxldCB0OiBUcmFuc2Zvcm1UeXBlID0geyBwb3NpdGlvbjogdHJhbnNmb3JtLnBvc2l0aW9uID8gdHJhbnNmb3JtLnBvc2l0aW9uIDogVmVjdG9yMy5jcmVhdGUoMCwgMCwgMCksIHJvdGF0aW9uOiB0cmFuc2Zvcm0ucm90YXRpb24gPyB0cmFuc2Zvcm0ucm90YXRpb24gOiBRdWF0ZXJuaW9uLlplcm8oKSwgc2NhbGU6IHRyYW5zZm9ybS5zY2FsZSA/IHRyYW5zZm9ybS5zY2FsZSA6IFZlY3RvcjMuT25lKCkgfVxuICAgIFRyYW5zZm9ybS5jcmVhdGUobnBjLCB0KVxuXG4gICAgbnBjRGF0YUNvbXBvbmVudC5zZXQobnBjLCB7XG4gICAgICAgIGludHJvZHVjZWQ6IGZhbHNlLFxuICAgICAgICBpbkNvb2xkb3duOiBmYWxzZSxcbiAgICAgICAgY29vbERvd25EdXJhdGlvbjogZGF0YSAmJiBkYXRhLmNvb2xEb3duRHVyYXRpb24gPyBkYXRhLmNvb2xEb3duRHVyYXRpb24gOiA1LFxuICAgICAgICBmYWNlVXNlcjogZGF0YSAmJiBkYXRhLmZhY2VVc2VyID8gZGF0YS5mYWNlVXNlciA6IHVuZGVmaW5lZCxcbiAgICAgICAgd2Fsa2luZ1NwZWVkOiAyLFxuICAgICAgICB3YWxraW5nQW5pbTogZGF0YSAmJiBkYXRhLndhbGtpbmdBbmltID8gZGF0YS53YWxraW5nQW5pbSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcGF0aERhdGE6IGRhdGEucGF0aERhdGEgPyBkYXRhLnBhdGhEYXRhIDogdW5kZWZpbmVkLFxuICAgICAgICBjdXJyZW50UGF0aERhdGE6IFtdLFxuICAgICAgICBtYW51YWxTdG9wOiBmYWxzZSxcbiAgICAgICAgcGF0aEluZGV4OiAwLFxuICAgICAgICBzdGF0ZTogTlBDU3RhdGUuU1RBTkRJTkcsXG4gICAgICAgIGlkbGVBbmltOiBkYXRhICYmIGRhdGEuaWRsZUFuaW0gPyBkYXRhLmlkbGVBbmltIDogXCJJZGxlXCIsXG4gICAgICAgIGJ1YmJsZUhlaWdodDogZGF0YSAmJiBkYXRhLnRleHRCdWJibGUgJiYgZGF0YS5idWJibGVIZWlnaHQgPyBkYXRhLmJ1YmJsZUhlaWdodCA6IHVuZGVmaW5lZCxcbiAgICAgICAgYnViYmxlU291bmQ6IGRhdGEuZGlhbG9nU291bmQgPyBkYXRhLmRpYWxvZ1NvdW5kIDogdW5kZWZpbmVkLFxuICAgICAgICBoYXNCdWJibGU6IGRhdGEgJiYgZGF0YS50ZXh0QnViYmxlID8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICB0dXJuU3BlZWQ6IGRhdGEgJiYgZGF0YS50dXJuaW5nU3BlZWQgPyBkYXRhLnR1cm5pbmdTcGVlZCA6IDIsXG4gICAgICAgIHRoZW1lOiBkYXRhLmRhcmtVSSA/IGRhcmtUaGVtZSA6IGxpZ2h0VGhlbWVcbiAgICB9KVxuXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5ub1VJKSB7IH1cbiAgICBlbHNlIGlmIChkYXRhICYmIGRhdGEucG9ydHJhaXQpIHtcbiAgICAgICAgYWRkRGlhbG9nKG5wYywgZGF0YSAmJiBkYXRhLmRpYWxvZ1NvdW5kID8gZGF0YS5kaWFsb2dTb3VuZCA6IHVuZGVmaW5lZCwgdHlwZW9mIGRhdGEucG9ydHJhaXQgPT09IGBzdHJpbmdgID8geyBwYXRoOiBkYXRhLnBvcnRyYWl0IH0gOiBkYXRhLnBvcnRyYWl0KVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgYWRkRGlhbG9nKG5wYywgZGF0YSAmJiBkYXRhLmRpYWxvZ1NvdW5kID8gZGF0YS5kaWFsb2dTb3VuZCA6IHVuZGVmaW5lZClcbiAgICB9XG5cbiAgICBpZiAoZGF0YSAmJiBkYXRhLnRleHRCdWJibGUpIHtcbiAgICAgICAgY3JlYXRlRGlhbG9nQnViYmxlKG5wYywgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS5idWJibGVIZWlnaHQpXG4gICAgfVxuXG4gICAgb25BY3RpdmF0ZUNicy5zZXQobnBjLCAoKSA9PiB7XG4gICAgICAgIGRhdGEub25BY3RpdmF0ZSgpXG4gICAgfSlcblxuICAgIGlmIChkYXRhICYmIGRhdGEuaGFzT3duUHJvcGVydHkoXCJvbldhbGtBd2F5XCIpKSB7XG4gICAgICAgIG9uV2Fsa0F3YXlDYnMuc2V0KG5wYywgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFkYXRhIHx8ICFkYXRhLmNvbnRpbnVlT25XYWxrQXdheSkge1xuICAgICAgICAgICAgICAgIGlmIChucGNEaWFsb2dDb21wb25lbnQuaGFzKG5wYykpIHtcbiAgICAgICAgICAgICAgICAgICAgbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpLnZpc2libGUgPSBmYWxzZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChucGNEaWFsb2dDb21wb25lbnQuaGFzKG5wYykpIHtcbiAgICAgICAgICAgICAgICAgICAgbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpLnZpc2libGUgPSBmYWxzZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEub25XYWxrQXdheSEoKVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIGFkZE5QQ0JvbmVzKG5wYywgZGF0YSlcbiAgICBhZGRDbGlja1JlYWN0aW9ucyhucGMsIGRhdGEpXG4gICAgYWRkVHJpZ2dlckFyZWEobnBjLCBkYXRhKVxuXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5wYXRoRGF0YSAmJiBkYXRhLnBhdGhEYXRhLnNwZWVkKSB7XG4gICAgICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgICAgICBucGNEYXRhLndhbGtpbmdTcGVlZCA9IGRhdGEucGF0aERhdGEuc3BlZWRcbiAgICB9XG5cbiAgICBpZiAoZGF0YSAmJiBkYXRhLmNvb2xEb3duRHVyYXRpb24pIHtcbiAgICAgICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgICAgIG5wY0RhdGEuY29vbERvd25EdXJhdGlvbiA9IGRhdGEuY29vbERvd25EdXJhdGlvblxuICAgIH1cblxuICAgIGlmIChkYXRhICYmIGRhdGEucGF0aERhdGEpIHtcbiAgICAgICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgICAgIG5wY0RhdGEucGF0aERhdGEubG9vcCA9IHRydWVcbiAgICAgICAgZm9sbG93UGF0aChucGMsIG5wY0RhdGEucGF0aERhdGEpXG4gICAgfVxuXG4gICAgcmV0dXJuIG5wY1xufVxuXG5mdW5jdGlvbiBhZGROUENCb25lcyhucGM6IEVudGl0eSwgZGF0YTogTlBDRGF0YSkge1xuICAgIHN3aXRjaCAoZGF0YS50eXBlKSB7XG4gICAgICAgIGNhc2UgTlBDVHlwZS5BVkFUQVI6XG4gICAgICAgICAgICBBdmF0YXJTaGFwZS5jcmVhdGUobnBjLCB7XG4gICAgICAgICAgICAgICAgaWQ6IFwibnBjXCIsXG4gICAgICAgICAgICAgICAgbmFtZTogXCJOUENcIixcbiAgICAgICAgICAgICAgICBib2R5U2hhcGU6IFwidXJuOmRlY2VudHJhbGFuZDpvZmYtY2hhaW46YmFzZS1hdmF0YXJzOkJhc2VNYWxlXCIsXG4gICAgICAgICAgICAgICAgZW1vdGVzOiBbXSxcbiAgICAgICAgICAgICAgICB3ZWFyYWJsZXM6IFtcbiAgICAgICAgICAgICAgICAgICAgXCJ1cm46ZGVjZW50cmFsYW5kOm9mZi1jaGFpbjpiYXNlLWF2YXRhcnM6Zl9leWVzXzAwXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidXJuOmRlY2VudHJhbGFuZDpvZmYtY2hhaW46YmFzZS1hdmF0YXJzOmZfZXllYnJvd3NfMDBcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ1cm46ZGVjZW50cmFsYW5kOm9mZi1jaGFpbjpiYXNlLWF2YXRhcnM6Zl9tb3V0aF8wMFwiLFxuICAgICAgICAgICAgICAgICAgICBcInVybjpkZWNlbnRyYWxhbmQ6b2ZmLWNoYWluOmJhc2UtYXZhdGFyczpjb21meV9zcG9ydF9zYW5kYWxzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidXJuOmRlY2VudHJhbGFuZDpvZmYtY2hhaW46YmFzZS1hdmF0YXJzOnNvY2Nlcl9wYW50c1wiLFxuICAgICAgICAgICAgICAgICAgICBcInVybjpkZWNlbnRyYWxhbmQ6b2ZmLWNoYWluOmJhc2UtYXZhdGFyczplbGVnYW50X3N3ZWF0ZXJcIixcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgTlBDVHlwZS5DVVNUT006XG4gICAgICAgICAgICBHbHRmQ29udGFpbmVyLmNyZWF0ZShucGMsIHtcbiAgICAgICAgICAgICAgICBzcmM6IGRhdGEgJiYgZGF0YS5tb2RlbCA/IGRhdGEubW9kZWwgOiBcIlwiXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgQW5pbWF0b3IuY3JlYXRlKG5wYywge1xuICAgICAgICAgICAgICAgIHN0YXRlczogW3tcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogZGF0YSAmJiBkYXRhLmlkbGVBbmltID8gZGF0YS5pZGxlQW5pbSA6ICdJZGxlJyxcbiAgICAgICAgICAgICAgICAgICAgY2xpcDogZGF0YSAmJiBkYXRhLmlkbGVBbmltID8gZGF0YS5pZGxlQW5pbSA6ICdJZGxlJyxcbiAgICAgICAgICAgICAgICAgICAgbG9vcDogdHJ1ZVxuICAgICAgICAgICAgICAgIH1dXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBsZXQgbnBjRGF0YSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbiAgICAgICAgICAgIG5wY0RhdGEuaWRsZUFuaW0gPSBkYXRhICYmIGRhdGEuaWRsZUFuaW0gPyBkYXRhLmlkbGVBbmltIDogJ0lkbGUnXG4gICAgICAgICAgICBucGNEYXRhLmxhc3RQbGF5ZWRBbmltID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS5pZGxlQW5pbVxuXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIm5wYy10b29sa2l0XCIsIFwibnBjXCIsIFwiYWRkTlBDQm9uZXNcIiwgXCJpZGxlQW5pbVwiKVxuICAgICAgICAgICAgQW5pbWF0b3IucGxheVNpbmdsZUFuaW1hdGlvbihucGMsIG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykuaWRsZUFuaW0pXG5cblxuICAgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS53YWxraW5nQW5pbSkge1xuICAgICAgICAgICAgICAgIG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykud2Fsa2luZ0FuaW0gPSBkYXRhLndhbGtpbmdBbmltXG4gICAgICAgICAgICAgICAgbGV0IGFuaW1hdGlvbnMgPSBBbmltYXRvci5nZXRNdXRhYmxlKG5wYylcbiAgICAgICAgICAgICAgICBhbmltYXRpb25zLnN0YXRlcy5wdXNoKHsgbmFtZTogZGF0YS53YWxraW5nQW5pbSwgY2xpcDogZGF0YS53YWxraW5nQW5pbSwgbG9vcDogdHJ1ZSB9KVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIE5QQ1R5cGUuQkxBTks6XG4gICAgICAgICAgICBNZXNoUmVuZGVyZXIuc2V0Qm94KG5wYylcbiAgICAgICAgICAgIE1lc2hDb2xsaWRlci5zZXRCb3gobnBjKVxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICB9XG59XG5cbmZ1bmN0aW9uIGFkZENsaWNrUmVhY3Rpb25zKG5wYzogRW50aXR5LCBkYXRhOiBOUENEYXRhKSB7XG4gICAgbGV0IGFjdGl2YXRlQnV0dG9uID0gZGF0YSAmJiBkYXRhLm9ubHlDbGlja1RyaWdnZXIgPyBJbnB1dEFjdGlvbi5JQV9QT0lOVEVSIDogSW5wdXRBY3Rpb24uSUFfUFJJTUFSWVxuXG4gICAgcG9pbnRlckV2ZW50c1N5c3RlbS5vblBvaW50ZXJEb3duKFxuICAgICAgICBucGMsXG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChpc0Nvb2xkb3duLmhhcyhucGMpIHx8IChucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYykudmlzaWJsZSkpIHJldHVyblxuICAgICAgICAgICAgYWN0aXZhdGUobnBjKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBidXR0b246IGFjdGl2YXRlQnV0dG9uLFxuICAgICAgICAgICAgaG92ZXJUZXh0OiBkYXRhICYmIGRhdGEuaG92ZXJUZXh0ID8gZGF0YS5ob3ZlclRleHQgOiAnVGFsaycsXG4gICAgICAgICAgICBzaG93RmVlZGJhY2s6IGRhdGEgJiYgZGF0YS5vbmx5RXh0ZXJuYWxUcmlnZ2VyID8gZmFsc2UgOiB0cnVlLFxuICAgICAgICB9XG4gICAgKVxuXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5vbmx5RXh0ZXJuYWxUcmlnZ2VyKSB7XG4gICAgICAgIHBvaW50ZXJFdmVudHNTeXN0ZW0ucmVtb3ZlT25Qb2ludGVyRG93bihucGMpXG4gICAgfVxufVxuXG5mdW5jdGlvbiBhZGRUcmlnZ2VyQXJlYShucGM6IEVudGl0eSwgZGF0YTogTlBDRGF0YSkge1xuXG4gICAgbGV0IHRyaWdnZXJEYXRhOiBUcmlnZ2VyRGF0YSA9IHt9XG5cbiAgICBpZiAoIWRhdGEgfHwgKGRhdGEgJiYgIWRhdGEub25seUV4dGVybmFsVHJpZ2dlciAmJiAhZGF0YS5vbmx5Q2xpY2tUcmlnZ2VyICYmICFkYXRhLm9ubHlFVHJpZ2dlcikpIHtcbiAgICAgICAgb25BY3RpdmF0ZUNicy5zZXQobnBjLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNDb29sZG93bi5oYXMobnBjKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKG5wYywgJyBpbiBjb29sZG93bicpXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAobnBjRGlhbG9nQ29tcG9uZW50LmhhcyhucGMpICYmIG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQobnBjKS52aXNpYmxlKSB8fFxuICAgICAgICAgICAgICAgIChkYXRhICYmIGRhdGEub25seUV4dGVybmFsVHJpZ2dlcikgfHxcbiAgICAgICAgICAgICAgICAoZGF0YSAmJiBkYXRhLm9ubHlDbGlja1RyaWdnZXIpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRhdGEub25BY3RpdmF0ZSgpXG4gICAgICAgIH0pXG4gICAgICAgIHRyaWdnZXJEYXRhLm9uQ2FtZXJhRW50ZXIgPSBvbkFjdGl2YXRlQ2JzLmdldChucGMpXG4gICAgfVxuXG4gICAgLy8gd2hlbiBleGl0aW5nIHRyaWdnZXJcbiAgICBpZiAoIWRhdGEgfHwgKGRhdGEgJiYgIWRhdGEuY29udGludWVPbldhbGtBd2F5KSkge1xuICAgICAgICB0cmlnZ2VyRGF0YS5vbkNhbWVyYUV4aXQgPSAoKSA9PiB7XG4gICAgICAgICAgICBoYW5kbGVXYWxrQXdheShucGMpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB3aGVuIGVudGVyaW5nIHRyaWdnZXJcbiAgICBpZiAoXG4gICAgICAgICFkYXRhIHx8XG4gICAgICAgIChkYXRhICYmICFkYXRhLm9ubHlFeHRlcm5hbFRyaWdnZXIgJiYgIWRhdGEub25seUNsaWNrVHJpZ2dlciAmJiAhZGF0YS5vbmx5RVRyaWdnZXIpXG4gICAgKSB7XG4gICAgICAgIHRyaWdnZXJEYXRhLm9uQ2FtZXJhRW50ZXIgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNDb29sZG93bi5oYXMobnBjKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKG5wYywgJyBpbiBjb29sZG93bicpXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBlbHNlIGlmIChcbiAgICAgICAgICAgIC8vICAgICAodGhpcy5kaWFsb2cgJiYgdGhpcy5kaWFsb2cuaXNEaWFsb2dPcGVuKSB8fFxuICAgICAgICAgICAgLy8gICAgIChkYXRhICYmIGRhdGEub25seUV4dGVybmFsVHJpZ2dlcikgfHxcbiAgICAgICAgICAgIC8vICAgICAoZGF0YSAmJiBkYXRhLm9ubHlDbGlja1RyaWdnZXIpXG4gICAgICAgICAgICAvLyApIHtcbiAgICAgICAgICAgIC8vICAgICByZXR1cm5cbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgIGFjdGl2YXRlKG5wYylcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGFkZCB0cmlnZ2VyXG4gICAgaWYgKHRyaWdnZXJEYXRhLm9uQ2FtZXJhRW50ZXIgfHwgdHJpZ2dlckRhdGEub25DYW1lcmFFeGl0KSB7XG4gICAgICAgIHV0aWxzLnRyaWdnZXJzLmFkZFRyaWdnZXIobnBjLCAyNTQsIDEsIFt7IHR5cGU6ICdzcGhlcmUnLCBwb3NpdGlvbjogVmVjdG9yMy5aZXJvKCksIHJhZGl1czogZGF0YS5yZWFjdERpc3RhbmNlICE9IHVuZGVmaW5lZCA/IGRhdGEucmVhY3REaXN0YW5jZSA6IDYgfV0sIHRyaWdnZXJEYXRhLm9uQ2FtZXJhRW50ZXIgPyB0cmlnZ2VyRGF0YS5vbkNhbWVyYUVudGVyIDogdW5kZWZpbmVkLCB0cmlnZ2VyRGF0YS5vbkNhbWVyYUV4aXQgPyB0cmlnZ2VyRGF0YS5vbkNhbWVyYUV4aXQgOiB1bmRlZmluZWQsIENvbG9yMy5SZWQoKSlcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb2xsb3dQYXRoKG5wYzogRW50aXR5LCBkYXRhPzogRm9sbG93UGF0aERhdGEpIHtcblxuICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgIGxldCBwYXRoOiBhbnlbXSA9IFtdXG5cbiAgICBpZiAobnBjRGF0YS5mYWNlVXNlcikge1xuICAgICAgICBpZiAoVHJhY2tVc2VyRmxhZy5oYXMobnBjKSkge1xuICAgICAgICAgICAgVHJhY2tVc2VyRmxhZy5kZWxldGVGcm9tKG5wYylcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChucGNEYXRhLm1hbnVhbFN0b3ApIHtcbiAgICAgICAgbGV0IGR1cmF0aW9uID0gbnBjRGF0YS5wYXRoRGF0YS50b3RhbER1cmF0aW9uXG4gICAgICAgIGxldCBjdXJyZW50VGltZXI6IG51bWJlciA9IHdhbGtpbmdUaW1lcnMuZ2V0KG5wYykhXG4gICAgICAgIGNvbnNvbGUubG9nKCdjdXJyZW50IHRpbWUgaXMnLCBjdXJyZW50VGltZXIpXG4gICAgICAgIGlmIChjdXJyZW50VGltZXIpIHtcbiAgICAgICAgICAgIGR1cmF0aW9uIC09IGN1cnJlbnRUaW1lclxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHBhdGg6IGFueVtdID0gW11cbiAgICAgICAgbnBjRGF0YS5wYXRoRGF0YS5wYXRoLmZvckVhY2goKHA6IGFueSkgPT4ge1xuICAgICAgICAgICAgcGF0aC5wdXNoKHApXG4gICAgICAgIH0pXG4gICAgICAgIHBhdGguc3BsaWNlKDAsIG5wY0RhdGEucGF0aEluZGV4KVxuXG4gICAgICAgIGxldCBwb3MgPSBUcmFuc2Zvcm0uZ2V0KG5wYykucG9zaXRpb25cbiAgICAgICAgcGF0aC51bnNoaWZ0KFZlY3RvcjMuY3JlYXRlKHBvcy54LCBwb3MueSwgcG9zLnopKVxuICAgICAgICB3YWxrTlBDKG5wYywgbnBjRGF0YSwgbnBjRGF0YS5wYXRoRGF0YS5wYXRoVHlwZSwgZHVyYXRpb24sIHBhdGgsIHBvaW50UmVhY2hlZENhbGxiYWNrcy5nZXQobnBjKSwgb25GaW5pc2hDYWxsYmFja3MuZ2V0KG5wYykpXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgbnBjRGF0YS5wYXRoRGF0YSA9IGRhdGFcblxuICAgICAgICAgICAgaWYgKGRhdGEuc3RhcnRpbmdQb2ludCkge1xuICAgICAgICAgICAgICAgIGRhdGEucGF0aD8uc3BsaWNlKDAsIGRhdGEuc3RhcnRpbmdQb2ludCAtIDEpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBwb3MgPSBUcmFuc2Zvcm0uZ2V0KG5wYykucG9zaXRpb25cbiAgICAgICAgICAgIHBhdGgucHVzaChWZWN0b3IzLmNyZWF0ZShwb3MueCwgcG9zLnksIHBvcy56KSlcbiAgICAgICAgICAgIGRhdGEucGF0aD8uZm9yRWFjaCgocCkgPT4ge1xuICAgICAgICAgICAgICAgIHBhdGgucHVzaChwKVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgb25GaW5pc2hDYWxsYmFja3Muc2V0KG5wYywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdvbiBmaW5pc2hlZCBjYWxsYmFjaycpXG4gICAgICAgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5vbkZpbmlzaENhbGxiYWNrICYmICFkYXRhLmxvb3ApIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5vbkZpbmlzaENhbGxiYWNrXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgICAgICAgICAgICAgIG5wY0RhdGEubWFudWFsU3RvcCA9IGZhbHNlXG4gICAgICAgICAgICAgICAgc3RvcFBhdGgobnBjKVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgcG9pbnRSZWFjaGVkQ2FsbGJhY2tzLnNldChucGMsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnb24gcG9pbnQgcmVhY2hlZCBjYWxsYmFjaycpXG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgICAgICAgICAgICAgZGF0YS5wYXRoSW5kZXggKz0gMVxuICAgICAgICAgICAgICAgIGRhdGEub25SZWFjaGVkUG9pbnRDYWxsYmFjayA/IGRhdGEub25SZWFjaGVkUG9pbnRDYWxsYmFjayA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHdhbGtOUEMobnBjLCBucGNEYXRhLCBkYXRhLnBhdGhUeXBlISwgZGF0YS50b3RhbER1cmF0aW9uLCBwYXRoLCBwb2ludFJlYWNoZWRDYWxsYmFja3MuZ2V0KG5wYyksIG9uRmluaXNoQ2FsbGJhY2tzLmdldChucGMpKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKG5wY0RhdGEubWFudWFsU3RvcCkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd3ZSBoYXZlIG1hbnVhbCBzdG9wLCBuZWVkIHRvIHBpY2sgYmFjayB1cCB3aGVyZSB3ZSBsZWZ0IG9mZicpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnd2UgYXJlIHRyeWluZyB0byBmb2xsb3cgYSBwYXRoIHdpdG91dCBzdGFydGluZyBvbmUgcHJpb3InKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cblxufVxuXG5mdW5jdGlvbiB3YWxrTlBDKG5wYzogRW50aXR5LCBucGNEYXRhOiBhbnksIHR5cGU6IE5QQ1BhdGhUeXBlLCBkdXJhdGlvbjogbnVtYmVyLCBwYXRoOiBWZWN0b3IzW10sIHBvaW50UmVhY2hlZENhbGxiYWNrPzogYW55LCBmaW5pc2hlZENhbGxiYWNrPzogYW55KSB7XG5cbiAgICBpZiAoSXNGb2xsb3dpbmdQYXRoLmhhcyhucGMpKSB7XG4gICAgICAgIElzRm9sbG93aW5nUGF0aC5kZWxldGVGcm9tKG5wYylcbiAgICAgICAgd2Fsa2luZ1RpbWVycy5kZWxldGUobnBjKVxuICAgIH1cbiAgICBJc0ZvbGxvd2luZ1BhdGguY3JlYXRlKG5wYylcblxuICAgIGlmICh0eXBlKSB7XG4gICAgICAgIGlmICh0eXBlID09IE5QQ1BhdGhUeXBlLlJJR0lEX1BBVEgpIHtcbiAgICAgICAgICAgIHV0aWxzLnBhdGhzLnN0YXJ0U3RyYWlnaHRQYXRoKG5wYywgcGF0aCwgZHVyYXRpb24sIHRydWUsXG4gICAgICAgICAgICAgICAgKCkgPT4geyBmaW5pc2hlZENhbGxiYWNrKCkgfSwgKCkgPT4geyBwb2ludFJlYWNoZWRDYWxsYmFjaygpIH0pXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB1dGlscy5wYXRocy5zdGFydFNtb290aFBhdGgobnBjLCBwYXRoLCBkdXJhdGlvbiwgMzAsIHRydWUsXG4gICAgICAgICAgICAgICAgKCkgPT4geyBmaW5pc2hlZENhbGxiYWNrKCkgfSwgKCkgPT4geyBwb2ludFJlYWNoZWRDYWxsYmFjaygpIH0pXG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHV0aWxzLnBhdGhzLnN0YXJ0U21vb3RoUGF0aChucGMsIHBhdGgsIGR1cmF0aW9uLCAyMCwgdHJ1ZSxcbiAgICAgICAgICAgICgpID0+IHsgZmluaXNoZWRDYWxsYmFjaygpIH0sICgpID0+IHsgcG9pbnRSZWFjaGVkQ2FsbGJhY2soKSB9KVxuICAgIH1cblxuICAgIGlmIChucGNEYXRhLndhbGtpbmdBbmltKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwibnBjLXRvb2xraXRcIiwgXCJucGNcIiwgXCJ3YWxrTlBDXCIsIFwid2Fsa2luZ0FuaW1cIilcbiAgICAgICAgQW5pbWF0b3IucGxheVNpbmdsZUFuaW1hdGlvbihucGMsIG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykud2Fsa2luZ0FuaW0sIHRydWUpXG4gICAgICAgIG5wY0RhdGEubGFzdFBsYXllZEFuaW0gPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpLndhbGtpbmdBbmltXG4gICAgfVxuICAgIG5wY0RhdGEuc3RhdGUgPSBOUENTdGF0ZS5GT0xMT1dQQVRIXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdG9wV2Fsa2luZyhucGM6IEVudGl0eSwgZHVyYXRpb24/OiBudW1iZXIsIGZpbmlzaGVkPzogYm9vbGVhbikge1xuICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgIG5wY0RhdGEuc3RhdGUgPSBOUENTdGF0ZS5TVEFORElOR1xuICAgIG5wY0RhdGEubWFudWFsU3RvcCA9IHRydWVcblxuICAgIHN0b3BQYXRoKG5wYylcblxuICAgIGlmIChkdXJhdGlvbikge1xuICAgICAgICB1dGlscy50aW1lcnMuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAvL2lmICh0aGlzLmRpYWxvZyAmJiB0aGlzLmRpYWxvZy5pc0RpYWxvZ09wZW4pIHJldHVyblxuICAgICAgICAgICAgaWYgKG5wY0RhdGEucGF0aCkge1xuICAgICAgICAgICAgICAgIEFuaW1hdG9yLnN0b3BBbGxBbmltYXRpb25zKG5wYywgdHJ1ZSlcbiAgICAgICAgICAgICAgICBpZiAobnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS53YWxraW5nQW5pbSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIm5wYy10b29sa2l0XCIsIFwibnBjXCIsIFwic3RvcFdhbGtpbmctY2FsbGJhY2tcIiwgXCJ3YWxraW5nQW5pbVwiKVxuICAgICAgICAgICAgICAgICAgICBBbmltYXRvci5wbGF5U2luZ2xlQW5pbWF0aW9uKG5wYywgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS53YWxraW5nQW5pbSwgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgbnBjRGF0YS5sYXN0UGxheWVkQW5pbSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykud2Fsa2luZ0FuaW1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGR1cmF0aW9uID0gbnBjRGF0YS5wYXRoRGF0YS50b3RhbER1cmF0aW9uXG4gICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRUaW1lcjogbnVtYmVyID0gd2Fsa2luZ1RpbWVycy5nZXQobnBjKSFcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnY3VycmVudCB0aW1lIGlzJywgY3VycmVudFRpbWVyKVxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50VGltZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgZHVyYXRpb24gLT0gY3VycmVudFRpbWVyXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IHBhdGg6IGFueVtdID0gW11cbiAgICAgICAgICAgICAgICBucGNEYXRhLnBhdGhEYXRhLnBhdGguZm9yRWFjaCgocDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGgucHVzaChwKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcGF0aC5zcGxpY2UoMCwgbnBjRGF0YS5wYXRoSW5kZXgpXG5cbiAgICAgICAgICAgICAgICBsZXQgcG9zID0gVHJhbnNmb3JtLmdldChucGMpLnBvc2l0aW9uXG4gICAgICAgICAgICAgICAgcGF0aC51bnNoaWZ0KFZlY3RvcjMuY3JlYXRlKHBvcy54LCBwb3MueSwgcG9zLnopKVxuXG4gICAgICAgICAgICAgICAgbnBjRGF0YS5tYW51YWxTdG9wID0gZmFsc2VcbiAgICAgICAgICAgICAgICB3YWxrTlBDKG5wYywgbnBjRGF0YSwgbnBjRGF0YS5wYXRoRGF0YS5wYXRoVHlwZSwgZHVyYXRpb24sIHBhdGgsIHBvaW50UmVhY2hlZENhbGxiYWNrcy5nZXQobnBjKSwgb25GaW5pc2hDYWxsYmFja3MuZ2V0KG5wYykpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSwgZHVyYXRpb24gKiAxMDAwKVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0b3BQYXRoKG5wYzogRW50aXR5KSB7XG4gICAgdXRpbHMucGF0aHMuc3RvcFBhdGgobnBjKVxuICAgIElzRm9sbG93aW5nUGF0aC5kZWxldGVGcm9tKG5wYylcblxuICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgIGlmIChucGNEYXRhLndhbGtpbmdBbmltKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwibnBjLXRvb2xraXRcIiwgXCJucGNcIiwgXCJzdG9wUGF0aFwiLCBcImlkbGVBbmltXCIpXG4gICAgICAgIEFuaW1hdG9yLnBsYXlTaW5nbGVBbmltYXRpb24obnBjLCBucGNEYXRhQ29tcG9uZW50LmdldChucGMpLmlkbGVBbmltKVxuICAgICAgICBucGNEYXRhLmxhc3RQbGF5ZWRBbmltID0gbnBjRGF0YS5pZGxlQW5pbVxuICAgIH1cblxuICAgIGlmICghbnBjRGF0YS5tYW51YWxTdG9wKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwibnBjLXRvb2tpdFwiLCBcIlN0b3BQYXRoXCIsIFwiTG9vcD9cIiwgbnBjRGF0YS5wYXRoRGF0YS5sb29wKVxuICAgICAgICBpZiAobnBjRGF0YS5wYXRoRGF0YS5sb29wKSB7XG4gICAgICAgICAgICBucGNEYXRhLnBhdGhJbmRleCA9IDBcbiAgICAgICAgICAgIHdhbGtpbmdUaW1lcnMuZGVsZXRlKG5wYylcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCd3ZSBhcmUgbG9vcGluZyBwYXRoJywgbnBjRGF0YSlcbiAgICAgICAgICAgIGZvbGxvd1BhdGgobnBjLCBucGNEYXRhLnBhdGhEYXRhKVxuICAgICAgICAgICAgY29uc29sZS5sb2cobnBjRGF0YSlcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBDYWxscyB0aGUgTlBDJ3MgYWN0aXZhdGlvbiBmdW5jdGlvbiAoc2V0IG9uIE5QQyBkZWZpbml0aW9uKS4gSWYgTlBDIGhhcyBgZmFjZVVzZXJgID0gdHJ1ZSwgaXQgd2lsbCByb3RhdGUgdG8gZmFjZSB0aGUgcGxheWVyLiBJdCBzdGFydHMgYSBjb29sZG93biBjb3VudGVyIHRvIGF2b2lkIHJlYWN0aXZhdGluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGl2YXRlKG5wYzogRW50aXR5KSB7XG4gICAgYWN0aXZlTlBDID0gbnBjXG4gICAgb25BY3RpdmF0ZUNicy5nZXQobnBjKSgpXG5cbiAgICBsZXQgbnBjRGF0YSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbiAgICBpZiAobnBjRGF0YS5mYWNlVXNlcikge1xuICAgICAgICBUcmFja1VzZXJGbGFnLmNyZWF0ZShucGMsIHtcbiAgICAgICAgICAgIGxvY2tYWlJvdGF0aW9uOiB0cnVlLFxuICAgICAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICAgICAgcm90U3BlZWQ6IG5wY0RhdGEudHVyblNwZWVkXG4gICAgICAgIH0pXG4gICAgfVxuICAgIGlzQ29vbGRvd24uc2V0KG5wYywgdHJ1ZSlcbiAgICBucGNEYXRhLmluQ29vbGRvd24gPSB0cnVlXG5cbiAgICB1dGlscy50aW1lcnMuc2V0VGltZW91dChcbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaXNDb29sZG93bi5kZWxldGUobnBjKVxuICAgICAgICAgICAgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS5pbkNvb2xkb3duID0gZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgMTAwMCAqIG5wY0RhdGEuY29vbERvd25EdXJhdGlvblxuICAgIClcbiAgICBjb25zb2xlLmxvZygnYWN0aXZhdGVkIG5wYywnLCBucGNEYXRhQ29tcG9uZW50LmdldChucGMpKVxufVxuXG5mdW5jdGlvbiBlbmRJbnRlcmFjdGlvbihucGM6IEVudGl0eSkge1xuICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgIG5wY0RhdGEuc3RhdGUgPSBOUENTdGF0ZS5TVEFORElOR1xuXG4gICAgaWYgKG5wY0RpYWxvZ0NvbXBvbmVudC5oYXMobnBjKSAmJiBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYykudmlzaWJsZSkge1xuICAgICAgICBjbG9zZURpYWxvZyhucGMpXG4gICAgfVxuXG4gICAgaWYgKG5wY0RhdGEuZmFjZVVzZXIpIHtcbiAgICAgICAgaWYgKFRyYWNrVXNlckZsYWcuaGFzKG5wYykpIHtcbiAgICAgICAgICAgIFRyYWNrVXNlckZsYWcuZGVsZXRlRnJvbShucGMpXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZygnZW5kaW5nIGludGVyYWN0aW9uJywgbnBjRGF0YSwgYnViYmxlcy5nZXQobnBjKSlcbiAgICBpZiAobnBjRGF0YS5oYXNCdWJibGUgJiYgYnViYmxlcy5nZXQobnBjKS5pc0J1YmJsZU9wZW4pIHtcbiAgICAgICAgY2xvc2VCdWJibGUobnBjKVxuICAgIH1cbn1cblxuLyoqXG4gKiBFbmRzIGludGVyYWN0aW9uIGFuZCBjYWxscyB0aGUgb25XYWxrQXdheSBmdW5jdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlV2Fsa0F3YXkobnBjOiBFbnRpdHkpIHtcbiAgICBsZXQgbnBjRGF0YSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbiAgICBpZiAobnBjRGF0YS5tYW51YWxTdG9wKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdpbnRlcmFjdGlvbiBlbmRlZCwgbmVlZCB0byB3YWxrIGFnYWluJylcbiAgICAgICAgZm9sbG93UGF0aChucGMpXG4gICAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChucGNEYXRhLnN0YXRlID09IE5QQ1N0YXRlLkZPTExPV1BBVEgpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZW5kSW50ZXJhY3Rpb24obnBjKVxuXG4gICAgaWYgKG9uV2Fsa0F3YXlDYnMuZ2V0KG5wYykpIHtcbiAgICAgICAgb25XYWxrQXdheUNicy5nZXQobnBjKSgpXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGxheUFuaW1hdGlvbihucGM6IEVudGl0eSwgYW5pbTogc3RyaW5nLCBub0xvb3A/OiBib29sZWFuLCBkdXJhdGlvbj86IG51bWJlcikge1xuICAgIGxldCBhbmltYXRpb25zID0gQW5pbWF0b3IuZ2V0TXV0YWJsZShucGMpXG4gICAgaWYgKGFuaW1hdGlvbnMuc3RhdGVzLmZpbHRlcigoYW5pbWF0aW9uKSA9PiBhbmltYXRpb24ubmFtZSA9PT0gYW5pbSkubGVuZ3RoID09IDApIHtcbiAgICAgICAgYW5pbWF0aW9ucy5zdGF0ZXMucHVzaCh7IG5hbWU6IGFuaW0sIGNsaXA6IGFuaW0sIGxvb3A6IG5vTG9vcCA/IGZhbHNlIDogdHJ1ZSB9KVxuICAgIH1cblxuICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgIGlmIChucGNEYXRhLnN0YXRlID09IE5QQ1N0YXRlLkZPTExPV1BBVEgpIHtcbiAgICAgICAgdXRpbHMucGF0aHMuc3RvcFBhdGgobnBjKVxuICAgIH1cblxuICAgIGlmIChhbmltVGltZXJzLmhhcyhucGMpKSB7XG4gICAgICAgIHV0aWxzLnRpbWVycy5jbGVhclRpbWVvdXQoYW5pbVRpbWVycy5nZXQobnBjKSlcbiAgICAgICAgYW5pbVRpbWVycy5kZWxldGUobnBjKVxuICAgIH1cblxuICAgIEFuaW1hdG9yLnN0b3BBbGxBbmltYXRpb25zKG5wYywgdHJ1ZSlcbiAgICBjb25zb2xlLmxvZyhcIm5wYy10b29sa2l0XCIsIFwibnBjXCIsIFwicGxheUFuaW1hdGlvblwiLCBhbmltKVxuICAgIEFuaW1hdG9yLnBsYXlTaW5nbGVBbmltYXRpb24obnBjLCBhbmltLCB0cnVlKVxuICAgIGlmIChkdXJhdGlvbikge1xuICAgICAgICBjb25zb2xlLmxvZyhcIm5wYy10b29sa2l0XCIsJ2hhdmUgYSBkdXJhdGlvbiB0byBwbGF5IGFuaW1hdGlvbicpXG4gICAgICAgIGFuaW1UaW1lcnMuc2V0KG5wYywgdXRpbHMudGltZXJzLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgYW5pbVRpbWVycy5kZWxldGUobnBjKVxuICAgICAgICAgICAgQW5pbWF0b3Iuc3RvcEFsbEFuaW1hdGlvbnMobnBjLCB0cnVlKVxuICAgICAgICAgICAgaWYgKG5wY0RhdGEuaWRsZUFuaW0pIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIm5wYy10b29sa2l0XCIsIFwibnBjXCIsIFwicGxheUFuaW1hdGlvbi1DYWxsYmFja1wiLCBcImlkbGVBbmltXCIpXG4gICAgICAgICAgICAgICAgQW5pbWF0b3IucGxheVNpbmdsZUFuaW1hdGlvbihucGMsIG5wY0RhdGEuaWRsZUFuaW0pXG4gICAgICAgICAgICAgICAgbnBjRGF0YS5sYXN0UGxheWVkQW5pbSA9IG5wY0RhdGEuaWRsZUFuaW1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMTAwMCAqIGR1cmF0aW9uKSkvL1xuICAgIH1cblxuICAgIG5wY0RhdGEubGFzdFBsYXllZEFuaW0gPSBhbmltXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGFuZ2VJZGxlQW5pbShucGM6IEVudGl0eSwgYW5pbWF0aW9uOiBzdHJpbmcsIHBsYXk/OiBib29sZWFuKSB7XG4gICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgbnBjRGF0YS5pZGxlQW5pbSA9IGFuaW1hdGlvblxuXG4gICAgbGV0IGFuaW1hdGlvbnMgPSBBbmltYXRvci5nZXRNdXRhYmxlKG5wYylcbiAgICBpZiAoYW5pbWF0aW9ucy5zdGF0ZXMuZmlsdGVyKChhbmltKSA9PiBhbmltLm5hbWUgPT09IGFuaW1hdGlvbikubGVuZ3RoID09IDApIHtcbiAgICAgICAgYW5pbWF0aW9ucy5zdGF0ZXMucHVzaCh7IG5hbWU6IGFuaW1hdGlvbiwgY2xpcDogYW5pbWF0aW9uLCBsb29wOiB0cnVlIH0pXG4gICAgfVxuXG4gICAgaWYgKHBsYXkpIHtcbiAgICAgICAgcGxheUFuaW1hdGlvbihucGMsIGFuaW1hdGlvbiwgdHJ1ZSlcbiAgICAgICAgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS5sYXN0UGxheWVkQW5pbSA9IGFuaW1hdGlvblxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRhbGtCdWJibGUobnBjOiBFbnRpdHksIHNjcmlwdDogRGlhbG9nW10sIHN0YXJ0SW5kZXg/OiBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICBvcGVuQnViYmxlKG5wYywgc2NyaXB0LCBzdGFydEluZGV4KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGlhbG9nV2luZG93KGRlZmF1bHRQb3J0cmFpdD86IEltYWdlRGF0YSwgc291bmQ/OiBzdHJpbmcpIHtcbiAgICBsZXQgZGlhbG9nID0gZW5naW5lLmFkZEVudGl0eSgpXG4gICAgYWRkRGlhbG9nKGRpYWxvZywgc291bmQsIGRlZmF1bHRQb3J0cmFpdClcbiAgICByZXR1cm4gZGlhbG9nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcGVuRGlhbG9nV2luZG93KG5wYzogRW50aXR5LCBkaWFsb2c6IERpYWxvZ1tdLCBzdGFydEluZGV4PzogbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgYWN0aXZlTlBDID0gbnBjXG5cbiAgICBpZiAobnBjRGlhbG9nQ29tcG9uZW50LmhhcyhucGMpKSB7XG4gICAgICAgIGxldCBpbmRleDogYW55XG4gICAgICAgIGlmICghc3RhcnRJbmRleCkge1xuICAgICAgICAgICAgaW5kZXggPSAwXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHN0YXJ0SW5kZXggPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBpbmRleCA9IHN0YXJ0SW5kZXhcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGluZGV4ID0gZmluZERpYWxvZ0J5TmFtZShkaWFsb2csIHN0YXJ0SW5kZXgpXG4gICAgICAgIH1cbiAgICAgICAgb3BlbkRpYWxvZyhucGMsIGRpYWxvZywgaW5kZXgpXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xvc2VEaWFsb2dXaW5kb3cod2luZG93OiBFbnRpdHkpIHtcbiAgICBsZXQgZGlhbG9nID0gbnBjRGlhbG9nQ29tcG9uZW50LmdldCh3aW5kb3cpXG4gICAgaWYgKHdpbmRvdykge1xuICAgICAgICBjbG9zZURpYWxvZyhkaWFsb2cpXG4gICAgfVxufSJdfQ==
|
|
462
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL25wYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQVUsYUFBYSxFQUFlLFlBQVksRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFpQixNQUFNLGNBQWMsQ0FBQTtBQUMzSyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDM0QsT0FBTyxFQUE4QyxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBZSxNQUFNLFNBQVMsQ0FBQztBQUNsSCxPQUFPLEtBQUssS0FBSyxNQUFNLGdCQUFnQixDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pILE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFN0MsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUF3QixJQUFJLEdBQUcsRUFBRSxDQUFBO0FBQzNELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFxQixJQUFJLEdBQUcsRUFBRSxDQUFBO0FBQzNELE1BQU0sQ0FBQyxJQUFJLFNBQVMsR0FBVyxDQUFDLENBQUE7QUFDaEMsTUFBTSxDQUFDLElBQUksV0FBVyxHQUFXLENBQUMs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QUksSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUYsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDNUQsU0FBUyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUs7UUFDakQsU0FBUyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVELEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVU7S0FDOUMsQ0FBQyxDQUFBO0lBRUYsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHO1NBQ3JCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDNUIsU0FBUyxDQUFDLEdBQUcsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0tBQ3ZKO1NBQ0k7UUFDRCxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtLQUMxRTtJQUVELElBQUksSUFBSSxJQUFJLElBQUksQ0FB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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3RFY3MgZnJvbSAnQGRjbC9zZGsvcmVhY3QtZWNzJ1xuaW1wb3J0IHsgQW5pbWF0b3IsIEF2YXRhclNoYXBlLCBlbmdpbmUsIEVudGl0eSwgR2x0ZkNvbnRhaW5lciwgSW5wdXRBY3Rpb24sIE1lc2hDb2xsaWRlciwgTWVzaFJlbmRlcmVyLCBwb2ludGVyRXZlbnRzU3lzdGVtLCBUcmFuc2Zvcm0sIFRyYW5zZm9ybVR5cGUgfSBmcm9tICdAZGNsL3Nkay9lY3MnXG5pbXBvcnQgeyBDb2xvcjMsIFF1YXRlcm5pb24sIFZlY3RvcjMgfSBmcm9tICdAZGNsL3Nkay9tYXRoJ1xuaW1wb3J0IHsgRGlhbG9nLCBGb2xsb3dQYXRoRGF0YSwgSW1hZ2VEYXRhLCBOUENEYXRhLCBOUENQYXRoVHlwZSwgTlBDU3RhdGUsIE5QQ1R5cGUsIFRyaWdnZXJEYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICdAZGNsLXNkay91dGlscydcbmltcG9ydCB7IElzRm9sbG93aW5nUGF0aCwgVHJhY2tVc2VyRmxhZyB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBmYWNlVXNlclN5c3RlbSwgaGFuZGxlQnViYmxldHlwaW5nLCBoYW5kbGVEaWFsb2dUeXBpbmcsIGhhbmRsZVBhdGhUaW1lcywgaW5wdXRMaXN0ZW5lclN5c3RlbSB9IGZyb20gJy4vc3lzdGVtcyc7XG5pbXBvcnQgeyBhZGREaWFsb2csIGNsb3NlRGlhbG9nLCBmaW5kRGlhbG9nQnlOYW1lLCBucGNEaWFsb2dDb21wb25lbnQsIG9wZW5EaWFsb2cgfSBmcm9tICcuL2RpYWxvZyc7XG5pbXBvcnQgeyBidWJibGVzLCBjbG9zZUJ1YmJsZSwgY3JlYXRlRGlhbG9nQnViYmxlLCBvcGVuQnViYmxlIH0gZnJvbSAnLi9idWJibGUnO1xuaW1wb3J0IHsgZGFya1RoZW1lLCBsaWdodFRoZW1lIH0gZnJvbSAnLi91aSc7XG5cbmV4cG9ydCBjb25zdCB3YWxraW5nVGltZXJzOiBNYXA8RW50aXR5LCBudW1iZXI+ID0gbmV3IE1hcCgpXG5leHBvcnQgY29uc3QgbnBjRGF0YUNvbXBvbmVudDogTWFwPEVudGl0eSwgYW55PiA9IG5ldyBNYXAoKVxuZXhwb3J0IGxldCBhY3RpdmVOUEM6IG51bWJlciA9IDBcbmV4cG9ydCBsZXQgYmxhbmtEaWFsb2c6IG51bWJlciA9IDBcblxuZW5naW5lLmFkZFN5c3RlbShoYW5kbGVQYXRoVGltZXMpXG5lbmdpbmUuYWRkU3lzdGVtKGhhbmRsZURpYWxvZ1R5cGluZylcbmVuZ2luZS5hZGRTeXN0ZW0oaGFuZGxlQnViYmxldHlwaW5nKVxuZW5naW5lLmFkZFN5c3RlbShmYWNlVXNlclN5c3RlbSlcbmVuZ2luZS5hZGRTeXN0ZW0oaW5wdXRMaXN0ZW5lclN5c3RlbSlcblxuY29uc3QgaXNDb29sZG93bjogTWFwPEVudGl0eSwgYW55PiA9IG5ldyBNYXAoKVxuY29uc3Qgb25BY3RpdmF0ZUNiczogTWFwPEVudGl0eSwgYW55PiA9IG5ldyBNYXAoKVxuY29uc3Qgb25XYWxrQXdheUNiczogTWFwPEVudGl0eSwgYW55PiA9IG5ldyBNYXAoKVxuY29uc3QgYW5pbVRpbWVyczogTWFwPEVudGl0eSwgYW55PiA9IG5ldyBNYXAoKVxuY29uc3QgcG9pbnRSZWFjaGVkQ2FsbGJhY2tzOiBNYXA8RW50aXR5LCBhbnk+ID0gbmV3IE1hcCgpXG5jb25zdCBvbkZpbmlzaENhbGxiYWNrczogTWFwPEVudGl0eSwgYW55PiA9IG5ldyBNYXAoKVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvd0RlYnVnKGRlYnVnOiBib29sZWFuKSB7XG4gICAgdXRpbHMudHJpZ2dlcnMuZW5hYmxlRGVidWdEcmF3KGRlYnVnKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YShucGM6IEVudGl0eSkge1xuICAgIHJldHVybiBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoXG4gICAgdHJhbnNmb3JtOiBhbnksXG4gICAgZGF0YTogTlBDRGF0YVxuKSB7XG4gICAgbGV0IG5wYyA9IGVuZ2luZS5hZGRFbnRpdHkoKVxuXG4gICAgbGV0IHQ6IFRyYW5zZm9ybVR5cGUgPSB7IHBvc2l0aW9uOiB0cmFuc2Zvcm0ucG9zaXRpb24gPyB0cmFuc2Zvcm0ucG9zaXRpb24gOiBWZWN0b3IzLmNyZWF0ZSgwLCAwLCAwKSwgcm90YXRpb246IHRyYW5zZm9ybS5yb3RhdGlvbiA/IHRyYW5zZm9ybS5yb3RhdGlvbiA6IFF1YXRlcm5pb24uWmVybygpLCBzY2FsZTogdHJhbnNmb3JtLnNjYWxlID8gdHJhbnNmb3JtLnNjYWxlIDogVmVjdG9yMy5PbmUoKSB9XG4gICAgVHJhbnNmb3JtLmNyZWF0ZShucGMsIHQpXG5cbiAgICBucGNEYXRhQ29tcG9uZW50LnNldChucGMsIHtcbiAgICAgICAgaW50cm9kdWNlZDogZmFsc2UsXG4gICAgICAgIGluQ29vbGRvd246IGZhbHNlLFxuICAgICAgICBjb29sRG93bkR1cmF0aW9uOiBkYXRhICYmIGRhdGEuY29vbERvd25EdXJhdGlvbiA/IGRhdGEuY29vbERvd25EdXJhdGlvbiA6IDUsXG4gICAgICAgIGZhY2VVc2VyOiBkYXRhICYmIGRhdGEuZmFjZVVzZXIgPyBkYXRhLmZhY2VVc2VyIDogdW5kZWZpbmVkLFxuICAgICAgICB3YWxraW5nU3BlZWQ6IDIsXG4gICAgICAgIHdhbGtpbmdBbmltOiBkYXRhICYmIGRhdGEud2Fsa2luZ0FuaW0gPyBkYXRhLndhbGtpbmdBbmltIDogdW5kZWZpbmVkLFxuICAgICAgICBwYXRoRGF0YTogZGF0YS5wYXRoRGF0YSA/IGRhdGEucGF0aERhdGEgOiB1bmRlZmluZWQsXG4gICAgICAgIGN1cnJlbnRQYXRoRGF0YTogW10sXG4gICAgICAgIG1hbnVhbFN0b3A6IGZhbHNlLFxuICAgICAgICBwYXRoSW5kZXg6IDAsXG4gICAgICAgIHN0YXRlOiBOUENTdGF0ZS5TVEFORElORyxcbiAgICAgICAgaWRsZUFuaW06IGRhdGEgJiYgZGF0YS5pZGxlQW5pbSA/IGRhdGEuaWRsZUFuaW0gOiBcIklkbGVcIixcbiAgICAgICAgYnViYmxlSGVpZ2h0OiBkYXRhICYmIGRhdGEudGV4dEJ1YmJsZSAmJiBkYXRhLmJ1YmJsZUhlaWdodCA/IGRhdGEuYnViYmxlSGVpZ2h0IDogdW5kZWZpbmVkLFxuICAgICAgICBidWJibGVTb3VuZDogZGF0YS5kaWFsb2dTb3VuZCA/IGRhdGEuZGlhbG9nU291bmQgOiB1bmRlZmluZWQsXG4gICAgICAgIGhhc0J1YmJsZTogZGF0YSAmJiBkYXRhLnRleHRCdWJibGUgPyB0cnVlIDogZmFsc2UsXG4gICAgICAgIHR1cm5TcGVlZDogZGF0YSAmJiBkYXRhLnR1cm5pbmdTcGVlZCA/IGRhdGEudHVybmluZ1NwZWVkIDogMixcbiAgICAgICAgdGhlbWU6IGRhdGEuZGFya1VJID8gZGFya1RoZW1lIDogbGlnaHRUaGVtZVxuICAgIH0pXG5cbiAgICBpZiAoZGF0YSAmJiBkYXRhLm5vVUkpIHsgfVxuICAgIGVsc2UgaWYgKGRhdGEgJiYgZGF0YS5wb3J0cmFpdCkge1xuICAgICAgICBhZGREaWFsb2cobnBjLCBkYXRhICYmIGRhdGEuZGlhbG9nU291bmQgPyBkYXRhLmRpYWxvZ1NvdW5kIDogdW5kZWZpbmVkLCB0eXBlb2YgZGF0YS5wb3J0cmFpdCA9PT0gYHN0cmluZ2AgPyB7IHBhdGg6IGRhdGEucG9ydHJhaXQgfSA6IGRhdGEucG9ydHJhaXQpXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBhZGREaWFsb2cobnBjLCBkYXRhICYmIGRhdGEuZGlhbG9nU291bmQgPyBkYXRhLmRpYWxvZ1NvdW5kIDogdW5kZWZpbmVkKVxuICAgIH1cblxuICAgIGlmIChkYXRhICYmIGRhdGEudGV4dEJ1YmJsZSkge1xuICAgICAgICBjcmVhdGVEaWFsb2dCdWJibGUobnBjLCBucGNEYXRhQ29tcG9uZW50LmdldChucGMpLmJ1YmJsZUhlaWdodClcbiAgICB9XG5cbiAgICBvbkFjdGl2YXRlQ2JzLnNldChucGMsICgpID0+IHtcbiAgICAgICAgZGF0YS5vbkFjdGl2YXRlKClcbiAgICB9KVxuXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5oYXNPd25Qcm9wZXJ0eShcIm9uV2Fsa0F3YXlcIikpIHtcbiAgICAgICAgb25XYWxrQXdheUNicy5zZXQobnBjLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWRhdGEgfHwgIWRhdGEuY29udGludWVPbldhbGtBd2F5KSB7XG4gICAgICAgICAgICAgICAgaWYgKG5wY0RpYWxvZ0NvbXBvbmVudC5oYXMobnBjKSkge1xuICAgICAgICAgICAgICAgICAgICBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYykudmlzaWJsZSA9IGZhbHNlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKG5wY0RpYWxvZ0NvbXBvbmVudC5oYXMobnBjKSkge1xuICAgICAgICAgICAgICAgICAgICBucGNEaWFsb2dDb21wb25lbnQuZ2V0KG5wYykudmlzaWJsZSA9IGZhbHNlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YS5vbldhbGtBd2F5ISgpXG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgYWRkTlBDQm9uZXMobnBjLCBkYXRhKVxuICAgIGFkZENsaWNrUmVhY3Rpb25zKG5wYywgZGF0YSlcbiAgICBhZGRUcmlnZ2VyQXJlYShucGMsIGRhdGEpXG5cbiAgICBpZiAoZGF0YSAmJiBkYXRhLnBhdGhEYXRhICYmIGRhdGEucGF0aERhdGEuc3BlZWQpIHtcbiAgICAgICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgICAgIG5wY0RhdGEud2Fsa2luZ1NwZWVkID0gZGF0YS5wYXRoRGF0YS5zcGVlZFxuICAgIH1cblxuICAgIGlmIChkYXRhICYmIGRhdGEuY29vbERvd25EdXJhdGlvbikge1xuICAgICAgICBsZXQgbnBjRGF0YSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbiAgICAgICAgbnBjRGF0YS5jb29sRG93bkR1cmF0aW9uID0gZGF0YS5jb29sRG93bkR1cmF0aW9uXG4gICAgfVxuXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5wYXRoRGF0YSkge1xuICAgICAgICBsZXQgbnBjRGF0YSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbiAgICAgICAgbnBjRGF0YS5wYXRoRGF0YS5sb29wID0gdHJ1ZVxuICAgICAgICBmb2xsb3dQYXRoKG5wYywgbnBjRGF0YS5wYXRoRGF0YSlcbiAgICB9XG5cbiAgICByZXR1cm4gbnBjXG59XG5cbmZ1bmN0aW9uIGFkZE5QQ0JvbmVzKG5wYzogRW50aXR5LCBkYXRhOiBOUENEYXRhKSB7XG4gICAgc3dpdGNoIChkYXRhLnR5cGUpIHtcbiAgICAgICAgY2FzZSBOUENUeXBlLkFWQVRBUjpcbiAgICAgICAgICAgIEF2YXRhclNoYXBlLmNyZWF0ZShucGMsIHtcbiAgICAgICAgICAgICAgICBpZDogXCJucGNcIixcbiAgICAgICAgICAgICAgICBuYW1lOiBcIk5QQ1wiLFxuICAgICAgICAgICAgICAgIGJvZHlTaGFwZTogXCJ1cm46ZGVjZW50cmFsYW5kOm9mZi1jaGFpbjpiYXNlLWF2YXRhcnM6QmFzZU1hbGVcIixcbiAgICAgICAgICAgICAgICBlbW90ZXM6IFtdLFxuICAgICAgICAgICAgICAgIHdlYXJhYmxlczogW1xuICAgICAgICAgICAgICAgICAgICBcInVybjpkZWNlbnRyYWxhbmQ6b2ZmLWNoYWluOmJhc2UtYXZhdGFyczpmX2V5ZXNfMDBcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ1cm46ZGVjZW50cmFsYW5kOm9mZi1jaGFpbjpiYXNlLWF2YXRhcnM6Zl9leWVicm93c18wMFwiLFxuICAgICAgICAgICAgICAgICAgICBcInVybjpkZWNlbnRyYWxhbmQ6b2ZmLWNoYWluOmJhc2UtYXZhdGFyczpmX21vdXRoXzAwXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidXJuOmRlY2VudHJhbGFuZDpvZmYtY2hhaW46YmFzZS1hdmF0YXJzOmNvbWZ5X3Nwb3J0X3NhbmRhbHNcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ1cm46ZGVjZW50cmFsYW5kOm9mZi1jaGFpbjpiYXNlLWF2YXRhcnM6c29jY2VyX3BhbnRzXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidXJuOmRlY2VudHJhbGFuZDpvZmYtY2hhaW46YmFzZS1hdmF0YXJzOmVsZWdhbnRfc3dlYXRlclwiLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBOUENUeXBlLkNVU1RPTTpcbiAgICAgICAgICAgIEdsdGZDb250YWluZXIuY3JlYXRlKG5wYywge1xuICAgICAgICAgICAgICAgIHNyYzogZGF0YSAmJiBkYXRhLm1vZGVsID8gZGF0YS5tb2RlbCA6IFwiXCJcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBBbmltYXRvci5jcmVhdGUobnBjLCB7XG4gICAgICAgICAgICAgICAgc3RhdGVzOiBbe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBkYXRhICYmIGRhdGEuaWRsZUFuaW0gPyBkYXRhLmlkbGVBbmltIDogJ0lkbGUnLFxuICAgICAgICAgICAgICAgICAgICBjbGlwOiBkYXRhICYmIGRhdGEuaWRsZUFuaW0gPyBkYXRhLmlkbGVBbmltIDogJ0lkbGUnLFxuICAgICAgICAgICAgICAgICAgICBsb29wOiB0cnVlXG4gICAgICAgICAgICAgICAgfV1cbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgICAgICAgICAgbnBjRGF0YS5pZGxlQW5pbSA9IGRhdGEgJiYgZGF0YS5pZGxlQW5pbSA/IGRhdGEuaWRsZUFuaW0gOiAnSWRsZSdcbiAgICAgICAgICAgIG5wY0RhdGEubGFzdFBsYXllZEFuaW0gPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpLmlkbGVBbmltXG5cbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibnBjLXRvb2xraXRcIiwgXCJucGNcIiwgXCJhZGROUENCb25lc1wiLCBcImlkbGVBbmltXCIpXG4gICAgICAgICAgICBBbmltYXRvci5wbGF5U2luZ2xlQW5pbWF0aW9uKG5wYywgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS5pZGxlQW5pbSlcblxuXG4gICAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLndhbGtpbmdBbmltKSB7XG4gICAgICAgICAgICAgICAgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS53YWxraW5nQW5pbSA9IGRhdGEud2Fsa2luZ0FuaW1cbiAgICAgICAgICAgICAgICBsZXQgYW5pbWF0aW9ucyA9IEFuaW1hdG9yLmdldE11dGFibGUobnBjKVxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbnMuc3RhdGVzLnB1c2goeyBuYW1lOiBkYXRhLndhbGtpbmdBbmltLCBjbGlwOiBkYXRhLndhbGtpbmdBbmltLCBsb29wOiB0cnVlIH0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgTlBDVHlwZS5CTEFOSzpcbiAgICAgICAgICAgIE1lc2hSZW5kZXJlci5zZXRCb3gobnBjKVxuICAgICAgICAgICAgTWVzaENvbGxpZGVyLnNldEJveChucGMpXG4gICAgICAgICAgICBicmVhaztcblxuICAgIH1cbn1cblxuZnVuY3Rpb24gYWRkQ2xpY2tSZWFjdGlvbnMobnBjOiBFbnRpdHksIGRhdGE6IE5QQ0RhdGEpIHtcbiAgICBsZXQgYWN0aXZhdGVCdXR0b24gPSBkYXRhICYmIGRhdGEub25seUNsaWNrVHJpZ2dlciA/IElucHV0QWN0aW9uLklBX1BPSU5URVIgOiBJbnB1dEFjdGlvbi5JQV9QUklNQVJZXG5cbiAgICBwb2ludGVyRXZlbnRzU3lzdGVtLm9uUG9pbnRlckRvd24oXG4gICAgICAgIG5wYyxcbiAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKGlzQ29vbGRvd24uaGFzKG5wYykgfHwgKG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQobnBjKS52aXNpYmxlKSkgcmV0dXJuXG4gICAgICAgICAgICBhY3RpdmF0ZShucGMpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGJ1dHRvbjogYWN0aXZhdGVCdXR0b24sXG4gICAgICAgICAgICBob3ZlclRleHQ6IGRhdGEgJiYgZGF0YS5ob3ZlclRleHQgPyBkYXRhLmhvdmVyVGV4dCA6ICdUYWxrJyxcbiAgICAgICAgICAgIHNob3dGZWVkYmFjazogZGF0YSAmJiBkYXRhLm9ubHlFeHRlcm5hbFRyaWdnZXIgPyBmYWxzZSA6IHRydWUsXG4gICAgICAgIH1cbiAgICApXG5cbiAgICBpZiAoZGF0YSAmJiBkYXRhLm9ubHlFeHRlcm5hbFRyaWdnZXIpIHtcbiAgICAgICAgcG9pbnRlckV2ZW50c1N5c3RlbS5yZW1vdmVPblBvaW50ZXJEb3duKG5wYylcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGFkZFRyaWdnZXJBcmVhKG5wYzogRW50aXR5LCBkYXRhOiBOUENEYXRhKSB7XG5cbiAgICBsZXQgdHJpZ2dlckRhdGE6IFRyaWdnZXJEYXRhID0ge31cblxuICAgIGlmICghZGF0YSB8fCAoZGF0YSAmJiAhZGF0YS5vbmx5RXh0ZXJuYWxUcmlnZ2VyICYmICFkYXRhLm9ubHlDbGlja1RyaWdnZXIgJiYgIWRhdGEub25seUVUcmlnZ2VyKSkge1xuICAgICAgICBvbkFjdGl2YXRlQ2JzLnNldChucGMsICgpID0+IHtcbiAgICAgICAgICAgIGlmIChpc0Nvb2xkb3duLmhhcyhucGMpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2cobnBjLCAnIGluIGNvb2xkb3duJylcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIChucGNEaWFsb2dDb21wb25lbnQuaGFzKG5wYykgJiYgbnBjRGlhbG9nQ29tcG9uZW50LmdldChucGMpLnZpc2libGUpIHx8XG4gICAgICAgICAgICAgICAgKGRhdGEgJiYgZGF0YS5vbmx5RXh0ZXJuYWxUcmlnZ2VyKSB8fFxuICAgICAgICAgICAgICAgIChkYXRhICYmIGRhdGEub25seUNsaWNrVHJpZ2dlcilcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YS5vbkFjdGl2YXRlKClcbiAgICAgICAgfSlcbiAgICAgICAgdHJpZ2dlckRhdGEub25DYW1lcmFFbnRlciA9IG9uQWN0aXZhdGVDYnMuZ2V0KG5wYylcbiAgICB9XG5cbiAgICAvLyB3aGVuIGV4aXRpbmcgdHJpZ2dlclxuICAgIGlmICghZGF0YSB8fCAoZGF0YSAmJiAhZGF0YS5jb250aW51ZU9uV2Fsa0F3YXkpKSB7XG4gICAgICAgIHRyaWdnZXJEYXRhLm9uQ2FtZXJhRXhpdCA9ICgpID0+IHtcbiAgICAgICAgICAgIGhhbmRsZVdhbGtBd2F5KG5wYylcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHdoZW4gZW50ZXJpbmcgdHJpZ2dlclxuICAgIGlmIChcbiAgICAgICAgIWRhdGEgfHxcbiAgICAgICAgKGRhdGEgJiYgIWRhdGEub25seUV4dGVybmFsVHJpZ2dlciAmJiAhZGF0YS5vbmx5Q2xpY2tUcmlnZ2VyICYmICFkYXRhLm9ubHlFVHJpZ2dlcilcbiAgICApIHtcbiAgICAgICAgdHJpZ2dlckRhdGEub25DYW1lcmFFbnRlciA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChpc0Nvb2xkb3duLmhhcyhucGMpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2cobnBjLCAnIGluIGNvb2xkb3duJylcbiAgICAgICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGVsc2UgaWYgKFxuICAgICAgICAgICAgLy8gICAgICh0aGlzLmRpYWxvZyAmJiB0aGlzLmRpYWxvZy5pc0RpYWxvZ09wZW4pIHx8XG4gICAgICAgICAgICAvLyAgICAgKGRhdGEgJiYgZGF0YS5vbmx5RXh0ZXJuYWxUcmlnZ2VyKSB8fFxuICAgICAgICAgICAgLy8gICAgIChkYXRhICYmIGRhdGEub25seUNsaWNrVHJpZ2dlcilcbiAgICAgICAgICAgIC8vICkge1xuICAgICAgICAgICAgLy8gICAgIHJldHVyblxuICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgYWN0aXZhdGUobnBjKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gYWRkIHRyaWdnZXJcbiAgICBpZiAodHJpZ2dlckRhdGEub25DYW1lcmFFbnRlciB8fCB0cmlnZ2VyRGF0YS5vbkNhbWVyYUV4aXQpIHtcbiAgICAgICAgdXRpbHMudHJpZ2dlcnMuYWRkVHJpZ2dlcihucGMsIDI1NCwgMSwgW3sgdHlwZTogJ3NwaGVyZScsIHBvc2l0aW9uOiBWZWN0b3IzLlplcm8oKSwgcmFkaXVzOiBkYXRhLnJlYWN0RGlzdGFuY2UgIT0gdW5kZWZpbmVkID8gZGF0YS5yZWFjdERpc3RhbmNlIDogNiB9XSwgdHJpZ2dlckRhdGEub25DYW1lcmFFbnRlciA/IHRyaWdnZXJEYXRhLm9uQ2FtZXJhRW50ZXIgOiB1bmRlZmluZWQsIHRyaWdnZXJEYXRhLm9uQ2FtZXJhRXhpdCA/IHRyaWdnZXJEYXRhLm9uQ2FtZXJhRXhpdCA6IHVuZGVmaW5lZCwgQ29sb3IzLlJlZCgpKVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvbGxvd1BhdGgobnBjOiBFbnRpdHksIGRhdGE/OiBGb2xsb3dQYXRoRGF0YSkge1xuXG4gICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgbGV0IHBhdGg6IGFueVtdID0gW11cblxuICAgIGlmIChucGNEYXRhLmZhY2VVc2VyKSB7XG4gICAgICAgIGlmIChUcmFja1VzZXJGbGFnLmhhcyhucGMpKSB7XG4gICAgICAgICAgICBUcmFja1VzZXJGbGFnLmRlbGV0ZUZyb20obnBjKVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG5wY0RhdGEubWFudWFsU3RvcCkge1xuICAgICAgICBsZXQgZHVyYXRpb24gPSBucGNEYXRhLnBhdGhEYXRhLnRvdGFsRHVyYXRpb25cbiAgICAgICAgbGV0IGN1cnJlbnRUaW1lcjogbnVtYmVyID0gd2Fsa2luZ1RpbWVycy5nZXQobnBjKSFcbiAgICAgICAgY29uc29sZS5sb2coJ2N1cnJlbnQgdGltZSBpcycsIGN1cnJlbnRUaW1lcilcbiAgICAgICAgaWYgKGN1cnJlbnRUaW1lcikge1xuICAgICAgICAgICAgZHVyYXRpb24gLT0gY3VycmVudFRpbWVyXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcGF0aDogYW55W10gPSBbXVxuICAgICAgICBucGNEYXRhLnBhdGhEYXRhLnBhdGguZm9yRWFjaCgocDogYW55KSA9PiB7XG4gICAgICAgICAgICBwYXRoLnB1c2gocClcbiAgICAgICAgfSlcbiAgICAgICAgcGF0aC5zcGxpY2UoMCwgbnBjRGF0YS5wYXRoSW5kZXgpXG5cbiAgICAgICAgbGV0IHBvcyA9IFRyYW5zZm9ybS5nZXQobnBjKS5wb3NpdGlvblxuICAgICAgICBwYXRoLnVuc2hpZnQoVmVjdG9yMy5jcmVhdGUocG9zLngsIHBvcy55LCBwb3MueikpXG4gICAgICAgIHdhbGtOUEMobnBjLCBucGNEYXRhLCBucGNEYXRhLnBhdGhEYXRhLnBhdGhUeXBlLCBkdXJhdGlvbiwgcGF0aCwgcG9pbnRSZWFjaGVkQ2FsbGJhY2tzLmdldChucGMpLCBvbkZpbmlzaENhbGxiYWNrcy5nZXQobnBjKSlcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICBucGNEYXRhLnBhdGhEYXRhID0gZGF0YVxuXG4gICAgICAgICAgICBpZiAoZGF0YS5zdGFydGluZ1BvaW50KSB7XG4gICAgICAgICAgICAgICAgZGF0YS5wYXRoPy5zcGxpY2UoMCwgZGF0YS5zdGFydGluZ1BvaW50IC0gMSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IHBvcyA9IFRyYW5zZm9ybS5nZXQobnBjKS5wb3NpdGlvblxuICAgICAgICAgICAgcGF0aC5wdXNoKFZlY3RvcjMuY3JlYXRlKHBvcy54LCBwb3MueSwgcG9zLnopKVxuICAgICAgICAgICAgZGF0YS5wYXRoPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICAgICAgICAgICAgcGF0aC5wdXNoKHApXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBvbkZpbmlzaENhbGxiYWNrcy5zZXQobnBjLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ29uIGZpbmlzaGVkIGNhbGxiYWNrJylcbiAgICAgICAgICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLm9uRmluaXNoQ2FsbGJhY2sgJiYgIWRhdGEubG9vcCkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhLm9uRmluaXNoQ2FsbGJhY2tcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgICAgICAgICAgICAgbnBjRGF0YS5tYW51YWxTdG9wID0gZmFsc2VcbiAgICAgICAgICAgICAgICBzdG9wUGF0aChucGMpXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBwb2ludFJlYWNoZWRDYWxsYmFja3Muc2V0KG5wYywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdvbiBwb2ludCByZWFjaGVkIGNhbGxiYWNrJylcbiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYylcbiAgICAgICAgICAgICAgICBkYXRhLnBhdGhJbmRleCArPSAxXG4gICAgICAgICAgICAgICAgZGF0YS5vblJlYWNoZWRQb2ludENhbGxiYWNrID8gZGF0YS5vblJlYWNoZWRQb2ludENhbGxiYWNrIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgd2Fsa05QQyhucGMsIG5wY0RhdGEsIGRhdGEucGF0aFR5cGUhLCBkYXRhLnRvdGFsRHVyYXRpb24sIHBhdGgsIHBvaW50UmVhY2hlZENhbGxiYWNrcy5nZXQobnBjKSwgb25GaW5pc2hDYWxsYmFja3MuZ2V0KG5wYykpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAobnBjRGF0YS5tYW51YWxTdG9wKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3dlIGhhdmUgbWFudWFsIHN0b3AsIG5lZWQgdG8gcGljayBiYWNrIHVwIHdoZXJlIHdlIGxlZnQgb2ZmJylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd3ZSBhcmUgdHJ5aW5nIHRvIGZvbGxvdyBhIHBhdGggd2l0b3V0IHN0YXJ0aW5nIG9uZSBwcmlvcicpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuXG59XG5cbmZ1bmN0aW9uIHdhbGtOUEMobnBjOiBFbnRpdHksIG5wY0RhdGE6IGFueSwgdHlwZTogTlBDUGF0aFR5cGUsIGR1cmF0aW9uOiBudW1iZXIsIHBhdGg6IFZlY3RvcjNbXSwgcG9pbnRSZWFjaGVkQ2FsbGJhY2s/OiBhbnksIGZpbmlzaGVkQ2FsbGJhY2s/OiBhbnkpIHtcblxuICAgIGlmIChJc0ZvbGxvd2luZ1BhdGguaGFzKG5wYykpIHtcbiAgICAgICAgSXNGb2xsb3dpbmdQYXRoLmRlbGV0ZUZyb20obnBjKVxuICAgICAgICB3YWxraW5nVGltZXJzLmRlbGV0ZShucGMpXG4gICAgfVxuICAgIElzRm9sbG93aW5nUGF0aC5jcmVhdGUobnBjKVxuXG4gICAgaWYgKHR5cGUpIHtcbiAgICAgICAgaWYgKHR5cGUgPT0gTlBDUGF0aFR5cGUuUklHSURfUEFUSCkge1xuICAgICAgICAgICAgdXRpbHMucGF0aHMuc3RhcnRTdHJhaWdodFBhdGgobnBjLCBwYXRoLCBkdXJhdGlvbiwgdHJ1ZSxcbiAgICAgICAgICAgICAgICAoKSA9PiB7IGZpbmlzaGVkQ2FsbGJhY2soKSB9LCAoKSA9PiB7IHBvaW50UmVhY2hlZENhbGxiYWNrKCkgfSlcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHV0aWxzLnBhdGhzLnN0YXJ0U21vb3RoUGF0aChucGMsIHBhdGgsIGR1cmF0aW9uLCAzMCwgdHJ1ZSxcbiAgICAgICAgICAgICAgICAoKSA9PiB7IGZpbmlzaGVkQ2FsbGJhY2soKSB9LCAoKSA9PiB7IHBvaW50UmVhY2hlZENhbGxiYWNrKCkgfSlcbiAgICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgdXRpbHMucGF0aHMuc3RhcnRTbW9vdGhQYXRoKG5wYywgcGF0aCwgZHVyYXRpb24sIDIwLCB0cnVlLFxuICAgICAgICAgICAgKCkgPT4geyBmaW5pc2hlZENhbGxiYWNrKCkgfSwgKCkgPT4geyBwb2ludFJlYWNoZWRDYWxsYmFjaygpIH0pXG4gICAgfVxuXG4gICAgaWYgKG5wY0RhdGEud2Fsa2luZ0FuaW0pIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJucGMtdG9vbGtpdFwiLCBcIm5wY1wiLCBcIndhbGtOUENcIiwgXCJ3YWxraW5nQW5pbVwiKVxuICAgICAgICBBbmltYXRvci5wbGF5U2luZ2xlQW5pbWF0aW9uKG5wYywgbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS53YWxraW5nQW5pbSwgdHJ1ZSlcbiAgICAgICAgbnBjRGF0YS5sYXN0UGxheWVkQW5pbSA9IG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykud2Fsa2luZ0FuaW1cbiAgICB9XG4gICAgbnBjRGF0YS5zdGF0ZSA9IE5QQ1N0YXRlLkZPTExPV1BBVEhcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0b3BXYWxraW5nKG5wYzogRW50aXR5LCBkdXJhdGlvbj86IG51bWJlciwgZmluaXNoZWQ/OiBib29sZWFuKSB7XG4gICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgbnBjRGF0YS5zdGF0ZSA9IE5QQ1N0YXRlLlNUQU5ESU5HXG4gICAgbnBjRGF0YS5tYW51YWxTdG9wID0gdHJ1ZVxuXG4gICAgc3RvcFBhdGgobnBjKVxuXG4gICAgaWYgKGR1cmF0aW9uKSB7XG4gICAgICAgIHV0aWxzLnRpbWVycy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIC8vaWYgKHRoaXMuZGlhbG9nICYmIHRoaXMuZGlhbG9nLmlzRGlhbG9nT3BlbikgcmV0dXJuXG4gICAgICAgICAgICBpZiAobnBjRGF0YS5wYXRoKSB7XG4gICAgICAgICAgICAgICAgQW5pbWF0b3Iuc3RvcEFsbEFuaW1hdGlvbnMobnBjLCB0cnVlKVxuICAgICAgICAgICAgICAgIGlmIChucGNEYXRhQ29tcG9uZW50LmdldChucGMpLndhbGtpbmdBbmltKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibnBjLXRvb2xraXRcIiwgXCJucGNcIiwgXCJzdG9wV2Fsa2luZy1jYWxsYmFja1wiLCBcIndhbGtpbmdBbmltXCIpXG4gICAgICAgICAgICAgICAgICAgIEFuaW1hdG9yLnBsYXlTaW5nbGVBbmltYXRpb24obnBjLCBucGNEYXRhQ29tcG9uZW50LmdldChucGMpLndhbGtpbmdBbmltLCB0cnVlKVxuICAgICAgICAgICAgICAgICAgICBucGNEYXRhLmxhc3RQbGF5ZWRBbmltID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKS53YWxraW5nQW5pbVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgZHVyYXRpb24gPSBucGNEYXRhLnBhdGhEYXRhLnRvdGFsRHVyYXRpb25cbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudFRpbWVyOiBudW1iZXIgPSB3YWxraW5nVGltZXJzLmdldChucGMpIVxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjdXJyZW50IHRpbWUgaXMnLCBjdXJyZW50VGltZXIpXG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRUaW1lcikge1xuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbiAtPSBjdXJyZW50VGltZXJcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgcGF0aDogYW55W10gPSBbXVxuICAgICAgICAgICAgICAgIG5wY0RhdGEucGF0aERhdGEucGF0aC5mb3JFYWNoKChwOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aC5wdXNoKHApXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBwYXRoLnNwbGljZSgwLCBucGNEYXRhLnBhdGhJbmRleClcblxuICAgICAgICAgICAgICAgIGxldCBwb3MgPSBUcmFuc2Zvcm0uZ2V0KG5wYykucG9zaXRpb25cbiAgICAgICAgICAgICAgICBwYXRoLnVuc2hpZnQoVmVjdG9yMy5jcmVhdGUocG9zLngsIHBvcy55LCBwb3MueikpXG5cbiAgICAgICAgICAgICAgICBucGNEYXRhLm1hbnVhbFN0b3AgPSBmYWxzZVxuICAgICAgICAgICAgICAgIHdhbGtOUEMobnBjLCBucGNEYXRhLCBucGNEYXRhLnBhdGhEYXRhLnBhdGhUeXBlLCBkdXJhdGlvbiwgcGF0aCwgcG9pbnRSZWFjaGVkQ2FsbGJhY2tzLmdldChucGMpLCBvbkZpbmlzaENhbGxiYWNrcy5nZXQobnBjKSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LCBkdXJhdGlvbiAqIDEwMDApXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RvcFBhdGgobnBjOiBFbnRpdHkpIHtcbiAgICB1dGlscy5wYXRocy5zdG9wUGF0aChucGMpXG4gICAgSXNGb2xsb3dpbmdQYXRoLmRlbGV0ZUZyb20obnBjKVxuXG4gICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgaWYgKG5wY0RhdGEud2Fsa2luZ0FuaW0pIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJucGMtdG9vbGtpdFwiLCBcIm5wY1wiLCBcInN0b3BQYXRoXCIsIFwiaWRsZUFuaW1cIilcbiAgICAgICAgQW5pbWF0b3IucGxheVNpbmdsZUFuaW1hdGlvbihucGMsIG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykuaWRsZUFuaW0pXG4gICAgICAgIG5wY0RhdGEubGFzdFBsYXllZEFuaW0gPSBucGNEYXRhLmlkbGVBbmltXG4gICAgfVxuXG4gICAgaWYgKCFucGNEYXRhLm1hbnVhbFN0b3ApIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJucGMtdG9va2l0XCIsIFwiU3RvcFBhdGhcIiwgXCJMb29wP1wiLCBucGNEYXRhLnBhdGhEYXRhLmxvb3ApXG4gICAgICAgIGlmIChucGNEYXRhLnBhdGhEYXRhLmxvb3ApIHtcbiAgICAgICAgICAgIG5wY0RhdGEucGF0aEluZGV4ID0gMFxuICAgICAgICAgICAgd2Fsa2luZ1RpbWVycy5kZWxldGUobnBjKVxuICAgICAgICAgICAgY29uc29sZS5sb2coJ3dlIGFyZSBsb29waW5nIHBhdGgnLCBucGNEYXRhKVxuICAgICAgICAgICAgZm9sbG93UGF0aChucGMsIG5wY0RhdGEucGF0aERhdGEpXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhucGNEYXRhKVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIENhbGxzIHRoZSBOUEMncyBhY3RpdmF0aW9uIGZ1bmN0aW9uIChzZXQgb24gTlBDIGRlZmluaXRpb24pLiBJZiBOUEMgaGFzIGBmYWNlVXNlcmAgPSB0cnVlLCBpdCB3aWxsIHJvdGF0ZSB0byBmYWNlIHRoZSBwbGF5ZXIuIEl0IHN0YXJ0cyBhIGNvb2xkb3duIGNvdW50ZXIgdG8gYXZvaWQgcmVhY3RpdmF0aW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWN0aXZhdGUobnBjOiBFbnRpdHkpIHtcbiAgICBhY3RpdmVOUEMgPSBucGNcbiAgICBvbkFjdGl2YXRlQ2JzLmdldChucGMpKClcblxuICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgIGlmIChucGNEYXRhLmZhY2VVc2VyKSB7XG4gICAgICAgIFRyYWNrVXNlckZsYWcuY3JlYXRlKG5wYywge1xuICAgICAgICAgICAgbG9ja1haUm90YXRpb246IHRydWUsXG4gICAgICAgICAgICBhY3RpdmU6IHRydWUsXG4gICAgICAgICAgICByb3RTcGVlZDogbnBjRGF0YS50dXJuU3BlZWRcbiAgICAgICAgfSlcbiAgICB9XG4gICAgaXNDb29sZG93bi5zZXQobnBjLCB0cnVlKVxuICAgIG5wY0RhdGEuaW5Db29sZG93biA9IHRydWVcblxuICAgIHV0aWxzLnRpbWVycy5zZXRUaW1lb3V0KFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpc0Nvb2xkb3duLmRlbGV0ZShucGMpXG4gICAgICAgICAgICBucGNEYXRhQ29tcG9uZW50LmdldChucGMpLmluQ29vbGRvd24gPSBmYWxzZVxuICAgICAgICB9LFxuICAgICAgICAxMDAwICogbnBjRGF0YS5jb29sRG93bkR1cmF0aW9uXG4gICAgKVxuICAgIGNvbnNvbGUubG9nKCdhY3RpdmF0ZWQgbnBjLCcsIG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykpXG59XG5cbmZ1bmN0aW9uIGVuZEludGVyYWN0aW9uKG5wYzogRW50aXR5KSB7XG4gICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgbnBjRGF0YS5zdGF0ZSA9IE5QQ1N0YXRlLlNUQU5ESU5HXG5cbiAgICBpZiAobnBjRGlhbG9nQ29tcG9uZW50LmhhcyhucGMpICYmIG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQobnBjKS52aXNpYmxlKSB7XG4gICAgICAgIGNsb3NlRGlhbG9nKG5wYylcbiAgICB9XG5cbiAgICBpZiAobnBjRGF0YS5mYWNlVXNlcikge1xuICAgICAgICBpZiAoVHJhY2tVc2VyRmxhZy5oYXMobnBjKSkge1xuICAgICAgICAgICAgVHJhY2tVc2VyRmxhZy5kZWxldGVGcm9tKG5wYylcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKCdlbmRpbmcgaW50ZXJhY3Rpb24nLCBucGNEYXRhLCBidWJibGVzLmdldChucGMpKVxuICAgIGlmIChucGNEYXRhLmhhc0J1YmJsZSAmJiBidWJibGVzLmdldChucGMpLmlzQnViYmxlT3Blbikge1xuICAgICAgICBjbG9zZUJ1YmJsZShucGMpXG4gICAgfVxufVxuXG4vKipcbiAqIEVuZHMgaW50ZXJhY3Rpb24gYW5kIGNhbGxzIHRoZSBvbldhbGtBd2F5IGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVXYWxrQXdheShucGM6IEVudGl0eSkge1xuICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgIGlmIChucGNEYXRhLm1hbnVhbFN0b3ApIHtcbiAgICAgICAgY29uc29sZS5sb2coJ2ludGVyYWN0aW9uIGVuZGVkLCBuZWVkIHRvIHdhbGsgYWdhaW4nKVxuICAgICAgICBmb2xsb3dQYXRoKG5wYylcbiAgICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKG5wY0RhdGEuc3RhdGUgPT0gTlBDU3RhdGUuRk9MTE9XUEFUSCkge1xuICAgICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBlbmRJbnRlcmFjdGlvbihucGMpXG5cbiAgICBpZiAob25XYWxrQXdheUNicy5nZXQobnBjKSkge1xuICAgICAgICBvbldhbGtBd2F5Q2JzLmdldChucGMpKClcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwbGF5QW5pbWF0aW9uKG5wYzogRW50aXR5LCBhbmltOiBzdHJpbmcsIG5vTG9vcD86IGJvb2xlYW4sIGR1cmF0aW9uPzogbnVtYmVyKSB7XG4gICAgbGV0IGFuaW1hdGlvbnMgPSBBbmltYXRvci5nZXRNdXRhYmxlKG5wYylcbiAgICBpZiAoYW5pbWF0aW9ucy5zdGF0ZXMuZmlsdGVyKChhbmltYXRpb24pID0+IGFuaW1hdGlvbi5uYW1lID09PSBhbmltKS5sZW5ndGggPT0gMCkge1xuICAgICAgICBhbmltYXRpb25zLnN0YXRlcy5wdXNoKHsgbmFtZTogYW5pbSwgY2xpcDogYW5pbSwgbG9vcDogbm9Mb29wID8gZmFsc2UgOiB0cnVlIH0pXG4gICAgfVxuXG4gICAgbGV0IG5wY0RhdGEgPSBucGNEYXRhQ29tcG9uZW50LmdldChucGMpXG4gICAgaWYgKG5wY0RhdGEuc3RhdGUgPT0gTlBDU3RhdGUuRk9MTE9XUEFUSCkge1xuICAgICAgICB1dGlscy5wYXRocy5zdG9wUGF0aChucGMpXG4gICAgfVxuXG4gICAgaWYgKGFuaW1UaW1lcnMuaGFzKG5wYykpIHtcbiAgICAgICAgdXRpbHMudGltZXJzLmNsZWFyVGltZW91dChhbmltVGltZXJzLmdldChucGMpKVxuICAgICAgICBhbmltVGltZXJzLmRlbGV0ZShucGMpXG4gICAgfVxuXG4gICAgQW5pbWF0b3Iuc3RvcEFsbEFuaW1hdGlvbnMobnBjLCB0cnVlKVxuICAgIGNvbnNvbGUubG9nKFwibnBjLXRvb2xraXRcIiwgXCJucGNcIiwgXCJwbGF5QW5pbWF0aW9uXCIsIGFuaW0pXG4gICAgQW5pbWF0b3IucGxheVNpbmdsZUFuaW1hdGlvbihucGMsIGFuaW0sIHRydWUpXG4gICAgaWYoZHVyYXRpb24pe1xuICAgICAgICBjb25zb2xlLmxvZygnaGF2ZSBhIGR1cmF0aW9uIHRvIHBsYXkgYW5pbWF0aW9uJylcbiAgICAgICAgaWYoYW5pbVRpbWVycy5oYXMobnBjKSl7XG4gICAgICAgICAgICB1dGlscy50aW1lcnMuY2xlYXJUaW1lb3V0KGFuaW1UaW1lcnMuZ2V0KG5wYykpXG4gICAgICAgICAgICBhbmltVGltZXJzLmRlbGV0ZShucGMpXG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGFuaW1UaW1lcnMuc2V0KG5wYywgdXRpbHMudGltZXJzLnNldFRpbWVvdXQoKCk9PntcbiAgICAgICAgICAgIGFuaW1UaW1lcnMuZGVsZXRlKG5wYylcbiAgICAgICAgICAgIEFuaW1hdG9yLnN0b3BBbGxBbmltYXRpb25zKG5wYywgdHJ1ZSlcbiAgICAgICAgICAgIGlmIChucGNEYXRhLmlkbGVBbmltKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJucGMtdG9vbGtpdFwiLCBcIm5wY1wiLCBcInBsYXlBbmltYXRpb24tQ2FsbGJhY2tcIiwgXCJpZGxlQW5pbVwiKVxuICAgICAgICAgICAgICAgIEFuaW1hdG9yLnBsYXlTaW5nbGVBbmltYXRpb24obnBjLCBucGNEYXRhLmlkbGVBbmltKVxuICAgICAgICAgICAgICAgIG5wY0RhdGEubGFzdFBsYXllZEFuaW0gPSBucGNEYXRhLmlkbGVBbmltXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDEwMDAgKiBkdXJhdGlvbikpLy9cbiAgICB9XG5cbiAgICBucGNEYXRhLmxhc3RQbGF5ZWRBbmltID0gYW5pbVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlSWRsZUFuaW0obnBjOiBFbnRpdHksIGFuaW1hdGlvbjogc3RyaW5nLCBwbGF5PzogYm9vbGVhbikge1xuICAgIGxldCBucGNEYXRhID0gbnBjRGF0YUNvbXBvbmVudC5nZXQobnBjKVxuICAgIG5wY0RhdGEuaWRsZUFuaW0gPSBhbmltYXRpb25cblxuICAgIGxldCBhbmltYXRpb25zID0gQW5pbWF0b3IuZ2V0TXV0YWJsZShucGMpXG4gICAgaWYgKGFuaW1hdGlvbnMuc3RhdGVzLmZpbHRlcigoYW5pbSkgPT4gYW5pbS5uYW1lID09PSBhbmltYXRpb24pLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgIGFuaW1hdGlvbnMuc3RhdGVzLnB1c2goeyBuYW1lOiBhbmltYXRpb24sIGNsaXA6IGFuaW1hdGlvbiwgbG9vcDogdHJ1ZSB9KVxuICAgIH1cblxuICAgIGlmIChwbGF5KSB7XG4gICAgICAgIHBsYXlBbmltYXRpb24obnBjLCBhbmltYXRpb24sIHRydWUpXG4gICAgICAgIG5wY0RhdGFDb21wb25lbnQuZ2V0KG5wYykubGFzdFBsYXllZEFuaW0gPSBhbmltYXRpb25cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWxrQnViYmxlKG5wYzogRW50aXR5LCBzY3JpcHQ6IERpYWxvZ1tdLCBzdGFydEluZGV4PzogbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgb3BlbkJ1YmJsZShucGMsIHNjcmlwdCwgc3RhcnRJbmRleClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURpYWxvZ1dpbmRvdyhkZWZhdWx0UG9ydHJhaXQ/OiBJbWFnZURhdGEsIHNvdW5kPzogc3RyaW5nKSB7XG4gICAgbGV0IGRpYWxvZyA9IGVuZ2luZS5hZGRFbnRpdHkoKVxuICAgIGFkZERpYWxvZyhkaWFsb2csIHNvdW5kLCBkZWZhdWx0UG9ydHJhaXQpXG4gICAgcmV0dXJuIGRpYWxvZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gb3BlbkRpYWxvZ1dpbmRvdyhucGM6IEVudGl0eSwgZGlhbG9nOiBEaWFsb2dbXSwgc3RhcnRJbmRleD86IG51bWJlciB8IHN0cmluZykge1xuICAgIGFjdGl2ZU5QQyA9IG5wY1xuXG4gICAgaWYgKG5wY0RpYWxvZ0NvbXBvbmVudC5oYXMobnBjKSkge1xuICAgICAgICBsZXQgaW5kZXg6IGFueVxuICAgICAgICBpZiAoIXN0YXJ0SW5kZXgpIHtcbiAgICAgICAgICAgIGluZGV4ID0gMFxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzdGFydEluZGV4ID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgaW5kZXggPSBzdGFydEluZGV4XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpbmRleCA9IGZpbmREaWFsb2dCeU5hbWUoZGlhbG9nLCBzdGFydEluZGV4KVxuICAgICAgICB9XG4gICAgICAgIG9wZW5EaWFsb2cobnBjLCBkaWFsb2csIGluZGV4KVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsb3NlRGlhbG9nV2luZG93KHdpbmRvdzogRW50aXR5KSB7XG4gICAgbGV0IGRpYWxvZyA9IG5wY0RpYWxvZ0NvbXBvbmVudC5nZXQod2luZG93KVxuICAgIGlmICh3aW5kb3cpIHtcbiAgICAgICAgY2xvc2VEaWFsb2coZGlhbG9nKVxuICAgIH1cbn0iXX0=
|
package/dist/ui.d.ts
CHANGED
|
@@ -42,7 +42,31 @@ export declare let leftClickSectionbBlack: {
|
|
|
42
42
|
sourceLeft: number;
|
|
43
43
|
sourceTop: number;
|
|
44
44
|
};
|
|
45
|
-
export declare let
|
|
45
|
+
export declare let primaryButtonSection: {
|
|
46
|
+
atlasHeight: number;
|
|
47
|
+
atlasWidth: number;
|
|
48
|
+
sourceWidth: number;
|
|
49
|
+
sourceHeight: number;
|
|
50
|
+
sourceLeft: number;
|
|
51
|
+
sourceTop: number;
|
|
52
|
+
};
|
|
53
|
+
export declare let secondaryButtonSection: {
|
|
54
|
+
atlasHeight: number;
|
|
55
|
+
atlasWidth: number;
|
|
56
|
+
sourceWidth: number;
|
|
57
|
+
sourceHeight: number;
|
|
58
|
+
sourceLeft: number;
|
|
59
|
+
sourceTop: number;
|
|
60
|
+
};
|
|
61
|
+
export declare let darkButtonSection: {
|
|
62
|
+
atlasHeight: number;
|
|
63
|
+
atlasWidth: number;
|
|
64
|
+
sourceWidth: number;
|
|
65
|
+
sourceHeight: number;
|
|
66
|
+
sourceLeft: number;
|
|
67
|
+
sourceTop: number;
|
|
68
|
+
};
|
|
69
|
+
export declare let redButtonSection: {
|
|
46
70
|
atlasHeight: number;
|
|
47
71
|
atlasWidth: number;
|
|
48
72
|
sourceWidth: number;
|
package/dist/ui.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import ReactEcs, { UiEntity, } from "@dcl/sdk/react-ecs";
|
|
2
|
-
import { buttonClick, displayButton, displayDialog, displayFirstButtonContainer, displayImage, displayPortrait, displaySecondButtonContainer, displaySkipable, getButtonText, getFontSize, getImage, getImageAtlasMapping, getLeftClickTheme, getPortrait, getSkipableTheme, getText, getTextColor, getTheme, handleDialogClick, imageHeight, imageWidth, portraitHeight, portraitWidth, positionImageX, positionImageY, positionPortaitX, positionPortaitY,
|
|
2
|
+
import { buttonClick, displayButton, displayDialog, displayFirstButtonContainer, displayImage, displayPortrait, displaySecondButtonContainer, displaySkipable, getButtonText, getFontSize, getImage, getImageAtlasMapping, getLeftClickTheme, getPortrait, getSkipableTheme, getText, getTextColor, getTextPosition, getTheme, handleDialogClick, imageHeight, imageWidth, portraitHeight, portraitWidth, positionImageX, positionImageY, positionPortaitX, positionPortaitY, realHeight, realWidth, skipDialogs, } from "./dialog";
|
|
3
3
|
import { sourcesComponentsCoordinates } from "./uiResources";
|
|
4
4
|
import { activeNPC } from "./npc";
|
|
5
5
|
export let lightTheme = "https://decentraland.org/images/ui/light-atlas-v3.png";
|
|
@@ -30,7 +30,22 @@ export let leftClickSectionbBlack = {
|
|
|
30
30
|
atlasHeight: sourcesComponentsCoordinates.atlasHeight,
|
|
31
31
|
atlasWidth: sourcesComponentsCoordinates.atlasWidth,
|
|
32
32
|
};
|
|
33
|
-
export let
|
|
33
|
+
export let primaryButtonSection = {
|
|
34
|
+
...sourcesComponentsCoordinates.buttons.E,
|
|
35
|
+
atlasHeight: sourcesComponentsCoordinates.atlasHeight,
|
|
36
|
+
atlasWidth: sourcesComponentsCoordinates.atlasWidth,
|
|
37
|
+
};
|
|
38
|
+
export let secondaryButtonSection = {
|
|
39
|
+
...sourcesComponentsCoordinates.buttons.F,
|
|
40
|
+
atlasHeight: sourcesComponentsCoordinates.atlasHeight,
|
|
41
|
+
atlasWidth: sourcesComponentsCoordinates.atlasWidth,
|
|
42
|
+
};
|
|
43
|
+
export let darkButtonSection = {
|
|
44
|
+
...sourcesComponentsCoordinates.buttons.dark,
|
|
45
|
+
atlasHeight: sourcesComponentsCoordinates.atlasHeight,
|
|
46
|
+
atlasWidth: sourcesComponentsCoordinates.atlasWidth,
|
|
47
|
+
};
|
|
48
|
+
export let redButtonSection = {
|
|
34
49
|
...sourcesComponentsCoordinates.buttons.red,
|
|
35
50
|
atlasHeight: sourcesComponentsCoordinates.atlasHeight,
|
|
36
51
|
atlasWidth: sourcesComponentsCoordinates.atlasWidth,
|
|
@@ -129,7 +144,7 @@ export const NpcUtilsUi = () => {
|
|
|
129
144
|
alignItems: "flex-start",
|
|
130
145
|
justifyContent: 'flex-start',
|
|
131
146
|
flexDirection: "row",
|
|
132
|
-
position:
|
|
147
|
+
position: getTextPosition(),
|
|
133
148
|
}, uiText: {
|
|
134
149
|
value: getText(),
|
|
135
150
|
color: getTextColor(),
|
|
@@ -142,11 +157,12 @@ export const NpcUtilsUi = () => {
|
|
|
142
157
|
flexDirection: "row",
|
|
143
158
|
justifyContent: "space-between",
|
|
144
159
|
display: displayFirstButtonContainer() ? "flex" : "none",
|
|
145
|
-
position: { top: '
|
|
160
|
+
position: { top: '20%' }
|
|
146
161
|
} },
|
|
147
162
|
ReactEcs.createElement(UiEntity, { uiTransform: {
|
|
148
|
-
width: "
|
|
149
|
-
height: "
|
|
163
|
+
width: "150px",
|
|
164
|
+
height: "45px",
|
|
165
|
+
margin: { right: '5%' },
|
|
150
166
|
alignItems: "center",
|
|
151
167
|
justifyContent: "center",
|
|
152
168
|
alignContent: "flex-start",
|
|
@@ -156,13 +172,13 @@ export const NpcUtilsUi = () => {
|
|
|
156
172
|
texture: {
|
|
157
173
|
src: getTheme(),
|
|
158
174
|
},
|
|
159
|
-
uvs: getImageAtlasMapping(
|
|
175
|
+
uvs: getImageAtlasMapping(darkButtonSection),
|
|
160
176
|
}, uiText: { value: getButtonText(0), fontSize: 16 }, onMouseDown: () => {
|
|
161
177
|
buttonClick(0);
|
|
162
178
|
} }),
|
|
163
179
|
ReactEcs.createElement(UiEntity, { uiTransform: {
|
|
164
|
-
width: "
|
|
165
|
-
height: "
|
|
180
|
+
width: "150px",
|
|
181
|
+
height: "45px",
|
|
166
182
|
alignItems: "center",
|
|
167
183
|
justifyContent: "center",
|
|
168
184
|
alignContent: "flex-start",
|
|
@@ -172,12 +188,12 @@ export const NpcUtilsUi = () => {
|
|
|
172
188
|
texture: {
|
|
173
189
|
src: getTheme(),
|
|
174
190
|
},
|
|
175
|
-
uvs: getImageAtlasMapping(
|
|
191
|
+
uvs: getImageAtlasMapping(redButtonSection),
|
|
176
192
|
}, uiText: { value: getButtonText(1), fontSize: 16 }, onMouseDown: () => {
|
|
177
193
|
buttonClick(1);
|
|
178
194
|
} })),
|
|
179
195
|
ReactEcs.createElement(UiEntity, { uiTransform: {
|
|
180
|
-
width: "
|
|
196
|
+
width: "300px",
|
|
181
197
|
alignItems: "center",
|
|
182
198
|
flexDirection: "row",
|
|
183
199
|
justifyContent: "space-between",
|
|
@@ -186,8 +202,9 @@ export const NpcUtilsUi = () => {
|
|
|
186
202
|
position: { top: '15%' }
|
|
187
203
|
} },
|
|
188
204
|
ReactEcs.createElement(UiEntity, { uiTransform: {
|
|
189
|
-
width: "
|
|
190
|
-
height: "
|
|
205
|
+
width: "150px",
|
|
206
|
+
height: "45px",
|
|
207
|
+
margin: { right: '5%' },
|
|
191
208
|
alignItems: "center",
|
|
192
209
|
justifyContent: "center",
|
|
193
210
|
alignContent: "flex-start",
|
|
@@ -197,13 +214,13 @@ export const NpcUtilsUi = () => {
|
|
|
197
214
|
texture: {
|
|
198
215
|
src: getTheme(),
|
|
199
216
|
},
|
|
200
|
-
uvs: getImageAtlasMapping(
|
|
217
|
+
uvs: getImageAtlasMapping(darkButtonSection),
|
|
201
218
|
}, uiText: { value: getButtonText(2), fontSize: 16 }, onMouseDown: () => {
|
|
202
219
|
buttonClick(3);
|
|
203
220
|
} }),
|
|
204
221
|
ReactEcs.createElement(UiEntity, { uiTransform: {
|
|
205
|
-
width: "
|
|
206
|
-
height: "
|
|
222
|
+
width: "150px",
|
|
223
|
+
height: "45px",
|
|
207
224
|
alignItems: "center",
|
|
208
225
|
justifyContent: "center",
|
|
209
226
|
alignContent: "flex-start",
|
|
@@ -213,9 +230,9 @@ export const NpcUtilsUi = () => {
|
|
|
213
230
|
texture: {
|
|
214
231
|
src: getTheme(),
|
|
215
232
|
},
|
|
216
|
-
uvs: getImageAtlasMapping(
|
|
233
|
+
uvs: getImageAtlasMapping(darkButtonSection),
|
|
217
234
|
}, uiText: { value: getButtonText(3), fontSize: 16 }, onMouseDown: () => {
|
|
218
235
|
buttonClick(4);
|
|
219
236
|
} }))));
|
|
220
237
|
};
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdWkudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sUUFBUSxFQUFFLEVBSWYsUUFBUSxHQUNULE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUNMLFdBQVcsRUFFWCxhQUFhLEVBQ2IsYUFBYSxFQUNiLDJCQUEyQixFQUMzQixZQUFZLEVBQ1osZUFBZSxFQUNmLDRCQUE0QixFQUM1QixlQUFlLEVBQ2YsYUFBYSxFQUNiLFdBQVcsRUFDWCxRQUFRLEVBQ1Isb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLE9BQU8sRUFDUCxZQUFZLEVBRVosUUFBUSxFQUNSLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsVUFBVSxFQUNWLGNBQWMsRUFDZCxhQUFhLEVBQ2IsY0FBYyxFQUNkLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixhQUFhLEVBQ2IsVUFBVSxFQUNWLFNBQVMsRUFDVCxXQUFXLEdBQ1osTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFbEMsTUFBTSxDQUFDLElBQUksVUFBVSxHQUFHLHVEQUF1RCxDQUFDO0FBQ2hGLE1BQU0sQ0FBQyxJQUFJLFNBQVMsR0FBRyxzREFBc0QsQ0FBQztBQUU5RSxNQUFNLENBQUMsSUFBSSxjQUFjLEdBQ3ZCLHVEQUF1RCxDQUFDO0FBRTFELE1BQU0sQ0FBQyxJQUFJLE9BQU8sR0FBRztJQUNuQixHQUFHLDRCQUE0QixDQUFDLFdBQVcsQ0FBQyxTQUFTO0lBQ3JELFdBQVcsRUFBRSw0QkFBNEIsQ0FBQyxXQUFXO0lBQ3JELFVBQVUsRUFBRSw0QkFBNEIsQ0FBQyxVQUFVO0NBQ3BELENBQUM7QUFFRixNQUFNLENBQUMsSUFB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O29CQUNELEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxhQUFhLENBQUM7aUJBQ3pDLEVBQ0QsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQ2pELFdBQVcsRUFBRSxHQUFHLEVBQUU7b0JBQ2hCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakIsQ0FBQyxHQUNTO1lBR1osdUJBQUMsUUFBUSxJQUNQLFdBQVcsRUFBRTtvQkFDWCxLQUFLLEVBQUUsT0FBTztvQkFDZCxNQUFNLEVBQUUsTUFBTTtvQkFDZCxVQUFVLEVBQUUsUUFBUTtvQkFDcEIsY0FBYyxFQUFFLFFBQVE7b0JBQ3hCLFlBQVksRUFBRSxZQUFZO29CQUMxQixPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU07aUJBQzVDLEVBQ0QsWUFBWSxFQUFFO29CQUNaLFdBQVcsRUFBRSxTQUFTO29CQUN0QixPQUFPLEVBQUU7d0JBQ1AsR0FBRyxFQUFFLFFBQVEsRUFBRTtxQkFDaEI7b0JBQ0QsR0FBRyxFQUFFLG9CQUFvQixDQUFDLGFBQWEsQ0FBQztpQkFDekMsRUFDRCxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFDakQsV0FBVyxFQUFFLEdBQUcsRUFBRTtvQkFDaEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixDQUFDLEdBQ1MsQ0FDSCxDQUNGLENBRWhCLENBQUE7QUFDRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvcjQgfSBmcm9tIFwiQGRjbC9zZGsvbWF0aFwiO1xuaW1wb3J0IFJlYWN0RWNzLCB7XG4gIEJ1dHRvbixcbiAgTGFiZWwsXG4gIFJlYWN0RWNzUmVuZGVyZXIsXG4gIFVpRW50aXR5LFxufSBmcm9tIFwiQGRjbC9zZGsvcmVhY3QtZWNzXCI7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tIFwiQGRjbC9zZGsvZWNzXCI7XG5pbXBvcnQge1xuICBidXR0b25DbGljayxcbiAgY29uZmlybVRleHQsXG4gIGRpc3BsYXlCdXR0b24sXG4gIGRpc3BsYXlEaWFsb2csXG4gIGRpc3BsYXlGaXJzdEJ1dHRvbkNvbnRhaW5lcixcbiAgZGlzcGxheUltYWdlLFxuICBkaXNwbGF5UG9ydHJhaXQsXG4gIGRpc3BsYXlTZWNvbmRCdXR0b25Db250YWluZXIsXG4gIGRpc3BsYXlTa2lwYWJsZSxcbiAgZ2V0QnV0dG9uVGV4dCxcbiAgZ2V0Rm9udFNpemUsXG4gIGdldEltYWdlLFxuICBnZXRJbWFnZUF0bGFzTWFwcGluZyxcbiAgZ2V0TGVmdENsaWNrVGhlbWUsXG4gIGdldFBvcnRyYWl0LFxuICBnZXRTa2lwYWJsZVRoZW1lLFxuICBnZXRUZXh0LFxuICBnZXRUZXh0Q29sb3IsXG4gIGdldFRleHRQb3NpdGlvbixcbiAgZ2V0VGhlbWUsXG4gIGhhbmRsZURpYWxvZ0NsaWNrLFxuICBpbWFnZUhlaWdodCxcbiAgaW1hZ2VXaWR0aCxcbiAgcG9ydHJhaXRIZWlnaHQsXG4gIHBvcnRyYWl0V2lkdGgsXG4gIHBvc2l0aW9uSW1hZ2VYLFxuICBwb3NpdGlvbkltYWdlWSxcbiAgcG9zaXRpb25Qb3J0YWl0WCxcbiAgcG9zaXRpb25Qb3J0YWl0WSxcbiAgcG9zaXRpb25UZXh0WCxcbiAgcG9zaXRpb25UZXh0WSxcbiAgcmVhbEhlaWdodCxcbiAgcmVhbFdpZHRoLFxuICBza2lwRGlhbG9ncyxcbn0gZnJvbSBcIi4vZGlhbG9nXCI7XG5pbXBvcnQgeyBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzIH0gZnJvbSBcIi4vdWlSZXNvdXJjZXNcIjtcbmltcG9ydCB7IGFjdGl2ZU5QQyB9IGZyb20gXCIuL25wY1wiO1xuXG5leHBvcnQgbGV0IGxpZ2h0VGhlbWUgPSBcImh0dHBzOi8vZGVjZW50cmFsYW5kLm9yZy9pbWFnZXMvdWkvbGlnaHQtYXRsYXMtdjMucG5nXCI7XG5leHBvcnQgbGV0IGRhcmtUaGVtZSA9IFwiaHR0cHM6Ly9kZWNlbnRyYWxhbmQub3JnL2ltYWdlcy91aS9kYXJrLWF0bGFzLXYzLnBuZ1wiO1xuXG5leHBvcnQgbGV0IGJ1YmJsZXNUZXh0dXJlID1cbiAgXCJodHRwczovL2RlY2VudHJhbGFuZC5vcmcvaW1hZ2VzL3VpL2RpYWxvZy1idWJibGVzLnBuZ1wiO1xuXG5leHBvcnQgbGV0IHNlY3Rpb24gPSB7XG4gIC4uLnNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYmFja2dyb3VuZHMuTlBDRGlhbG9nLFxuICBhdGxhc0hlaWdodDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc0hlaWdodCxcbiAgYXRsYXNXaWR0aDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc1dpZHRoLFxufTtcblxuZXhwb3J0IGxldCBza2lwQnV0dG9uU2VjdGlvbiA9IHtcblx0Li4uc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5idXR0b25zLkYsXG5cdGF0bGFzSGVpZ2h0OiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzSGVpZ2h0LFxuXHRhdGxhc1dpZHRoOiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzV2lkdGgsXG4gIH07XG5cbmV4cG9ydCBsZXQgc2tpcEJ1dHRvblNlY3Rpb25CbGFjayA9IHtcblx0Li4uc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5idXR0b25zLkZCbGFjayxcblx0YXRsYXNIZWlnaHQ6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNIZWlnaHQsXG5cdGF0bGFzV2lkdGg6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNXaWR0aCxcbiAgfTtcblxuZXhwb3J0IGxldCBsZWZ0Q2xpY2tTZWN0aW9uID0ge1xuXHQuLi5zb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmljb25zLkNsaWNrV2hpdGUsXG5cdGF0bGFzSGVpZ2h0OiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzSGVpZ2h0LFxuXHRhdGxhc1dpZHRoOiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzV2lkdGgsXG4gIH07XG5cbmV4cG9ydCBsZXQgbGVmdENsaWNrU2VjdGlvbmJCbGFjayA9IHtcblx0Li4uc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5pY29ucy5DbGlja0RhcmssXG5cdGF0bGFzSGVpZ2h0OiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzSGVpZ2h0LFxuXHRhdGxhc1dpZHRoOiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzV2lkdGgsXG4gIH07XG5cbiAgZXhwb3J0IGxldCBidXR0b25TZWN0aW9uID0ge1xuICAgIC4uLnNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYnV0dG9ucy5yZWQsXG4gICAgYXRsYXNIZWlnaHQ6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNIZWlnaHQsXG4gICAgYXRsYXNXaWR0aDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc1dpZHRoLFxuICAgIH07XG5cbmV4cG9ydCBjb25zdCBOcGNVdGlsc1VpID0gKCkgPT4ge1xuICBjb25zdCB3aWR0aCA9IHJlYWxXaWR0aCg3MDApO1xuICBjb25zdCBoZWlnaHQgPSByZWFsSGVpZ2h0KDIyNSk7XG5cbnJldHVybihcbiAgPFVpRW50aXR5XG4gIHVpVHJhbnNmb3JtPXt7XG4gICAgZGlzcGxheTogZGlzcGxheURpYWxvZygpID8gJ2ZsZXgnIDogJ25vbmUnLFxuICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICBwb3NpdGlvblR5cGU6ICdhYnNvbHV0ZScsXG4gICAgcG9zaXRpb246IHsgYm90dG9tOiAnMTUlJywgbGVmdDogJzUwJScgfSxcbiAgICBtYXJnaW46IHsgdG9wOiAtaGVpZ2h0IC8gMiwgbGVmdDogLXdpZHRoIC8gMiB9LFxuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgfX1cbj5cbiAgPFVpRW50aXR5XG4gICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgIHBvc2l0aW9uVHlwZTogJ2Fic29sdXRlJyxcbiAgICAgIHBvc2l0aW9uOiB7IHRvcDogMCwgbGVmdDogMCB9LFxuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgIH19XG4gICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgdGV4dHVyZToge1xuICAgICAgICBzcmM6IGdldFRoZW1lKCksXG4gICAgICB9LFxuICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhzZWN0aW9uKSxcbiAgICB9fVxuICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgaGFuZGxlRGlhbG9nQ2xpY2soKTtcbiAgICB9fVxuICAvPlxuXG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgZGlzcGxheTogZGlzcGxheVBvcnRyYWl0KCkgPyAnZmxleCcgOiAnbm9uZScsXG4gICAgICAgICAgICB3aWR0aDogcG9ydHJhaXRXaWR0aCgpLFxuICAgICAgICAgICAgaGVpZ2h0OiBwb3J0cmFpdEhlaWdodCgpLFxuICAgICAgICAgICAgcG9zaXRpb25UeXBlOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICBwb3NpdGlvbjogeyBib3R0b206IHBvc2l0aW9uUG9ydGFpdFkoKSwgbGVmdDpwb3NpdGlvblBvcnRhaXRYKCkgfSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgdGV4dHVyZU1vZGU6IFwic3RyZXRjaFwiLFxuXHRcdFx0dGV4dHVyZToge1xuXHRcdFx0XHRzcmM6IGdldFBvcnRyYWl0KCksXG5cdFx0XHQgIH0sXG5cdFx0XHQgIC8vIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoc2tpcEJ1dHRvblNlY3Rpb24pLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG5cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBkaXNwbGF5OiBkaXNwbGF5SW1hZ2UoKSA/ICdmbGV4JyA6ICdub25lJyxcbiAgICAgICAgICAgIHdpZHRoOiBpbWFnZVdpZHRoKCksXG4gICAgICAgICAgICBoZWlnaHQ6IGltYWdlSGVpZ2h0KCksXG4gICAgICAgICAgICBwb3NpdGlvblR5cGU6IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgIHBvc2l0aW9uOiB7IGJvdHRvbTogcG9zaXRpb25JbWFnZVkoKSwgcmlnaHQ6cG9zaXRpb25JbWFnZVgoKSB9LFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICB0ZXh0dXJlTW9kZTogXCJzdHJldGNoXCIsXG5cdFx0XHR0ZXh0dXJlOiB7XG5cdFx0XHRcdHNyYzogZ2V0SW1hZ2UoKSxcblx0XHRcdCAgfSxcblx0XHRcdCAgLy8gdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhza2lwQnV0dG9uU2VjdGlvbiksXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cblxuICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIGRpc3BsYXk6IGRpc3BsYXlTa2lwYWJsZSgpID8gJ2ZsZXgnIDogJ25vbmUnLFxuICAgICAgICAgICAgd2lkdGg6IDE1LFxuICAgICAgICAgICAgaGVpZ2h0OiAxNSxcbiAgICAgICAgICAgIHBvc2l0aW9uVHlwZTogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgcG9zaXRpb246IHsgYm90dG9tOiAnNyUnLCBsZWZ0OicyNSUnIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgIHRleHR1cmVNb2RlOiBcInN0cmV0Y2hcIixcblx0XHRcdCAgdGV4dHVyZToge1xuICAgICAgICAgIHNyYzogZ2V0VGhlbWUoKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoZ2V0U2tpcGFibGVUaGVtZSgpKSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICAgIHNraXBEaWFsb2dzKGFjdGl2ZU5QQyBhcyBFbnRpdHkpO1xuICAgICAgICAgIH19XG4gICAgICAgICAgPlxuXG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgIHBvc2l0aW9uVHlwZTogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgcG9zaXRpb246IHsgbGVmdDogJzIxNSUnfSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpVGV4dD17e1xuICAgICAgICAgICAgdmFsdWU6ICdTa2lwJyxcbiAgICAgICAgICAgIGNvbG9yOiBnZXRUZXh0Q29sb3IoKSxcbiAgICAgICAgICAgIGZvbnRTaXplOiAxMixcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgICA8L1VpRW50aXR5PlxuXG4gICBcdDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBkaXNwbGF5OidmbGV4JyxcbiAgICAgICAgICAgIHdpZHRoOiAyNCxcbiAgICAgICAgICAgIGhlaWdodDogMzYsXG4gICAgICAgICAgICBwb3NpdGlvblR5cGU6IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgIHBvc2l0aW9uOiB7IGJvdHRvbTogJzUlJywgcmlnaHQ6JzIlJyB9LFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICB0ZXh0dXJlTW9kZTogXCJzdHJldGNoXCIsXG5cdFx0XHR0ZXh0dXJlOiB7XG5cdFx0XHRcdHNyYzogZ2V0VGhlbWUoKSxcblx0XHRcdCAgfSxcblx0XHRcdCAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhnZXRMZWZ0Q2xpY2tUaGVtZSgpKSxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuXG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBhbGlnblNlbGY6XCJmbGV4LXN0YXJ0XCIsXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImZsZXgtc3RhcnRcIixcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OidmbGV4LXN0YXJ0JyxcbiAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246IFwicm93XCIsXG4gICAgICAgICAgICBwb3NpdGlvbjogeyBsZWZ0OiBwb3NpdGlvblRleHRYKCksIHRvcDogcG9zaXRpb25UZXh0WSgpIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aVRleHQ9e3tcbiAgICAgICAgICAgIHZhbHVlOiBnZXRUZXh0KCksXG4gICAgICAgICAgICBjb2xvcjogZ2V0VGV4dENvbG9yKCksXG4gICAgICAgICAgICBmb250U2l6ZTogZ2V0Rm9udFNpemUoKSxcbiAgICAgICAgICAgIHRleHRBbGlnbjonbWlkZGxlLWxlZnQnXG4gICAgICAgICAgfX1cbiAgICAgICAgPjwvVWlFbnRpdHk+XG5cbiAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIHdpZHRoOiBcIjMwMHB4XCIsXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgZmxleERpcmVjdGlvbjogXCJyb3dcIixcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBcInNwYWNlLWJldHdlZW5cIixcbiAgICAgICAgICAgIGRpc3BsYXk6IGRpc3BsYXlGaXJzdEJ1dHRvbkNvbnRhaW5lcigpID8gXCJmbGV4XCIgOiBcIm5vbmVcIixcbiAgICAgICAgICAgIHBvc2l0aW9uOnt0b3A6ICcxNSUnfVxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7LyogQnV0dG9uMSAqL31cbiAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIHdpZHRoOiBcIjEyNXB4XCIsXG4gICAgICAgICAgICAgIGhlaWdodDogXCI1MHB4XCIsXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICBhbGlnbkNvbnRlbnQ6IFwiZmxleC1zdGFydFwiLFxuICAgICAgICAgICAgICBkaXNwbGF5OiBkaXNwbGF5QnV0dG9uKDEpID8gXCJmbGV4XCIgOiBcIm5vbmVcIixcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICAgIHNyYzogZ2V0VGhlbWUoKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhidXR0b25TZWN0aW9uKSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB1aVRleHQ9e3sgdmFsdWU6IGdldEJ1dHRvblRleHQoMCksIGZvbnRTaXplOiAxNiB9fVxuICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgYnV0dG9uQ2xpY2soMCk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgID48L1VpRW50aXR5PlxuXG4gICAgICAgICAgey8qIEJ1dHRvbjIgKi99XG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICB3aWR0aDogXCIxMjVweFwiLFxuICAgICAgICAgICAgICBoZWlnaHQ6IFwiNTBweFwiLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgYWxpZ25Db250ZW50OiBcImZsZXgtc3RhcnRcIixcbiAgICAgICAgICAgICAgZGlzcGxheTogZGlzcGxheUJ1dHRvbigyKSA/IFwiZmxleFwiIDogXCJub25lXCIsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICBzcmM6IGdldFRoZW1lKCksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoYnV0dG9uU2VjdGlvbiksXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlUZXh0PXt7IHZhbHVlOiBnZXRCdXR0b25UZXh0KDEpLCBmb250U2l6ZTogMTYgfX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGJ1dHRvbkNsaWNrKDEpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+PC9VaUVudGl0eT5cbiAgICAgICAgPC9VaUVudGl0eT5cblxuICAgICAgICB7LyogU2Vjb25kIHJvdyBvZiBidXR0b25zICovfVxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgd2lkdGg6IFwiMTI1cHhcIixcbiAgICAgICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiBcInJvd1wiLFxuICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwic3BhY2UtYmV0d2VlblwiLFxuICAgICAgICAgICAgbWFyZ2luOiB7IHRvcDogMjAgfSxcbiAgICAgICAgICAgIGRpc3BsYXk6IGRpc3BsYXlTZWNvbmRCdXR0b25Db250YWluZXIoKSA/IFwiZmxleFwiIDogXCJub25lXCIsXG4gICAgICAgICAgICBwb3NpdGlvbjp7dG9wOiAnMTUlJ31cblxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICB7LyogQnV0dG9uMyAqL31cbiAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIHdpZHRoOiBcIjEyNXB4XCIsXG4gICAgICAgICAgICAgIGhlaWdodDogXCI1MHB4XCIsXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICBhbGlnbkNvbnRlbnQ6IFwiZmxleC1zdGFydFwiLFxuICAgICAgICAgICAgICBkaXNwbGF5OiBkaXNwbGF5QnV0dG9uKDMpID8gXCJmbGV4XCIgOiBcIm5vbmVcIixcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICAgIHNyYzogZ2V0VGhlbWUoKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhidXR0b25TZWN0aW9uKSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB1aVRleHQ9e3sgdmFsdWU6IGdldEJ1dHRvblRleHQoMiksIGZvbnRTaXplOiAxNiB9fVxuICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgYnV0dG9uQ2xpY2soMyk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgID48L1VpRW50aXR5PlxuXG4gICAgICAgICAgey8qIEJ1dHRvbjQgKi99XG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICB3aWR0aDogXCIxMjVweFwiLFxuICAgICAgICAgICAgICBoZWlnaHQ6IFwiNTBweFwiLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgYWxpZ25Db250ZW50OiBcImZsZXgtc3RhcnRcIixcbiAgICAgICAgICAgICAgZGlzcGxheTogZGlzcGxheUJ1dHRvbig0KSA/IFwiZmxleFwiIDogXCJub25lXCIsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICBzcmM6IGdldFRoZW1lKCksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoYnV0dG9uU2VjdGlvbiksXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlUZXh0PXt7IHZhbHVlOiBnZXRCdXR0b25UZXh0KDMpLCBmb250U2l6ZTogMTYgfX1cbiAgICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGJ1dHRvbkNsaWNrKDQpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+PC9VaUVudGl0eT5cbiAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgIDwvVWlFbnRpdHk+XG4gIFxuKVxufTtcbiJdfQ==
|
|
238
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdWkudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sUUFBUSxFQUFFLEVBSWYsUUFBUSxHQUNULE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUNMLFdBQVcsRUFFWCxhQUFhLEVBQ2IsYUFBYSxFQUNiLDJCQUEyQixFQUMzQixZQUFZLEVBQ1osZUFBZSxFQUNmLDRCQUE0QixFQUM1QixlQUFlLEVBQ2YsYUFBYSxFQUNiLFdBQVcsRUFDWCxRQUFRLEVBQ1Isb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLE9BQU8sRUFDUCxZQUFZLEVBQ1osZUFBZSxFQUNmLFFBQVEsRUFDUixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLFVBQVUsRUFDVixjQUFjLEVBQ2QsYUFBYSxFQUNiLGNBQWMsRUFDZCxjQUFjLEVBQ2QsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUdoQixVQUFVLEVBQ1YsU0FBUyxFQUNULFdBQVcsR0FDWixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVsQyxNQUFNLENBQUMsSUFBSSxVQUFVLEdBQUcsdURBQXVELENBQUM7QUFDaEYsTUFBTSxDQUFDLElBQUksU0FBUyxHQUFHLHNEQUFzRCxDQUFDO0FBRTlFLE1BQU0sQ0FBQyxJQUFJLGNBQWMsR0FDdkIsdURBQXVELENBQUM7QUFFMUQsTUFBTSxDQUFDLElBQUksT0FBTyxHQUFHO0lBQ25CLEdBQUcsNEJBQTRCLENBQUMsV0FBVyxDQUFDLFNBQVM7SUFDckQsV0FBVyxFQUFFLDRCQUE0QixDQUFDLFdBQVc7SUFDckQsVUFBVSxFQUFFLDRCQUE0QixDQUFDLFVBQVU7Q0FDcEQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFJLGlCQUFpQixH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LFlBQVksRUFBRTtvQkFDWixXQUFXLEVBQUUsU0FBUztvQkFDdEIsT0FBTyxFQUFFO3dCQUNQLEdBQUcsRUFBRSxRQUFRLEVBQUU7cUJBQ2hCO29CQUNELEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDN0MsRUFDRCxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFDakQsV0FBVyxFQUFFLEdBQUcsRUFBRTtvQkFDaEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixDQUFDLEdBQ1MsQ0FDSCxDQUNGLENBRWhCLENBQUE7QUFDRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvcjQgfSBmcm9tIFwiQGRjbC9zZGsvbWF0aFwiO1xuaW1wb3J0IFJlYWN0RWNzLCB7XG4gIEJ1dHRvbixcbiAgTGFiZWwsXG4gIFJlYWN0RWNzUmVuZGVyZXIsXG4gIFVpRW50aXR5LFxufSBmcm9tIFwiQGRjbC9zZGsvcmVhY3QtZWNzXCI7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tIFwiQGRjbC9zZGsvZWNzXCI7XG5pbXBvcnQge1xuICBidXR0b25DbGljayxcbiAgY29uZmlybVRleHQsXG4gIGRpc3BsYXlCdXR0b24sXG4gIGRpc3BsYXlEaWFsb2csXG4gIGRpc3BsYXlGaXJzdEJ1dHRvbkNvbnRhaW5lcixcbiAgZGlzcGxheUltYWdlLFxuICBkaXNwbGF5UG9ydHJhaXQsXG4gIGRpc3BsYXlTZWNvbmRCdXR0b25Db250YWluZXIsXG4gIGRpc3BsYXlTa2lwYWJsZSxcbiAgZ2V0QnV0dG9uVGV4dCxcbiAgZ2V0Rm9udFNpemUsXG4gIGdldEltYWdlLFxuICBnZXRJbWFnZUF0bGFzTWFwcGluZyxcbiAgZ2V0TGVmdENsaWNrVGhlbWUsXG4gIGdldFBvcnRyYWl0LFxuICBnZXRTa2lwYWJsZVRoZW1lLFxuICBnZXRUZXh0LFxuICBnZXRUZXh0Q29sb3IsXG4gIGdldFRleHRQb3NpdGlvbixcbiAgZ2V0VGhlbWUsXG4gIGhhbmRsZURpYWxvZ0NsaWNrLFxuICBpbWFnZUhlaWdodCxcbiAgaW1hZ2VXaWR0aCxcbiAgcG9ydHJhaXRIZWlnaHQsXG4gIHBvcnRyYWl0V2lkdGgsXG4gIHBvc2l0aW9uSW1hZ2VYLFxuICBwb3NpdGlvbkltYWdlWSxcbiAgcG9zaXRpb25Qb3J0YWl0WCxcbiAgcG9zaXRpb25Qb3J0YWl0WSxcbiAgcG9zaXRpb25UZXh0WCxcbiAgcG9zaXRpb25UZXh0WSxcbiAgcmVhbEhlaWdodCxcbiAgcmVhbFdpZHRoLFxuICBza2lwRGlhbG9ncyxcbn0gZnJvbSBcIi4vZGlhbG9nXCI7XG5pbXBvcnQgeyBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzIH0gZnJvbSBcIi4vdWlSZXNvdXJjZXNcIjtcbmltcG9ydCB7IGFjdGl2ZU5QQyB9IGZyb20gXCIuL25wY1wiO1xuXG5leHBvcnQgbGV0IGxpZ2h0VGhlbWUgPSBcImh0dHBzOi8vZGVjZW50cmFsYW5kLm9yZy9pbWFnZXMvdWkvbGlnaHQtYXRsYXMtdjMucG5nXCI7XG5leHBvcnQgbGV0IGRhcmtUaGVtZSA9IFwiaHR0cHM6Ly9kZWNlbnRyYWxhbmQub3JnL2ltYWdlcy91aS9kYXJrLWF0bGFzLXYzLnBuZ1wiO1xuXG5leHBvcnQgbGV0IGJ1YmJsZXNUZXh0dXJlID1cbiAgXCJodHRwczovL2RlY2VudHJhbGFuZC5vcmcvaW1hZ2VzL3VpL2RpYWxvZy1idWJibGVzLnBuZ1wiO1xuXG5leHBvcnQgbGV0IHNlY3Rpb24gPSB7XG4gIC4uLnNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYmFja2dyb3VuZHMuTlBDRGlhbG9nLFxuICBhdGxhc0hlaWdodDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc0hlaWdodCxcbiAgYXRsYXNXaWR0aDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc1dpZHRoLFxufTtcblxuZXhwb3J0IGxldCBza2lwQnV0dG9uU2VjdGlvbiA9IHtcblx0Li4uc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5idXR0b25zLkYsXG5cdGF0bGFzSGVpZ2h0OiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzSGVpZ2h0LFxuXHRhdGxhc1dpZHRoOiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzV2lkdGgsXG4gIH07XG5cbmV4cG9ydCBsZXQgc2tpcEJ1dHRvblNlY3Rpb25CbGFjayA9IHtcblx0Li4uc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5idXR0b25zLkZCbGFjayxcblx0YXRsYXNIZWlnaHQ6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNIZWlnaHQsXG5cdGF0bGFzV2lkdGg6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNXaWR0aCxcbiAgfTtcblxuZXhwb3J0IGxldCBsZWZ0Q2xpY2tTZWN0aW9uID0ge1xuXHQuLi5zb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmljb25zLkNsaWNrV2hpdGUsXG5cdGF0bGFzSGVpZ2h0OiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzSGVpZ2h0LFxuXHRhdGxhc1dpZHRoOiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzV2lkdGgsXG4gIH07XG5cbmV4cG9ydCBsZXQgbGVmdENsaWNrU2VjdGlvbmJCbGFjayA9IHtcblx0Li4uc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5pY29ucy5DbGlja0RhcmssXG5cdGF0bGFzSGVpZ2h0OiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzSGVpZ2h0LFxuXHRhdGxhc1dpZHRoOiBzb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmF0bGFzV2lkdGgsXG4gIH07XG5cbmV4cG9ydCBsZXQgcHJpbWFyeUJ1dHRvblNlY3Rpb24gPSB7XG4gIC4uLnNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYnV0dG9ucy5FLFxuICBhdGxhc0hlaWdodDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc0hlaWdodCxcbiAgYXRsYXNXaWR0aDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc1dpZHRoLFxuICB9O1xuXG5leHBvcnQgbGV0IHNlY29uZGFyeUJ1dHRvblNlY3Rpb24gPSB7XG4gIC4uLnNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYnV0dG9ucy5GLFxuICBhdGxhc0hlaWdodDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc0hlaWdodCxcbiAgYXRsYXNXaWR0aDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc1dpZHRoLFxuICB9O1xuXG5leHBvcnQgbGV0IGRhcmtCdXR0b25TZWN0aW9uID0ge1xuICAuLi5zb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmJ1dHRvbnMuZGFyayxcbiAgYXRsYXNIZWlnaHQ6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNIZWlnaHQsXG4gIGF0bGFzV2lkdGg6IHNvdXJjZXNDb21wb25lbnRzQ29vcmRpbmF0ZXMuYXRsYXNXaWR0aCxcbiAgfTtcblxuZXhwb3J0IGxldCByZWRCdXR0b25TZWN0aW9uID0ge1xuICAuLi5zb3VyY2VzQ29tcG9uZW50c0Nvb3JkaW5hdGVzLmJ1dHRvbnMucmVkLFxuICBhdGxhc0hlaWdodDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc0hlaWdodCxcbiAgYXRsYXNXaWR0aDogc291cmNlc0NvbXBvbmVudHNDb29yZGluYXRlcy5hdGxhc1dpZHRoLFxuICB9O1xuXG5leHBvcnQgY29uc3QgTnBjVXRpbHNVaSA9ICgpID0+IHtcbiAgY29uc3Qgd2lkdGggPSByZWFsV2lkdGgoNzAwKTtcbiAgY29uc3QgaGVpZ2h0ID0gcmVhbEhlaWdodCgyMjUpO1xuXG5yZXR1cm4oXG4gIDxVaUVudGl0eVxuICB1aVRyYW5zZm9ybT17e1xuICAgIGRpc3BsYXk6IGRpc3BsYXlEaWFsb2coKSA/ICdmbGV4JyA6ICdub25lJyxcbiAgICBmbGV4RGlyZWN0aW9uOiAnY29sdW1uJyxcbiAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgcG9zaXRpb25UeXBlOiAnYWJzb2x1dGUnLFxuICAgIHBvc2l0aW9uOiB7IGJvdHRvbTogJzE1JScsIGxlZnQ6ICc1MCUnIH0sXG4gICAgbWFyZ2luOiB7IHRvcDogLWhlaWdodCAvIDIsIGxlZnQ6IC13aWR0aCAvIDIgfSxcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gIH19XG4+XG4gIDxVaUVudGl0eVxuICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICBwb3NpdGlvblR5cGU6ICdhYnNvbHV0ZScsXG4gICAgICBwb3NpdGlvbjogeyB0b3A6IDAsIGxlZnQ6IDAgfSxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICB9fVxuICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgc3JjOiBnZXRUaGVtZSgpLFxuICAgICAgfSxcbiAgICAgIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoc2VjdGlvbiksXG4gICAgfX1cbiAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgIGhhbmRsZURpYWxvZ0NsaWNrKCk7XG4gICAgfX1cbiAgLz5cblxuICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgIGRpc3BsYXk6IGRpc3BsYXlQb3J0cmFpdCgpID8gJ2ZsZXgnIDogJ25vbmUnLFxuICAgICAgICAgICAgd2lkdGg6IHBvcnRyYWl0V2lkdGgoKSxcbiAgICAgICAgICAgIGhlaWdodDogcG9ydHJhaXRIZWlnaHQoKSxcbiAgICAgICAgICAgIHBvc2l0aW9uVHlwZTogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgcG9zaXRpb246IHsgYm90dG9tOiBwb3NpdGlvblBvcnRhaXRZKCksIGxlZnQ6cG9zaXRpb25Qb3J0YWl0WCgpIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgIHRleHR1cmVNb2RlOiBcInN0cmV0Y2hcIixcblx0XHRcdHRleHR1cmU6IHtcblx0XHRcdFx0c3JjOiBnZXRQb3J0cmFpdCgpLFxuXHRcdFx0ICB9LFxuXHRcdFx0ICAvLyB1dnM6IGdldEltYWdlQXRsYXNNYXBwaW5nKHNraXBCdXR0b25TZWN0aW9uKSxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuXG4gICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgZGlzcGxheTogZGlzcGxheUltYWdlKCkgPyAnZmxleCcgOiAnbm9uZScsXG4gICAgICAgICAgICB3aWR0aDogaW1hZ2VXaWR0aCgpLFxuICAgICAgICAgICAgaGVpZ2h0OiBpbWFnZUhlaWdodCgpLFxuICAgICAgICAgICAgcG9zaXRpb25UeXBlOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICBwb3NpdGlvbjogeyBib3R0b206IHBvc2l0aW9uSW1hZ2VZKCksIHJpZ2h0OnBvc2l0aW9uSW1hZ2VYKCkgfSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgdGV4dHVyZU1vZGU6IFwic3RyZXRjaFwiLFxuXHRcdFx0dGV4dHVyZToge1xuXHRcdFx0XHRzcmM6IGdldEltYWdlKCksXG5cdFx0XHQgIH0sXG5cdFx0XHQgIC8vIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoc2tpcEJ1dHRvblNlY3Rpb24pLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG5cbiAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBkaXNwbGF5OiBkaXNwbGF5U2tpcGFibGUoKSA/ICdmbGV4JyA6ICdub25lJyxcbiAgICAgICAgICAgIHdpZHRoOiAxNSxcbiAgICAgICAgICAgIGhlaWdodDogMTUsXG4gICAgICAgICAgICBwb3NpdGlvblR5cGU6IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgIHBvc2l0aW9uOiB7IGJvdHRvbTogJzclJywgbGVmdDonMjUlJyB9LFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICB0ZXh0dXJlTW9kZTogXCJzdHJldGNoXCIsXG5cdFx0XHQgIHRleHR1cmU6IHtcbiAgICAgICAgICBzcmM6IGdldFRoZW1lKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB1dnM6IGdldEltYWdlQXRsYXNNYXBwaW5nKGdldFNraXBhYmxlVGhlbWUoKSksXG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgICBza2lwRGlhbG9ncyhhY3RpdmVOUEMgYXMgRW50aXR5KTtcbiAgICAgICAgICB9fVxuICAgICAgICAgID5cblxuICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICBwb3NpdGlvblR5cGU6IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgIHBvc2l0aW9uOiB7IGxlZnQ6ICcyMTUlJ30sXG4gICAgICAgICAgfX1cbiAgICAgICAgICB1aVRleHQ9e3tcbiAgICAgICAgICAgIHZhbHVlOiAnU2tpcCcsXG4gICAgICAgICAgICBjb2xvcjogZ2V0VGV4dENvbG9yKCksXG4gICAgICAgICAgICBmb250U2l6ZTogMTIsXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICAgPC9VaUVudGl0eT5cblxuICAgXHQ8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgZGlzcGxheTonZmxleCcsXG4gICAgICAgICAgICB3aWR0aDogMjQsXG4gICAgICAgICAgICBoZWlnaHQ6IDM2LFxuICAgICAgICAgICAgcG9zaXRpb25UeXBlOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICBwb3NpdGlvbjogeyBib3R0b206ICc1JScsIHJpZ2h0OicyJScgfSxcbiAgICAgICAgICB9fVxuICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgdGV4dHVyZU1vZGU6IFwic3RyZXRjaFwiLFxuXHRcdFx0dGV4dHVyZToge1xuXHRcdFx0XHRzcmM6IGdldFRoZW1lKCksXG5cdFx0XHQgIH0sXG5cdFx0XHQgIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoZ2V0TGVmdENsaWNrVGhlbWUoKSksXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cblxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgYWxpZ25TZWxmOlwiZmxleC1zdGFydFwiLFxuICAgICAgICAgICAgYWxpZ25JdGVtczogXCJmbGV4LXN0YXJ0XCIsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDonZmxleC1zdGFydCcsXG4gICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiBcInJvd1wiLFxuICAgICAgICAgICAgcG9zaXRpb246IGdldFRleHRQb3NpdGlvbigpLFxuICAgICAgICAgIH19XG4gICAgICAgICAgdWlUZXh0PXt7XG4gICAgICAgICAgICB2YWx1ZTogZ2V0VGV4dCgpLFxuICAgICAgICAgICAgY29sb3I6IGdldFRleHRDb2xvcigpLFxuICAgICAgICAgICAgZm9udFNpemU6IGdldEZvbnRTaXplKCksXG4gICAgICAgICAgICB0ZXh0QWxpZ246J21pZGRsZS1sZWZ0J1xuICAgICAgICAgIH19XG4gICAgICAgID48L1VpRW50aXR5PlxuXG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICB3aWR0aDogXCIzMDBweFwiLFxuICAgICAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246IFwicm93XCIsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJzcGFjZS1iZXR3ZWVuXCIsXG4gICAgICAgICAgICBkaXNwbGF5OiBkaXNwbGF5Rmlyc3RCdXR0b25Db250YWluZXIoKSA/IFwiZmxleFwiIDogXCJub25lXCIsXG4gICAgICAgICAgICBwb3NpdGlvbjp7dG9wOiAnMjAlJ31cbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgey8qIEJ1dHRvbjEgKi99XG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICB3aWR0aDogXCIxNTBweFwiLFxuICAgICAgICAgICAgICBoZWlnaHQ6IFwiNDVweFwiLFxuICAgICAgICAgICAgICBtYXJnaW46e3JpZ2h0Oic1JSd9LFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgYWxpZ25Db250ZW50OiBcImZsZXgtc3RhcnRcIixcbiAgICAgICAgICAgICAgZGlzcGxheTogZGlzcGxheUJ1dHRvbigxKSA/IFwiZmxleFwiIDogXCJub25lXCIsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICBzcmM6IGdldFRoZW1lKCksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoZGFya0J1dHRvblNlY3Rpb24pLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHVpVGV4dD17eyB2YWx1ZTogZ2V0QnV0dG9uVGV4dCgwKSwgZm9udFNpemU6IDE2IH19XG4gICAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgICBidXR0b25DbGljaygwKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPjwvVWlFbnRpdHk+XG5cbiAgICAgICAgICB7LyogQnV0dG9uMiAqL31cbiAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgIHdpZHRoOiBcIjE1MHB4XCIsXG4gICAgICAgICAgICAgIGhlaWdodDogXCI0NXB4XCIsXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICBhbGlnbkNvbnRlbnQ6IFwiZmxleC1zdGFydFwiLFxuICAgICAgICAgICAgICBkaXNwbGF5OiBkaXNwbGF5QnV0dG9uKDIpID8gXCJmbGV4XCIgOiBcIm5vbmVcIixcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB1aUJhY2tncm91bmQ9e3tcbiAgICAgICAgICAgICAgdGV4dHVyZU1vZGU6ICdzdHJldGNoJyxcbiAgICAgICAgICAgICAgdGV4dHVyZToge1xuICAgICAgICAgICAgICAgIHNyYzogZ2V0VGhlbWUoKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdXZzOiBnZXRJbWFnZUF0bGFzTWFwcGluZyhyZWRCdXR0b25TZWN0aW9uKSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB1aVRleHQ9e3sgdmFsdWU6IGdldEJ1dHRvblRleHQoMSksIGZvbnRTaXplOiAxNiB9fVxuICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgYnV0dG9uQ2xpY2soMSk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgID48L1VpRW50aXR5PlxuICAgICAgICA8L1VpRW50aXR5PlxuXG4gICAgICAgIHsvKiBTZWNvbmQgcm93IG9mIGJ1dHRvbnMgKi99XG4gICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICB3aWR0aDogXCIzMDBweFwiLFxuICAgICAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246IFwicm93XCIsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJzcGFjZS1iZXR3ZWVuXCIsXG4gICAgICAgICAgICBtYXJnaW46IHsgdG9wOiAyMCB9LFxuICAgICAgICAgICAgZGlzcGxheTogZGlzcGxheVNlY29uZEJ1dHRvbkNvbnRhaW5lcigpID8gXCJmbGV4XCIgOiBcIm5vbmVcIixcbiAgICAgICAgICAgIHBvc2l0aW9uOnt0b3A6ICcxNSUnfVxuXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHsvKiBCdXR0b24zICovfVxuICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgd2lkdGg6IFwiMTUwcHhcIixcbiAgICAgICAgICAgICAgaGVpZ2h0OiBcIjQ1cHhcIixcbiAgICAgICAgICAgICAgbWFyZ2luOntyaWdodDonNSUnfSxcbiAgICAgICAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgIGFsaWduQ29udGVudDogXCJmbGV4LXN0YXJ0XCIsXG4gICAgICAgICAgICAgIGRpc3BsYXk6IGRpc3BsYXlCdXR0b24oMykgPyBcImZsZXhcIiA6IFwibm9uZVwiLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICB0ZXh0dXJlTW9kZTogJ3N0cmV0Y2gnLFxuICAgICAgICAgICAgICB0ZXh0dXJlOiB7XG4gICAgICAgICAgICAgICAgc3JjOiBnZXRUaGVtZSgpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB1dnM6IGdldEltYWdlQXRsYXNNYXBwaW5nKGRhcmtCdXR0b25TZWN0aW9uKSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB1aVRleHQ9e3sgdmFsdWU6IGdldEJ1dHRvblRleHQoMiksIGZvbnRTaXplOiAxNiB9fVxuICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgYnV0dG9uQ2xpY2soMyk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgID48L1VpRW50aXR5PlxuXG4gICAgICAgICAgey8qIEJ1dHRvbjQgKi99XG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICB3aWR0aDogXCIxNTBweFwiLFxuICAgICAgICAgICAgICBoZWlnaHQ6IFwiNDVweFwiLFxuICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgYWxpZ25Db250ZW50OiBcImZsZXgtc3RhcnRcIixcbiAgICAgICAgICAgICAgZGlzcGxheTogZGlzcGxheUJ1dHRvbig0KSA/IFwiZmxleFwiIDogXCJub25lXCIsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICBzcmM6IGdldFRoZW1lKCksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHV2czogZ2V0SW1hZ2VBdGxhc01hcHBpbmcoZGFya0J1dHRvblNlY3Rpb24pLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHVpVGV4dD17eyB2YWx1ZTogZ2V0QnV0dG9uVGV4dCgzKSwgZm9udFNpemU6IDE2IH19XG4gICAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgICBidXR0b25DbGljayg0KTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPjwvVWlFbnRpdHk+XG4gICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICA8L1VpRW50aXR5PlxuICBcbilcbn07XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dcl-npc-toolkit",
|
|
3
|
-
"version": "1.1.2-
|
|
3
|
+
"version": "1.1.2-20230602175626.commit-fe68218",
|
|
4
4
|
"description": "A collection of tools for creating Non-Player-Characters (NPCs). These are capable of having conversations with the player, and play different animations.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"typings": "./dist/index.d.ts",
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
"files": [
|
|
34
34
|
"dist"
|
|
35
35
|
],
|
|
36
|
-
"commit": "
|
|
36
|
+
"commit": "fe6821851033e8f0c79af5f528f760f8bc28de8b"
|
|
37
37
|
}
|