@dcl/asset-packs 2.3.0 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/index.js +17 -10
- package/dist/bin/index.js +17 -10
- package/dist/triggers.js +15 -10
- package/package.json +2 -2
package/dist/triggers.js
CHANGED
|
@@ -247,10 +247,14 @@ export function createTriggersSystem(engine, components, pointerEventsSystem, tw
|
|
|
247
247
|
}
|
|
248
248
|
function initOnClickTrigger(entity) {
|
|
249
249
|
const pointerEvent = PointerEvents.getMutableOrNull(entity);
|
|
250
|
-
|
|
250
|
+
let opts = { button: 0, hoverText: 'Click' };
|
|
251
251
|
if (pointerEvent) {
|
|
252
|
-
|
|
253
|
-
|
|
252
|
+
const existingIndex = pointerEvent.pointerEvents.findIndex(($) => $.eventInfo?.button === opts.button);
|
|
253
|
+
if (existingIndex !== -1) {
|
|
254
|
+
const eventInfo = pointerEvent.pointerEvents[existingIndex].eventInfo;
|
|
255
|
+
opts = { ...opts, ...eventInfo };
|
|
256
|
+
pointerEvent.pointerEvents.splice(existingIndex, 1);
|
|
257
|
+
}
|
|
254
258
|
}
|
|
255
259
|
pointerEventsSystem.onPointerDown({
|
|
256
260
|
entity,
|
|
@@ -262,13 +266,14 @@ export function createTriggersSystem(engine, components, pointerEventsSystem, tw
|
|
|
262
266
|
}
|
|
263
267
|
function initOnInputActionTrigger(entity) {
|
|
264
268
|
const pointerEvent = PointerEvents.getMutableOrNull(entity);
|
|
265
|
-
|
|
266
|
-
button: 1,
|
|
267
|
-
hoverText: 'Press',
|
|
268
|
-
};
|
|
269
|
+
let opts = { button: 1, hoverText: 'Press' };
|
|
269
270
|
if (pointerEvent) {
|
|
270
|
-
|
|
271
|
-
|
|
271
|
+
const existingIndex = pointerEvent.pointerEvents.findIndex(($) => $.eventInfo?.button === opts.button);
|
|
272
|
+
if (existingIndex !== -1) {
|
|
273
|
+
const eventInfo = pointerEvent.pointerEvents[existingIndex].eventInfo;
|
|
274
|
+
opts = { ...opts, ...eventInfo };
|
|
275
|
+
pointerEvent.pointerEvents.splice(existingIndex, 1);
|
|
276
|
+
}
|
|
272
277
|
}
|
|
273
278
|
pointerEventsSystem.onPointerDown({
|
|
274
279
|
entity,
|
|
@@ -329,4 +334,4 @@ export function createTriggersSystem(engine, components, pointerEventsSystem, tw
|
|
|
329
334
|
}
|
|
330
335
|
}
|
|
331
336
|
}
|
|
332
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHJpZ2dlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQVFMLFVBQVUsR0FFWCxNQUFNLFVBQVUsQ0FBQTtBQUNqQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFDTCxRQUFRLEVBQ1IsT0FBTyxFQUNQLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ2pCLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUVMLGFBQWEsRUFJYix5QkFBeUIsRUFDekIsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxnQ0FBZ0MsRUFDaEMsYUFBYSxHQUVkLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUVqQyxNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0FBQ3hDLE1BQU0sV0FBVyxHQUF5QyxFQUFFLENBQUE7QUFFNUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7QUFDOUMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7QUFFNUMsSUFBSSxvQkFBb0IsR0FBc0MsSUFBSSxDQUFBO0FBRWxFLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBYztJQUN6QyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDekIsT0FBTyxvQkFBb0IsQ0FB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SCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElFbmdpbmUsXG4gIEVudGl0eSxcbiAgSW5wdXRBY3Rpb24sXG4gIExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uLFxuICBEZWVwUmVhZG9ubHlPYmplY3QsXG4gIFBvaW50ZXJFdmVudHNTeXN0ZW0sXG4gIFR3ZWVuU3lzdGVtLFxuICBUd2VlblN0YXRlLFxuICBUd2VlblN0YXRlU3RhdHVzLFxufSBmcm9tICdAZGNsL2VjcydcbmltcG9ydCB7IFZlY3RvcjMgfSBmcm9tICdAZGNsL3Nkay9tYXRoJ1xuaW1wb3J0IHtcbiAgdHJpZ2dlcnMsXG4gIExBWUVSXzEsXG4gIE5PX0xBWUVSUyxcbiAgZ2V0UGxheWVyUG9zaXRpb24sXG4gIGdldFdvcmxkUG9zaXRpb24sXG59IGZyb20gJ0BkY2wtc2RrL3V0aWxzJ1xuaW1wb3J0IHtcbiAgQWN0aW9uLFxuICBDb21wb25lbnROYW1lLFxuICBUcmlnZ2VyLFxuICBUcmlnZ2VyQWN0aW9uLFxuICBUcmlnZ2VyQ29uZGl0aW9uLFxuICBUcmlnZ2VyQ29uZGl0aW9uT3BlcmF0aW9uLFxuICBUcmlnZ2VyQ29uZGl0aW9uVHlwZSxcbiAgVHJpZ2dlclR5cGUsXG4gIGdldENvbmRpdGlvblR5cGVzQnlDb21wb25lbnROYW1lLFxuICBnZXRDb21wb25lbnRzLFxuICBFbmdpbmVDb21wb25lbnRzLFxufSBmcm9tICcuL2RlZmluaXRpb25zJ1xuaW1wb3J0IHsgZ2V0Q3VycmVudFZhbHVlLCBnZXRQcmV2aW91c1ZhbHVlIH0gZnJvbSAnLi9zdGF0ZXMnXG5pbXBvcnQgeyBnZXRBY3Rpb25FdmVudHMsIGdldFRyaWdnZXJFdmVudHMgfSBmcm9tICcuL2V2ZW50cydcbmltcG9ydCB7IGdldFBheWxvYWQgfSBmcm9tICcuL2FjdGlvbi10eXBlcydcbmltcG9ydCB7IGdsb2JhbElucHV0QWN0aW9ucyB9IGZyb20gJy4vaW5wdXQtYWN0aW9ucydcbmltcG9ydCB7IHRpY2tTZXQgfSBmcm9tICcuL3RpbWVyJ1xuXG5jb25zdCBpbml0ZWRFbnRpdGllcyA9IG5ldyBTZXQ8RW50aXR5PigpXG5jb25zdCBhY3Rpb25RdWV1ZTogeyBlbnRpdHk6IEVudGl0eTsgYWN0aW9uOiBBY3Rpb24gfVtdID0gW11cblxuZXhwb3J0IGNvbnN0IGRhbWFnZVRhcmdldHMgPSBuZXcgU2V0PEVudGl0eT4oKVxuZXhwb3J0IGNvbnN0IGhlYWxUYXJnZXRzID0gbmV3IFNldDxFbnRpdHk+KClcblxubGV0IGludGVybmFsSW5pdFRyaWdnZXJzOiAoKGVudGl0eTogRW50aXR5KSA9PiB2b2lkKSB8IG51bGwgPSBudWxsXG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0VHJpZ2dlcnMoZW50aXR5OiBFbnRpdHkpIHtcbiAgaWYgKGludGVybmFsSW5pdFRyaWdnZXJzKSB7XG4gICAgcmV0dXJuIGludGVybmFsSW5pdFRyaWdnZXJzKGVudGl0eSlcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgYENhbm5vdCBjYWxsIGluaXRUcmlnZ2VycyB3aGlsZSB0cmlnZ2Vyc1N5c3RlbSBoYXMgbm90IGJlZW4gY3JlYXRlZGAsXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyaWdnZXJzU3lzdGVtKFxuICBlbmdpbmU6IElFbmdpbmUsXG4gIGNvbXBvbmVudHM6IEVuZ2luZUNvbXBvbmVudHMsXG4gIHBvaW50ZXJFdmVudHNTeXN0ZW06IFBvaW50ZXJFdmVudHNTeXN0ZW0sXG4gIHR3ZWVuU3lzdGVtOiBUd2VlblN5c3RlbSxcbikge1xuICBjb25zdCB7IFRyYW5zZm9ybSwgVHdlZW46IFR3ZWVuQ29tcG9uZW50LCBQb2ludGVyRXZlbnRzIH0gPSBjb21wb25lbnRzXG4gIGNvbnN0IHsgQWN0aW9ucywgU3RhdGVzLCBDb3VudGVyLCBUcmlnZ2VycyB9ID0gZ2V0Q29tcG9uZW50cyhlbmdpbmUpXG5cbiAgLy8gc2F2ZSByZWZlcmVuY2UgdG8gdGhlIGluaXQgZnVuY3Rpb25cbiAgaW50ZXJuYWxJbml0VHJpZ2dlcnMgPSBpbml0RW50aXR5VHJpZ2dlcnNcblxuICByZXR1cm4gZnVuY3Rpb24gdHJpZ2dlcnNTeXN0ZW0oX2R0OiBudW1iZXIpIHtcbiAgICAvLyBwcm9jZXNzIGFjdGlvbiBxdWV1ZVxuICAgIHdoaWxlIChhY3Rpb25RdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IGVudGl0eSwgYWN0aW9uIH0gPSBhY3Rpb25RdWV1ZS5zaGlmdCgpIVxuICAgICAgY29uc3QgYWN0aW9uRXZlbnRzID0gZ2V0QWN0aW9uRXZlbnRzKGVudGl0eSlcbiAgICAgIGFjdGlvbkV2ZW50cy5lbWl0KGFjdGlvbi5uYW1lLCBnZXRQYXlsb2FkKGFjdGlvbikpXG4gICAgfVxuXG4gICAgY29uc3QgZW50aXRpZXNXaXRoVHJpZ2dlcnMgPSBlbmdpbmUuZ2V0RW50aXRpZXNXaXRoKFRyaWdnZXJzKVxuICAgIGZvciAoY29uc3QgW2VudGl0eV0gb2YgZW50aXRpZXNXaXRoVHJpZ2dlcnMpIHtcbiAgICAgIGluaXRFbnRpdHlUcmlnZ2VycyhlbnRpdHkpXG4gICAgICBoYW5kbGVPblR3ZWVuRW5kKGVudGl0eSlcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBpbml0RW50aXR5VHJpZ2dlcnMoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBpZiAoIVRyaWdnZXJzLmhhcyhlbnRpdHkpIHx8IGluaXRlZEVudGl0aWVzLmhhcyhlbnRpdHkpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBnZXQgdHJpZ2dlcnMgZGF0YVxuICAgIGNvbnN0IHRyaWdnZXJzID0gVHJpZ2dlcnMuZ2V0KGVudGl0eSlcblxuICAgIC8vIGluaXRpYWxpemUgdHJpZ2dlcnMgZm9yIGdpdmVuIGVudGl0eVxuICAgIGNvbnN0IHR5cGVzID0gdHJpZ2dlcnMudmFsdWUucmVkdWNlKFxuICAgICAgKHR5cGVzLCB0cmlnZ2VyKSA9PiB0eXBlcy5hZGQodHJpZ2dlci50eXBlKSxcbiAgICAgIG5ldyBTZXQ8VHJpZ2dlclR5cGU+KCksXG4gICAgKVxuICAgIGZvciAoY29uc3QgdHlwZSBvZiB0eXBlcykge1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIC8qKiBAZGVwcmVjYXRlZCB1c2UgT05fSU5QVVRfQUNUSU9OIGluc3RlYWQgKi9cbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9DTElDSzoge1xuICAgICAgICAgIGluaXRPbkNsaWNrVHJpZ2dlcihlbnRpdHkpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX0lOUFVUX0FDVElPTjoge1xuICAgICAgICAgIGluaXRPbklucHV0QWN0aW9uVHJpZ2dlcihlbnRpdHkpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX1BMQVlFUl9FTlRFUlNfQVJFQTpcbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9QTEFZRVJfTEVBVkVTX0FSRUE6IHtcbiAgICAgICAgICBpbml0T25QbGF5ZXJUcmlnZ2VyQXJlYShlbnRpdHkpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX0RBTUFHRToge1xuICAgICAgICAgIGluaXRPbkRhbWFnZShlbnRpdHkpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX0hFQUxfUExBWUVSOiB7XG4gICAgICAgICAgaW5pdE9uSGVhbFBsYXllcihlbnRpdHkpXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9HTE9CQUxfQ0xJQ0s6IHtcbiAgICAgICAgICBpbml0T25HbG9iYWxDaWNrKGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fR0xPQkFMX1BSSU1BUlk6IHtcbiAgICAgICAgICBpbml0T25HbG9iYWxQcmltYXJ5KGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fR0xPQkFMX1NFQ09OREFSWToge1xuICAgICAgICAgIGluaXRPbkdsb2JhbFNlY29uZGFyeShlbnRpdHkpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX1RJQ0s6IHtcbiAgICAgICAgICBpbml0T25UaWNrKGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYmluZCB0cmlnZ2Vyc1xuICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSlcbiAgICBmb3IgKGNvbnN0IHRyaWdnZXIgb2YgdHJpZ2dlcnMudmFsdWUpIHtcbiAgICAgIHRyaWdnZXJFdmVudHMub24odHJpZ2dlci50eXBlLCAoKSA9PiB7XG4gICAgICAgIGlmIChjaGVja0NvbmRpdGlvbnModHJpZ2dlcikpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHRyaWdnZXJBY3Rpb24gb2YgdHJpZ2dlci5hY3Rpb25zKSB7XG4gICAgICAgICAgICBpZiAoaXNWYWxpZEFjdGlvbih0cmlnZ2VyQWN0aW9uKSkge1xuICAgICAgICAgICAgICBjb25zdCBlbnRpdHkgPSBnZXRFbnRpdHlCeUFjdGlvbih0cmlnZ2VyQWN0aW9uKVxuICAgICAgICAgICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aW9ucyA9IEFjdGlvbnMuZ2V0T3JOdWxsKGVudGl0eSlcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9ucykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gYWN0aW9ucy52YWx1ZS5maW5kKFxuICAgICAgICAgICAgICAgICAgICAoJCkgPT4gJC5uYW1lID09PSB0cmlnZ2VyQWN0aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBpZiAoYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFjdGlvbnMgYXJlIGVucXVldWVkIHRvIGJlIGV4ZWN1dGVkIG9uIHRoZSBuZXh0IHRpY2sgYWZ0ZXIgYWxsIHRoZSB0cmlnZ2VycyBoYXZlIGJlZW4gcHJvY2Vzc2VkLFxuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGlzIHRvIGF2b2lkIG9uZSB0cmlnZ2VyIG1lc3Npbmcgd2l0aCBvdGhlciB0cmlnZ2VyJ3MgY29uZGl0aW9uc1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb25RdWV1ZS5wdXNoKHsgZW50aXR5LCBhY3Rpb24gfSlcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9TUEFXTilcblxuICAgIGluaXRlZEVudGl0aWVzLmFkZChlbnRpdHkpXG4gIH1cblxuICBmdW5jdGlvbiBpc1ZhbGlkQWN0aW9uKGFjdGlvbjogVHJpZ2dlckFjdGlvbikge1xuICAgIGNvbnN0IHsgaWQsIG5hbWUgfSA9IGFjdGlvblxuICAgIHJldHVybiAhIWlkICYmICEhbmFtZVxuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tDb25kaXRpb25zKHRyaWdnZXI6IERlZXBSZWFkb25seU9iamVjdDxUcmlnZ2VyPikge1xuICAgIGlmICh0cmlnZ2VyLmNvbmRpdGlvbnMgJiYgdHJpZ2dlci5jb25kaXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGNvbmRpdGlvbnMgPSB0cmlnZ2VyLmNvbmRpdGlvbnMubWFwKGNoZWNrQ29uZGl0aW9uKVxuICAgICAgY29uc3QgaXNUcnVlID0gKHJlc3VsdD86IGJvb2xlYW4pID0+ICEhcmVzdWx0XG4gICAgICBjb25zdCBvcGVyYXRpb24gPSB0cmlnZ2VyLm9wZXJhdGlvbiB8fCBUcmlnZ2VyQ29uZGl0aW9uT3BlcmF0aW9uLkFORFxuICAgICAgc3dpdGNoIChvcGVyYXRpb24pIHtcbiAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uT3BlcmF0aW9uLkFORDoge1xuICAgICAgICAgIHJldHVybiBjb25kaXRpb25zLmV2ZXJ5KGlzVHJ1ZSlcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24uT1I6IHtcbiAgICAgICAgICByZXR1cm4gY29uZGl0aW9ucy5zb21lKGlzVHJ1ZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBpZiB0aGVyZSBhcmUgbm8gY29uZGl0aW9ucywgdGhlIHRyaWdnZXIgY2FuIGNvbnRpbnVlXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGZ1bmN0aW9uIGNoZWNrQ29uZGl0aW9uKGNvbmRpdGlvbjogVHJpZ2dlckNvbmRpdGlvbikge1xuICAgIGNvbnN0IGVudGl0eSA9IGdldEVudGl0eUJ5Q29uZGl0aW9uKGNvbmRpdGlvbilcbiAgICBpZiAoZW50aXR5KSB7XG4gICAgICB0cnkge1xuICAgICAgICBzd2l0Y2ggKGNvbmRpdGlvbi50eXBlKSB7XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX1NUQVRFX0lTOiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZXMgPSBTdGF0ZXMuZ2V0T3JOdWxsKGVudGl0eSlcbiAgICAgICAgICAgIGlmIChzdGF0ZXMgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gZ2V0Q3VycmVudFZhbHVlKHN0YXRlcylcbiAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZSA9PT0gY29uZGl0aW9uLnZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fU1RBVEVfSVNfTk9UOiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZXMgPSBTdGF0ZXMuZ2V0T3JOdWxsKGVudGl0eSlcbiAgICAgICAgICAgIGlmIChzdGF0ZXMgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gZ2V0Q3VycmVudFZhbHVlKHN0YXRlcylcbiAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZSAhPT0gY29uZGl0aW9uLnZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fUFJFVklPVVNfU1RBVEVfSVM6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlcyA9IFN0YXRlcy5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgaWYgKHN0YXRlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gZ2V0UHJldmlvdXNWYWx1ZShzdGF0ZXMpXG4gICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c1ZhbHVlID09PSBjb25kaXRpb24udmFsdWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9QUkVWSU9VU19TVEFURV9JU19OT1Q6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlcyA9IFN0YXRlcy5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgaWYgKHN0YXRlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gZ2V0UHJldmlvdXNWYWx1ZShzdGF0ZXMpXG4gICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c1ZhbHVlICE9PSBjb25kaXRpb24udmFsdWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9DT1VOVEVSX0VRVUFMUzoge1xuICAgICAgICAgICAgY29uc3QgY291bnRlciA9IENvdW50ZXIuZ2V0T3JOdWxsKGVudGl0eSlcbiAgICAgICAgICAgIGlmIChjb3VudGVyICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG51bWVyaWMgPSBOdW1iZXIoY29uZGl0aW9uLnZhbHVlKVxuICAgICAgICAgICAgICBpZiAoIWlzTmFOKG51bWVyaWMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50ZXIudmFsdWUgPT09IG51bWVyaWNcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX0NPVU5URVJfSVNfR1JFQVRFUl9USEFOOiB7XG4gICAgICAgICAgICBjb25zdCBjb3VudGVyID0gQ291bnRlci5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgaWYgKGNvdW50ZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IE51bWJlcihjb25kaXRpb24udmFsdWUpXG4gICAgICAgICAgICAgIGlmICghaXNOYU4obnVtZXJpYykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY291bnRlci52YWx1ZSA+IG51bWVyaWNcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX0NPVU5URVJfSVNfTEVTU19USEFOOiB7XG4gICAgICAgICAgICBjb25zdCBjb3VudGVyID0gQ291bnRlci5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgaWYgKGNvdW50ZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IE51bWJlcihjb25kaXRpb24udmFsdWUpXG4gICAgICAgICAgICAgIGlmICghaXNOYU4obnVtZXJpYykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY291bnRlci52YWx1ZSA8IG51bWVyaWNcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX0RJU1RBTkNFX1RPX1BMQVlFUl9MRVNTX1RIQU46IHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gZ2V0V29ybGRQb3NpdGlvbihlbnRpdHkpXG5cbiAgICAgICAgICAgIGNvbnN0IG51bWVyaWMgPSBOdW1iZXIoY29uZGl0aW9uLnZhbHVlKVxuICAgICAgICAgICAgaWYgKCFpc05hTihudW1lcmljKSkge1xuICAgICAgICAgICAgICByZXR1cm4gVmVjdG9yMy5kaXN0YW5jZShwb3NpdGlvbiwgZ2V0UGxheWVyUG9zaXRpb24oKSkgPCBudW1lcmljXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9ESVNUQU5DRV9UT19QTEFZRVJfR1JFQVRFUl9USEFOOiB7XG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IGdldFdvcmxkUG9zaXRpb24oZW50aXR5KVxuICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IE51bWJlcihjb25kaXRpb24udmFsdWUpXG4gICAgICAgICAgICBpZiAoIWlzTmFOKG51bWVyaWMpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBWZWN0b3IzLmRpc3RhbmNlKHBvc2l0aW9uLCBnZXRQbGF5ZXJQb3NpdGlvbigpKSA+IG51bWVyaWNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBjb25kaXRpb24nLCBjb25kaXRpb24pXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0RW50aXR5QnlJZDxUIGV4dGVuZHMgeyBpZDogbnVtYmVyIH0+KFxuICAgIGNvbXBvbmVudE5hbWU6IHN0cmluZyxcbiAgICBpZDogbnVtYmVyLFxuICApIHtcbiAgICBjb25zdCBDb21wb25lbnQgPSBlbmdpbmUuZ2V0Q29tcG9uZW50KFxuICAgICAgY29tcG9uZW50TmFtZSxcbiAgICApIGFzIExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uPFQ+XG4gICAgY29uc3QgZW50aXRpZXMgPSBBcnJheS5mcm9tKGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoQ29tcG9uZW50KSlcbiAgICBjb25zdCByZXN1bHQgPSBlbnRpdGllcy5maW5kKChbX2VudGl0eSwgdmFsdWVdKSA9PiB2YWx1ZS5pZCA9PT0gaWQpXG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocmVzdWx0KSAmJiByZXN1bHQubGVuZ3RoID4gMCA/IHJlc3VsdFswXSA6IG51bGxcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEVudGl0eUJ5QWN0aW9uKGFjdGlvbjogVHJpZ2dlckFjdGlvbikge1xuICAgIGlmIChhY3Rpb24uaWQpIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IGdldEVudGl0eUJ5SWQoQ29tcG9uZW50TmFtZS5BQ1RJT05TLCBhY3Rpb24uaWQpXG4gICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgIHJldHVybiBlbnRpdHlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEVudGl0eUJ5Q29uZGl0aW9uKGNvbmRpdGlvbjogVHJpZ2dlckNvbmRpdGlvbikge1xuICAgIGNvbnN0IGNvbXBvbmVudE5hbWUgPSBPYmplY3QudmFsdWVzKENvbXBvbmVudE5hbWUpXG4gICAgICAubWFwKChjb21wb25lbnROYW1lKSA9PiAoe1xuICAgICAgICBjb21wb25lbnROYW1lLFxuICAgICAgICBjb25kaXRpb25UeXBlczogZ2V0Q29uZGl0aW9uVHlwZXNCeUNvbXBvbmVudE5hbWUoY29tcG9uZW50TmFtZSksXG4gICAgICB9KSlcbiAgICAgIC5yZWR1Y2U8Q29tcG9uZW50TmFtZSB8IG51bGw+KFxuICAgICAgICAocmVzdWx0LCB7IGNvbXBvbmVudE5hbWUsIGNvbmRpdGlvblR5cGVzIH0pID0+XG4gICAgICAgICAgY29uZGl0aW9uVHlwZXMuaW5jbHVkZXMoY29uZGl0aW9uLnR5cGUpID8gY29tcG9uZW50TmFtZSA6IHJlc3VsdCxcbiAgICAgICAgbnVsbCxcbiAgICAgIClcbiAgICBpZiAoY29tcG9uZW50TmFtZSAmJiBjb25kaXRpb24uaWQpIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IGdldEVudGl0eUJ5SWQoY29tcG9uZW50TmFtZSwgY29uZGl0aW9uLmlkKVxuICAgICAgaWYgKGVudGl0eSkge1xuICAgICAgICByZXR1cm4gZW50aXR5XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgdXNlIE9OX0lOUFVUX0FDVElPTiBpbnN0ZWFkICovXG4gIC8vIE9OX0NMSUNLXG4gIGZ1bmN0aW9uIGluaXRPbkNsaWNrVHJpZ2dlcihlbnRpdHk6IEVudGl0eSkge1xuICAgIGNvbnN0IHBvaW50ZXJFdmVudCA9IFBvaW50ZXJFdmVudHMuZ2V0TXV0YWJsZU9yTnVsbChlbnRpdHkpXG4gICAgY29uc3Qgb3B0cyA9IHsgYnV0dG9uOiBJbnB1dEFjdGlvbi5JQV9QT0lOVEVSLCBob3ZlclRleHQ6ICdDbGljaycgfVxuXG4gICAgaWYgKHBvaW50ZXJFdmVudCkge1xuICAgICAgLy8gQXZvaWQgY3JlYXRpbmcgZHVwbGljYXRzIG9mIHRoZSBzYW1lIHBvaW50ZXJFdmVudC5cbiAgICAgIC8vIFRoaXMgaXNzdWFsbHkgaGFwcGVucyB3aXRoIGVudGl0aWVzIHRoYXQgYXJlIGNyZWF0ZWQgYXQgcnVudGltZSBhbmQgYXJlIGJlaW5nIHN5bmNyb25pemVkLlxuICAgICAgLy8gSWYgeW91IHJlY2VpdmUgYW4gZW50aXR5IHdpdGggcG9pbnRlckV2ZW50IHRoaXMgZnVuY3Rpb24gaW5zaWRlIHRoZSBjcmVhdGVUcmlnZ2VyU3lzdGVtIGlzIGdlbmVyYXRpbmcgYW5vdGhlciBvbmUgd2l0aCB0aGUgc2FtZSB2YWx1ZXMuXG4gICAgICBwb2ludGVyRXZlbnQucG9pbnRlckV2ZW50cyA9IHBvaW50ZXJFdmVudC5wb2ludGVyRXZlbnRzLmZpbHRlcihcbiAgICAgICAgKCQpID0+XG4gICAgICAgICAgIShcbiAgICAgICAgICAgICQuZXZlbnRJbmZvPy5idXR0b24gPT09IG9wdHMuYnV0dG9uICYmXG4gICAgICAgICAgICAkLmV2ZW50SW5mby5ob3ZlclRleHQgPT09IG9wdHMuaG92ZXJUZXh0XG4gICAgICAgICAgKSxcbiAgICAgIClcbiAgICB9XG5cbiAgICBwb2ludGVyRXZlbnRzU3lzdGVtLm9uUG9pbnRlckRvd24oXG4gICAgICB7XG4gICAgICAgIGVudGl0eSxcbiAgICAgICAgb3B0cyxcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSlcbiAgICAgICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX0NMSUNLKVxuICAgICAgfSxcbiAgICApXG4gIH1cblxuICAvLyBPTl9JTlBVVF9BQ1RJT05cbiAgZnVuY3Rpb24gaW5pdE9uSW5wdXRBY3Rpb25UcmlnZ2VyKGVudGl0eTogRW50aXR5KSB7XG4gICAgY29uc3QgcG9pbnRlckV2ZW50ID0gUG9pbnRlckV2ZW50cy5nZXRNdXRhYmxlT3JOdWxsKGVudGl0eSlcblxuICAgIGNvbnN0IG9wdHMgPSB7XG4gICAgICBidXR0b246IElucHV0QWN0aW9uLklBX1BSSU1BUlksXG4gICAgICBob3ZlclRleHQ6ICdQcmVzcycsXG4gICAgfVxuXG4gICAgaWYgKHBvaW50ZXJFdmVudCkge1xuICAgICAgLy8gQXZvaWQgY3JlYXRpbmcgZHVwbGljYXRlcyBvZiB0aGUgc2FtZSBwb2ludGVyRXZlbnQuXG4gICAgICBwb2ludGVyRXZlbnQucG9pbnRlckV2ZW50cyA9IHBvaW50ZXJFdmVudC5wb2ludGVyRXZlbnRzLmZpbHRlcihcbiAgICAgICAgKCQpID0+XG4gICAgICAgICAgIShcbiAgICAgICAgICAgICQuZXZlbnRJbmZvPy5idXR0b24gPT09IG9wdHMuYnV0dG9uICYmXG4gICAgICAgICAgICAkLmV2ZW50SW5mby5ob3ZlclRleHQgPT09IG9wdHMuaG92ZXJUZXh0XG4gICAgICAgICAgKSxcbiAgICAgIClcbiAgICB9XG5cbiAgICBwb2ludGVyRXZlbnRzU3lzdGVtLm9uUG9pbnRlckRvd24oXG4gICAgICB7XG4gICAgICAgIGVudGl0eSxcbiAgICAgICAgb3B0cyxcbiAgICAgIH0sXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSlcbiAgICAgICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX0lOUFVUX0FDVElPTilcbiAgICAgIH0sXG4gICAgKVxuICB9XG5cbiAgLy8gT05fUExBWUVSX0VOVEVSU19BUkVBIC8gT05fUExBWUVSX0xFQVZFU19BUkVBXG4gIGZ1bmN0aW9uIGluaXRPblBsYXllclRyaWdnZXJBcmVhKGVudGl0eTogRW50aXR5KSB7XG4gICAgY29uc3QgdHJhbnNmb3JtID0gVHJhbnNmb3JtLmdldE9yTnVsbChlbnRpdHkpXG4gICAgdHJpZ2dlcnMuYWRkVHJpZ2dlcihcbiAgICAgIGVudGl0eSxcbiAgICAgIE5PX0xBWUVSUyxcbiAgICAgIExBWUVSXzEsXG4gICAgICBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnYm94JyxcbiAgICAgICAgICBzY2FsZTogdHJhbnNmb3JtID8gdHJhbnNmb3JtLnNjYWxlIDogeyB4OiAxLCB5OiAxLCB6OiAxIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9QTEFZRVJfRU5URVJTX0FSRUEpXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9QTEFZRVJfTEVBVkVTX0FSRUEpXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRPbkRhbWFnZShlbnRpdHk6IEVudGl0eSkge1xuICAgIGRhbWFnZVRhcmdldHMuYWRkKGVudGl0eSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRPbkhlYWxQbGF5ZXIoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBoZWFsVGFyZ2V0cy5hZGQoZW50aXR5KVxuICB9XG5cbiAgZnVuY3Rpb24gaW5pdE9uR2xvYmFsQ2ljayhlbnRpdHk6IEVudGl0eSkge1xuICAgIGdsb2JhbElucHV0QWN0aW9ucy5vbihJbnB1dEFjdGlvbi5JQV9QT0lOVEVSLCAoKSA9PiB7XG4gICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fR0xPQkFMX0NMSUNLKVxuICAgIH0pXG4gIH1cblxuICBmdW5jdGlvbiBpbml0T25HbG9iYWxQcmltYXJ5KGVudGl0eTogRW50aXR5KSB7XG4gICAgZ2xvYmFsSW5wdXRBY3Rpb25zLm9uKElucHV0QWN0aW9uLklBX1BSSU1BUlksICgpID0+IHtcbiAgICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSlcbiAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9HTE9CQUxfUFJJTUFSWSlcbiAgICB9KVxuICB9XG5cbiAgZnVuY3Rpb24gaW5pdE9uR2xvYmFsU2Vjb25kYXJ5KGVudGl0eTogRW50aXR5KSB7XG4gICAgZ2xvYmFsSW5wdXRBY3Rpb25zLm9uKElucHV0QWN0aW9uLklBX1NFQ09OREFSWSwgKCkgPT4ge1xuICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KVxuICAgICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX0dMT0JBTF9TRUNPTkRBUlkpXG4gICAgfSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRPblRpY2soZW50aXR5OiBFbnRpdHkpIHtcbiAgICB0aWNrU2V0LmFkZChlbnRpdHkpXG4gIH1cblxuICAvLyBPTl9UV0VFTl9FTkRcbiAgZnVuY3Rpb24gaGFuZGxlT25Ud2VlbkVuZChlbnRpdHk6IEVudGl0eSkge1xuICAgIGlmIChcbiAgICAgIFR3ZWVuQ29tcG9uZW50LmdldE9yTnVsbChlbnRpdHkpICYmXG4gICAgICBUd2VlblN0YXRlLmdldE9yTnVsbChlbnRpdHkpPy5zdGF0ZSA9PT0gVHdlZW5TdGF0ZVN0YXR1cy5UU19DT01QTEVURUQgJiZcbiAgICAgIHR3ZWVuU3lzdGVtLnR3ZWVuQ29tcGxldGVkKGVudGl0eSlcbiAgICApIHtcbiAgICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSlcbiAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9UV0VFTl9FTkQpXG4gICAgfVxuICB9XG59XG4iXX0=
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHJpZ2dlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQVFMLFVBQVUsR0FFWCxNQUFNLFVBQVUsQ0FBQTtBQUNqQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3ZDLE9BQU8sRUFDTCxRQUFRLEVBQ1IsT0FBTyxFQUNQLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZ0JBQWdCLEdBQ2pCLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUVMLGFBQWEsRUFJYix5QkFBeUIsRUFDekIsb0JBQW9CLEVBQ3BCLFdBQVcsRUFDWCxnQ0FBZ0MsRUFDaEMsYUFBYSxHQUVkLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUVqQyxNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFBO0FBQ3hDLE1BQU0sV0FBVyxHQUF5QyxFQUFFLENBQUE7QUFFNUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7QUFDOUMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUE7QUFFNUMsSUFBSSxvQkFBb0IsR0FBc0MsSUFBSSxDQUFBO0FBRWxFLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBYztJQUN6QyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDekIsT0FBTyxvQkFBb0IsQ0FB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Q2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDckIsQ0FBQztJQUdELFNBQVMsZ0JBQWdCLENBQUMsTUFBYztRQUN0QyxJQUNFLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQ2hDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxNQUFrQztZQUNyRSxXQUFXLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUNsQyxDQUFDO1lBQ0QsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUE7WUFDOUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDOUMsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSUVuZ2luZSxcbiAgRW50aXR5LFxuICBJbnB1dEFjdGlvbixcbiAgTGFzdFdyaXRlV2luRWxlbWVudFNldENvbXBvbmVudERlZmluaXRpb24sXG4gIERlZXBSZWFkb25seU9iamVjdCxcbiAgUG9pbnRlckV2ZW50c1N5c3RlbSxcbiAgVHdlZW5TeXN0ZW0sXG4gIFR3ZWVuU3RhdGUsXG4gIFR3ZWVuU3RhdGVTdGF0dXMsXG59IGZyb20gJ0BkY2wvZWNzJ1xuaW1wb3J0IHsgVmVjdG9yMyB9IGZyb20gJ0BkY2wvc2RrL21hdGgnXG5pbXBvcnQge1xuICB0cmlnZ2VycyxcbiAgTEFZRVJfMSxcbiAgTk9fTEFZRVJTLFxuICBnZXRQbGF5ZXJQb3NpdGlvbixcbiAgZ2V0V29ybGRQb3NpdGlvbixcbn0gZnJvbSAnQGRjbC1zZGsvdXRpbHMnXG5pbXBvcnQge1xuICBBY3Rpb24sXG4gIENvbXBvbmVudE5hbWUsXG4gIFRyaWdnZXIsXG4gIFRyaWdnZXJBY3Rpb24sXG4gIFRyaWdnZXJDb25kaXRpb24sXG4gIFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24sXG4gIFRyaWdnZXJDb25kaXRpb25UeXBlLFxuICBUcmlnZ2VyVHlwZSxcbiAgZ2V0Q29uZGl0aW9uVHlwZXNCeUNvbXBvbmVudE5hbWUsXG4gIGdldENvbXBvbmVudHMsXG4gIEVuZ2luZUNvbXBvbmVudHMsXG59IGZyb20gJy4vZGVmaW5pdGlvbnMnXG5pbXBvcnQgeyBnZXRDdXJyZW50VmFsdWUsIGdldFByZXZpb3VzVmFsdWUgfSBmcm9tICcuL3N0YXRlcydcbmltcG9ydCB7IGdldEFjdGlvbkV2ZW50cywgZ2V0VHJpZ2dlckV2ZW50cyB9IGZyb20gJy4vZXZlbnRzJ1xuaW1wb3J0IHsgZ2V0UGF5bG9hZCB9IGZyb20gJy4vYWN0aW9uLXR5cGVzJ1xuaW1wb3J0IHsgZ2xvYmFsSW5wdXRBY3Rpb25zIH0gZnJvbSAnLi9pbnB1dC1hY3Rpb25zJ1xuaW1wb3J0IHsgdGlja1NldCB9IGZyb20gJy4vdGltZXInXG5cbmNvbnN0IGluaXRlZEVudGl0aWVzID0gbmV3IFNldDxFbnRpdHk+KClcbmNvbnN0IGFjdGlvblF1ZXVlOiB7IGVudGl0eTogRW50aXR5OyBhY3Rpb246IEFjdGlvbiB9W10gPSBbXVxuXG5leHBvcnQgY29uc3QgZGFtYWdlVGFyZ2V0cyA9IG5ldyBTZXQ8RW50aXR5PigpXG5leHBvcnQgY29uc3QgaGVhbFRhcmdldHMgPSBuZXcgU2V0PEVudGl0eT4oKVxuXG5sZXQgaW50ZXJuYWxJbml0VHJpZ2dlcnM6ICgoZW50aXR5OiBFbnRpdHkpID0+IHZvaWQpIHwgbnVsbCA9IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRUcmlnZ2VycyhlbnRpdHk6IEVudGl0eSkge1xuICBpZiAoaW50ZXJuYWxJbml0VHJpZ2dlcnMpIHtcbiAgICByZXR1cm4gaW50ZXJuYWxJbml0VHJpZ2dlcnMoZW50aXR5KVxuICB9XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgQ2Fubm90IGNhbGwgaW5pdFRyaWdnZXJzIHdoaWxlIHRyaWdnZXJzU3lzdGVtIGhhcyBub3QgYmVlbiBjcmVhdGVkYCxcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJpZ2dlcnNTeXN0ZW0oXG4gIGVuZ2luZTogSUVuZ2luZSxcbiAgY29tcG9uZW50czogRW5naW5lQ29tcG9uZW50cyxcbiAgcG9pbnRlckV2ZW50c1N5c3RlbTogUG9pbnRlckV2ZW50c1N5c3RlbSxcbiAgdHdlZW5TeXN0ZW06IFR3ZWVuU3lzdGVtLFxuKSB7XG4gIGNvbnN0IHsgVHJhbnNmb3JtLCBUd2VlbjogVHdlZW5Db21wb25lbnQsIFBvaW50ZXJFdmVudHMgfSA9IGNvbXBvbmVudHNcbiAgY29uc3QgeyBBY3Rpb25zLCBTdGF0ZXMsIENvdW50ZXIsIFRyaWdnZXJzIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSlcblxuICAvLyBzYXZlIHJlZmVyZW5jZSB0byB0aGUgaW5pdCBmdW5jdGlvblxuICBpbnRlcm5hbEluaXRUcmlnZ2VycyA9IGluaXRFbnRpdHlUcmlnZ2Vyc1xuXG4gIHJldHVybiBmdW5jdGlvbiB0cmlnZ2Vyc1N5c3RlbShfZHQ6IG51bWJlcikge1xuICAgIC8vIHByb2Nlc3MgYWN0aW9uIHF1ZXVlXG4gICAgd2hpbGUgKGFjdGlvblF1ZXVlLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHsgZW50aXR5LCBhY3Rpb24gfSA9IGFjdGlvblF1ZXVlLnNoaWZ0KCkhXG4gICAgICBjb25zdCBhY3Rpb25FdmVudHMgPSBnZXRBY3Rpb25FdmVudHMoZW50aXR5KVxuICAgICAgYWN0aW9uRXZlbnRzLmVtaXQoYWN0aW9uLm5hbWUsIGdldFBheWxvYWQoYWN0aW9uKSlcbiAgICB9XG5cbiAgICBjb25zdCBlbnRpdGllc1dpdGhUcmlnZ2VycyA9IGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoVHJpZ2dlcnMpXG4gICAgZm9yIChjb25zdCBbZW50aXR5XSBvZiBlbnRpdGllc1dpdGhUcmlnZ2Vycykge1xuICAgICAgaW5pdEVudGl0eVRyaWdnZXJzKGVudGl0eSlcbiAgICAgIGhhbmRsZU9uVHdlZW5FbmQoZW50aXR5KVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRFbnRpdHlUcmlnZ2VycyhlbnRpdHk6IEVudGl0eSkge1xuICAgIGlmICghVHJpZ2dlcnMuaGFzKGVudGl0eSkgfHwgaW5pdGVkRW50aXRpZXMuaGFzKGVudGl0eSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIGdldCB0cmlnZ2VycyBkYXRhXG4gICAgY29uc3QgdHJpZ2dlcnMgPSBUcmlnZ2Vycy5nZXQoZW50aXR5KVxuXG4gICAgLy8gaW5pdGlhbGl6ZSB0cmlnZ2VycyBmb3IgZ2l2ZW4gZW50aXR5XG4gICAgY29uc3QgdHlwZXMgPSB0cmlnZ2Vycy52YWx1ZS5yZWR1Y2UoXG4gICAgICAodHlwZXMsIHRyaWdnZXIpID0+IHR5cGVzLmFkZCh0cmlnZ2VyLnR5cGUpLFxuICAgICAgbmV3IFNldDxUcmlnZ2VyVHlwZT4oKSxcbiAgICApXG4gICAgZm9yIChjb25zdCB0eXBlIG9mIHR5cGVzKSB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgLyoqIEBkZXByZWNhdGVkIHVzZSBPTl9JTlBVVF9BQ1RJT04gaW5zdGVhZCAqL1xuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX0NMSUNLOiB7XG4gICAgICAgICAgaW5pdE9uQ2xpY2tUcmlnZ2VyKGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fSU5QVVRfQUNUSU9OOiB7XG4gICAgICAgICAgaW5pdE9uSW5wdXRBY3Rpb25UcmlnZ2VyKGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fUExBWUVSX0VOVEVSU19BUkVBOlxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX1BMQVlFUl9MRUFWRVNfQVJFQToge1xuICAgICAgICAgIGluaXRPblBsYXllclRyaWdnZXJBcmVhKGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fREFNQUdFOiB7XG4gICAgICAgICAgaW5pdE9uRGFtYWdlKGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fSEVBTF9QTEFZRVI6IHtcbiAgICAgICAgICBpbml0T25IZWFsUGxheWVyKGVudGl0eSlcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX0dMT0JBTF9DTElDSzoge1xuICAgICAgICAgIGluaXRPbkdsb2JhbENpY2soZW50aXR5KVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9HTE9CQUxfUFJJTUFSWToge1xuICAgICAgICAgIGluaXRPbkdsb2JhbFByaW1hcnkoZW50aXR5KVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9HTE9CQUxfU0VDT05EQVJZOiB7XG4gICAgICAgICAgaW5pdE9uR2xvYmFsU2Vjb25kYXJ5KGVudGl0eSlcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fVElDSzoge1xuICAgICAgICAgIGluaXRPblRpY2soZW50aXR5KVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBiaW5kIHRyaWdnZXJzXG4gICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KVxuICAgIGZvciAoY29uc3QgdHJpZ2dlciBvZiB0cmlnZ2Vycy52YWx1ZSkge1xuICAgICAgdHJpZ2dlckV2ZW50cy5vbih0cmlnZ2VyLnR5cGUsICgpID0+IHtcbiAgICAgICAgaWYgKGNoZWNrQ29uZGl0aW9ucyh0cmlnZ2VyKSkge1xuICAgICAgICAgIGZvciAoY29uc3QgdHJpZ2dlckFjdGlvbiBvZiB0cmlnZ2VyLmFjdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkQWN0aW9uKHRyaWdnZXJBY3Rpb24pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVudGl0eSA9IGdldEVudGl0eUJ5QWN0aW9uKHRyaWdnZXJBY3Rpb24pXG4gICAgICAgICAgICAgIGlmIChlbnRpdHkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb25zID0gQWN0aW9ucy5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgICAgIGlmIChhY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb24gPSBhY3Rpb25zLnZhbHVlLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICgkKSA9PiAkLm5hbWUgPT09IHRyaWdnZXJBY3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIGlmIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWN0aW9ucyBhcmUgZW5xdWV1ZWQgdG8gYmUgZXhlY3V0ZWQgb24gdGhlIG5leHQgdGljayBhZnRlciBhbGwgdGhlIHRyaWdnZXJzIGhhdmUgYmVlbiBwcm9jZXNzZWQsXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgdG8gYXZvaWQgb25lIHRyaWdnZXIgbWVzc2luZyB3aXRoIG90aGVyIHRyaWdnZXIncyBjb25kaXRpb25zXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvblF1ZXVlLnB1c2goeyBlbnRpdHksIGFjdGlvbiB9KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX1NQQVdOKVxuXG4gICAgaW5pdGVkRW50aXRpZXMuYWRkKGVudGl0eSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzVmFsaWRBY3Rpb24oYWN0aW9uOiBUcmlnZ2VyQWN0aW9uKSB7XG4gICAgY29uc3QgeyBpZCwgbmFtZSB9ID0gYWN0aW9uXG4gICAgcmV0dXJuICEhaWQgJiYgISFuYW1lXG4gIH1cblxuICBmdW5jdGlvbiBjaGVja0NvbmRpdGlvbnModHJpZ2dlcjogRGVlcFJlYWRvbmx5T2JqZWN0PFRyaWdnZXI+KSB7XG4gICAgaWYgKHRyaWdnZXIuY29uZGl0aW9ucyAmJiB0cmlnZ2VyLmNvbmRpdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY29uZGl0aW9ucyA9IHRyaWdnZXIuY29uZGl0aW9ucy5tYXAoY2hlY2tDb25kaXRpb24pXG4gICAgICBjb25zdCBpc1RydWUgPSAocmVzdWx0PzogYm9vbGVhbikgPT4gISFyZXN1bHRcbiAgICAgIGNvbnN0IG9wZXJhdGlvbiA9IHRyaWdnZXIub3BlcmF0aW9uIHx8IFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24uQU5EXG4gICAgICBzd2l0Y2ggKG9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24uQU5EOiB7XG4gICAgICAgICAgcmV0dXJuIGNvbmRpdGlvbnMuZXZlcnkoaXNUcnVlKVxuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvbk9wZXJhdGlvbi5PUjoge1xuICAgICAgICAgIHJldHVybiBjb25kaXRpb25zLnNvbWUoaXNUcnVlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIGlmIHRoZXJlIGFyZSBubyBjb25kaXRpb25zLCB0aGUgdHJpZ2dlciBjYW4gY29udGludWVcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tDb25kaXRpb24oY29uZGl0aW9uOiBUcmlnZ2VyQ29uZGl0aW9uKSB7XG4gICAgY29uc3QgZW50aXR5ID0gZ2V0RW50aXR5QnlDb25kaXRpb24oY29uZGl0aW9uKVxuICAgIGlmIChlbnRpdHkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHN3aXRjaCAoY29uZGl0aW9uLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fU1RBVEVfSVM6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlcyA9IFN0YXRlcy5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgaWYgKHN0YXRlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBnZXRDdXJyZW50VmFsdWUoc3RhdGVzKVxuICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlID09PSBjb25kaXRpb24udmFsdWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9TVEFURV9JU19OT1Q6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlcyA9IFN0YXRlcy5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgaWYgKHN0YXRlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBnZXRDdXJyZW50VmFsdWUoc3RhdGVzKVxuICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlICE9PSBjb25kaXRpb24udmFsdWVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9QUkVWSU9VU19TVEFURV9JUzoge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGVzID0gU3RhdGVzLmdldE9yTnVsbChlbnRpdHkpXG4gICAgICAgICAgICBpZiAoc3RhdGVzICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBnZXRQcmV2aW91c1ZhbHVlKHN0YXRlcylcbiAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWUgPT09IGNvbmRpdGlvbi52YWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX1BSRVZJT1VTX1NUQVRFX0lTX05PVDoge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGVzID0gU3RhdGVzLmdldE9yTnVsbChlbnRpdHkpXG4gICAgICAgICAgICBpZiAoc3RhdGVzICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBnZXRQcmV2aW91c1ZhbHVlKHN0YXRlcylcbiAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWUgIT09IGNvbmRpdGlvbi52YWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX0NPVU5URVJfRVFVQUxTOiB7XG4gICAgICAgICAgICBjb25zdCBjb3VudGVyID0gQ291bnRlci5nZXRPck51bGwoZW50aXR5KVxuICAgICAgICAgICAgaWYgKGNvdW50ZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IE51bWJlcihjb25kaXRpb24udmFsdWUpXG4gICAgICAgICAgICAgIGlmICghaXNOYU4obnVtZXJpYykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY291bnRlci52YWx1ZSA9PT0gbnVtZXJpY1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fQ09VTlRFUl9JU19HUkVBVEVSX1RIQU46IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ZXIgPSBDb3VudGVyLmdldE9yTnVsbChlbnRpdHkpXG4gICAgICAgICAgICBpZiAoY291bnRlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBudW1lcmljID0gTnVtYmVyKGNvbmRpdGlvbi52YWx1ZSlcbiAgICAgICAgICAgICAgaWYgKCFpc05hTihudW1lcmljKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb3VudGVyLnZhbHVlID4gbnVtZXJpY1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fQ09VTlRFUl9JU19MRVNTX1RIQU46IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ZXIgPSBDb3VudGVyLmdldE9yTnVsbChlbnRpdHkpXG4gICAgICAgICAgICBpZiAoY291bnRlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBudW1lcmljID0gTnVtYmVyKGNvbmRpdGlvbi52YWx1ZSlcbiAgICAgICAgICAgICAgaWYgKCFpc05hTihudW1lcmljKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb3VudGVyLnZhbHVlIDwgbnVtZXJpY1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fRElTVEFOQ0VfVE9fUExBWUVSX0xFU1NfVEhBTjoge1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSBnZXRXb3JsZFBvc2l0aW9uKGVudGl0eSlcblxuICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IE51bWJlcihjb25kaXRpb24udmFsdWUpXG4gICAgICAgICAgICBpZiAoIWlzTmFOKG51bWVyaWMpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBWZWN0b3IzLmRpc3RhbmNlKHBvc2l0aW9uLCBnZXRQbGF5ZXJQb3NpdGlvbigpKSA8IG51bWVyaWNcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX0RJU1RBTkNFX1RPX1BMQVlFUl9HUkVBVEVSX1RIQU46IHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gZ2V0V29ybGRQb3NpdGlvbihlbnRpdHkpXG4gICAgICAgICAgICBjb25zdCBudW1lcmljID0gTnVtYmVyKGNvbmRpdGlvbi52YWx1ZSlcbiAgICAgICAgICAgIGlmICghaXNOYU4obnVtZXJpYykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIFZlY3RvcjMuZGlzdGFuY2UocG9zaXRpb24sIGdldFBsYXllclBvc2l0aW9uKCkpID4gbnVtZXJpY1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIGNvbmRpdGlvbicsIGNvbmRpdGlvbilcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBmdW5jdGlvbiBnZXRFbnRpdHlCeUlkPFQgZXh0ZW5kcyB7IGlkOiBudW1iZXIgfT4oXG4gICAgY29tcG9uZW50TmFtZTogc3RyaW5nLFxuICAgIGlkOiBudW1iZXIsXG4gICkge1xuICAgIGNvbnN0IENvbXBvbmVudCA9IGVuZ2luZS5nZXRDb21wb25lbnQoXG4gICAgICBjb21wb25lbnROYW1lLFxuICAgICkgYXMgTGFzdFdyaXRlV2luRWxlbWVudFNldENvbXBvbmVudERlZmluaXRpb248VD5cbiAgICBjb25zdCBlbnRpdGllcyA9IEFycmF5LmZyb20oZW5naW5lLmdldEVudGl0aWVzV2l0aChDb21wb25lbnQpKVxuICAgIGNvbnN0IHJlc3VsdCA9IGVudGl0aWVzLmZpbmQoKFtfZW50aXR5LCB2YWx1ZV0pID0+IHZhbHVlLmlkID09PSBpZClcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShyZXN1bHQpICYmIHJlc3VsdC5sZW5ndGggPiAwID8gcmVzdWx0WzBdIDogbnVsbFxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0RW50aXR5QnlBY3Rpb24oYWN0aW9uOiBUcmlnZ2VyQWN0aW9uKSB7XG4gICAgaWYgKGFjdGlvbi5pZCkge1xuICAgICAgY29uc3QgZW50aXR5ID0gZ2V0RW50aXR5QnlJZChDb21wb25lbnROYW1lLkFDVElPTlMsIGFjdGlvbi5pZClcbiAgICAgIGlmIChlbnRpdHkpIHtcbiAgICAgICAgcmV0dXJuIGVudGl0eVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0RW50aXR5QnlDb25kaXRpb24oY29uZGl0aW9uOiBUcmlnZ2VyQ29uZGl0aW9uKSB7XG4gICAgY29uc3QgY29tcG9uZW50TmFtZSA9IE9iamVjdC52YWx1ZXMoQ29tcG9uZW50TmFtZSlcbiAgICAgIC5tYXAoKGNvbXBvbmVudE5hbWUpID0+ICh7XG4gICAgICAgIGNvbXBvbmVudE5hbWUsXG4gICAgICAgIGNvbmRpdGlvblR5cGVzOiBnZXRDb25kaXRpb25UeXBlc0J5Q29tcG9uZW50TmFtZShjb21wb25lbnROYW1lKSxcbiAgICAgIH0pKVxuICAgICAgLnJlZHVjZTxDb21wb25lbnROYW1lIHwgbnVsbD4oXG4gICAgICAgIChyZXN1bHQsIHsgY29tcG9uZW50TmFtZSwgY29uZGl0aW9uVHlwZXMgfSkgPT5cbiAgICAgICAgICBjb25kaXRpb25UeXBlcy5pbmNsdWRlcyhjb25kaXRpb24udHlwZSkgPyBjb21wb25lbnROYW1lIDogcmVzdWx0LFxuICAgICAgICBudWxsLFxuICAgICAgKVxuICAgIGlmIChjb21wb25lbnROYW1lICYmIGNvbmRpdGlvbi5pZCkge1xuICAgICAgY29uc3QgZW50aXR5ID0gZ2V0RW50aXR5QnlJZChjb21wb25lbnROYW1lLCBjb25kaXRpb24uaWQpXG4gICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgIHJldHVybiBlbnRpdHlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCB1c2UgT05fSU5QVVRfQUNUSU9OIGluc3RlYWQgKi9cbiAgLy8gT05fQ0xJQ0tcbiAgZnVuY3Rpb24gaW5pdE9uQ2xpY2tUcmlnZ2VyKGVudGl0eTogRW50aXR5KSB7XG4gICAgY29uc3QgcG9pbnRlckV2ZW50ID0gUG9pbnRlckV2ZW50cy5nZXRNdXRhYmxlT3JOdWxsKGVudGl0eSlcbiAgICBsZXQgb3B0cyA9IHsgYnV0dG9uOiBJbnB1dEFjdGlvbi5JQV9QT0lOVEVSLCBob3ZlclRleHQ6ICdDbGljaycgfVxuXG4gICAgaWYgKHBvaW50ZXJFdmVudCkge1xuICAgICAgLy8gQXZvaWQgY3JlYXRpbmcgZHVwbGljYXRlcyBvZiB0aGUgc2FtZSBwb2ludGVyRXZlbnQuXG4gICAgICAvLyBUaGlzIHVzdWFsbHkgaGFwcGVucyB3aXRoIGVudGl0aWVzIHRoYXQgYXJlIGNyZWF0ZWQgYXQgcnVudGltZSBhbmQgYXJlIGJlaW5nIHN5bmNyb25pemVkLlxuICAgICAgLy8gSWYgeW91IHJlY2VpdmUgYW4gZW50aXR5IHdpdGggcG9pbnRlckV2ZW50IHRoaXMgZnVuY3Rpb24gaW5zaWRlIHRoZSBjcmVhdGVUcmlnZ2VyU3lzdGVtIGlzIGdlbmVyYXRpbmcgYW5vdGhlciBvbmUgd2l0aCB0aGUgc2FtZSB2YWx1ZXMuXG4gICAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gcG9pbnRlckV2ZW50LnBvaW50ZXJFdmVudHMuZmluZEluZGV4KFxuICAgICAgICAoJCkgPT4gJC5ldmVudEluZm8/LmJ1dHRvbiA9PT0gb3B0cy5idXR0b24sXG4gICAgICApXG4gICAgICBpZiAoZXhpc3RpbmdJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgZXZlbnRJbmZvID0gcG9pbnRlckV2ZW50LnBvaW50ZXJFdmVudHNbZXhpc3RpbmdJbmRleF0uZXZlbnRJbmZvXG4gICAgICAgIG9wdHMgPSB7IC4uLm9wdHMsIC4uLmV2ZW50SW5mbyB9IC8vIE1lcmdlIGRlZmF1bHQgb3B0cyB3aXRoIHRoZSBleGlzdGluZyBwb2ludGVyRXZlbnQuXG4gICAgICAgIHBvaW50ZXJFdmVudC5wb2ludGVyRXZlbnRzLnNwbGljZShleGlzdGluZ0luZGV4LCAxKVxuICAgICAgfVxuICAgIH1cblxuICAgIHBvaW50ZXJFdmVudHNTeXN0ZW0ub25Qb2ludGVyRG93bihcbiAgICAgIHtcbiAgICAgICAgZW50aXR5LFxuICAgICAgICBvcHRzLFxuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KVxuICAgICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fQ0xJQ0spXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIC8vIE9OX0lOUFVUX0FDVElPTlxuICBmdW5jdGlvbiBpbml0T25JbnB1dEFjdGlvblRyaWdnZXIoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBjb25zdCBwb2ludGVyRXZlbnQgPSBQb2ludGVyRXZlbnRzLmdldE11dGFibGVPck51bGwoZW50aXR5KVxuICAgIGxldCBvcHRzID0geyBidXR0b246IElucHV0QWN0aW9uLklBX1BSSU1BUlksIGhvdmVyVGV4dDogJ1ByZXNzJyB9XG5cbiAgICBpZiAocG9pbnRlckV2ZW50KSB7XG4gICAgICAvLyBBdm9pZCBjcmVhdGluZyBkdXBsaWNhdGVzIG9mIHRoZSBzYW1lIHBvaW50ZXJFdmVudC5cbiAgICAgIC8vIFRoaXMgdXN1YWxseSBoYXBwZW5zIHdpdGggZW50aXRpZXMgdGhhdCBhcmUgY3JlYXRlZCBhdCBydW50aW1lIGFuZCBhcmUgYmVpbmcgc3luY3Jvbml6ZWQuXG4gICAgICAvLyBJZiB5b3UgcmVjZWl2ZSBhbiBlbnRpdHkgd2l0aCBwb2ludGVyRXZlbnQgdGhpcyBmdW5jdGlvbiBpbnNpZGUgdGhlIGNyZWF0ZVRyaWdnZXJTeXN0ZW0gaXMgZ2VuZXJhdGluZyBhbm90aGVyIG9uZSB3aXRoIHRoZSBzYW1lIHZhbHVlcy5cbiAgICAgIGNvbnN0IGV4aXN0aW5nSW5kZXggPSBwb2ludGVyRXZlbnQucG9pbnRlckV2ZW50cy5maW5kSW5kZXgoXG4gICAgICAgICgkKSA9PiAkLmV2ZW50SW5mbz8uYnV0dG9uID09PSBvcHRzLmJ1dHRvbixcbiAgICAgIClcbiAgICAgIGlmIChleGlzdGluZ0luZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCBldmVudEluZm8gPSBwb2ludGVyRXZlbnQucG9pbnRlckV2ZW50c1tleGlzdGluZ0luZGV4XS5ldmVudEluZm9cbiAgICAgICAgb3B0cyA9IHsgLi4ub3B0cywgLi4uZXZlbnRJbmZvIH0gLy8gTWVyZ2UgZGVmYXVsdCBvcHRzIHdpdGggdGhlIGV4aXN0aW5nIHBvaW50ZXJFdmVudC5cbiAgICAgICAgcG9pbnRlckV2ZW50LnBvaW50ZXJFdmVudHMuc3BsaWNlKGV4aXN0aW5nSW5kZXgsIDEpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcG9pbnRlckV2ZW50c1N5c3RlbS5vblBvaW50ZXJEb3duKFxuICAgICAge1xuICAgICAgICBlbnRpdHksXG4gICAgICAgIG9wdHMsXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9JTlBVVF9BQ1RJT04pXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIC8vIE9OX1BMQVlFUl9FTlRFUlNfQVJFQSAvIE9OX1BMQVlFUl9MRUFWRVNfQVJFQVxuICBmdW5jdGlvbiBpbml0T25QbGF5ZXJUcmlnZ2VyQXJlYShlbnRpdHk6IEVudGl0eSkge1xuICAgIGNvbnN0IHRyYW5zZm9ybSA9IFRyYW5zZm9ybS5nZXRPck51bGwoZW50aXR5KVxuICAgIHRyaWdnZXJzLmFkZFRyaWdnZXIoXG4gICAgICBlbnRpdHksXG4gICAgICBOT19MQVlFUlMsXG4gICAgICBMQVlFUl8xLFxuICAgICAgW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2JveCcsXG4gICAgICAgICAgc2NhbGU6IHRyYW5zZm9ybSA/IHRyYW5zZm9ybS5zY2FsZSA6IHsgeDogMSwgeTogMSwgejogMSB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KVxuICAgICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fUExBWUVSX0VOVEVSU19BUkVBKVxuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KVxuICAgICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fUExBWUVSX0xFQVZFU19BUkVBKVxuICAgICAgfSxcbiAgICApXG4gIH1cblxuICBmdW5jdGlvbiBpbml0T25EYW1hZ2UoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBkYW1hZ2VUYXJnZXRzLmFkZChlbnRpdHkpXG4gIH1cblxuICBmdW5jdGlvbiBpbml0T25IZWFsUGxheWVyKGVudGl0eTogRW50aXR5KSB7XG4gICAgaGVhbFRhcmdldHMuYWRkKGVudGl0eSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRPbkdsb2JhbENpY2soZW50aXR5OiBFbnRpdHkpIHtcbiAgICBnbG9iYWxJbnB1dEFjdGlvbnMub24oSW5wdXRBY3Rpb24uSUFfUE9JTlRFUiwgKCkgPT4ge1xuICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KVxuICAgICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX0dMT0JBTF9DTElDSylcbiAgICB9KVxuICB9XG5cbiAgZnVuY3Rpb24gaW5pdE9uR2xvYmFsUHJpbWFyeShlbnRpdHk6IEVudGl0eSkge1xuICAgIGdsb2JhbElucHV0QWN0aW9ucy5vbihJbnB1dEFjdGlvbi5JQV9QUklNQVJZLCAoKSA9PiB7XG4gICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fR0xPQkFMX1BSSU1BUlkpXG4gICAgfSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRPbkdsb2JhbFNlY29uZGFyeShlbnRpdHk6IEVudGl0eSkge1xuICAgIGdsb2JhbElucHV0QWN0aW9ucy5vbihJbnB1dEFjdGlvbi5JQV9TRUNPTkRBUlksICgpID0+IHtcbiAgICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSlcbiAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9HTE9CQUxfU0VDT05EQVJZKVxuICAgIH0pXG4gIH1cblxuICBmdW5jdGlvbiBpbml0T25UaWNrKGVudGl0eTogRW50aXR5KSB7XG4gICAgdGlja1NldC5hZGQoZW50aXR5KVxuICB9XG5cbiAgLy8gT05fVFdFRU5fRU5EXG4gIGZ1bmN0aW9uIGhhbmRsZU9uVHdlZW5FbmQoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBpZiAoXG4gICAgICBUd2VlbkNvbXBvbmVudC5nZXRPck51bGwoZW50aXR5KSAmJlxuICAgICAgVHdlZW5TdGF0ZS5nZXRPck51bGwoZW50aXR5KT8uc3RhdGUgPT09IFR3ZWVuU3RhdGVTdGF0dXMuVFNfQ09NUExFVEVEICYmXG4gICAgICB0d2VlblN5c3RlbS50d2VlbkNvbXBsZXRlZChlbnRpdHkpXG4gICAgKSB7XG4gICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpXG4gICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fVFdFRU5fRU5EKVxuICAgIH1cbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcl/asset-packs",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/definitions.js",
|
|
6
6
|
"typings": "dist/definitions.d.ts",
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"semi": false,
|
|
66
66
|
"printWidth": 80
|
|
67
67
|
},
|
|
68
|
-
"commit": "
|
|
68
|
+
"commit": "47816d06514d3fcfa966616ff957d594e84c6672"
|
|
69
69
|
}
|