@vendasta/meetings 1.7.5 → 1.7.7
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/esm2020/lib/_internal/interfaces/groups-and-services.interface.mjs +1 -7
- package/esm2020/lib/_internal/interfaces/meeting-external.interface.mjs +1 -1
- package/esm2020/lib/_internal/interfaces/meeting-guest.interface.mjs +1 -1
- package/esm2020/lib/_internal/interfaces/meeting-host.interface.mjs +1 -1
- package/esm2020/lib/_internal/interfaces/shared.interface.mjs +1 -1
- package/esm2020/lib/_internal/objects/annotations.mjs +1 -1
- package/esm2020/lib/_internal/objects/date-range.mjs +1 -1
- package/esm2020/lib/_internal/objects/field-mask.mjs +1 -1
- package/esm2020/lib/_internal/objects/groups-and-services.mjs +15 -1
- package/esm2020/lib/_internal/objects/meeting-external.mjs +2 -2
- package/esm2020/lib/_internal/objects/meeting-guest.mjs +14 -8
- package/esm2020/lib/_internal/objects/meeting-host.mjs +2 -2
- package/esm2020/lib/_internal/objects/meeting-type.mjs +1 -1
- package/esm2020/lib/_internal/objects/openapiv2.mjs +1 -1
- package/esm2020/lib/_internal/objects/shared.mjs +1 -1
- package/esm2020/lib/_internal/objects/zoom.mjs +1 -1
- package/esm2020/lib/guest/guest.service.mjs +28 -2
- package/esm2020/lib/index.mjs +2 -2
- package/fesm2015/vendasta-meetings.mjs +50 -8
- package/fesm2015/vendasta-meetings.mjs.map +1 -1
- package/fesm2020/vendasta-meetings.mjs +52 -8
- package/fesm2020/vendasta-meetings.mjs.map +1 -1
- package/lib/_internal/interfaces/groups-and-services.interface.d.ts +4 -0
- package/lib/_internal/interfaces/meeting-external.interface.d.ts +1 -1
- package/lib/_internal/interfaces/meeting-guest.interface.d.ts +5 -3
- package/lib/_internal/interfaces/meeting-host.interface.d.ts +1 -1
- package/lib/_internal/objects/annotations.d.ts +1 -1
- package/lib/_internal/objects/date-range.d.ts +1 -1
- package/lib/_internal/objects/field-mask.d.ts +1 -1
- package/lib/_internal/objects/groups-and-services.d.ts +4 -0
- package/lib/_internal/objects/meeting-external.d.ts +2 -2
- package/lib/_internal/objects/meeting-guest.d.ts +6 -4
- package/lib/_internal/objects/meeting-host.d.ts +2 -2
- package/lib/_internal/objects/meeting-type.d.ts +1 -1
- package/lib/_internal/objects/openapiv2.d.ts +1 -1
- package/lib/_internal/objects/shared.d.ts +1 -1
- package/lib/_internal/objects/zoom.d.ts +1 -1
- package/lib/guest/guest.service.d.ts +34 -1
- package/lib/index.d.ts +2 -2
- package/package.json +1 -1
|
@@ -556,4 +556,4 @@ export class TimeRange {
|
|
|
556
556
|
return toReturn;
|
|
557
557
|
}
|
|
558
558
|
}
|
|
559
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbWVldGluZ3Nfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvc2hhcmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxDQUFDLE1BQU0sVUFBVSxDQUFDO0FBRTlCLE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxPQUFZLEVBQUUsS0FBYTtJQUM5RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELE1BQU0sT0FBTyxNQUFNO0lBTWYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7UUFDckIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtZQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQWtCLENBQUMsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQUM7UUFDM0YsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUEwQjtRQUNsQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXLEVBQUU7WUFBQyxR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Q3RELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBNkI7UUFDckMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsSUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQUM7UUFDdkosSUFBSSxPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsRUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQUM7UUFDM0ksT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVGltZVpvbmUsIFRpbWVPZkRheSB9IGZyb20gJy4vJztcbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW51bVN0cmluZ1RvVmFsdWU8RT4oZW51bVJlZjogYW55LCB2YWx1ZTogc3RyaW5nKTogRSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBlbnVtUmVmW3ZhbHVlXTtcbn1cblxuZXhwb3J0IGNsYXNzIEFuc3dlciBpbXBsZW1lbnRzIGkuQW5zd2VySW50ZXJmYWNlIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgdHlwZTogZS5Gb3JtRmllbGRUeXBlO1xuICAgIGFuc3dlcjogc3RyaW5nW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBBbnN3ZXIge1xuICAgICAgICBsZXQgbSA9IG5ldyBBbnN3ZXIoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udHlwZSkge20udHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuRm9ybUZpZWxkVHlwZT4oZS5Gb3JtRmllbGRUeXBlLCBwcm90by50eXBlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQW5zd2VySW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxhYmVsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydsYWJlbCddID0gdGhpcy5sYWJlbDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50eXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0eXBlJ10gPSB0aGlzLnR5cGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYW5zd2VyICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhbnN3ZXInXSA9IHRoaXMuYW5zd2VyO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFuc3dlcnMgaW1wbGVtZW50cyBpLkFuc3dlcnNJbnRlcmZhY2Uge1xuICAgIGZvcm1BbnN3ZXJzOiBBbnN3ZXJbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEFuc3dlcnMge1xuICAgICAgICBsZXQgbSA9IG5ldyBBbnN3ZXJzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmZvcm1BbnN3ZXJzKSB7bS5mb3JtQW5zd2VycyA9IHByb3RvLmZvcm1BbnN3ZXJzLm1hcChBbnN3ZXIuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQW5zd2Vyc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZvcm1BbnN3ZXJzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmZvcm1BbnN3ZXJzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2Zvcm1BbnN3ZXJzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmZvcm1BbnN3ZXJzID8gKHRoaXMuZm9ybUFuc3dlcnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZm9ybUFuc3dlcnM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJBcHBsaWNhdGlvbkNvbnRleHRFbnRyeSBpbXBsZW1lbnRzIGkuQ2FsZW5kYXJBcHBsaWNhdGlvbkNvbnRleHRFbnRyeUludGVyZmFjZSB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IENhbGVuZGFyQXBwbGljYXRpb25Db250ZXh0RW50cnkge1xuICAgICAgICBsZXQgbSA9IG5ldyBDYWxlbmRhckFwcGxpY2F0aW9uQ29udGV4dEVudHJ5KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5DYWxlbmRhckFwcGxpY2F0aW9uQ29udGV4dEVudHJ5SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMua2V5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydrZXknXSA9IHRoaXMua2V5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2YWx1ZSddID0gdGhpcy52YWx1ZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBdHRhY2htZW50IGltcGxlbWVudHMgaS5BdHRhY2htZW50SW50ZXJmYWNlIHtcbiAgICBmaWxlVGl0bGU6IHN0cmluZztcbiAgICBmaWxlVXJsOiBzdHJpbmc7XG4gICAgZmlsZVR5cGU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEF0dGFjaG1lbnQge1xuICAgICAgICBsZXQgbSA9IG5ldyBBdHRhY2htZW50KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5BdHRhY2htZW50SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmlsZVRpdGxlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydmaWxlVGl0bGUnXSA9IHRoaXMuZmlsZVRpdGxlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZpbGVVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ZpbGVVcmwnXSA9IHRoaXMuZmlsZVVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maWxlVHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZmlsZVR5cGUnXSA9IHRoaXMuZmlsZVR5cGU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXR0ZW5kZWUgaW1wbGVtZW50cyBpLkF0dGVuZGVlSW50ZXJmYWNlIHtcbiAgICBmaXJzdE5hbWU6IHN0cmluZztcbiAgICBsYXN0TmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgICB0aW1lWm9uZTogc3RyaW5nO1xuICAgIGlzUHJpbWFyeTogYm9vbGVhbjtcbiAgICBjb250YWN0SWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEF0dGVuZGVlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQXR0ZW5kZWUoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkF0dGVuZGVlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmlyc3ROYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydmaXJzdE5hbWUnXSA9IHRoaXMuZmlyc3ROYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxhc3ROYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydsYXN0TmFtZSddID0gdGhpcy5sYXN0TmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbWFpbCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW1haWwnXSA9IHRoaXMuZW1haWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGhvbmVOdW1iZXIgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Bob25lTnVtYmVyJ10gPSB0aGlzLnBob25lTnVtYmVyO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRpbWVab25lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0aW1lWm9uZSddID0gdGhpcy50aW1lWm9uZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pc1ByaW1hcnkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lzUHJpbWFyeSddID0gdGhpcy5pc1ByaW1hcnk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29udGFjdElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb250YWN0SWQnXSA9IHRoaXMuY29udGFjdElkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENhbGVuZGFyIGltcGxlbWVudHMgaS5DYWxlbmRhckludGVyZmFjZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICAgIGRpc3BsYXlQcm9maWxlVXJsOiBzdHJpbmc7XG4gICAgZGlzcGxheUxvZ29Vcmw6IHN0cmluZztcbiAgICBib29raW5nVXJsOiBzdHJpbmc7XG4gICAgc2x1Zzogc3RyaW5nO1xuICAgIGV4dGVybmFsSWQ6IHN0cmluZztcbiAgICBjcmVhdG9yVXNlcklkOiBzdHJpbmc7XG4gICAgaG9zdFVzZXJJZHM6IHN0cmluZ1tdO1xuICAgIGFwcGxpY2F0aW9uQ29udGV4dDoge1trZXk6IHN0cmluZ106IHN0cmluZ307XG4gICAgY2FsZW5kYXJUeXBlOiBlLkNhbGVuZGFyVHlwZTtcbiAgICBlbmNvZGVkQXBwbGljYXRpb25Db250ZXh0OiBzdHJpbmc7XG4gICAgYnVzaW5lc3NOYW1lOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDYWxlbmRhciB7XG4gICAgICAgIGxldCBtID0gbmV3IENhbGVuZGFyKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmFwcGxpY2F0aW9uQ29udGV4dCkge20uYXBwbGljYXRpb25Db250ZXh0ID0gT2JqZWN0LmtleXMocHJvdG8uYXBwbGljYXRpb25Db250ZXh0KS5yZWR1Y2U8YW55Pigob2JqLCBrKSA9PiB7IG9ialtrXSA9IHByb3RvLmFwcGxpY2F0aW9uQ29udGV4dFtrXTsgcmV0dXJuIG9iajsgfSwge30pO31cbiAgICAgICAgaWYgKHByb3RvLmNhbGVuZGFyVHlwZSkge20uY2FsZW5kYXJUeXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5DYWxlbmRhclR5cGU+KGUuQ2FsZW5kYXJUeXBlLCBwcm90by5jYWxlbmRhclR5cGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5DYWxlbmRhckludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kaXNwbGF5TmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGlzcGxheU5hbWUnXSA9IHRoaXMuZGlzcGxheU5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGlzcGxheVByb2ZpbGVVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rpc3BsYXlQcm9maWxlVXJsJ10gPSB0aGlzLmRpc3BsYXlQcm9maWxlVXJsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRpc3BsYXlMb2dvVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkaXNwbGF5TG9nb1VybCddID0gdGhpcy5kaXNwbGF5TG9nb1VybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5ib29raW5nVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydib29raW5nVXJsJ10gPSB0aGlzLmJvb2tpbmdVcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2x1ZyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2x1ZyddID0gdGhpcy5zbHVnO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV4dGVybmFsSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2V4dGVybmFsSWQnXSA9IHRoaXMuZXh0ZXJuYWxJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jcmVhdG9yVXNlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjcmVhdG9yVXNlcklkJ10gPSB0aGlzLmNyZWF0b3JVc2VySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaG9zdFVzZXJJZHMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2hvc3RVc2VySWRzJ10gPSB0aGlzLmhvc3RVc2VySWRzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFwcGxpY2F0aW9uQ29udGV4dCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5hcHBsaWNhdGlvbkNvbnRleHQgIT09IG51bGwpIHt0b1JldHVyblsnYXBwbGljYXRpb25Db250ZXh0J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmFwcGxpY2F0aW9uQ29udGV4dCA/ICh0aGlzLmFwcGxpY2F0aW9uQ29udGV4dCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5hcHBsaWNhdGlvbkNvbnRleHQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2FsZW5kYXJUeXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjYWxlbmRhclR5cGUnXSA9IHRoaXMuY2FsZW5kYXJUeXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVuY29kZWRBcHBsaWNhdGlvbkNvbnRleHQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2VuY29kZWRBcHBsaWNhdGlvbkNvbnRleHQnXSA9IHRoaXMuZW5jb2RlZEFwcGxpY2F0aW9uQ29udGV4dDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idXNpbmVzc05hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2J1c2luZXNzTmFtZSddID0gdGhpcy5idXNpbmVzc05hbWU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ29udGFjdCBpbXBsZW1lbnRzIGkuQ29udGFjdEludGVyZmFjZSB7XG4gICAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gICAgbGFzdE5hbWU6IHN0cmluZztcbiAgICBwaG9uZU51bWJlcjogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgdGltZVpvbmU6ICBUaW1lWm9uZTtcbiAgICBpc1ByaW1hcnk6IGJvb2xlYW47XG4gICAgcGhvbmVGaWVsZHM6IFBob25lRmllbGRzO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ29udGFjdCB7XG4gICAgICAgIGxldCBtID0gbmV3IENvbnRhY3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udGltZVpvbmUpIHttLnRpbWVab25lID0gIFRpbWVab25lLmZyb21Qcm90byhwcm90by50aW1lWm9uZSk7fVxuICAgICAgICBpZiAocHJvdG8ucGhvbmVGaWVsZHMpIHttLnBob25lRmllbGRzID0gUGhvbmVGaWVsZHMuZnJvbVByb3RvKHByb3RvLnBob25lRmllbGRzKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ29udGFjdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZpcnN0TmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZmlyc3ROYW1lJ10gPSB0aGlzLmZpcnN0TmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5sYXN0TmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbGFzdE5hbWUnXSA9IHRoaXMubGFzdE5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGhvbmVOdW1iZXIgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Bob25lTnVtYmVyJ10gPSB0aGlzLnBob25lTnVtYmVyO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVtYWlsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbWFpbCddID0gdGhpcy5lbWFpbDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aW1lWm9uZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50aW1lWm9uZSAhPT0gbnVsbCkge3RvUmV0dXJuWyd0aW1lWm9uZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50aW1lWm9uZSA/ICh0aGlzLnRpbWVab25lIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRpbWVab25lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlzUHJpbWFyeSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaXNQcmltYXJ5J10gPSB0aGlzLmlzUHJpbWFyeTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5waG9uZUZpZWxkcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5waG9uZUZpZWxkcyAhPT0gbnVsbCkge3RvUmV0dXJuWydwaG9uZUZpZWxkcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5waG9uZUZpZWxkcyA/ICh0aGlzLnBob25lRmllbGRzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnBob25lRmllbGRzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVtYWlsc1RvRGVsZXRlIGltcGxlbWVudHMgaS5FbWFpbHNUb0RlbGV0ZUludGVyZmFjZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogRW1haWxzVG9EZWxldGUge1xuICAgICAgICBsZXQgbSA9IG5ldyBFbWFpbHNUb0RlbGV0ZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRW1haWxzVG9EZWxldGVJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW1haWwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2VtYWlsJ10gPSB0aGlzLmVtYWlsO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEhvc3QgaW1wbGVtZW50cyBpLkhvc3RJbnRlcmZhY2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgICBkaXNwbGF5UHJvZmlsZVVybDogc3RyaW5nO1xuICAgIGRpc3BsYXlMb2dvVXJsOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBIb3N0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgSG9zdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuSG9zdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kaXNwbGF5TmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGlzcGxheU5hbWUnXSA9IHRoaXMuZGlzcGxheU5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGlzcGxheVByb2ZpbGVVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rpc3BsYXlQcm9maWxlVXJsJ10gPSB0aGlzLmRpc3BsYXlQcm9maWxlVXJsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRpc3BsYXlMb2dvVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkaXNwbGF5TG9nb1VybCddID0gdGhpcy5kaXNwbGF5TG9nb1VybDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBIb3N0T3JkZXJEZXRhaWxzIGltcGxlbWVudHMgaS5Ib3N0T3JkZXJEZXRhaWxzSW50ZXJmYWNlIHtcbiAgICB1c2VySWQ6IHN0cmluZztcbiAgICBob3N0T3JkZXI6IG51bWJlcjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEhvc3RPcmRlckRldGFpbHMge1xuICAgICAgICBsZXQgbSA9IG5ldyBIb3N0T3JkZXJEZXRhaWxzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmhvc3RPcmRlcikge20uaG9zdE9yZGVyID0gcGFyc2VJbnQocHJvdG8uaG9zdE9yZGVyLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkhvc3RPcmRlckRldGFpbHNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51c2VySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3VzZXJJZCddID0gdGhpcy51c2VySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaG9zdE9yZGVyICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydob3N0T3JkZXInXSA9IHRoaXMuaG9zdE9yZGVyO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEhvc3RVc2VyIGltcGxlbWVudHMgaS5Ib3N0VXNlckludGVyZmFjZSB7XG4gICAgdXNlcklkOiBzdHJpbmc7XG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgICBpc0NvbmZpZ3VyZWQ6IGJvb2xlYW47XG4gICAgaXNDb25uZWN0ZWQ6IGJvb2xlYW47XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBIb3N0VXNlciB7XG4gICAgICAgIGxldCBtID0gbmV3IEhvc3RVc2VyKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Ib3N0VXNlckludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVzZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndXNlcklkJ10gPSB0aGlzLnVzZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kaXNwbGF5TmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGlzcGxheU5hbWUnXSA9IHRoaXMuZGlzcGxheU5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXNDb25maWd1cmVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpc0NvbmZpZ3VyZWQnXSA9IHRoaXMuaXNDb25maWd1cmVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlzQ29ubmVjdGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpc0Nvbm5lY3RlZCddID0gdGhpcy5pc0Nvbm5lY3RlZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBJc29EYXRlVGltZVJhbmdlIGltcGxlbWVudHMgaS5Jc29EYXRlVGltZVJhbmdlSW50ZXJmYWNlIHtcbiAgICBzdGFydDogc3RyaW5nO1xuICAgIGVuZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogSXNvRGF0ZVRpbWVSYW5nZSB7XG4gICAgICAgIGxldCBtID0gbmV3IElzb0RhdGVUaW1lUmFuZ2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLklzb0RhdGVUaW1lUmFuZ2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdGFydCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhcnQnXSA9IHRoaXMuc3RhcnQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW5kICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbmQnXSA9IHRoaXMuZW5kO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBhZ2VkUmVxdWVzdE9wdGlvbnMgaW1wbGVtZW50cyBpLlBhZ2VkUmVxdWVzdE9wdGlvbnNJbnRlcmZhY2Uge1xuICAgIGN1cnNvcjogc3RyaW5nO1xuICAgIHBhZ2VTaXplOiBudW1iZXI7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBQYWdlZFJlcXVlc3RPcHRpb25zIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgUGFnZWRSZXF1ZXN0T3B0aW9ucygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5wYWdlU2l6ZSkge20ucGFnZVNpemUgPSBwYXJzZUludChwcm90by5wYWdlU2l6ZSwgMTApO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5QYWdlZFJlcXVlc3RPcHRpb25zSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3Vyc29yICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXJzb3InXSA9IHRoaXMuY3Vyc29yO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhZ2VTaXplICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwYWdlU2l6ZSddID0gdGhpcy5wYWdlU2l6ZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQYWdlZFJlc3BvbnNlTWV0YWRhdGEgaW1wbGVtZW50cyBpLlBhZ2VkUmVzcG9uc2VNZXRhZGF0YUludGVyZmFjZSB7XG4gICAgbmV4dEN1cnNvcjogc3RyaW5nO1xuICAgIGhhc01vcmU6IGJvb2xlYW47XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBQYWdlZFJlc3BvbnNlTWV0YWRhdGEge1xuICAgICAgICBsZXQgbSA9IG5ldyBQYWdlZFJlc3BvbnNlTWV0YWRhdGEoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlBhZ2VkUmVzcG9uc2VNZXRhZGF0YUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5leHRDdXJzb3IgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ25leHRDdXJzb3InXSA9IHRoaXMubmV4dEN1cnNvcjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5oYXNNb3JlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydoYXNNb3JlJ10gPSB0aGlzLmhhc01vcmU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGhvbmVGaWVsZHMgaW1wbGVtZW50cyBpLlBob25lRmllbGRzSW50ZXJmYWNlIHtcbiAgICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICAgIG5hdGlvbmFsTnVtYmVyOiBzdHJpbmc7XG4gICAgZXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBQaG9uZUZpZWxkcyB7XG4gICAgICAgIGxldCBtID0gbmV3IFBob25lRmllbGRzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5QaG9uZUZpZWxkc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvdW50cnlDb2RlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb3VudHJ5Q29kZSddID0gdGhpcy5jb3VudHJ5Q29kZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uYXRpb25hbE51bWJlciAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmF0aW9uYWxOdW1iZXInXSA9IHRoaXMubmF0aW9uYWxOdW1iZXI7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXh0ZW5zaW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydleHRlbnNpb24nXSA9IHRoaXMuZXh0ZW5zaW9uO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFByZWZlcmVuY2VzIGltcGxlbWVudHMgaS5QcmVmZXJlbmNlc0ludGVyZmFjZSB7XG4gICAgdGltZXpvbmU6ICBUaW1lWm9uZTtcbiAgICBtZWV0aW5nSW50ZWdyYXRpb246IGUuTWVldGluZ1NvdXJjZTtcbiAgICBhdmFpbGFiaWxpdHlJbmNyZW1lbnQ6IG51bWJlcjtcbiAgICBidWZmZXJEdXJhdGlvbkFmdGVyTWVldGluZzogbnVtYmVyO1xuICAgIG5vdGljZVRpbWU6IG51bWJlcjtcbiAgICBjYWxlbmRhclNsdWc6IHN0cmluZztcbiAgICBidWZmZXJEdXJhdGlvbkJlZm9yZU1lZXRpbmc6IG51bWJlcjtcbiAgICBjYWxlbmRhckludGVncmF0aW9uOiBlLkNhbGVuZGFyU291cmNlO1xuICAgIG9uQm9hcmRpbmdTdGF0ZTogZS5PbkJvYXJkaW5nU3RhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBQcmVmZXJlbmNlcyB7XG4gICAgICAgIGxldCBtID0gbmV3IFByZWZlcmVuY2VzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnRpbWV6b25lKSB7bS50aW1lem9uZSA9ICBUaW1lWm9uZS5mcm9tUHJvdG8ocHJvdG8udGltZXpvbmUpO31cbiAgICAgICAgaWYgKHByb3RvLm1lZXRpbmdJbnRlZ3JhdGlvbikge20ubWVldGluZ0ludGVncmF0aW9uID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5NZWV0aW5nU291cmNlPihlLk1lZXRpbmdTb3VyY2UsIHByb3RvLm1lZXRpbmdJbnRlZ3JhdGlvbik7fVxuICAgICAgICBpZiAocHJvdG8uYXZhaWxhYmlsaXR5SW5jcmVtZW50KSB7bS5hdmFpbGFiaWxpdHlJbmNyZW1lbnQgPSBwYXJzZUludChwcm90by5hdmFpbGFiaWxpdHlJbmNyZW1lbnQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5idWZmZXJEdXJhdGlvbkFmdGVyTWVldGluZykge20uYnVmZmVyRHVyYXRpb25BZnRlck1lZXRpbmcgPSBwYXJzZUludChwcm90by5idWZmZXJEdXJhdGlvbkFmdGVyTWVldGluZywgMTApO31cbiAgICAgICAgaWYgKHByb3RvLm5vdGljZVRpbWUpIHttLm5vdGljZVRpbWUgPSBwYXJzZUludChwcm90by5ub3RpY2VUaW1lLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uYnVmZmVyRHVyYXRpb25CZWZvcmVNZWV0aW5nKSB7bS5idWZmZXJEdXJhdGlvbkJlZm9yZU1lZXRpbmcgPSBwYXJzZUludChwcm90by5idWZmZXJEdXJhdGlvbkJlZm9yZU1lZXRpbmcsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5jYWxlbmRhckludGVncmF0aW9uKSB7bS5jYWxlbmRhckludGVncmF0aW9uID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5DYWxlbmRhclNvdXJjZT4oZS5DYWxlbmRhclNvdXJjZSwgcHJvdG8uY2FsZW5kYXJJbnRlZ3JhdGlvbik7fVxuICAgICAgICBpZiAocHJvdG8ub25Cb2FyZGluZ1N0YXRlKSB7bS5vbkJvYXJkaW5nU3RhdGUgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLk9uQm9hcmRpbmdTdGF0ZT4oZS5PbkJvYXJkaW5nU3RhdGUsIHByb3RvLm9uQm9hcmRpbmdTdGF0ZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlByZWZlcmVuY2VzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGltZXpvbmUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGltZXpvbmUgIT09IG51bGwpIHt0b1JldHVyblsndGltZXpvbmUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudGltZXpvbmUgPyAodGhpcy50aW1lem9uZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50aW1lem9uZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZWV0aW5nSW50ZWdyYXRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lZXRpbmdJbnRlZ3JhdGlvbiddID0gdGhpcy5tZWV0aW5nSW50ZWdyYXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXZhaWxhYmlsaXR5SW5jcmVtZW50ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhdmFpbGFiaWxpdHlJbmNyZW1lbnQnXSA9IHRoaXMuYXZhaWxhYmlsaXR5SW5jcmVtZW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJ1ZmZlckR1cmF0aW9uQWZ0ZXJNZWV0aW5nICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydidWZmZXJEdXJhdGlvbkFmdGVyTWVldGluZyddID0gdGhpcy5idWZmZXJEdXJhdGlvbkFmdGVyTWVldGluZzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5ub3RpY2VUaW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydub3RpY2VUaW1lJ10gPSB0aGlzLm5vdGljZVRpbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2FsZW5kYXJTbHVnICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjYWxlbmRhclNsdWcnXSA9IHRoaXMuY2FsZW5kYXJTbHVnO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJ1ZmZlckR1cmF0aW9uQmVmb3JlTWVldGluZyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYnVmZmVyRHVyYXRpb25CZWZvcmVNZWV0aW5nJ10gPSB0aGlzLmJ1ZmZlckR1cmF0aW9uQmVmb3JlTWVldGluZzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jYWxlbmRhckludGVncmF0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjYWxlbmRhckludGVncmF0aW9uJ10gPSB0aGlzLmNhbGVuZGFySW50ZWdyYXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub25Cb2FyZGluZ1N0YXRlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvbkJvYXJkaW5nU3RhdGUnXSA9IHRoaXMub25Cb2FyZGluZ1N0YXRlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRpbWVSYW5nZSBpbXBsZW1lbnRzIGkuVGltZVJhbmdlSW50ZXJmYWNlIHtcbiAgICBmcm9tOiAgVGltZU9mRGF5O1xuICAgIHRvOiAgVGltZU9mRGF5O1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVGltZVJhbmdlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVGltZVJhbmdlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmZyb20pIHttLmZyb20gPSAgVGltZU9mRGF5LmZyb21Qcm90byhwcm90by5mcm9tKTt9XG4gICAgICAgIGlmIChwcm90by50bykge20udG8gPSAgVGltZU9mRGF5LmZyb21Qcm90byhwcm90by50byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRpbWVSYW5nZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZyb20gIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZnJvbSAhPT0gbnVsbCkge3RvUmV0dXJuWydmcm9tJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmZyb20gPyAodGhpcy5mcm9tIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmZyb207fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG8gIT09ICd1bmRlZmluZWQnICYmIHRoaXMudG8gIT09IG51bGwpIHt0b1JldHVyblsndG8nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudG8gPyAodGhpcy50byBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50bzt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbiJdfQ==
|
|
559
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbWVldGluZ3Nfc2RrL3NyYy9saWIvX2ludGVybmFsL29iamVjdHMvc2hhcmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBRyxRQUFRLEVBQUcsU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxDQUFDLE1BQU0sVUFBVSxDQUFDO0FBRTlCLE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxPQUFZLEVBQUUsS0FBYTtJQUM5RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELE1BQU0sT0FBTyxNQUFNO0lBTWYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7UUFDckIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtZQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsaUJBQWlCLENBQWtCLENBQUMsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQUM7UUFDM0YsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUEwQjtRQUNsQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLEVBQUUsS0FBSyxXQUFXLEVBQUU7WUFBQyxR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Q3RELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBNkI7UUFDckMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsSUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQUM7UUFDdkosSUFBSSxPQUFPLElBQUksQ0FBQyxFQUFFLEtBQUssV0FBVyxJQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsRUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQUM7UUFDM0ksT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMvc2hhcmVkLmludGVyZmFjZSc7XG5pbXBvcnQgeyAgVGltZVpvbmUsICBUaW1lT2ZEYXkgfSBmcm9tICcuLyc7XG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBBbnN3ZXIgaW1wbGVtZW50cyBpLkFuc3dlckludGVyZmFjZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHR5cGU6IGUuRm9ybUZpZWxkVHlwZTtcbiAgICBhbnN3ZXI6IHN0cmluZ1tdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQW5zd2VyIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQW5zd2VyKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnR5cGUpIHttLnR5cGUgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLkZvcm1GaWVsZFR5cGU+KGUuRm9ybUZpZWxkVHlwZSwgcHJvdG8udHlwZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkFuc3dlckludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5sYWJlbCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbGFiZWwnXSA9IHRoaXMubGFiZWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndHlwZSddID0gdGhpcy50eXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFuc3dlciAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYW5zd2VyJ10gPSB0aGlzLmFuc3dlcjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBbnN3ZXJzIGltcGxlbWVudHMgaS5BbnN3ZXJzSW50ZXJmYWNlIHtcbiAgICBmb3JtQW5zd2VyczogQW5zd2VyW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBBbnN3ZXJzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQW5zd2VycygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5mb3JtQW5zd2Vycykge20uZm9ybUFuc3dlcnMgPSBwcm90by5mb3JtQW5zd2Vycy5tYXAoQW5zd2VyLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkFuc3dlcnNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5mb3JtQW5zd2VycyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5mb3JtQW5zd2VycyAhPT0gbnVsbCkge3RvUmV0dXJuWydmb3JtQW5zd2VycyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5mb3JtQW5zd2VycyA/ICh0aGlzLmZvcm1BbnN3ZXJzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmZvcm1BbnN3ZXJzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENhbGVuZGFyQXBwbGljYXRpb25Db250ZXh0RW50cnkgaW1wbGVtZW50cyBpLkNhbGVuZGFyQXBwbGljYXRpb25Db250ZXh0RW50cnlJbnRlcmZhY2Uge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBDYWxlbmRhckFwcGxpY2F0aW9uQ29udGV4dEVudHJ5IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQ2FsZW5kYXJBcHBsaWNhdGlvbkNvbnRleHRFbnRyeSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ2FsZW5kYXJBcHBsaWNhdGlvbkNvbnRleHRFbnRyeUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmtleSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsna2V5J10gPSB0aGlzLmtleTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy52YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndmFsdWUnXSA9IHRoaXMudmFsdWU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQXR0YWNobWVudCBpbXBsZW1lbnRzIGkuQXR0YWNobWVudEludGVyZmFjZSB7XG4gICAgZmlsZVRpdGxlOiBzdHJpbmc7XG4gICAgZmlsZVVybDogc3RyaW5nO1xuICAgIGZpbGVUeXBlOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBBdHRhY2htZW50IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQXR0YWNobWVudCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQXR0YWNobWVudEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZpbGVUaXRsZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZmlsZVRpdGxlJ10gPSB0aGlzLmZpbGVUaXRsZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maWxlVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydmaWxlVXJsJ10gPSB0aGlzLmZpbGVVcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmlsZVR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ZpbGVUeXBlJ10gPSB0aGlzLmZpbGVUeXBlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEF0dGVuZGVlIGltcGxlbWVudHMgaS5BdHRlbmRlZUludGVyZmFjZSB7XG4gICAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gICAgbGFzdE5hbWU6IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuICAgIHBob25lTnVtYmVyOiBzdHJpbmc7XG4gICAgdGltZVpvbmU6IHN0cmluZztcbiAgICBpc1ByaW1hcnk6IGJvb2xlYW47XG4gICAgY29udGFjdElkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBBdHRlbmRlZSB7XG4gICAgICAgIGxldCBtID0gbmV3IEF0dGVuZGVlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5BdHRlbmRlZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZpcnN0TmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZmlyc3ROYW1lJ10gPSB0aGlzLmZpcnN0TmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5sYXN0TmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbGFzdE5hbWUnXSA9IHRoaXMubGFzdE5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW1haWwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2VtYWlsJ10gPSB0aGlzLmVtYWlsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBob25lTnVtYmVyICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwaG9uZU51bWJlciddID0gdGhpcy5waG9uZU51bWJlcjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aW1lWm9uZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGltZVpvbmUnXSA9IHRoaXMudGltZVpvbmU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXNQcmltYXJ5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpc1ByaW1hcnknXSA9IHRoaXMuaXNQcmltYXJ5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbnRhY3RJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY29udGFjdElkJ10gPSB0aGlzLmNvbnRhY3RJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDYWxlbmRhciBpbXBsZW1lbnRzIGkuQ2FsZW5kYXJJbnRlcmZhY2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgICBkaXNwbGF5UHJvZmlsZVVybDogc3RyaW5nO1xuICAgIGRpc3BsYXlMb2dvVXJsOiBzdHJpbmc7XG4gICAgYm9va2luZ1VybDogc3RyaW5nO1xuICAgIHNsdWc6IHN0cmluZztcbiAgICBleHRlcm5hbElkOiBzdHJpbmc7XG4gICAgY3JlYXRvclVzZXJJZDogc3RyaW5nO1xuICAgIGhvc3RVc2VySWRzOiBzdHJpbmdbXTtcbiAgICBhcHBsaWNhdGlvbkNvbnRleHQ6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9O1xuICAgIGNhbGVuZGFyVHlwZTogZS5DYWxlbmRhclR5cGU7XG4gICAgZW5jb2RlZEFwcGxpY2F0aW9uQ29udGV4dDogc3RyaW5nO1xuICAgIGJ1c2luZXNzTmFtZTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ2FsZW5kYXIge1xuICAgICAgICBsZXQgbSA9IG5ldyBDYWxlbmRhcigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5hcHBsaWNhdGlvbkNvbnRleHQpIHttLmFwcGxpY2F0aW9uQ29udGV4dCA9IE9iamVjdC5rZXlzKHByb3RvLmFwcGxpY2F0aW9uQ29udGV4dCkucmVkdWNlPGFueT4oKG9iaiwgaykgPT4geyBvYmpba10gPSBwcm90by5hcHBsaWNhdGlvbkNvbnRleHRba107IHJldHVybiBvYmo7IH0sIHt9KTt9XG4gICAgICAgIGlmIChwcm90by5jYWxlbmRhclR5cGUpIHttLmNhbGVuZGFyVHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuQ2FsZW5kYXJUeXBlPihlLkNhbGVuZGFyVHlwZSwgcHJvdG8uY2FsZW5kYXJUeXBlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ2FsZW5kYXJJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGlzcGxheU5hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rpc3BsYXlOYW1lJ10gPSB0aGlzLmRpc3BsYXlOYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRpc3BsYXlQcm9maWxlVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkaXNwbGF5UHJvZmlsZVVybCddID0gdGhpcy5kaXNwbGF5UHJvZmlsZVVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kaXNwbGF5TG9nb1VybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGlzcGxheUxvZ29VcmwnXSA9IHRoaXMuZGlzcGxheUxvZ29Vcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYm9va2luZ1VybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYm9va2luZ1VybCddID0gdGhpcy5ib29raW5nVXJsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNsdWcgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NsdWcnXSA9IHRoaXMuc2x1Zzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5leHRlcm5hbElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydleHRlcm5hbElkJ10gPSB0aGlzLmV4dGVybmFsSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3JlYXRvclVzZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3JlYXRvclVzZXJJZCddID0gdGhpcy5jcmVhdG9yVXNlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmhvc3RVc2VySWRzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydob3N0VXNlcklkcyddID0gdGhpcy5ob3N0VXNlcklkczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hcHBsaWNhdGlvbkNvbnRleHQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuYXBwbGljYXRpb25Db250ZXh0ICE9PSBudWxsKSB7dG9SZXR1cm5bJ2FwcGxpY2F0aW9uQ29udGV4dCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5hcHBsaWNhdGlvbkNvbnRleHQgPyAodGhpcy5hcHBsaWNhdGlvbkNvbnRleHQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYXBwbGljYXRpb25Db250ZXh0O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNhbGVuZGFyVHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY2FsZW5kYXJUeXBlJ10gPSB0aGlzLmNhbGVuZGFyVHlwZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbmNvZGVkQXBwbGljYXRpb25Db250ZXh0ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbmNvZGVkQXBwbGljYXRpb25Db250ZXh0J10gPSB0aGlzLmVuY29kZWRBcHBsaWNhdGlvbkNvbnRleHQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYnVzaW5lc3NOYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydidXNpbmVzc05hbWUnXSA9IHRoaXMuYnVzaW5lc3NOYW1lO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENvbnRhY3QgaW1wbGVtZW50cyBpLkNvbnRhY3RJbnRlcmZhY2Uge1xuICAgIGZpcnN0TmFtZTogc3RyaW5nO1xuICAgIGxhc3ROYW1lOiBzdHJpbmc7XG4gICAgcGhvbmVOdW1iZXI6IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuICAgIHRpbWVab25lOiAgVGltZVpvbmU7XG4gICAgaXNQcmltYXJ5OiBib29sZWFuO1xuICAgIHBob25lRmllbGRzOiBQaG9uZUZpZWxkcztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IENvbnRhY3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBDb250YWN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLnRpbWVab25lKSB7bS50aW1lWm9uZSA9ICBUaW1lWm9uZS5mcm9tUHJvdG8ocHJvdG8udGltZVpvbmUpO31cbiAgICAgICAgaWYgKHByb3RvLnBob25lRmllbGRzKSB7bS5waG9uZUZpZWxkcyA9IFBob25lRmllbGRzLmZyb21Qcm90byhwcm90by5waG9uZUZpZWxkcyk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkNvbnRhY3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5maXJzdE5hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ZpcnN0TmFtZSddID0gdGhpcy5maXJzdE5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubGFzdE5hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2xhc3ROYW1lJ10gPSB0aGlzLmxhc3ROYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBob25lTnVtYmVyICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwaG9uZU51bWJlciddID0gdGhpcy5waG9uZU51bWJlcjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbWFpbCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW1haWwnXSA9IHRoaXMuZW1haWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGltZVpvbmUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGltZVpvbmUgIT09IG51bGwpIHt0b1JldHVyblsndGltZVpvbmUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudGltZVpvbmUgPyAodGhpcy50aW1lWm9uZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50aW1lWm9uZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pc1ByaW1hcnkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lzUHJpbWFyeSddID0gdGhpcy5pc1ByaW1hcnk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGhvbmVGaWVsZHMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucGhvbmVGaWVsZHMgIT09IG51bGwpIHt0b1JldHVyblsncGhvbmVGaWVsZHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucGhvbmVGaWVsZHMgPyAodGhpcy5waG9uZUZpZWxkcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5waG9uZUZpZWxkczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbWFpbHNUb0RlbGV0ZSBpbXBsZW1lbnRzIGkuRW1haWxzVG9EZWxldGVJbnRlcmZhY2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEVtYWlsc1RvRGVsZXRlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRW1haWxzVG9EZWxldGUoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkVtYWlsc1RvRGVsZXRlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVtYWlsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbWFpbCddID0gdGhpcy5lbWFpbDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBIb3N0IGltcGxlbWVudHMgaS5Ib3N0SW50ZXJmYWNlIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgZGlzcGxheVByb2ZpbGVVcmw6IHN0cmluZztcbiAgICBkaXNwbGF5TG9nb1VybDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogSG9zdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEhvc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkhvc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGlzcGxheU5hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rpc3BsYXlOYW1lJ10gPSB0aGlzLmRpc3BsYXlOYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRpc3BsYXlQcm9maWxlVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkaXNwbGF5UHJvZmlsZVVybCddID0gdGhpcy5kaXNwbGF5UHJvZmlsZVVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kaXNwbGF5TG9nb1VybCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGlzcGxheUxvZ29VcmwnXSA9IHRoaXMuZGlzcGxheUxvZ29Vcmw7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSG9zdE9yZGVyRGV0YWlscyBpbXBsZW1lbnRzIGkuSG9zdE9yZGVyRGV0YWlsc0ludGVyZmFjZSB7XG4gICAgdXNlcklkOiBzdHJpbmc7XG4gICAgaG9zdE9yZGVyOiBudW1iZXI7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBIb3N0T3JkZXJEZXRhaWxzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgSG9zdE9yZGVyRGV0YWlscygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5ob3N0T3JkZXIpIHttLmhvc3RPcmRlciA9IHBhcnNlSW50KHByb3RvLmhvc3RPcmRlciwgMTApO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Ib3N0T3JkZXJEZXRhaWxzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudXNlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd1c2VySWQnXSA9IHRoaXMudXNlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmhvc3RPcmRlciAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaG9zdE9yZGVyJ10gPSB0aGlzLmhvc3RPcmRlcjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBIb3N0VXNlciBpbXBsZW1lbnRzIGkuSG9zdFVzZXJJbnRlcmZhY2Uge1xuICAgIHVzZXJJZDogc3RyaW5nO1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgaXNDb25maWd1cmVkOiBib29sZWFuO1xuICAgIGlzQ29ubmVjdGVkOiBib29sZWFuO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogSG9zdFVzZXIge1xuICAgICAgICBsZXQgbSA9IG5ldyBIb3N0VXNlcigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuSG9zdFVzZXJJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51c2VySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3VzZXJJZCddID0gdGhpcy51c2VySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGlzcGxheU5hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rpc3BsYXlOYW1lJ10gPSB0aGlzLmRpc3BsYXlOYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlzQ29uZmlndXJlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaXNDb25maWd1cmVkJ10gPSB0aGlzLmlzQ29uZmlndXJlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pc0Nvbm5lY3RlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaXNDb25uZWN0ZWQnXSA9IHRoaXMuaXNDb25uZWN0ZWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSXNvRGF0ZVRpbWVSYW5nZSBpbXBsZW1lbnRzIGkuSXNvRGF0ZVRpbWVSYW5nZUludGVyZmFjZSB7XG4gICAgc3RhcnQ6IHN0cmluZztcbiAgICBlbmQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IElzb0RhdGVUaW1lUmFuZ2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBJc29EYXRlVGltZVJhbmdlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Jc29EYXRlVGltZVJhbmdlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhcnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N0YXJ0J10gPSB0aGlzLnN0YXJ0O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVuZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW5kJ10gPSB0aGlzLmVuZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQYWdlZFJlcXVlc3RPcHRpb25zIGltcGxlbWVudHMgaS5QYWdlZFJlcXVlc3RPcHRpb25zSW50ZXJmYWNlIHtcbiAgICBjdXJzb3I6IHN0cmluZztcbiAgICBwYWdlU2l6ZTogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogUGFnZWRSZXF1ZXN0T3B0aW9ucyB7XG4gICAgICAgIGxldCBtID0gbmV3IFBhZ2VkUmVxdWVzdE9wdGlvbnMoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ucGFnZVNpemUpIHttLnBhZ2VTaXplID0gcGFyc2VJbnQocHJvdG8ucGFnZVNpemUsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuUGFnZWRSZXF1ZXN0T3B0aW9uc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1cnNvciAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3Vyc29yJ10gPSB0aGlzLmN1cnNvcjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYWdlU2l6ZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncGFnZVNpemUnXSA9IHRoaXMucGFnZVNpemU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGFnZWRSZXNwb25zZU1ldGFkYXRhIGltcGxlbWVudHMgaS5QYWdlZFJlc3BvbnNlTWV0YWRhdGFJbnRlcmZhY2Uge1xuICAgIG5leHRDdXJzb3I6IHN0cmluZztcbiAgICBoYXNNb3JlOiBib29sZWFuO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogUGFnZWRSZXNwb25zZU1ldGFkYXRhIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgUGFnZWRSZXNwb25zZU1ldGFkYXRhKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5QYWdlZFJlc3BvbnNlTWV0YWRhdGFJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uZXh0Q3Vyc29yICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyduZXh0Q3Vyc29yJ10gPSB0aGlzLm5leHRDdXJzb3I7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaGFzTW9yZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaGFzTW9yZSddID0gdGhpcy5oYXNNb3JlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFBob25lRmllbGRzIGltcGxlbWVudHMgaS5QaG9uZUZpZWxkc0ludGVyZmFjZSB7XG4gICAgY291bnRyeUNvZGU6IHN0cmluZztcbiAgICBuYXRpb25hbE51bWJlcjogc3RyaW5nO1xuICAgIGV4dGVuc2lvbjogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogUGhvbmVGaWVsZHMge1xuICAgICAgICBsZXQgbSA9IG5ldyBQaG9uZUZpZWxkcygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuUGhvbmVGaWVsZHNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb3VudHJ5Q29kZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY291bnRyeUNvZGUnXSA9IHRoaXMuY291bnRyeUNvZGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmF0aW9uYWxOdW1iZXIgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ25hdGlvbmFsTnVtYmVyJ10gPSB0aGlzLm5hdGlvbmFsTnVtYmVyO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV4dGVuc2lvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZXh0ZW5zaW9uJ10gPSB0aGlzLmV4dGVuc2lvbjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQcmVmZXJlbmNlcyBpbXBsZW1lbnRzIGkuUHJlZmVyZW5jZXNJbnRlcmZhY2Uge1xuICAgIHRpbWV6b25lOiAgVGltZVpvbmU7XG4gICAgbWVldGluZ0ludGVncmF0aW9uOiBlLk1lZXRpbmdTb3VyY2U7XG4gICAgYXZhaWxhYmlsaXR5SW5jcmVtZW50OiBudW1iZXI7XG4gICAgYnVmZmVyRHVyYXRpb25BZnRlck1lZXRpbmc6IG51bWJlcjtcbiAgICBub3RpY2VUaW1lOiBudW1iZXI7XG4gICAgY2FsZW5kYXJTbHVnOiBzdHJpbmc7XG4gICAgYnVmZmVyRHVyYXRpb25CZWZvcmVNZWV0aW5nOiBudW1iZXI7XG4gICAgY2FsZW5kYXJJbnRlZ3JhdGlvbjogZS5DYWxlbmRhclNvdXJjZTtcbiAgICBvbkJvYXJkaW5nU3RhdGU6IGUuT25Cb2FyZGluZ1N0YXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogUHJlZmVyZW5jZXMge1xuICAgICAgICBsZXQgbSA9IG5ldyBQcmVmZXJlbmNlcygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50aW1lem9uZSkge20udGltZXpvbmUgPSAgVGltZVpvbmUuZnJvbVByb3RvKHByb3RvLnRpbWV6b25lKTt9XG4gICAgICAgIGlmIChwcm90by5tZWV0aW5nSW50ZWdyYXRpb24pIHttLm1lZXRpbmdJbnRlZ3JhdGlvbiA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuTWVldGluZ1NvdXJjZT4oZS5NZWV0aW5nU291cmNlLCBwcm90by5tZWV0aW5nSW50ZWdyYXRpb24pO31cbiAgICAgICAgaWYgKHByb3RvLmF2YWlsYWJpbGl0eUluY3JlbWVudCkge20uYXZhaWxhYmlsaXR5SW5jcmVtZW50ID0gcGFyc2VJbnQocHJvdG8uYXZhaWxhYmlsaXR5SW5jcmVtZW50LCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uYnVmZmVyRHVyYXRpb25BZnRlck1lZXRpbmcpIHttLmJ1ZmZlckR1cmF0aW9uQWZ0ZXJNZWV0aW5nID0gcGFyc2VJbnQocHJvdG8uYnVmZmVyRHVyYXRpb25BZnRlck1lZXRpbmcsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5ub3RpY2VUaW1lKSB7bS5ub3RpY2VUaW1lID0gcGFyc2VJbnQocHJvdG8ubm90aWNlVGltZSwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmJ1ZmZlckR1cmF0aW9uQmVmb3JlTWVldGluZykge20uYnVmZmVyRHVyYXRpb25CZWZvcmVNZWV0aW5nID0gcGFyc2VJbnQocHJvdG8uYnVmZmVyRHVyYXRpb25CZWZvcmVNZWV0aW5nLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uY2FsZW5kYXJJbnRlZ3JhdGlvbikge20uY2FsZW5kYXJJbnRlZ3JhdGlvbiA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuQ2FsZW5kYXJTb3VyY2U+KGUuQ2FsZW5kYXJTb3VyY2UsIHByb3RvLmNhbGVuZGFySW50ZWdyYXRpb24pO31cbiAgICAgICAgaWYgKHByb3RvLm9uQm9hcmRpbmdTdGF0ZSkge20ub25Cb2FyZGluZ1N0YXRlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5PbkJvYXJkaW5nU3RhdGU+KGUuT25Cb2FyZGluZ1N0YXRlLCBwcm90by5vbkJvYXJkaW5nU3RhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5QcmVmZXJlbmNlc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRpbWV6b25lICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRpbWV6b25lICE9PSBudWxsKSB7dG9SZXR1cm5bJ3RpbWV6b25lJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnRpbWV6b25lID8gKHRoaXMudGltZXpvbmUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudGltZXpvbmU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVldGluZ0ludGVncmF0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZWV0aW5nSW50ZWdyYXRpb24nXSA9IHRoaXMubWVldGluZ0ludGVncmF0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmF2YWlsYWJpbGl0eUluY3JlbWVudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYXZhaWxhYmlsaXR5SW5jcmVtZW50J10gPSB0aGlzLmF2YWlsYWJpbGl0eUluY3JlbWVudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idWZmZXJEdXJhdGlvbkFmdGVyTWVldGluZyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYnVmZmVyRHVyYXRpb25BZnRlck1lZXRpbmcnXSA9IHRoaXMuYnVmZmVyRHVyYXRpb25BZnRlck1lZXRpbmc7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubm90aWNlVGltZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbm90aWNlVGltZSddID0gdGhpcy5ub3RpY2VUaW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNhbGVuZGFyU2x1ZyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY2FsZW5kYXJTbHVnJ10gPSB0aGlzLmNhbGVuZGFyU2x1Zzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idWZmZXJEdXJhdGlvbkJlZm9yZU1lZXRpbmcgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2J1ZmZlckR1cmF0aW9uQmVmb3JlTWVldGluZyddID0gdGhpcy5idWZmZXJEdXJhdGlvbkJlZm9yZU1lZXRpbmc7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2FsZW5kYXJJbnRlZ3JhdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY2FsZW5kYXJJbnRlZ3JhdGlvbiddID0gdGhpcy5jYWxlbmRhckludGVncmF0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9uQm9hcmRpbmdTdGF0ZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb25Cb2FyZGluZ1N0YXRlJ10gPSB0aGlzLm9uQm9hcmRpbmdTdGF0ZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUaW1lUmFuZ2UgaW1wbGVtZW50cyBpLlRpbWVSYW5nZUludGVyZmFjZSB7XG4gICAgZnJvbTogIFRpbWVPZkRheTtcbiAgICB0bzogIFRpbWVPZkRheTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRpbWVSYW5nZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFRpbWVSYW5nZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5mcm9tKSB7bS5mcm9tID0gIFRpbWVPZkRheS5mcm9tUHJvdG8ocHJvdG8uZnJvbSk7fVxuICAgICAgICBpZiAocHJvdG8udG8pIHttLnRvID0gIFRpbWVPZkRheS5mcm9tUHJvdG8ocHJvdG8udG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5UaW1lUmFuZ2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5mcm9tICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmZyb20gIT09IG51bGwpIHt0b1JldHVyblsnZnJvbSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5mcm9tID8gKHRoaXMuZnJvbSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5mcm9tO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRvICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRvICE9PSBudWxsKSB7dG9SZXR1cm5bJ3RvJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnRvID8gKHRoaXMudG8gYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudG87fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
|
|
@@ -374,4 +374,4 @@ export class ZoomOccurrence {
|
|
|
374
374
|
return toReturn;
|
|
375
375
|
}
|
|
376
376
|
}
|
|
377
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21lZXRpbmdzX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL3pvb20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxLQUFLLENBQUMsTUFBTSxVQUFVLENBQUM7QUFFOUIsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE9BQVksRUFBRSxLQUFhO0lBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxPQUFPLHdCQUF3QjtJQWFqQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFBQyxDQUFDLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFvQixDQUFDLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUFDO1FBQy9GLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FBQztRQUNoRSxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUU7WUFBQyxDQUFDLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQUM7UUFDNUcsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxxQkFBcUIsQ0FB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QUFRLENBQUM7U0FBQztRQUNqRixJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUFDO1FBQzNFLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG5leHBvcnQgY2xhc3MgQ3JlYXRlWm9vbU1lZXRpbmdSZXF1ZXN0IGltcGxlbWVudHMgaS5DcmVhdGVab29tTWVldGluZ1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGlhbVVzZXJJZDogc3RyaW5nO1xuICAgIHRvcGljOiBzdHJpbmc7XG4gICAgdHlwZTogZS5ab29tTWVldGluZ1R5cGU7XG4gICAgc3RhcnRUaW1lOiBzdHJpbmc7XG4gICAgZHVyYXRpb246IG51bWJlcjtcbiAgICB0aW1lem9uZTogc3RyaW5nO1xuICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gICAgYWdlbmRhOiBzdHJpbmc7XG4gICAgdHJhY2tpbmdGaWVsZHM6IFpvb21NZWV0aW5nVHJhY2tpbmdGaWVsZFtdO1xuICAgIHJlY3VycmVuY2U6IFpvb21NZWV0aW5nUmVjdXJyZW5jZTtcbiAgICBzZXR0aW5nczogWm9vbU1lZXRpbmdTZXR0aW5ncztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IENyZWF0ZVpvb21NZWV0aW5nUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IENyZWF0ZVpvb21NZWV0aW5nUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50eXBlKSB7bS50eXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5ab29tTWVldGluZ1R5cGU+KGUuWm9vbU1lZXRpbmdUeXBlLCBwcm90by50eXBlKTt9XG4gICAgICAgIGlmIChwcm90by5kdXJhdGlvbikge20uZHVyYXRpb24gPSBwYXJzZUludChwcm90by5kdXJhdGlvbiwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnRyYWNraW5nRmllbGRzKSB7bS50cmFja2luZ0ZpZWxkcyA9IHByb3RvLnRyYWNraW5nRmllbGRzLm1hcChab29tTWVldGluZ1RyYWNraW5nRmllbGQuZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5yZWN1cnJlbmNlKSB7bS5yZWN1cnJlbmNlID0gWm9vbU1lZXRpbmdSZWN1cnJlbmNlLmZyb21Qcm90byhwcm90by5yZWN1cnJlbmNlKTt9XG4gICAgICAgIGlmIChwcm90by5zZXR0aW5ncykge20uc2V0dGluZ3MgPSBab29tTWVldGluZ1NldHRpbmdzLmZyb21Qcm90byhwcm90by5zZXR0aW5ncyk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkNyZWF0ZVpvb21NZWV0aW5nUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlhbVVzZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWFtVXNlcklkJ10gPSB0aGlzLmlhbVVzZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b3BpYyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndG9waWMnXSA9IHRoaXMudG9waWM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndHlwZSddID0gdGhpcy50eXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXJ0VGltZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhcnRUaW1lJ10gPSB0aGlzLnN0YXJ0VGltZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kdXJhdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZHVyYXRpb24nXSA9IHRoaXMuZHVyYXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGltZXpvbmUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RpbWV6b25lJ10gPSB0aGlzLnRpbWV6b25lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhc3N3b3JkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwYXNzd29yZCddID0gdGhpcy5wYXNzd29yZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hZ2VuZGEgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FnZW5kYSddID0gdGhpcy5hZ2VuZGE7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHJhY2tpbmdGaWVsZHMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudHJhY2tpbmdGaWVsZHMgIT09IG51bGwpIHt0b1JldHVyblsndHJhY2tpbmdGaWVsZHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudHJhY2tpbmdGaWVsZHMgPyAodGhpcy50cmFja2luZ0ZpZWxkcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50cmFja2luZ0ZpZWxkczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZWN1cnJlbmNlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnJlY3VycmVuY2UgIT09IG51bGwpIHt0b1JldHVyblsncmVjdXJyZW5jZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5yZWN1cnJlbmNlID8gKHRoaXMucmVjdXJyZW5jZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5yZWN1cnJlbmNlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNldHRpbmdzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnNldHRpbmdzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3NldHRpbmdzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnNldHRpbmdzID8gKHRoaXMuc2V0dGluZ3MgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc2V0dGluZ3M7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3JlYXRlWm9vbU1lZXRpbmdSZXNwb25zZSBpbXBsZW1lbnRzIGkuQ3JlYXRlWm9vbU1lZXRpbmdSZXNwb25zZUludGVyZmFjZSB7XG4gICAgaWFtVXNlcklkOiBzdHJpbmc7XG4gICAgbWVldGluZ0lkOiBudW1iZXI7XG4gICAgdG9waWM6IHN0cmluZztcbiAgICB0eXBlOiBlLlpvb21NZWV0aW5nVHlwZTtcbiAgICBzdGFydFRpbWU6IHN0cmluZztcbiAgICBkdXJhdGlvbjogbnVtYmVyO1xuICAgIHRpbWV6b25lOiBzdHJpbmc7XG4gICAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gICAgYWdlbmRhOiBzdHJpbmc7XG4gICAgc3RhcnRVcmw6IHN0cmluZztcbiAgICBqb2luVXJsOiBzdHJpbmc7XG4gICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICBoMzIzUGFzc3dvcmQ6IHN0cmluZztcbiAgICBwbWk6IG51bWJlcjtcbiAgICB0cmFja2luZ0ZpZWxkczogWm9vbU1lZXRpbmdUcmFja2luZ0ZpZWxkW107XG4gICAgb2NjdXJyZW5jZXM6IFpvb21PY2N1cnJlbmNlW107XG4gICAgc2V0dGluZ3M6IFpvb21NZWV0aW5nU2V0dGluZ3M7XG4gICAgcmVjdXJyZW5jZTogWm9vbU1lZXRpbmdSZWN1cnJlbmNlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ3JlYXRlWm9vbU1lZXRpbmdSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IENyZWF0ZVpvb21NZWV0aW5nUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ubWVldGluZ0lkKSB7bS5tZWV0aW5nSWQgPSBwYXJzZUludChwcm90by5tZWV0aW5nSWQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by50eXBlKSB7bS50eXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5ab29tTWVldGluZ1R5cGU+KGUuWm9vbU1lZXRpbmdUeXBlLCBwcm90by50eXBlKTt9XG4gICAgICAgIGlmIChwcm90by5kdXJhdGlvbikge20uZHVyYXRpb24gPSBwYXJzZUludChwcm90by5kdXJhdGlvbiwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnBtaSkge20ucG1pID0gcGFyc2VJbnQocHJvdG8ucG1pLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8udHJhY2tpbmdGaWVsZHMpIHttLnRyYWNraW5nRmllbGRzID0gcHJvdG8udHJhY2tpbmdGaWVsZHMubWFwKFpvb21NZWV0aW5nVHJhY2tpbmdGaWVsZC5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLm9jY3VycmVuY2VzKSB7bS5vY2N1cnJlbmNlcyA9IHByb3RvLm9jY3VycmVuY2VzLm1hcChab29tT2NjdXJyZW5jZS5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLnNldHRpbmdzKSB7bS5zZXR0aW5ncyA9IFpvb21NZWV0aW5nU2V0dGluZ3MuZnJvbVByb3RvKHByb3RvLnNldHRpbmdzKTt9XG4gICAgICAgIGlmIChwcm90by5yZWN1cnJlbmNlKSB7bS5yZWN1cnJlbmNlID0gWm9vbU1lZXRpbmdSZWN1cnJlbmNlLmZyb21Qcm90byhwcm90by5yZWN1cnJlbmNlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ3JlYXRlWm9vbU1lZXRpbmdSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlhbVVzZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWFtVXNlcklkJ10gPSB0aGlzLmlhbVVzZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZWV0aW5nSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lZXRpbmdJZCddID0gdGhpcy5tZWV0aW5nSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9waWMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RvcGljJ10gPSB0aGlzLnRvcGljO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3R5cGUnXSA9IHRoaXMudHlwZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdGFydFRpbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N0YXJ0VGltZSddID0gdGhpcy5zdGFydFRpbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZHVyYXRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2R1cmF0aW9uJ10gPSB0aGlzLmR1cmF0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRpbWV6b25lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0aW1lem9uZSddID0gdGhpcy50aW1lem9uZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jcmVhdGVkQXQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NyZWF0ZWRBdCddID0gdGhpcy5jcmVhdGVkQXQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWdlbmRhICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhZ2VuZGEnXSA9IHRoaXMuYWdlbmRhO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXJ0VXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGFydFVybCddID0gdGhpcy5zdGFydFVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5qb2luVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydqb2luVXJsJ10gPSB0aGlzLmpvaW5Vcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFzc3dvcmQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Bhc3N3b3JkJ10gPSB0aGlzLnBhc3N3b3JkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmgzMjNQYXNzd29yZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaDMyM1Bhc3N3b3JkJ10gPSB0aGlzLmgzMjNQYXNzd29yZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wbWkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3BtaSddID0gdGhpcy5wbWk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHJhY2tpbmdGaWVsZHMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudHJhY2tpbmdGaWVsZHMgIT09IG51bGwpIHt0b1JldHVyblsndHJhY2tpbmdGaWVsZHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudHJhY2tpbmdGaWVsZHMgPyAodGhpcy50cmFja2luZ0ZpZWxkcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50cmFja2luZ0ZpZWxkczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vY2N1cnJlbmNlcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5vY2N1cnJlbmNlcyAhPT0gbnVsbCkge3RvUmV0dXJuWydvY2N1cnJlbmNlcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5vY2N1cnJlbmNlcyA/ICh0aGlzLm9jY3VycmVuY2VzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm9jY3VycmVuY2VzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNldHRpbmdzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnNldHRpbmdzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3NldHRpbmdzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnNldHRpbmdzID8gKHRoaXMuc2V0dGluZ3MgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc2V0dGluZ3M7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVjdXJyZW5jZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5yZWN1cnJlbmNlICE9PSBudWxsKSB7dG9SZXR1cm5bJ3JlY3VycmVuY2UnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucmVjdXJyZW5jZSA/ICh0aGlzLnJlY3VycmVuY2UgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucmVjdXJyZW5jZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBab29tTWVldGluZ1JlY3VycmVuY2UgaW1wbGVtZW50cyBpLlpvb21NZWV0aW5nUmVjdXJyZW5jZUludGVyZmFjZSB7XG4gICAgdHlwZTogZS5ab29tTWVldGluZ1JlY3VycmVuY2VUeXBlO1xuICAgIHJlcGVhdEludGVydmFsOiBudW1iZXI7XG4gICAgd2Vla2x5RGF5czogc3RyaW5nO1xuICAgIG1vbnRobHlEYXk6IG51bWJlcjtcbiAgICBtb250aGx5V2VlazogZS5ab29tTW9udGhseVdlZWs7XG4gICAgbW9udGhseVdlZWtEYXk6IGUuWm9vbU1vbnRobHlXZWVrRGF5O1xuICAgIGVuZFRpbWVzOiBudW1iZXI7XG4gICAgZW5kRGF0ZVRpbWU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFpvb21NZWV0aW5nUmVjdXJyZW5jZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFpvb21NZWV0aW5nUmVjdXJyZW5jZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50eXBlKSB7bS50eXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5ab29tTWVldGluZ1JlY3VycmVuY2VUeXBlPihlLlpvb21NZWV0aW5nUmVjdXJyZW5jZVR5cGUsIHByb3RvLnR5cGUpO31cbiAgICAgICAgaWYgKHByb3RvLnJlcGVhdEludGVydmFsKSB7bS5yZXBlYXRJbnRlcnZhbCA9IHBhcnNlSW50KHByb3RvLnJlcGVhdEludGVydmFsLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8ubW9udGhseURheSkge20ubW9udGhseURheSA9IHBhcnNlSW50KHByb3RvLm1vbnRobHlEYXksIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5tb250aGx5V2Vlaykge20ubW9udGhseVdlZWsgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLlpvb21Nb250aGx5V2Vlaz4oZS5ab29tTW9udGhseVdlZWssIHByb3RvLm1vbnRobHlXZWVrKTt9XG4gICAgICAgIGlmIChwcm90by5tb250aGx5V2Vla0RheSkge20ubW9udGhseVdlZWtEYXkgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLlpvb21Nb250aGx5V2Vla0RheT4oZS5ab29tTW9udGhseVdlZWtEYXksIHByb3RvLm1vbnRobHlXZWVrRGF5KTt9XG4gICAgICAgIGlmIChwcm90by5lbmRUaW1lcykge20uZW5kVGltZXMgPSBwYXJzZUludChwcm90by5lbmRUaW1lcywgMTApO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5ab29tTWVldGluZ1JlY3VycmVuY2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50eXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0eXBlJ10gPSB0aGlzLnR5cGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVwZWF0SW50ZXJ2YWwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JlcGVhdEludGVydmFsJ10gPSB0aGlzLnJlcGVhdEludGVydmFsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLndlZWtseURheXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3dlZWtseURheXMnXSA9IHRoaXMud2Vla2x5RGF5czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tb250aGx5RGF5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtb250aGx5RGF5J10gPSB0aGlzLm1vbnRobHlEYXk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubW9udGhseVdlZWsgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21vbnRobHlXZWVrJ10gPSB0aGlzLm1vbnRobHlXZWVrO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1vbnRobHlXZWVrRGF5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtb250aGx5V2Vla0RheSddID0gdGhpcy5tb250aGx5V2Vla0RheTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbmRUaW1lcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW5kVGltZXMnXSA9IHRoaXMuZW5kVGltZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW5kRGF0ZVRpbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2VuZERhdGVUaW1lJ10gPSB0aGlzLmVuZERhdGVUaW1lO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFpvb21NZWV0aW5nU2V0dGluZ3MgaW1wbGVtZW50cyBpLlpvb21NZWV0aW5nU2V0dGluZ3NJbnRlcmZhY2Uge1xuICAgIGhvc3RWaWRlbzogYm9vbGVhbjtcbiAgICBwYXJ0aWNpcGFudFZpZGVvOiBib29sZWFuO1xuICAgIGNuTWVldGluZzogYm9vbGVhbjtcbiAgICBpbk1lZXRpbmc6IGJvb2xlYW47XG4gICAgam9pbkJlZm9yZUhvc3Q6IGJvb2xlYW47XG4gICAgbXV0ZVVwb25FbnRyeTogYm9vbGVhbjtcbiAgICB3YXRlcm1hcms6IGJvb2xlYW47XG4gICAgdXNlUG1pOiBib29sZWFuO1xuICAgIGFwcHJvdmFsVHlwZTogZS5ab29tQXBwcm92YWxUeXBlO1xuICAgIHJlZ2lzdHJhdGlvblR5cGU6IGUuWm9vbVJlZ2lzdHJhdGlvblR5cGU7XG4gICAgYXVkaW86IHN0cmluZztcbiAgICBhdXRvUmVjb3JkaW5nOiBzdHJpbmc7XG4gICAgYWx0ZXJuYXRpdmVIb3N0czogc3RyaW5nO1xuICAgIGNsb3NlUmVnaXN0cmF0aW9uOiBib29sZWFuO1xuICAgIHdhaXRpbmdSb29tOiBib29sZWFuO1xuICAgIGdsb2JhbERpYWxJbkNvdW50cmllczogc3RyaW5nW107XG4gICAgY29udGFjdE5hbWU6IHN0cmluZztcbiAgICBjb250YWN0RW1haWw6IHN0cmluZztcbiAgICByZWdpc3RyYXRpb25FbWFpbE5vdGlmaWNhdGlvbjogYm9vbGVhbjtcbiAgICBtZWV0aW5nQXV0aGVudGljYXRpb246IGJvb2xlYW47XG4gICAgYXV0aGVudGljYXRpb25PcHRpb25zOiBzdHJpbmc7XG4gICAgYXV0aGVudGljYXRpb25Eb21haW5zOiBzdHJpbmc7XG4gICAgZW5mb3JjZUxvZ2luOiBib29sZWFuO1xuICAgIGVuZm9yY2VMb2dpbkRvbWFpbnM6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFpvb21NZWV0aW5nU2V0dGluZ3Mge1xuICAgICAgICBsZXQgbSA9IG5ldyBab29tTWVldGluZ1NldHRpbmdzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmFwcHJvdmFsVHlwZSkge20uYXBwcm92YWxUeXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5ab29tQXBwcm92YWxUeXBlPihlLlpvb21BcHByb3ZhbFR5cGUsIHByb3RvLmFwcHJvdmFsVHlwZSk7fVxuICAgICAgICBpZiAocHJvdG8ucmVnaXN0cmF0aW9uVHlwZSkge20ucmVnaXN0cmF0aW9uVHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuWm9vbVJlZ2lzdHJhdGlvblR5cGU+KGUuWm9vbVJlZ2lzdHJhdGlvblR5cGUsIHByb3RvLnJlZ2lzdHJhdGlvblR5cGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5ab29tTWVldGluZ1NldHRpbmdzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaG9zdFZpZGVvICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydob3N0VmlkZW8nXSA9IHRoaXMuaG9zdFZpZGVvO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhcnRpY2lwYW50VmlkZW8gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3BhcnRpY2lwYW50VmlkZW8nXSA9IHRoaXMucGFydGljaXBhbnRWaWRlbzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jbk1lZXRpbmcgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NuTWVldGluZyddID0gdGhpcy5jbk1lZXRpbmc7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW5NZWV0aW5nICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpbk1lZXRpbmcnXSA9IHRoaXMuaW5NZWV0aW5nO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmpvaW5CZWZvcmVIb3N0ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydqb2luQmVmb3JlSG9zdCddID0gdGhpcy5qb2luQmVmb3JlSG9zdDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tdXRlVXBvbkVudHJ5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtdXRlVXBvbkVudHJ5J10gPSB0aGlzLm11dGVVcG9uRW50cnk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMud2F0ZXJtYXJrICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd3YXRlcm1hcmsnXSA9IHRoaXMud2F0ZXJtYXJrO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVzZVBtaSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndXNlUG1pJ10gPSB0aGlzLnVzZVBtaTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hcHByb3ZhbFR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FwcHJvdmFsVHlwZSddID0gdGhpcy5hcHByb3ZhbFR5cGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVnaXN0cmF0aW9uVHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncmVnaXN0cmF0aW9uVHlwZSddID0gdGhpcy5yZWdpc3RyYXRpb25UeXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmF1ZGlvICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhdWRpbyddID0gdGhpcy5hdWRpbzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hdXRvUmVjb3JkaW5nICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhdXRvUmVjb3JkaW5nJ10gPSB0aGlzLmF1dG9SZWNvcmRpbmc7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWx0ZXJuYXRpdmVIb3N0cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWx0ZXJuYXRpdmVIb3N0cyddID0gdGhpcy5hbHRlcm5hdGl2ZUhvc3RzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNsb3NlUmVnaXN0cmF0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjbG9zZVJlZ2lzdHJhdGlvbiddID0gdGhpcy5jbG9zZVJlZ2lzdHJhdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy53YWl0aW5nUm9vbSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnd2FpdGluZ1Jvb20nXSA9IHRoaXMud2FpdGluZ1Jvb207fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZ2xvYmFsRGlhbEluQ291bnRyaWVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydnbG9iYWxEaWFsSW5Db3VudHJpZXMnXSA9IHRoaXMuZ2xvYmFsRGlhbEluQ291bnRyaWVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbnRhY3ROYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb250YWN0TmFtZSddID0gdGhpcy5jb250YWN0TmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb250YWN0RW1haWwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvbnRhY3RFbWFpbCddID0gdGhpcy5jb250YWN0RW1haWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVnaXN0cmF0aW9uRW1haWxOb3RpZmljYXRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JlZ2lzdHJhdGlvbkVtYWlsTm90aWZpY2F0aW9uJ10gPSB0aGlzLnJlZ2lzdHJhdGlvbkVtYWlsTm90aWZpY2F0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lZXRpbmdBdXRoZW50aWNhdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVldGluZ0F1dGhlbnRpY2F0aW9uJ10gPSB0aGlzLm1lZXRpbmdBdXRoZW50aWNhdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hdXRoZW50aWNhdGlvbk9wdGlvbnMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2F1dGhlbnRpY2F0aW9uT3B0aW9ucyddID0gdGhpcy5hdXRoZW50aWNhdGlvbk9wdGlvbnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXV0aGVudGljYXRpb25Eb21haW5zICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhdXRoZW50aWNhdGlvbkRvbWFpbnMnXSA9IHRoaXMuYXV0aGVudGljYXRpb25Eb21haW5zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVuZm9yY2VMb2dpbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW5mb3JjZUxvZ2luJ10gPSB0aGlzLmVuZm9yY2VMb2dpbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbmZvcmNlTG9naW5Eb21haW5zICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbmZvcmNlTG9naW5Eb21haW5zJ10gPSB0aGlzLmVuZm9yY2VMb2dpbkRvbWFpbnM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgWm9vbU1lZXRpbmdUcmFja2luZ0ZpZWxkIGltcGxlbWVudHMgaS5ab29tTWVldGluZ1RyYWNraW5nRmllbGRJbnRlcmZhY2Uge1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFpvb21NZWV0aW5nVHJhY2tpbmdGaWVsZCB7XG4gICAgICAgIGxldCBtID0gbmV3IFpvb21NZWV0aW5nVHJhY2tpbmdGaWVsZCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuWm9vbU1lZXRpbmdUcmFja2luZ0ZpZWxkSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmllbGQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ZpZWxkJ10gPSB0aGlzLmZpZWxkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2YWx1ZSddID0gdGhpcy52YWx1ZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBab29tT2NjdXJyZW5jZSBpbXBsZW1lbnRzIGkuWm9vbU9jY3VycmVuY2VJbnRlcmZhY2Uge1xuICAgIG9jY3VycmVuY2VJZDogc3RyaW5nO1xuICAgIHN0YXJ0VGltZTogc3RyaW5nO1xuICAgIGR1cmF0aW9uOiBudW1iZXI7XG4gICAgc3RhdHVzOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBab29tT2NjdXJyZW5jZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFpvb21PY2N1cnJlbmNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmR1cmF0aW9uKSB7bS5kdXJhdGlvbiA9IHBhcnNlSW50KHByb3RvLmR1cmF0aW9uLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlpvb21PY2N1cnJlbmNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub2NjdXJyZW5jZUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvY2N1cnJlbmNlSWQnXSA9IHRoaXMub2NjdXJyZW5jZUlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXJ0VGltZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhcnRUaW1lJ10gPSB0aGlzLnN0YXJ0VGltZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kdXJhdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZHVyYXRpb24nXSA9IHRoaXMuZHVyYXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhdHVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGF0dXMnXSA9IHRoaXMuc3RhdHVzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
|
|
377
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21lZXRpbmdzX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL3pvb20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxLQUFLLENBQUMsTUFBTSxVQUFVLENBQUM7QUFFOUIsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE9BQVksRUFBRSxLQUFhO0lBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxPQUFPLHdCQUF3QjtJQWFqQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFBQyxDQUFDLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFvQixDQUFDLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUFDO1FBQy9GLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FBQztRQUNoRSxJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUU7WUFBQyxDQUFDLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQUM7UUFDNUcsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxxQkFBcUIsQ0FB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QUFRLENBQUM7U0FBQztRQUNqRixJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUFDO1FBQzNFLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzL3pvb20uaW50ZXJmYWNlJztcblxuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG5leHBvcnQgY2xhc3MgQ3JlYXRlWm9vbU1lZXRpbmdSZXF1ZXN0IGltcGxlbWVudHMgaS5DcmVhdGVab29tTWVldGluZ1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGlhbVVzZXJJZDogc3RyaW5nO1xuICAgIHRvcGljOiBzdHJpbmc7XG4gICAgdHlwZTogZS5ab29tTWVldGluZ1R5cGU7XG4gICAgc3RhcnRUaW1lOiBzdHJpbmc7XG4gICAgZHVyYXRpb246IG51bWJlcjtcbiAgICB0aW1lem9uZTogc3RyaW5nO1xuICAgIHBhc3N3b3JkOiBzdHJpbmc7XG4gICAgYWdlbmRhOiBzdHJpbmc7XG4gICAgdHJhY2tpbmdGaWVsZHM6IFpvb21NZWV0aW5nVHJhY2tpbmdGaWVsZFtdO1xuICAgIHJlY3VycmVuY2U6IFpvb21NZWV0aW5nUmVjdXJyZW5jZTtcbiAgICBzZXR0aW5nczogWm9vbU1lZXRpbmdTZXR0aW5ncztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IENyZWF0ZVpvb21NZWV0aW5nUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IENyZWF0ZVpvb21NZWV0aW5nUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50eXBlKSB7bS50eXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5ab29tTWVldGluZ1R5cGU+KGUuWm9vbU1lZXRpbmdUeXBlLCBwcm90by50eXBlKTt9XG4gICAgICAgIGlmIChwcm90by5kdXJhdGlvbikge20uZHVyYXRpb24gPSBwYXJzZUludChwcm90by5kdXJhdGlvbiwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnRyYWNraW5nRmllbGRzKSB7bS50cmFja2luZ0ZpZWxkcyA9IHByb3RvLnRyYWNraW5nRmllbGRzLm1hcChab29tTWVldGluZ1RyYWNraW5nRmllbGQuZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5yZWN1cnJlbmNlKSB7bS5yZWN1cnJlbmNlID0gWm9vbU1lZXRpbmdSZWN1cnJlbmNlLmZyb21Qcm90byhwcm90by5yZWN1cnJlbmNlKTt9XG4gICAgICAgIGlmIChwcm90by5zZXR0aW5ncykge20uc2V0dGluZ3MgPSBab29tTWVldGluZ1NldHRpbmdzLmZyb21Qcm90byhwcm90by5zZXR0aW5ncyk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkNyZWF0ZVpvb21NZWV0aW5nUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlhbVVzZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWFtVXNlcklkJ10gPSB0aGlzLmlhbVVzZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b3BpYyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndG9waWMnXSA9IHRoaXMudG9waWM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndHlwZSddID0gdGhpcy50eXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXJ0VGltZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhcnRUaW1lJ10gPSB0aGlzLnN0YXJ0VGltZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kdXJhdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZHVyYXRpb24nXSA9IHRoaXMuZHVyYXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGltZXpvbmUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RpbWV6b25lJ10gPSB0aGlzLnRpbWV6b25lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhc3N3b3JkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwYXNzd29yZCddID0gdGhpcy5wYXNzd29yZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hZ2VuZGEgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FnZW5kYSddID0gdGhpcy5hZ2VuZGE7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHJhY2tpbmdGaWVsZHMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudHJhY2tpbmdGaWVsZHMgIT09IG51bGwpIHt0b1JldHVyblsndHJhY2tpbmdGaWVsZHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudHJhY2tpbmdGaWVsZHMgPyAodGhpcy50cmFja2luZ0ZpZWxkcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50cmFja2luZ0ZpZWxkczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZWN1cnJlbmNlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnJlY3VycmVuY2UgIT09IG51bGwpIHt0b1JldHVyblsncmVjdXJyZW5jZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5yZWN1cnJlbmNlID8gKHRoaXMucmVjdXJyZW5jZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5yZWN1cnJlbmNlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNldHRpbmdzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnNldHRpbmdzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3NldHRpbmdzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnNldHRpbmdzID8gKHRoaXMuc2V0dGluZ3MgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc2V0dGluZ3M7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQ3JlYXRlWm9vbU1lZXRpbmdSZXNwb25zZSBpbXBsZW1lbnRzIGkuQ3JlYXRlWm9vbU1lZXRpbmdSZXNwb25zZUludGVyZmFjZSB7XG4gICAgaWFtVXNlcklkOiBzdHJpbmc7XG4gICAgbWVldGluZ0lkOiBudW1iZXI7XG4gICAgdG9waWM6IHN0cmluZztcbiAgICB0eXBlOiBlLlpvb21NZWV0aW5nVHlwZTtcbiAgICBzdGFydFRpbWU6IHN0cmluZztcbiAgICBkdXJhdGlvbjogbnVtYmVyO1xuICAgIHRpbWV6b25lOiBzdHJpbmc7XG4gICAgY3JlYXRlZEF0OiBzdHJpbmc7XG4gICAgYWdlbmRhOiBzdHJpbmc7XG4gICAgc3RhcnRVcmw6IHN0cmluZztcbiAgICBqb2luVXJsOiBzdHJpbmc7XG4gICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICBoMzIzUGFzc3dvcmQ6IHN0cmluZztcbiAgICBwbWk6IG51bWJlcjtcbiAgICB0cmFja2luZ0ZpZWxkczogWm9vbU1lZXRpbmdUcmFja2luZ0ZpZWxkW107XG4gICAgb2NjdXJyZW5jZXM6IFpvb21PY2N1cnJlbmNlW107XG4gICAgc2V0dGluZ3M6IFpvb21NZWV0aW5nU2V0dGluZ3M7XG4gICAgcmVjdXJyZW5jZTogWm9vbU1lZXRpbmdSZWN1cnJlbmNlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ3JlYXRlWm9vbU1lZXRpbmdSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IENyZWF0ZVpvb21NZWV0aW5nUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ubWVldGluZ0lkKSB7bS5tZWV0aW5nSWQgPSBwYXJzZUludChwcm90by5tZWV0aW5nSWQsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by50eXBlKSB7bS50eXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5ab29tTWVldGluZ1R5cGU+KGUuWm9vbU1lZXRpbmdUeXBlLCBwcm90by50eXBlKTt9XG4gICAgICAgIGlmIChwcm90by5kdXJhdGlvbikge20uZHVyYXRpb24gPSBwYXJzZUludChwcm90by5kdXJhdGlvbiwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnBtaSkge20ucG1pID0gcGFyc2VJbnQocHJvdG8ucG1pLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8udHJhY2tpbmdGaWVsZHMpIHttLnRyYWNraW5nRmllbGRzID0gcHJvdG8udHJhY2tpbmdGaWVsZHMubWFwKFpvb21NZWV0aW5nVHJhY2tpbmdGaWVsZC5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLm9jY3VycmVuY2VzKSB7bS5vY2N1cnJlbmNlcyA9IHByb3RvLm9jY3VycmVuY2VzLm1hcChab29tT2NjdXJyZW5jZS5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLnNldHRpbmdzKSB7bS5zZXR0aW5ncyA9IFpvb21NZWV0aW5nU2V0dGluZ3MuZnJvbVByb3RvKHByb3RvLnNldHRpbmdzKTt9XG4gICAgICAgIGlmIChwcm90by5yZWN1cnJlbmNlKSB7bS5yZWN1cnJlbmNlID0gWm9vbU1lZXRpbmdSZWN1cnJlbmNlLmZyb21Qcm90byhwcm90by5yZWN1cnJlbmNlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQ3JlYXRlWm9vbU1lZXRpbmdSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlhbVVzZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWFtVXNlcklkJ10gPSB0aGlzLmlhbVVzZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZWV0aW5nSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lZXRpbmdJZCddID0gdGhpcy5tZWV0aW5nSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG9waWMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RvcGljJ10gPSB0aGlzLnRvcGljO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3R5cGUnXSA9IHRoaXMudHlwZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdGFydFRpbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N0YXJ0VGltZSddID0gdGhpcy5zdGFydFRpbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZHVyYXRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2R1cmF0aW9uJ10gPSB0aGlzLmR1cmF0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRpbWV6b25lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0aW1lem9uZSddID0gdGhpcy50aW1lem9uZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jcmVhdGVkQXQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NyZWF0ZWRBdCddID0gdGhpcy5jcmVhdGVkQXQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWdlbmRhICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhZ2VuZGEnXSA9IHRoaXMuYWdlbmRhO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXJ0VXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGFydFVybCddID0gdGhpcy5zdGFydFVybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5qb2luVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydqb2luVXJsJ10gPSB0aGlzLmpvaW5Vcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFzc3dvcmQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Bhc3N3b3JkJ10gPSB0aGlzLnBhc3N3b3JkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmgzMjNQYXNzd29yZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaDMyM1Bhc3N3b3JkJ10gPSB0aGlzLmgzMjNQYXNzd29yZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wbWkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3BtaSddID0gdGhpcy5wbWk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHJhY2tpbmdGaWVsZHMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudHJhY2tpbmdGaWVsZHMgIT09IG51bGwpIHt0b1JldHVyblsndHJhY2tpbmdGaWVsZHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudHJhY2tpbmdGaWVsZHMgPyAodGhpcy50cmFja2luZ0ZpZWxkcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50cmFja2luZ0ZpZWxkczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vY2N1cnJlbmNlcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5vY2N1cnJlbmNlcyAhPT0gbnVsbCkge3RvUmV0dXJuWydvY2N1cnJlbmNlcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5vY2N1cnJlbmNlcyA/ICh0aGlzLm9jY3VycmVuY2VzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm9jY3VycmVuY2VzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNldHRpbmdzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnNldHRpbmdzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3NldHRpbmdzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnNldHRpbmdzID8gKHRoaXMuc2V0dGluZ3MgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc2V0dGluZ3M7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVjdXJyZW5jZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5yZWN1cnJlbmNlICE9PSBudWxsKSB7dG9SZXR1cm5bJ3JlY3VycmVuY2UnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucmVjdXJyZW5jZSA/ICh0aGlzLnJlY3VycmVuY2UgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucmVjdXJyZW5jZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBab29tTWVldGluZ1JlY3VycmVuY2UgaW1wbGVtZW50cyBpLlpvb21NZWV0aW5nUmVjdXJyZW5jZUludGVyZmFjZSB7XG4gICAgdHlwZTogZS5ab29tTWVldGluZ1JlY3VycmVuY2VUeXBlO1xuICAgIHJlcGVhdEludGVydmFsOiBudW1iZXI7XG4gICAgd2Vla2x5RGF5czogc3RyaW5nO1xuICAgIG1vbnRobHlEYXk6IG51bWJlcjtcbiAgICBtb250aGx5V2VlazogZS5ab29tTW9udGhseVdlZWs7XG4gICAgbW9udGhseVdlZWtEYXk6IGUuWm9vbU1vbnRobHlXZWVrRGF5O1xuICAgIGVuZFRpbWVzOiBudW1iZXI7XG4gICAgZW5kRGF0ZVRpbWU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFpvb21NZWV0aW5nUmVjdXJyZW5jZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFpvb21NZWV0aW5nUmVjdXJyZW5jZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50eXBlKSB7bS50eXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5ab29tTWVldGluZ1JlY3VycmVuY2VUeXBlPihlLlpvb21NZWV0aW5nUmVjdXJyZW5jZVR5cGUsIHByb3RvLnR5cGUpO31cbiAgICAgICAgaWYgKHByb3RvLnJlcGVhdEludGVydmFsKSB7bS5yZXBlYXRJbnRlcnZhbCA9IHBhcnNlSW50KHByb3RvLnJlcGVhdEludGVydmFsLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8ubW9udGhseURheSkge20ubW9udGhseURheSA9IHBhcnNlSW50KHByb3RvLm1vbnRobHlEYXksIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5tb250aGx5V2Vlaykge20ubW9udGhseVdlZWsgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLlpvb21Nb250aGx5V2Vlaz4oZS5ab29tTW9udGhseVdlZWssIHByb3RvLm1vbnRobHlXZWVrKTt9XG4gICAgICAgIGlmIChwcm90by5tb250aGx5V2Vla0RheSkge20ubW9udGhseVdlZWtEYXkgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLlpvb21Nb250aGx5V2Vla0RheT4oZS5ab29tTW9udGhseVdlZWtEYXksIHByb3RvLm1vbnRobHlXZWVrRGF5KTt9XG4gICAgICAgIGlmIChwcm90by5lbmRUaW1lcykge20uZW5kVGltZXMgPSBwYXJzZUludChwcm90by5lbmRUaW1lcywgMTApO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5ab29tTWVldGluZ1JlY3VycmVuY2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50eXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0eXBlJ10gPSB0aGlzLnR5cGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVwZWF0SW50ZXJ2YWwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JlcGVhdEludGVydmFsJ10gPSB0aGlzLnJlcGVhdEludGVydmFsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLndlZWtseURheXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3dlZWtseURheXMnXSA9IHRoaXMud2Vla2x5RGF5czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tb250aGx5RGF5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtb250aGx5RGF5J10gPSB0aGlzLm1vbnRobHlEYXk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubW9udGhseVdlZWsgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21vbnRobHlXZWVrJ10gPSB0aGlzLm1vbnRobHlXZWVrO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1vbnRobHlXZWVrRGF5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtb250aGx5V2Vla0RheSddID0gdGhpcy5tb250aGx5V2Vla0RheTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbmRUaW1lcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW5kVGltZXMnXSA9IHRoaXMuZW5kVGltZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW5kRGF0ZVRpbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2VuZERhdGVUaW1lJ10gPSB0aGlzLmVuZERhdGVUaW1lO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFpvb21NZWV0aW5nU2V0dGluZ3MgaW1wbGVtZW50cyBpLlpvb21NZWV0aW5nU2V0dGluZ3NJbnRlcmZhY2Uge1xuICAgIGhvc3RWaWRlbzogYm9vbGVhbjtcbiAgICBwYXJ0aWNpcGFudFZpZGVvOiBib29sZWFuO1xuICAgIGNuTWVldGluZzogYm9vbGVhbjtcbiAgICBpbk1lZXRpbmc6IGJvb2xlYW47XG4gICAgam9pbkJlZm9yZUhvc3Q6IGJvb2xlYW47XG4gICAgbXV0ZVVwb25FbnRyeTogYm9vbGVhbjtcbiAgICB3YXRlcm1hcms6IGJvb2xlYW47XG4gICAgdXNlUG1pOiBib29sZWFuO1xuICAgIGFwcHJvdmFsVHlwZTogZS5ab29tQXBwcm92YWxUeXBlO1xuICAgIHJlZ2lzdHJhdGlvblR5cGU6IGUuWm9vbVJlZ2lzdHJhdGlvblR5cGU7XG4gICAgYXVkaW86IHN0cmluZztcbiAgICBhdXRvUmVjb3JkaW5nOiBzdHJpbmc7XG4gICAgYWx0ZXJuYXRpdmVIb3N0czogc3RyaW5nO1xuICAgIGNsb3NlUmVnaXN0cmF0aW9uOiBib29sZWFuO1xuICAgIHdhaXRpbmdSb29tOiBib29sZWFuO1xuICAgIGdsb2JhbERpYWxJbkNvdW50cmllczogc3RyaW5nW107XG4gICAgY29udGFjdE5hbWU6IHN0cmluZztcbiAgICBjb250YWN0RW1haWw6IHN0cmluZztcbiAgICByZWdpc3RyYXRpb25FbWFpbE5vdGlmaWNhdGlvbjogYm9vbGVhbjtcbiAgICBtZWV0aW5nQXV0aGVudGljYXRpb246IGJvb2xlYW47XG4gICAgYXV0aGVudGljYXRpb25PcHRpb25zOiBzdHJpbmc7XG4gICAgYXV0aGVudGljYXRpb25Eb21haW5zOiBzdHJpbmc7XG4gICAgZW5mb3JjZUxvZ2luOiBib29sZWFuO1xuICAgIGVuZm9yY2VMb2dpbkRvbWFpbnM6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFpvb21NZWV0aW5nU2V0dGluZ3Mge1xuICAgICAgICBsZXQgbSA9IG5ldyBab29tTWVldGluZ1NldHRpbmdzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmFwcHJvdmFsVHlwZSkge20uYXBwcm92YWxUeXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5ab29tQXBwcm92YWxUeXBlPihlLlpvb21BcHByb3ZhbFR5cGUsIHByb3RvLmFwcHJvdmFsVHlwZSk7fVxuICAgICAgICBpZiAocHJvdG8ucmVnaXN0cmF0aW9uVHlwZSkge20ucmVnaXN0cmF0aW9uVHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuWm9vbVJlZ2lzdHJhdGlvblR5cGU+KGUuWm9vbVJlZ2lzdHJhdGlvblR5cGUsIHByb3RvLnJlZ2lzdHJhdGlvblR5cGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5ab29tTWVldGluZ1NldHRpbmdzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaG9zdFZpZGVvICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydob3N0VmlkZW8nXSA9IHRoaXMuaG9zdFZpZGVvO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhcnRpY2lwYW50VmlkZW8gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3BhcnRpY2lwYW50VmlkZW8nXSA9IHRoaXMucGFydGljaXBhbnRWaWRlbzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jbk1lZXRpbmcgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NuTWVldGluZyddID0gdGhpcy5jbk1lZXRpbmc7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW5NZWV0aW5nICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpbk1lZXRpbmcnXSA9IHRoaXMuaW5NZWV0aW5nO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmpvaW5CZWZvcmVIb3N0ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydqb2luQmVmb3JlSG9zdCddID0gdGhpcy5qb2luQmVmb3JlSG9zdDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tdXRlVXBvbkVudHJ5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtdXRlVXBvbkVudHJ5J10gPSB0aGlzLm11dGVVcG9uRW50cnk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMud2F0ZXJtYXJrICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd3YXRlcm1hcmsnXSA9IHRoaXMud2F0ZXJtYXJrO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVzZVBtaSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndXNlUG1pJ10gPSB0aGlzLnVzZVBtaTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hcHByb3ZhbFR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FwcHJvdmFsVHlwZSddID0gdGhpcy5hcHByb3ZhbFR5cGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVnaXN0cmF0aW9uVHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncmVnaXN0cmF0aW9uVHlwZSddID0gdGhpcy5yZWdpc3RyYXRpb25UeXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmF1ZGlvICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhdWRpbyddID0gdGhpcy5hdWRpbzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hdXRvUmVjb3JkaW5nICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhdXRvUmVjb3JkaW5nJ10gPSB0aGlzLmF1dG9SZWNvcmRpbmc7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWx0ZXJuYXRpdmVIb3N0cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWx0ZXJuYXRpdmVIb3N0cyddID0gdGhpcy5hbHRlcm5hdGl2ZUhvc3RzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNsb3NlUmVnaXN0cmF0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjbG9zZVJlZ2lzdHJhdGlvbiddID0gdGhpcy5jbG9zZVJlZ2lzdHJhdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy53YWl0aW5nUm9vbSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnd2FpdGluZ1Jvb20nXSA9IHRoaXMud2FpdGluZ1Jvb207fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZ2xvYmFsRGlhbEluQ291bnRyaWVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydnbG9iYWxEaWFsSW5Db3VudHJpZXMnXSA9IHRoaXMuZ2xvYmFsRGlhbEluQ291bnRyaWVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbnRhY3ROYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb250YWN0TmFtZSddID0gdGhpcy5jb250YWN0TmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb250YWN0RW1haWwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvbnRhY3RFbWFpbCddID0gdGhpcy5jb250YWN0RW1haWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVnaXN0cmF0aW9uRW1haWxOb3RpZmljYXRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JlZ2lzdHJhdGlvbkVtYWlsTm90aWZpY2F0aW9uJ10gPSB0aGlzLnJlZ2lzdHJhdGlvbkVtYWlsTm90aWZpY2F0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lZXRpbmdBdXRoZW50aWNhdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVldGluZ0F1dGhlbnRpY2F0aW9uJ10gPSB0aGlzLm1lZXRpbmdBdXRoZW50aWNhdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hdXRoZW50aWNhdGlvbk9wdGlvbnMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2F1dGhlbnRpY2F0aW9uT3B0aW9ucyddID0gdGhpcy5hdXRoZW50aWNhdGlvbk9wdGlvbnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXV0aGVudGljYXRpb25Eb21haW5zICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhdXRoZW50aWNhdGlvbkRvbWFpbnMnXSA9IHRoaXMuYXV0aGVudGljYXRpb25Eb21haW5zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVuZm9yY2VMb2dpbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW5mb3JjZUxvZ2luJ10gPSB0aGlzLmVuZm9yY2VMb2dpbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbmZvcmNlTG9naW5Eb21haW5zICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbmZvcmNlTG9naW5Eb21haW5zJ10gPSB0aGlzLmVuZm9yY2VMb2dpbkRvbWFpbnM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgWm9vbU1lZXRpbmdUcmFja2luZ0ZpZWxkIGltcGxlbWVudHMgaS5ab29tTWVldGluZ1RyYWNraW5nRmllbGRJbnRlcmZhY2Uge1xuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFpvb21NZWV0aW5nVHJhY2tpbmdGaWVsZCB7XG4gICAgICAgIGxldCBtID0gbmV3IFpvb21NZWV0aW5nVHJhY2tpbmdGaWVsZCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuWm9vbU1lZXRpbmdUcmFja2luZ0ZpZWxkSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmllbGQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2ZpZWxkJ10gPSB0aGlzLmZpZWxkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZhbHVlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2YWx1ZSddID0gdGhpcy52YWx1ZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBab29tT2NjdXJyZW5jZSBpbXBsZW1lbnRzIGkuWm9vbU9jY3VycmVuY2VJbnRlcmZhY2Uge1xuICAgIG9jY3VycmVuY2VJZDogc3RyaW5nO1xuICAgIHN0YXJ0VGltZTogc3RyaW5nO1xuICAgIGR1cmF0aW9uOiBudW1iZXI7XG4gICAgc3RhdHVzOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBab29tT2NjdXJyZW5jZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFpvb21PY2N1cnJlbmNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmR1cmF0aW9uKSB7bS5kdXJhdGlvbiA9IHBhcnNlSW50KHByb3RvLmR1cmF0aW9uLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlpvb21PY2N1cnJlbmNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub2NjdXJyZW5jZUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvY2N1cnJlbmNlSWQnXSA9IHRoaXMub2NjdXJyZW5jZUlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXJ0VGltZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhcnRUaW1lJ10gPSB0aGlzLnN0YXJ0VGltZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kdXJhdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZHVyYXRpb24nXSA9IHRoaXMuZHVyYXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhdHVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGF0dXMnXSA9IHRoaXMuc3RhdHVzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
|
|
@@ -96,7 +96,7 @@ export class GuestService {
|
|
|
96
96
|
return this.guestAPIService.getGuestBookedMeetingV2(req);
|
|
97
97
|
}
|
|
98
98
|
cancelBatchMeeting(req) {
|
|
99
|
-
return this.guestAPIService.cancelBatchMeeting(req).pipe(
|
|
99
|
+
return this.guestAPIService.cancelBatchMeeting(req).pipe(mapTo(null));
|
|
100
100
|
}
|
|
101
101
|
isHostConfigured(req) {
|
|
102
102
|
return this.guestAPIService
|
|
@@ -134,6 +134,32 @@ export class GuestService {
|
|
|
134
134
|
getServiceV2(req) {
|
|
135
135
|
return this.guestAPIService.getServiceV2(req);
|
|
136
136
|
}
|
|
137
|
+
listBatchAvailableTimeSlots(req) {
|
|
138
|
+
return this.guestAPIService.listBatchAvailableTimeSlots(req).pipe(map((resp) => {
|
|
139
|
+
if (resp.timeSlots?.length) {
|
|
140
|
+
return resp.timeSlots.map((ts) => TimeSpanFromApi(ts));
|
|
141
|
+
}
|
|
142
|
+
if (resp.isoTimeSlots?.length) {
|
|
143
|
+
return resp.isoTimeSlots.map((iso) => ({
|
|
144
|
+
start: new Date(iso.start),
|
|
145
|
+
end: new Date(iso.end),
|
|
146
|
+
}));
|
|
147
|
+
}
|
|
148
|
+
return [];
|
|
149
|
+
}));
|
|
150
|
+
}
|
|
151
|
+
bookBatchMeeting(req) {
|
|
152
|
+
return this.guestAPIService.bookBatchMeeting({
|
|
153
|
+
...req,
|
|
154
|
+
formAnswers: answersToAPI(req.formAnswers),
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
rescheduleBatchMeeting(req) {
|
|
158
|
+
return this.guestAPIService.rescheduleBatchMeeting(req).pipe(mapTo(null));
|
|
159
|
+
}
|
|
160
|
+
listGuestBookedMeetings(req) {
|
|
161
|
+
return this.guestAPIService.listGuestBookedMeetings(req);
|
|
162
|
+
}
|
|
137
163
|
}
|
|
138
164
|
GuestService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: GuestService, deps: [{ token: i1.MeetingGuestApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
139
165
|
GuestService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: GuestService, providedIn: "root" });
|
|
@@ -141,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImpor
|
|
|
141
167
|
type: Injectable,
|
|
142
168
|
args: [{ providedIn: "root" }]
|
|
143
169
|
}], ctorParameters: function () { return [{ type: i1.MeetingGuestApiService }]; } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Vlc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21lZXRpbmdzX3Nkay9zcmMvbGliL2d1ZXN0L2d1ZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBT0wsc0JBQXNCLEdBWXZCLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUNMLFlBQVksRUFDWixlQUFlLEVBRWYsV0FBVyxFQUlYLGtCQUFrQixFQUVsQixlQUFlLEdBQ2hCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBcUR4RSxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUFvQixlQUF1QztRQUF2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBd0I7SUFBRyxDQUFDO0lBRS9ELGNBQWMsQ0FBQyxHQUlkO1FBQ0MsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ2xELEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1gsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQzlCLE9BQU8sRUFBaUIsQ0FBQzthQUMxQjtZQUNELE9BQU8sa0JBQWtCLENBQUM7Z0JBQ3hCLFdBQVcsRUFBRSxrQkFBa0IsRUFBRTtvQkFDL0IsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJO29CQUNsQixDQUFDLENBQUMsV0FBVyxDQUFDLElBQUk7Z0JBQ3BCLFVBQVUsRUFBRSxHQUFHLENBQUMsWUFBWTtnQkFDNUIsY0FBYyxFQUFFLElBQUksQ0FBQyxXQUFXO2dCQUNoQyxRQUFRLEVBQUUs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LENBQUM7O3lHQTVPVSxZQUFZOzZHQUFaLFlBQVksY0FEQyxNQUFNOzJGQUNuQixZQUFZO2tCQUR4QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgQ2FsZW5kYXJJbnRlcmZhY2UsXG4gIENvbnRhY3QsXG4gIEdldEdyb3VwUmVzcG9uc2UsXG4gIEdldFNlcnZpY2VWMlJlc3BvbnNlLFxuICBHdWVzdElzSG9zdENvbmZpZ3VyZWRSZXNwb25zZSxcbiAgR2V0U2Vzc2lvbk1lZXRpbmdSZXNwb25zZSxcbiAgTWVldGluZ0d1ZXN0QXBpU2VydmljZSxcbiAgTWVldGluZ0xvY2F0aW9uVHlwZSxcbiAgVGVhbUV2ZW50TWVldGluZ1R5cGUsXG4gIFRpbWVab25lSW50ZXJmYWNlLFxuICBDb250YWN0SW50ZXJmYWNlLFxuICBBbnN3ZXJzSW50ZXJmYWNlLFxuICBHZXRTZXNzaW9uSW52aXRlZU1lZXRpbmdJbmZvUmVzcG9uc2UsXG4gIEd1ZXN0R2V0Qm9va2VkTWVldGluZ1Jlc3BvbnNlVjIsXG4gIEJvb2tpbmdTb3VyY2UsXG4gIENoZWNrRmVhdHVyZUZsYWdSZXF1ZXN0LFxuICBDaGVja0ZlYXR1cmVGbGFnUmVzcG9uc2UsXG4gIEZlYXR1cmVGbGFnRmllbGRUeXBlLFxufSBmcm9tIFwiLi4vX2ludGVybmFsXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IG1hcCwgbWFwVG8gfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7XG4gIGFuc3dlcnNUb0FQSSxcbiAgQ2FsZW5kYXJGcm9tQXBpLFxuICBIb3N0LFxuICBIb3N0RnJvbUFwaSxcbiAgTWVldGluZ0Zvcm0sXG4gIE1lZXRpbmdNZXRhZGF0YSxcbiAgTWVldGluZ1R5cGUsXG4gIE1lZXRpbmdUeXBlRnJvbUFwaSxcbiAgVGltZVNwYW4sXG4gIFRpbWVTcGFuRnJvbUFwaSxcbn0gZnJvbSBcIi4uL3NoYXJlZFwiO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQsIG9uUHJvZHVjdGlvbkdsb2JhbCB9IGZyb20gXCIuLi9zaGFyZWQvZW52aXJvbm1lbnRcIjtcbmltcG9ydCB7IEdldFNlcnZpY2VSZXNwb25zZSB9IGZyb20gXCIuLi9faW50ZXJuYWwvb2JqZWN0cy9tZWV0aW5nLWd1ZXN0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9va01lZXRpbmdSZXNwb25zZSB7XG4gIG1lZXRpbmdJZDogc3RyaW5nO1xuICBob3N0SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNZWV0aW5nQ2FsZW5kYXJJbmZvUmVxdWVzdCB7XG4gIG1lZXRpbmdJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE1lZXRpbmdDYWxlbmRhckluZm9SZXNwb25zZSB7XG4gIGdvb2dsZUNhbGVuZGFyTGluazogc3RyaW5nO1xuICBvdXRsb29rQ2FsZW5kYXJMaW5rOiBzdHJpbmc7XG4gIGxpbmtSZWFkeTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb29rU2Vzc2lvblJlc3BvbnNlIHtcbiAgbWVldGluZ0lkOiBzdHJpbmc7XG4gIGJvb2tpbmdVcmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb29rZWRNZWV0aW5nSW5mbyB7XG4gIHN0YXJ0OiBEYXRlO1xuICBlbmQ6IERhdGU7XG4gIHRpbWVab25lOiBUaW1lWm9uZUludGVyZmFjZTtcbiAgbWVldGluZ1R5cGVJZDogc3RyaW5nO1xuICBsb2NhdGlvbjogc3RyaW5nO1xuICBsb2NhdGlvbkd1aWRlbGluZTogc3RyaW5nO1xuICBsb2NhdGlvblR5cGU6IE1lZXRpbmdMb2NhdGlvblR5cGU7XG4gIG1lZXRpbmdUeXBlOiBUZWFtRXZlbnRNZWV0aW5nVHlwZTtcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgY2FsZW5kYXJJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEd1ZXN0U2VydmljZUludGVyZmFjZSB7XG4gIGdldEJvb2tlZE1lZXRpbmdJbmZvKFxuICAgIG1lZXRpbmdJZDogc3RyaW5nLFxuICAgIGF1dGhUb2tlbjogc3RyaW5nLFxuICApOiBPYnNlcnZhYmxlPEJvb2tlZE1lZXRpbmdJbmZvPjtcblxuICBsaXN0TWVldGluZ1R5cGVzKHJlcToge1xuICAgIGhvc3RJZDogc3RyaW5nO1xuICAgIHRpbWVab25lPzogVGltZVpvbmVJbnRlcmZhY2U7XG4gICAgbWV0YWRhdGE/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICBzbHVnPzogc3RyaW5nO1xuICB9KTogT2JzZXJ2YWJsZTxNZWV0aW5nVHlwZVtdPjtcblxuICBpc0hvc3RDb25maWd1cmVkKHJlcTogeyBob3N0SWQ6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxuZXhwb3J0IGNsYXNzIEd1ZXN0U2VydmljZSBpbXBsZW1lbnRzIEd1ZXN0U2VydmljZUludGVyZmFjZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZ3Vlc3RBUElTZXJ2aWNlOiBNZWV0aW5nR3Vlc3RBcGlTZXJ2aWNlKSB7fVxuXG4gIGdldE1lZXRpbmdUeXBlKHJlcToge1xuICAgIGNhbGVuZGFyU2x1Zzogc3RyaW5nO1xuICAgIG1lZXRpbmdUeXBlU2x1Zzogc3RyaW5nO1xuICAgIG1ldGFkYXRhPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG4gIH0pOiBPYnNlcnZhYmxlPE1lZXRpbmdUeXBlPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlLmdldE1lZXRpbmdUeXBlKHJlcSkucGlwZShcbiAgICAgIG1hcCgocmVzcCkgPT4ge1xuICAgICAgICBpZiAoIXJlc3AgfHwgIXJlc3AubWVldGluZ1R5cGUpIHtcbiAgICAgICAgICByZXR1cm4ge30gYXMgTWVldGluZ1R5cGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE1lZXRpbmdUeXBlRnJvbUFwaSh7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IG9uUHJvZHVjdGlvbkdsb2JhbCgpXG4gICAgICAgICAgICA/IEVudmlyb25tZW50LlBST0RcbiAgICAgICAgICAgIDogRW52aXJvbm1lbnQuREVNTyxcbiAgICAgICAgICBjYWxlbmRhcklkOiByZXEuY2FsZW5kYXJTbHVnLFxuICAgICAgICAgIG1lZXRpbmdUeXBlQXBpOiByZXNwLm1lZXRpbmdUeXBlLFxuICAgICAgICAgIG1ldGFkYXRhOiByZXEubWV0YWRhdGEsXG4gICAgICAgICAgY2FsZW5kYXJTbHVnOiByZXEuY2FsZW5kYXJTbHVnLFxuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBsaXN0TWVldGluZ1R5cGVzKHJlcToge1xuICAgIGhvc3RJZDogc3RyaW5nO1xuICAgIG1ldGFkYXRhPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgLy8gZGVwcmVjYXRlZDogdW51c2VkIGZpZWxkLlxuICAgIHRpbWVab25lPzogVGltZVpvbmVJbnRlcmZhY2U7XG4gICAgY2FsZW5kYXJTbHVnPzogc3RyaW5nO1xuICB9KTogT2JzZXJ2YWJsZTxNZWV0aW5nVHlwZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlLmxpc3RNZWV0aW5nVHlwZXMocmVxKS5waXBlKFxuICAgICAgbWFwKChyZXNwKSA9PiB7XG4gICAgICAgIGlmICghcmVzcCB8fCAhcmVzcC5tZWV0aW5nVHlwZXMpIHtcbiAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3AubWVldGluZ1R5cGVzLm1hcCgobXQpID0+IHtcbiAgICAgICAgICByZXR1cm4gTWVldGluZ1R5cGVGcm9tQXBpKHtcbiAgICAgICAgICAgIGVudmlyb25tZW50OiBvblByb2R1Y3Rpb25HbG9iYWwoKVxuICAgICAgICAgICAgICA/IEVudmlyb25tZW50LlBST0RcbiAgICAgICAgICAgICAgOiBFbnZpcm9ubWVudC5ERU1PLFxuICAgICAgICAgICAgY2FsZW5kYXJJZDogcmVxLmhvc3RJZCxcbiAgICAgICAgICAgIG1lZXRpbmdUeXBlQXBpOiBtdCxcbiAgICAgICAgICAgIG1ldGFkYXRhOiByZXEubWV0YWRhdGEsXG4gICAgICAgICAgICBjYWxlbmRhclNsdWc6IHJlcS5jYWxlbmRhclNsdWcsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGxpc3RBdmFpbGFibGVUaW1lU2xvdHMocmVxOiB7XG4gICAgaG9zdElkOiBzdHJpbmc7XG4gICAgbWVldGluZ1R5cGVJZDogc3RyaW5nO1xuICAgIHRpbWVTcGFuOiBUaW1lU3BhbjtcbiAgICB0aW1lWm9uZTogVGltZVpvbmVJbnRlcmZhY2U7XG4gICAgdXNlcklkPzogc3RyaW5nO1xuICB9KTogT2JzZXJ2YWJsZTxUaW1lU3BhbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlXG4gICAgICAubGlzdEF2YWlsYWJsZVRpbWVTbG90cyhyZXEpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwKSA9PlxuICAgICAgICAgIHJlc3AudGltZVNsb3RzID8gcmVzcC50aW1lU2xvdHMubWFwKCh0cykgPT4gVGltZVNwYW5Gcm9tQXBpKHRzKSkgOiBbXSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gIH1cblxuICBib29rTWVldGluZyhyZXE6IHtcbiAgICBob3N0SWQ6IHN0cmluZztcbiAgICBtZWV0aW5nVHlwZUlkOiBzdHJpbmc7XG4gICAgc3RhcnQ6IERhdGU7XG4gICAgY29tbWVudDogc3RyaW5nO1xuICAgIG1ldGFkYXRhPzogTWVldGluZ01ldGFkYXRhO1xuICAgIGF0dGVuZGVlczogKE9taXQ8XG4gICAgICBDb250YWN0LFxuICAgICAgXCJmcm9tUHJvdG9cIiB8IFwidG9BcGlKc29uXCIgfCBcImNvbnN0cnVjdG9yXCIgfCBcInRpbWVab25lXCJcbiAgICA+ICYgeyB0aW1lWm9uZTogVGltZVpvbmVJbnRlcmZhY2UgfSlbXTtcbiAgICBmb3JtQW5zd2Vycz86IE1lZXRpbmdGb3JtO1xuICAgIHJlY2FwdGNoYVRva2VuOiBzdHJpbmc7XG4gICAgbG9jYXRpb24/OiBzdHJpbmc7XG4gICAgdXNlcklkPzogc3RyaW5nO1xuICAgIGJvb2tpbmdTb3VyY2U/OiBCb29raW5nU291cmNlO1xuICAgIGhhc1Ntc0NvbnNlbnQ/OiBib29sZWFuO1xuICB9KTogT2JzZXJ2YWJsZTxCb29rTWVldGluZ1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlLmJvb2tNZWV0aW5nKHtcbiAgICAgIC4uLnJlcSxcbiAgICAgIGF0dGVuZGVlczogcmVxLmF0dGVuZGVlcyxcbiAgICAgIGZvcm1BbnN3ZXJzOiBhbnN3ZXJzVG9BUEkocmVxLmZvcm1BbnN3ZXJzKSxcbiAgICB9KTtcbiAgfVxuXG4gIGNhbmNlbE1lZXRpbmcocmVxOiB7XG4gICAgYXV0aFRva2VuOiBzdHJpbmc7XG4gICAgbWVldGluZ0lkOiBzdHJpbmc7XG4gICAgY2FuY2VsbGF0aW9uUmVhc29uOiBzdHJpbmc7XG4gIH0pOiBPYnNlcnZhYmxlPG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5ndWVzdEFQSVNlcnZpY2UuY2FuY2VsTWVldGluZyhyZXEpLnBpcGUobWFwVG8obnVsbCkpO1xuICB9XG5cbiAgcmVzY2hlZHVsZU1lZXRpbmcocmVxOiB7XG4gICAgYXV0aFRva2VuOiBzdHJpbmc7XG4gICAgbWVldGluZ0lkOiBzdHJpbmc7XG4gICAgc3RhcnQ6IERhdGU7XG4gICAgdGltZVpvbmU/OiBUaW1lWm9uZUludGVyZmFjZTtcbiAgICBsb2NhdGlvbj86IHN0cmluZztcbiAgfSk6IE9ic2VydmFibGU8bnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5yZXNjaGVkdWxlTWVldGluZyhyZXEpLnBpcGUobWFwVG8obnVsbCkpO1xuICB9XG5cbiAgLy8gZ2V0SG9zdCByZXR1cm5zIGFuIGluZGl2aWR1YWwgaG9zdCBieSB0aGVpciBob3N0SWRcbiAgZ2V0SG9zdChyZXE6IHsgaG9zdElkOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8SG9zdD4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZVxuICAgICAgLmdldEhvc3QocmVxKVxuICAgICAgLnBpcGUobWFwKChyZXNwKSA9PiBIb3N0RnJvbUFwaShyZXNwLmhvc3QpKSk7XG4gIH1cblxuICAvLyBnZXRDYWxlbmRhciByZXR1cm5zIGEgQ2FsZW5kYXIsIHdoaWNoIG1heSByZXByZXNlbnQgYW4gaW5kaXZpZHVhbCBob3N0IE9SIGEgZ3JvdXBpbmcgb2YgaG9zdHMgKEkuZS4sIGEgdGVhbSlcbiAgZ2V0Q2FsZW5kYXIocmVxOiB7IGNhbGVuZGFySWQ6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxDYWxlbmRhckludGVyZmFjZT4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZVxuICAgICAgLmdldENhbGVuZGFyKHJlcSlcbiAgICAgIC5waXBlKG1hcCgocmVzcCkgPT4gQ2FsZW5kYXJGcm9tQXBpKHJlc3AuY2FsZW5kYXIpKSk7XG4gIH1cblxuICBnZXRCb29rZWRNZWV0aW5nSW5mbyhcbiAgICBtZWV0aW5nSWQ6IHN0cmluZyxcbiAgICBhdXRoVG9rZW46IHN0cmluZyxcbiAgKTogT2JzZXJ2YWJsZTxCb29rZWRNZWV0aW5nSW5mbz4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZVxuICAgICAgLmdldEd1ZXN0Qm9va2VkTWVldGluZyh7XG4gICAgICAgIG1lZXRpbmdJZDogbWVldGluZ0lkLFxuICAgICAgICBhdXRoVG9rZW46IGF1dGhUb2tlbixcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChyZXNwKSA9PlxuICAgICAgICAgICAgPEJvb2tlZE1lZXRpbmdJbmZvPntcbiAgICAgICAgICAgICAgc3RhcnQ6IHJlc3Auc3RhcnRUaW1lLFxuICAgICAgICAgICAgICBlbmQ6IHJlc3AuZW5kVGltZSxcbiAgICAgICAgICAgICAgdGltZVpvbmU6IHJlc3AudGltZVpvbmUsXG4gICAgICAgICAgICAgIG1lZXRpbmdUeXBlSWQ6IHJlc3AubWVldGluZ1R5cGVJZCxcbiAgICAgICAgICAgICAgbG9jYXRpb246IHJlc3AubG9jYXRpb24sXG4gICAgICAgICAgICAgIGxvY2F0aW9uR3VpZGVsaW5lOiByZXNwLmxvY2F0aW9uR3VpZGVsaW5lLFxuICAgICAgICAgICAgICBsb2NhdGlvblR5cGU6IHJlc3AubG9jYXRpb25UeXBlLFxuICAgICAgICAgICAgICBtZWV0aW5nVHlwZTogcmVzcC5tZWV0aW5nVHlwZSxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHJlc3AuZGlzcGxheU5hbWUsXG4gICAgICAgICAgICAgIGNhbGVuZGFySWQ6IHJlc3AuY2FsZW5kYXJJZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICksXG4gICAgICApO1xuICB9XG5cbiAgZ2V0R3Vlc3RCb29rZWRNZWV0aW5nVjIocmVxOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgfSk6IE9ic2VydmFibGU8R3Vlc3RHZXRCb29rZWRNZWV0aW5nUmVzcG9uc2VWMj4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5nZXRHdWVzdEJvb2tlZE1lZXRpbmdWMihyZXEpO1xuICB9XG5cbiAgY2FuY2VsQmF0Y2hNZWV0aW5nKHJlcToge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgY2FuY2VsbGF0aW9uUmVhc29uPzogc3RyaW5nO1xuICB9KTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlLmNhbmNlbEJhdGNoTWVldGluZyhyZXEpLnBpcGUoXG4gICAgICBtYXAoKCkgPT4gbnVsbCksXG4gICAgKTtcbiAgfVxuXG4gIGlzSG9zdENvbmZpZ3VyZWQocmVxOiB7IGhvc3RJZDogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5ndWVzdEFQSVNlcnZpY2VcbiAgICAgIC5pc0hvc3RDb25maWd1cmVkKHJlcSlcbiAgICAgIC5waXBlKG1hcCgocmVzcDogR3Vlc3RJc0hvc3RDb25maWd1cmVkUmVzcG9uc2UpID0+IHJlc3AuaXNDb25maWd1cmVkKSk7XG4gIH1cbiAgZ2V0R3JvdXAocmVxOiB7XG4gICAgZ3JvdXBJZDogc3RyaW5nO1xuICAgIHNsdWc6IHN0cmluZztcbiAgfSk6IE9ic2VydmFibGU8R2V0R3JvdXBSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5nZXRHcm91cChyZXEpO1xuICB9XG4gIGdldFNlcnZpY2UocmVxOiB7XG4gICAgc2VydmljZUlkOiBzdHJpbmc7XG4gICAgc2x1Zzogc3RyaW5nO1xuICB9KTogT2JzZXJ2YWJsZTxHZXRTZXJ2aWNlUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5ndWVzdEFQSVNlcnZpY2UuZ2V0U2VydmljZShyZXEpO1xuICB9XG5cbiAgZ2V0U2Vzc2lvbk1lZXRpbmdJbmZvKHJlcToge1xuICAgIHNlc3Npb25NZWV0aW5nSWQ6IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gIH0pOiBPYnNlcnZhYmxlPEdldFNlc3Npb25NZWV0aW5nUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5ndWVzdEFQSVNlcnZpY2UuZ2V0U2Vzc2lvbk1lZXRpbmdJbmZvKHJlcSk7XG4gIH1cblxuICBpbnZpdGVlUmVnaXN0ZXJTZXNzaW9uTWVldGluZyhyZXE6IHtcbiAgICBtZWV0aW5nSWQ6IHN0cmluZztcbiAgICBhdHRlbmRlZTogQ29udGFjdEludGVyZmFjZTtcbiAgICBjb21tZW50OiBzdHJpbmc7XG4gICAgZm9ybUFuc3dlcnM6IEFuc3dlcnNJbnRlcmZhY2U7XG4gICAgcmVjYXB0Y2hhVG9rZW46IHN0cmluZztcbiAgfSk6IE9ic2VydmFibGU8bnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZVxuICAgICAgLmludml0ZWVSZWdpc3RlclNlc3Npb25NZWV0aW5nKHJlcSlcbiAgICAgIC5waXBlKG1hcFRvKG51bGwpKTtcbiAgfVxuXG4gIGdldFNlc3Npb25JbnZpdGVlTWVldGluZ0luZm8ocmVxOiB7XG4gICAgc2Vzc2lvbkludml0ZWVJZDogc3RyaW5nO1xuICB9KTogT2JzZXJ2YWJsZTxHZXRTZXNzaW9uSW52aXRlZU1lZXRpbmdJbmZvUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5ndWVzdEFQSVNlcnZpY2UuZ2V0U2Vzc2lvbkludml0ZWVNZWV0aW5nSW5mbyhyZXEpO1xuICB9XG5cbiAgaW52aXRlZURlcmVnaXN0ZXJTZXNzaW9uTWVldGluZyhyZXE6IHtcbiAgICBzZXNzaW9uSW52aXRlZUlkOiBzdHJpbmc7XG4gICAgY2FuY2VsbGF0aW9uUmVhc29uOiBzdHJpbmc7XG4gIH0pOiBPYnNlcnZhYmxlPG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5ndWVzdEFQSVNlcnZpY2VcbiAgICAgIC5pbnZpdGVlRGVyZWdpc3RlclNlc3Npb25NZWV0aW5nKHJlcSlcbiAgICAgIC5waXBlKG1hcFRvKG51bGwpKTtcbiAgfVxuXG4gIGdldE1lZXRpbmdDYWxlbmRhckluZm8oXG4gICAgcmVxOiBHZXRNZWV0aW5nQ2FsZW5kYXJJbmZvUmVxdWVzdCxcbiAgKTogT2JzZXJ2YWJsZTxHZXRNZWV0aW5nQ2FsZW5kYXJJbmZvUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5ndWVzdEFQSVNlcnZpY2UuZ2V0TWVldGluZ0NhbGVuZGFySW5mbyhyZXEpO1xuICB9XG5cbiAgY2hlY2tGZWF0dXJlRmxhZyhyZXE6IHtcbiAgICBmaWVsZFR5cGU6IEZlYXR1cmVGbGFnRmllbGRUeXBlO1xuICAgIGZpZWxkVmFsdWU6IHN0cmluZztcbiAgICBmZWF0dXJlRmxhZ0tleTogc3RyaW5nO1xuICB9KTogT2JzZXJ2YWJsZTxDaGVja0ZlYXR1cmVGbGFnUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5ndWVzdEFQSVNlcnZpY2UuY2hlY2tGZWF0dXJlRmxhZyhyZXEpO1xuICB9XG5cbiAgZ2V0U2VydmljZVYyKHJlcTogeyBzZXJ2aWNlSWQ6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxHZXRTZXJ2aWNlVjJSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5nZXRTZXJ2aWNlVjIocmVxKTtcbiAgfVxuXG59XG4iXX0=
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Vlc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21lZXRpbmdzX3Nkay9zcmMvbGliL2d1ZXN0L2d1ZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBT0wsc0JBQXNCLEdBaUJ2QixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFDTCxZQUFZLEVBQ1osZUFBZSxFQUVmLFdBQVcsRUFJWCxrQkFBa0IsRUFFbEIsZUFBZSxHQUNoQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQXFEeEUsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBb0IsZUFBdUM7UUFBdkMsb0JBQWUsR0FBZixlQUFlLENBQXdCO0lBQUcsQ0FBQztJQUUvRCxjQUFjLENBQUMsR0FJZDtRQUNDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUNsRCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNYLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUM5QixPQUFPLEVBQWlCLENBQUM7YUFDMUI7WUFDRCxPQUFPLGtCQUFrQixDQUFDO2dCQUN4QixXQUFXLEVBQUUsa0JBQWtCLEVBQUU7b0JBQy9CLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSTtvQkFDbEIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJO2dCQUNwQixVQUFVLEVBQUUsR0FBRyxDQUFDLFlBQVk7Z0JBQzVCLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDaEMsUUFBUSxFQUFF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LEdBQUcsQ0FBQyxDQUFDO0lBQzNELENBQUM7O3lHQXJTVSxZQUFZOzZHQUFaLFlBQVksY0FEQyxNQUFNOzJGQUNuQixZQUFZO2tCQUR4QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgQ2FsZW5kYXJJbnRlcmZhY2UsXG4gIENvbnRhY3QsXG4gIEdldEdyb3VwUmVzcG9uc2UsXG4gIEdldFNlcnZpY2VWMlJlc3BvbnNlLFxuICBHdWVzdElzSG9zdENvbmZpZ3VyZWRSZXNwb25zZSxcbiAgR2V0U2Vzc2lvbk1lZXRpbmdSZXNwb25zZSxcbiAgTWVldGluZ0d1ZXN0QXBpU2VydmljZSxcbiAgTWVldGluZ0xvY2F0aW9uVHlwZSxcbiAgVGVhbUV2ZW50TWVldGluZ1R5cGUsXG4gIFRpbWVab25lSW50ZXJmYWNlLFxuICBDb250YWN0SW50ZXJmYWNlLFxuICBBbnN3ZXJzSW50ZXJmYWNlLFxuICBHZXRTZXNzaW9uSW52aXRlZU1lZXRpbmdJbmZvUmVzcG9uc2UsXG4gIEd1ZXN0R2V0Qm9va2VkTWVldGluZ1Jlc3BvbnNlVjIsXG4gIEJvb2tpbmdTb3VyY2UsXG4gIENoZWNrRmVhdHVyZUZsYWdSZXF1ZXN0LFxuICBDaGVja0ZlYXR1cmVGbGFnUmVzcG9uc2UsXG4gIEZlYXR1cmVGbGFnRmllbGRUeXBlLFxuICBCYXRjaEJvb2tpbmdUYXJnZXRJbnRlcmZhY2UsXG4gIEJhdGNoRXZlbnRUeXBlVGFyZ2V0SW50ZXJmYWNlLFxuICBCb29rQmF0Y2hNZWV0aW5nUmVzcG9uc2UsXG4gIExpc3RHdWVzdEJvb2tlZE1lZXRpbmdzUmVzcG9uc2UsXG4gIFBob25lRmllbGRzSW50ZXJmYWNlLFxufSBmcm9tIFwiLi4vX2ludGVybmFsXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IG1hcCwgbWFwVG8gfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7XG4gIGFuc3dlcnNUb0FQSSxcbiAgQ2FsZW5kYXJGcm9tQXBpLFxuICBIb3N0LFxuICBIb3N0RnJvbUFwaSxcbiAgTWVldGluZ0Zvcm0sXG4gIE1lZXRpbmdNZXRhZGF0YSxcbiAgTWVldGluZ1R5cGUsXG4gIE1lZXRpbmdUeXBlRnJvbUFwaSxcbiAgVGltZVNwYW4sXG4gIFRpbWVTcGFuRnJvbUFwaSxcbn0gZnJvbSBcIi4uL3NoYXJlZFwiO1xuaW1wb3J0IHsgRW52aXJvbm1lbnQsIG9uUHJvZHVjdGlvbkdsb2JhbCB9IGZyb20gXCIuLi9zaGFyZWQvZW52aXJvbm1lbnRcIjtcbmltcG9ydCB7IEdldFNlcnZpY2VSZXNwb25zZSB9IGZyb20gXCIuLi9faW50ZXJuYWwvb2JqZWN0cy9tZWV0aW5nLWd1ZXN0XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9va01lZXRpbmdSZXNwb25zZSB7XG4gIG1lZXRpbmdJZDogc3RyaW5nO1xuICBob3N0SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRNZWV0aW5nQ2FsZW5kYXJJbmZvUmVxdWVzdCB7XG4gIG1lZXRpbmdJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE1lZXRpbmdDYWxlbmRhckluZm9SZXNwb25zZSB7XG4gIGdvb2dsZUNhbGVuZGFyTGluazogc3RyaW5nO1xuICBvdXRsb29rQ2FsZW5kYXJMaW5rOiBzdHJpbmc7XG4gIGxpbmtSZWFkeTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb29rU2Vzc2lvblJlc3BvbnNlIHtcbiAgbWVldGluZ0lkOiBzdHJpbmc7XG4gIGJvb2tpbmdVcmw6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb29rZWRNZWV0aW5nSW5mbyB7XG4gIHN0YXJ0OiBEYXRlO1xuICBlbmQ6IERhdGU7XG4gIHRpbWVab25lOiBUaW1lWm9uZUludGVyZmFjZTtcbiAgbWVldGluZ1R5cGVJZDogc3RyaW5nO1xuICBsb2NhdGlvbjogc3RyaW5nO1xuICBsb2NhdGlvbkd1aWRlbGluZTogc3RyaW5nO1xuICBsb2NhdGlvblR5cGU6IE1lZXRpbmdMb2NhdGlvblR5cGU7XG4gIG1lZXRpbmdUeXBlOiBUZWFtRXZlbnRNZWV0aW5nVHlwZTtcbiAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgY2FsZW5kYXJJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEd1ZXN0U2VydmljZUludGVyZmFjZSB7XG4gIGdldEJvb2tlZE1lZXRpbmdJbmZvKFxuICAgIG1lZXRpbmdJZDogc3RyaW5nLFxuICAgIGF1dGhUb2tlbjogc3RyaW5nLFxuICApOiBPYnNlcnZhYmxlPEJvb2tlZE1lZXRpbmdJbmZvPjtcblxuICBsaXN0TWVldGluZ1R5cGVzKHJlcToge1xuICAgIGhvc3RJZDogc3RyaW5nO1xuICAgIHRpbWVab25lPzogVGltZVpvbmVJbnRlcmZhY2U7XG4gICAgbWV0YWRhdGE/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICBzbHVnPzogc3RyaW5nO1xuICB9KTogT2JzZXJ2YWJsZTxNZWV0aW5nVHlwZVtdPjtcblxuICBpc0hvc3RDb25maWd1cmVkKHJlcTogeyBob3N0SWQ6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiBcInJvb3RcIiB9KVxuZXhwb3J0IGNsYXNzIEd1ZXN0U2VydmljZSBpbXBsZW1lbnRzIEd1ZXN0U2VydmljZUludGVyZmFjZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZ3Vlc3RBUElTZXJ2aWNlOiBNZWV0aW5nR3Vlc3RBcGlTZXJ2aWNlKSB7fVxuXG4gIGdldE1lZXRpbmdUeXBlKHJlcToge1xuICAgIGNhbGVuZGFyU2x1Zzogc3RyaW5nO1xuICAgIG1lZXRpbmdUeXBlU2x1Zzogc3RyaW5nO1xuICAgIG1ldGFkYXRhPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG4gIH0pOiBPYnNlcnZhYmxlPE1lZXRpbmdUeXBlPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlLmdldE1lZXRpbmdUeXBlKHJlcSkucGlwZShcbiAgICAgIG1hcCgocmVzcCkgPT4ge1xuICAgICAgICBpZiAoIXJlc3AgfHwgIXJlc3AubWVldGluZ1R5cGUpIHtcbiAgICAgICAgICByZXR1cm4ge30gYXMgTWVldGluZ1R5cGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE1lZXRpbmdUeXBlRnJvbUFwaSh7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IG9uUHJvZHVjdGlvbkdsb2JhbCgpXG4gICAgICAgICAgICA/IEVudmlyb25tZW50LlBST0RcbiAgICAgICAgICAgIDogRW52aXJvbm1lbnQuREVNTyxcbiAgICAgICAgICBjYWxlbmRhcklkOiByZXEuY2FsZW5kYXJTbHVnLFxuICAgICAgICAgIG1lZXRpbmdUeXBlQXBpOiByZXNwLm1lZXRpbmdUeXBlLFxuICAgICAgICAgIG1ldGFkYXRhOiByZXEubWV0YWRhdGEsXG4gICAgICAgICAgY2FsZW5kYXJTbHVnOiByZXEuY2FsZW5kYXJTbHVnLFxuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBsaXN0TWVldGluZ1R5cGVzKHJlcToge1xuICAgIGhvc3RJZDogc3RyaW5nO1xuICAgIG1ldGFkYXRhPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgLy8gZGVwcmVjYXRlZDogdW51c2VkIGZpZWxkLlxuICAgIHRpbWVab25lPzogVGltZVpvbmVJbnRlcmZhY2U7XG4gICAgY2FsZW5kYXJTbHVnPzogc3RyaW5nO1xuICB9KTogT2JzZXJ2YWJsZTxNZWV0aW5nVHlwZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlLmxpc3RNZWV0aW5nVHlwZXMocmVxKS5waXBlKFxuICAgICAgbWFwKChyZXNwKSA9PiB7XG4gICAgICAgIGlmICghcmVzcCB8fCAhcmVzcC5tZWV0aW5nVHlwZXMpIHtcbiAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3AubWVldGluZ1R5cGVzLm1hcCgobXQpID0+IHtcbiAgICAgICAgICByZXR1cm4gTWVldGluZ1R5cGVGcm9tQXBpKHtcbiAgICAgICAgICAgIGVudmlyb25tZW50OiBvblByb2R1Y3Rpb25HbG9iYWwoKVxuICAgICAgICAgICAgICA/IEVudmlyb25tZW50LlBST0RcbiAgICAgICAgICAgICAgOiBFbnZpcm9ubWVudC5ERU1PLFxuICAgICAgICAgICAgY2FsZW5kYXJJZDogcmVxLmhvc3RJZCxcbiAgICAgICAgICAgIG1lZXRpbmdUeXBlQXBpOiBtdCxcbiAgICAgICAgICAgIG1ldGFkYXRhOiByZXEubWV0YWRhdGEsXG4gICAgICAgICAgICBjYWxlbmRhclNsdWc6IHJlcS5jYWxlbmRhclNsdWcsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGxpc3RBdmFpbGFibGVUaW1lU2xvdHMocmVxOiB7XG4gICAgaG9zdElkOiBzdHJpbmc7XG4gICAgbWVldGluZ1R5cGVJZDogc3RyaW5nO1xuICAgIHRpbWVTcGFuOiBUaW1lU3BhbjtcbiAgICB0aW1lWm9uZTogVGltZVpvbmVJbnRlcmZhY2U7XG4gICAgdXNlcklkPzogc3RyaW5nO1xuICB9KTogT2JzZXJ2YWJsZTxUaW1lU3BhbltdPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlXG4gICAgICAubGlzdEF2YWlsYWJsZVRpbWVTbG90cyhyZXEpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwKSA9PlxuICAgICAgICAgIHJlc3AudGltZVNsb3RzID8gcmVzcC50aW1lU2xvdHMubWFwKCh0cykgPT4gVGltZVNwYW5Gcm9tQXBpKHRzKSkgOiBbXSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gIH1cblxuICBib29rTWVldGluZyhyZXE6IHtcbiAgICBob3N0SWQ6IHN0cmluZztcbiAgICBtZWV0aW5nVHlwZUlkOiBzdHJpbmc7XG4gICAgc3RhcnQ6IERhdGU7XG4gICAgY29tbWVudDogc3RyaW5nO1xuICAgIG1ldGFkYXRhPzogTWVldGluZ01ldGFkYXRhO1xuICAgIGF0dGVuZGVlczogKE9taXQ8XG4gICAgICBDb250YWN0LFxuICAgICAgXCJmcm9tUHJvdG9cIiB8IFwidG9BcGlKc29uXCIgfCBcImNvbnN0cnVjdG9yXCIgfCBcInRpbWVab25lXCJcbiAgICA+ICYgeyB0aW1lWm9uZTogVGltZVpvbmVJbnRlcmZhY2UgfSlbXTtcbiAgICBmb3JtQW5zd2Vycz86IE1lZXRpbmdGb3JtO1xuICAgIHJlY2FwdGNoYVRva2VuOiBzdHJpbmc7XG4gICAgbG9jYXRpb24/OiBzdHJpbmc7XG4gICAgdXNlcklkPzogc3RyaW5nO1xuICAgIGJvb2tpbmdTb3VyY2U/OiBCb29raW5nU291cmNlO1xuICAgIGhhc1Ntc0NvbnNlbnQ/OiBib29sZWFuO1xuICB9KTogT2JzZXJ2YWJsZTxCb29rTWVldGluZ1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlLmJvb2tNZWV0aW5nKHtcbiAgICAgIC4uLnJlcSxcbiAgICAgIGF0dGVuZGVlczogcmVxLmF0dGVuZGVlcyxcbiAgICAgIGZvcm1BbnN3ZXJzOiBhbnN3ZXJzVG9BUEkocmVxLmZvcm1BbnN3ZXJzKSxcbiAgICB9KTtcbiAgfVxuXG4gIGNhbmNlbE1lZXRpbmcocmVxOiB7XG4gICAgYXV0aFRva2VuOiBzdHJpbmc7XG4gICAgbWVldGluZ0lkOiBzdHJpbmc7XG4gICAgY2FuY2VsbGF0aW9uUmVhc29uOiBzdHJpbmc7XG4gIH0pOiBPYnNlcnZhYmxlPG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5ndWVzdEFQSVNlcnZpY2UuY2FuY2VsTWVldGluZyhyZXEpLnBpcGUobWFwVG8obnVsbCkpO1xuICB9XG5cbiAgcmVzY2hlZHVsZU1lZXRpbmcocmVxOiB7XG4gICAgYXV0aFRva2VuOiBzdHJpbmc7XG4gICAgbWVldGluZ0lkOiBzdHJpbmc7XG4gICAgc3RhcnQ6IERhdGU7XG4gICAgdGltZVpvbmU/OiBUaW1lWm9uZUludGVyZmFjZTtcbiAgICBsb2NhdGlvbj86IHN0cmluZztcbiAgfSk6IE9ic2VydmFibGU8bnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5yZXNjaGVkdWxlTWVldGluZyhyZXEpLnBpcGUobWFwVG8obnVsbCkpO1xuICB9XG5cbiAgLy8gZ2V0SG9zdCByZXR1cm5zIGFuIGluZGl2aWR1YWwgaG9zdCBieSB0aGVpciBob3N0SWRcbiAgZ2V0SG9zdChyZXE6IHsgaG9zdElkOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8SG9zdD4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZVxuICAgICAgLmdldEhvc3QocmVxKVxuICAgICAgLnBpcGUobWFwKChyZXNwKSA9PiBIb3N0RnJvbUFwaShyZXNwLmhvc3QpKSk7XG4gIH1cblxuICAvLyBnZXRDYWxlbmRhciByZXR1cm5zIGEgQ2FsZW5kYXIsIHdoaWNoIG1heSByZXByZXNlbnQgYW4gaW5kaXZpZHVhbCBob3N0IE9SIGEgZ3JvdXBpbmcgb2YgaG9zdHMgKEkuZS4sIGEgdGVhbSlcbiAgZ2V0Q2FsZW5kYXIocmVxOiB7IGNhbGVuZGFySWQ6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxDYWxlbmRhckludGVyZmFjZT4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZVxuICAgICAgLmdldENhbGVuZGFyKHJlcSlcbiAgICAgIC5waXBlKG1hcCgocmVzcCkgPT4gQ2FsZW5kYXJGcm9tQXBpKHJlc3AuY2FsZW5kYXIpKSk7XG4gIH1cblxuICBnZXRCb29rZWRNZWV0aW5nSW5mbyhcbiAgICBtZWV0aW5nSWQ6IHN0cmluZyxcbiAgICBhdXRoVG9rZW46IHN0cmluZyxcbiAgKTogT2JzZXJ2YWJsZTxCb29rZWRNZWV0aW5nSW5mbz4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZVxuICAgICAgLmdldEd1ZXN0Qm9va2VkTWVldGluZyh7XG4gICAgICAgIG1lZXRpbmdJZDogbWVldGluZ0lkLFxuICAgICAgICBhdXRoVG9rZW46IGF1dGhUb2tlbixcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChyZXNwKSA9PlxuICAgICAgICAgICAgPEJvb2tlZE1lZXRpbmdJbmZvPntcbiAgICAgICAgICAgICAgc3RhcnQ6IHJlc3Auc3RhcnRUaW1lLFxuICAgICAgICAgICAgICBlbmQ6IHJlc3AuZW5kVGltZSxcbiAgICAgICAgICAgICAgdGltZVpvbmU6IHJlc3AudGltZVpvbmUsXG4gICAgICAgICAgICAgIG1lZXRpbmdUeXBlSWQ6IHJlc3AubWVldGluZ1R5cGVJZCxcbiAgICAgICAgICAgICAgbG9jYXRpb246IHJlc3AubG9jYXRpb24sXG4gICAgICAgICAgICAgIGxvY2F0aW9uR3VpZGVsaW5lOiByZXNwLmxvY2F0aW9uR3VpZGVsaW5lLFxuICAgICAgICAgICAgICBsb2NhdGlvblR5cGU6IHJlc3AubG9jYXRpb25UeXBlLFxuICAgICAgICAgICAgICBtZWV0aW5nVHlwZTogcmVzcC5tZWV0aW5nVHlwZSxcbiAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHJlc3AuZGlzcGxheU5hbWUsXG4gICAgICAgICAgICAgIGNhbGVuZGFySWQ6IHJlc3AuY2FsZW5kYXJJZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICksXG4gICAgICApO1xuICB9XG5cbiAgZ2V0R3Vlc3RCb29rZWRNZWV0aW5nVjIocmVxOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgfSk6IE9ic2VydmFibGU8R3Vlc3RHZXRCb29rZWRNZWV0aW5nUmVzcG9uc2VWMj4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5nZXRHdWVzdEJvb2tlZE1lZXRpbmdWMihyZXEpO1xuICB9XG5cbiAgY2FuY2VsQmF0Y2hNZWV0aW5nKHJlcToge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgY2FuY2VsbGF0aW9uUmVhc29uPzogc3RyaW5nO1xuICB9KTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlLmNhbmNlbEJhdGNoTWVldGluZyhyZXEpLnBpcGUobWFwVG8obnVsbCkpO1xuICB9XG5cbiAgaXNIb3N0Q29uZmlndXJlZChyZXE6IHsgaG9zdElkOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZVxuICAgICAgLmlzSG9zdENvbmZpZ3VyZWQocmVxKVxuICAgICAgLnBpcGUobWFwKChyZXNwOiBHdWVzdElzSG9zdENvbmZpZ3VyZWRSZXNwb25zZSkgPT4gcmVzcC5pc0NvbmZpZ3VyZWQpKTtcbiAgfVxuICBnZXRHcm91cChyZXE6IHtcbiAgICBncm91cElkOiBzdHJpbmc7XG4gICAgc2x1Zzogc3RyaW5nO1xuICB9KTogT2JzZXJ2YWJsZTxHZXRHcm91cFJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlLmdldEdyb3VwKHJlcSk7XG4gIH1cbiAgZ2V0U2VydmljZShyZXE6IHtcbiAgICBzZXJ2aWNlSWQ6IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gIH0pOiBPYnNlcnZhYmxlPEdldFNlcnZpY2VSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5nZXRTZXJ2aWNlKHJlcSk7XG4gIH1cblxuICBnZXRTZXNzaW9uTWVldGluZ0luZm8ocmVxOiB7XG4gICAgc2Vzc2lvbk1lZXRpbmdJZDogc3RyaW5nO1xuICAgIHNsdWc6IHN0cmluZztcbiAgfSk6IE9ic2VydmFibGU8R2V0U2Vzc2lvbk1lZXRpbmdSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5nZXRTZXNzaW9uTWVldGluZ0luZm8ocmVxKTtcbiAgfVxuXG4gIGludml0ZWVSZWdpc3RlclNlc3Npb25NZWV0aW5nKHJlcToge1xuICAgIG1lZXRpbmdJZDogc3RyaW5nO1xuICAgIGF0dGVuZGVlOiBDb250YWN0SW50ZXJmYWNlO1xuICAgIGNvbW1lbnQ6IHN0cmluZztcbiAgICBmb3JtQW5zd2VyczogQW5zd2Vyc0ludGVyZmFjZTtcbiAgICByZWNhcHRjaGFUb2tlbjogc3RyaW5nO1xuICB9KTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlXG4gICAgICAuaW52aXRlZVJlZ2lzdGVyU2Vzc2lvbk1lZXRpbmcocmVxKVxuICAgICAgLnBpcGUobWFwVG8obnVsbCkpO1xuICB9XG5cbiAgZ2V0U2Vzc2lvbkludml0ZWVNZWV0aW5nSW5mbyhyZXE6IHtcbiAgICBzZXNzaW9uSW52aXRlZUlkOiBzdHJpbmc7XG4gIH0pOiBPYnNlcnZhYmxlPEdldFNlc3Npb25JbnZpdGVlTWVldGluZ0luZm9SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5nZXRTZXNzaW9uSW52aXRlZU1lZXRpbmdJbmZvKHJlcSk7XG4gIH1cblxuICBpbnZpdGVlRGVyZWdpc3RlclNlc3Npb25NZWV0aW5nKHJlcToge1xuICAgIHNlc3Npb25JbnZpdGVlSWQ6IHN0cmluZztcbiAgICBjYW5jZWxsYXRpb25SZWFzb246IHN0cmluZztcbiAgfSk6IE9ic2VydmFibGU8bnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZVxuICAgICAgLmludml0ZWVEZXJlZ2lzdGVyU2Vzc2lvbk1lZXRpbmcocmVxKVxuICAgICAgLnBpcGUobWFwVG8obnVsbCkpO1xuICB9XG5cbiAgZ2V0TWVldGluZ0NhbGVuZGFySW5mbyhcbiAgICByZXE6IEdldE1lZXRpbmdDYWxlbmRhckluZm9SZXF1ZXN0LFxuICApOiBPYnNlcnZhYmxlPEdldE1lZXRpbmdDYWxlbmRhckluZm9SZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5nZXRNZWV0aW5nQ2FsZW5kYXJJbmZvKHJlcSk7XG4gIH1cblxuICBjaGVja0ZlYXR1cmVGbGFnKHJlcToge1xuICAgIGZpZWxkVHlwZTogRmVhdHVyZUZsYWdGaWVsZFR5cGU7XG4gICAgZmllbGRWYWx1ZTogc3RyaW5nO1xuICAgIGZlYXR1cmVGbGFnS2V5OiBzdHJpbmc7XG4gIH0pOiBPYnNlcnZhYmxlPENoZWNrRmVhdHVyZUZsYWdSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5jaGVja0ZlYXR1cmVGbGFnKHJlcSk7XG4gIH1cblxuICBnZXRTZXJ2aWNlVjIocmVxOiB7IHNlcnZpY2VJZDogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPEdldFNlcnZpY2VWMlJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlLmdldFNlcnZpY2VWMihyZXEpO1xuICB9XG5cbiAgbGlzdEJhdGNoQXZhaWxhYmxlVGltZVNsb3RzKHJlcToge1xuICAgIHRhcmdldHM6IEJhdGNoRXZlbnRUeXBlVGFyZ2V0SW50ZXJmYWNlW107XG4gICAgdGltZVNwYW46IFRpbWVTcGFuO1xuICAgIHRpbWVab25lOiBUaW1lWm9uZUludGVyZmFjZTtcbiAgfSk6IE9ic2VydmFibGU8VGltZVNwYW5bXT4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5saXN0QmF0Y2hBdmFpbGFibGVUaW1lU2xvdHMocmVxKS5waXBlKFxuICAgICAgbWFwKChyZXNwKSA9PiB7XG4gICAgICAgIGlmIChyZXNwLnRpbWVTbG90cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3AudGltZVNsb3RzLm1hcCgodHMpID0+IFRpbWVTcGFuRnJvbUFwaSh0cykpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXNwLmlzb1RpbWVTbG90cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3AuaXNvVGltZVNsb3RzLm1hcCgoaXNvKSA9PiAoe1xuICAgICAgICAgICAgc3RhcnQ6IG5ldyBEYXRlKGlzby5zdGFydCksXG4gICAgICAgICAgICBlbmQ6IG5ldyBEYXRlKGlzby5lbmQpLFxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW107XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgYm9va0JhdGNoTWVldGluZyhyZXE6IHtcbiAgICB0YXJnZXRzOiBCYXRjaEJvb2tpbmdUYXJnZXRJbnRlcmZhY2VbXTtcbiAgICBzdGFydDogRGF0ZTtcbiAgICBhdHRlbmRlZXM/OiBDb250YWN0SW50ZXJmYWNlW107XG4gICAgY29tbWVudD86IHN0cmluZztcbiAgICBtZXRhZGF0YT86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgZm9ybUFuc3dlcnM/OiBNZWV0aW5nRm9ybTtcbiAgICByZWNhcHRjaGFUb2tlbjogc3RyaW5nO1xuICAgIGxvY2F0aW9uPzogc3RyaW5nO1xuICAgIGJvb2tpbmdTb3VyY2U/OiBCb29raW5nU291cmNlO1xuICAgIGJvb2tpbmdPcmlnaW5JZD86IHN0cmluZztcbiAgfSk6IE9ic2VydmFibGU8Qm9va0JhdGNoTWVldGluZ1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlLmJvb2tCYXRjaE1lZXRpbmcoe1xuICAgICAgLi4ucmVxLFxuICAgICAgZm9ybUFuc3dlcnM6IGFuc3dlcnNUb0FQSShyZXEuZm9ybUFuc3dlcnMpLFxuICAgIH0pO1xuICB9XG5cbiAgcmVzY2hlZHVsZUJhdGNoTWVldGluZyhyZXE6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHN0YXJ0OiBEYXRlO1xuICAgIHRpbWVab25lPzogVGltZVpvbmVJbnRlcmZhY2U7XG4gICAgbG9jYXRpb24/OiBzdHJpbmc7XG4gIH0pOiBPYnNlcnZhYmxlPG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5ndWVzdEFQSVNlcnZpY2UucmVzY2hlZHVsZUJhdGNoTWVldGluZyhyZXEpLnBpcGUobWFwVG8obnVsbCkpO1xuICB9XG5cbiAgbGlzdEd1ZXN0Qm9va2VkTWVldGluZ3MocmVxOiB7XG4gICAgcGhvbmVOdW1iZXI/OiBQaG9uZUZpZWxkc0ludGVyZmFjZTtcbiAgICBlbWFpbD86IHN0cmluZztcbiAgICBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gICAgdGltZVNwYW4/OiBUaW1lU3BhbjtcbiAgICB0aW1lWm9uZT86IFRpbWVab25lSW50ZXJmYWNlO1xuICAgIHVzZUlzb0RhdGVzPzogYm9vbGVhbjtcbiAgfSk6IE9ic2VydmFibGU8TGlzdEd1ZXN0Qm9va2VkTWVldGluZ3NSZXNwb25zZT4ge1xuICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5saXN0R3Vlc3RCb29rZWRNZWV0aW5ncyhyZXEpO1xuICB9XG59XG4iXX0=
|
package/esm2020/lib/index.mjs
CHANGED
|
@@ -3,6 +3,6 @@ export { GuestService } from './guest/guest.service';
|
|
|
3
3
|
export { HostService } from './host/host.service';
|
|
4
4
|
export { addMetadataToBookingLink } from './host/url';
|
|
5
5
|
export { MeetingSource, MeetingSourceStatus, DayOfWeek, FormFieldType, CalendarType, MeetingLocation, MeetingLocationType, CalendarSource, RelativeTimeUnit, DateRangeType, TeamEventMeetingType, OnBoardingState, RegistrationCutOffUnit, NotificationType, BookingSource, FeatureFlagFieldType } from './_internal/enums/index';
|
|
6
|
-
export { MeetingSourceQuery, MeetingSourceInfo, MeetingSourceListResponse, Contact, WeekdayAvailability, CreateCalendarRequest, CreateCalendarResponse, CheckFeatureFlagRequest, CheckFeatureFlagResponse, } from './_internal/objects/index';
|
|
6
|
+
export { MeetingSourceQuery, MeetingSourceInfo, MeetingSourceListResponse, Contact, WeekdayAvailability, CreateCalendarRequest, CreateCalendarResponse, CheckFeatureFlagRequest, CheckFeatureFlagResponse, GuestGetBookedMeetingResponseV2, GetServiceV2Response, BookBatchMeetingResponse, ListBatchAvailableTimeSlotsResponse, ListGuestBookedMeetingsResponse, MeetingDetail, ServiceEventType, ServiceGroup, } from './_internal/objects/index';
|
|
7
7
|
export { PagedResponse, WellKnownMeetingMetadataKeys, WellKnownFormFieldIds, meetingSchedulerIdToMetadataKey, durationFromString, durationToString, durationStringToMinutes, newBusinessCenterApplicationContextProperties, newSalesCenterApplicationContextProperties, newPartnerCenterApplicationContextProperties, KnownCalendarApplicationContextKeys, KnownCalendarExternalIntegrations, MeetingSourceOrigin, } from './shared/index';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tZWV0aW5nc19zZGsvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsZUFBZSxFQUF1QixNQUFNLG9CQUFvQixDQUFDO0FBRXRGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFHLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRWpVLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLHlCQUF5QixFQUN6QixPQUFPLEVBQ1AsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QiwrQkFBK0IsRUFDL0Isb0JBQW9CLEVBQ3BCLHdCQUF3QixFQUN4QixtQ0FBbUMsRUFDbkMsK0JBQStCLEVBQy9CLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsWUFBWSxHQUNmLE1BQU0sMkJBQTJCLENBQUE7QUFDbEMsT0FBTyxFQUdILGFBQWEsRUFjYiw0QkFBNEIsRUFDNUIscUJBQXFCLEVBQ3JCLCtCQUErQixFQUMvQixrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2Qiw2Q0FBNkMsRUFDN0MsMENBQTBDLEVBQzFDLDRDQUE0QyxFQUs1QyxtQ0FBbUMsRUFDbkMsaUNBQWlDLEVBS2pDLG1CQUFtQixHQUV0QixNQUFNLGdCQUFnQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtNZWV0aW5nc1NESywgTWVldGluZ3NTZXJ2aWNlLCBTdGFydE1lZXRpbmdSZXNwb25zZX0gZnJvbSAnLi9tZWV0aW5ncy5zZXJ2aWNlJztcbmV4cG9ydCB7Qm9va2VkTWVldGluZ0luZm8sIEJvb2tNZWV0aW5nUmVzcG9uc2UsIEd1ZXN0U2VydmljZUludGVyZmFjZX0gZnJvbSAnLi9ndWVzdCc7XG5leHBvcnQge0d1ZXN0U2VydmljZX0gZnJvbSAnLi9ndWVzdC9ndWVzdC5zZXJ2aWNlJztcbmV4cG9ydCB7SG9zdFNlcnZpY2V9IGZyb20gJy4vaG9zdC9ob3N0LnNlcnZpY2UnO1xuZXhwb3J0IHthZGRNZXRhZGF0YVRvQm9va2luZ0xpbmt9IGZyb20gJy4vaG9zdC91cmwnO1xuZXhwb3J0IHtNZWV0aW5nU291cmNlLCBNZWV0aW5nU291cmNlU3RhdHVzLCBEYXlPZldlZWssIEZvcm1GaWVsZFR5cGUsIENhbGVuZGFyVHlwZSwgTWVldGluZ0xvY2F0aW9uLCAgTWVldGluZ0xvY2F0aW9uVHlwZSwgQ2FsZW5kYXJTb3VyY2UsIFJlbGF0aXZlVGltZVVuaXQsIERhdGVSYW5nZVR5cGUsIFRlYW1FdmVudE1lZXRpbmdUeXBlLCBPbkJvYXJkaW5nU3RhdGUsIFJlZ2lzdHJhdGlvbkN1dE9mZlVuaXQsIE5vdGlmaWNhdGlvblR5cGUsIEJvb2tpbmdTb3VyY2UsIEZlYXR1cmVGbGFnRmllbGRUeXBlfSBmcm9tICcuL19pbnRlcm5hbC9lbnVtcy9pbmRleCc7XG5cbmV4cG9ydCB7XG4gICAgTWVldGluZ1NvdXJjZVF1ZXJ5LFxuICAgIE1lZXRpbmdTb3VyY2VJbmZvLFxuICAgIE1lZXRpbmdTb3VyY2VMaXN0UmVzcG9uc2UsXG4gICAgQ29udGFjdCxcbiAgICBXZWVrZGF5QXZhaWxhYmlsaXR5LFxuICAgIENyZWF0ZUNhbGVuZGFyUmVxdWVzdCxcbiAgICBDcmVhdGVDYWxlbmRhclJlc3BvbnNlLFxuICAgIENoZWNrRmVhdHVyZUZsYWdSZXF1ZXN0LFxuICAgIENoZWNrRmVhdHVyZUZsYWdSZXNwb25zZSxcbiAgICBHdWVzdEdldEJvb2tlZE1lZXRpbmdSZXNwb25zZVYyLFxuICAgIEdldFNlcnZpY2VWMlJlc3BvbnNlLFxuICAgIEJvb2tCYXRjaE1lZXRpbmdSZXNwb25zZSxcbiAgICBMaXN0QmF0Y2hBdmFpbGFibGVUaW1lU2xvdHNSZXNwb25zZSxcbiAgICBMaXN0R3Vlc3RCb29rZWRNZWV0aW5nc1Jlc3BvbnNlLFxuICAgIE1lZXRpbmdEZXRhaWwsXG4gICAgU2VydmljZUV2ZW50VHlwZSxcbiAgICBTZXJ2aWNlR3JvdXAsXG59IGZyb20gJy4vX2ludGVybmFsL29iamVjdHMvaW5kZXgnXG5leHBvcnQge1xuICAgIEhvc3QsXG4gICAgVGltZVNwYW4sXG4gICAgUGFnZWRSZXNwb25zZSxcbiAgICBNZWV0aW5nLFxuICAgIE1lZXRpbmdUeXBlLFxuICAgIEF0dGVuZGVlLFxuICAgIEF2YWlsYWJpbGl0eVJ1bGUsXG4gICAgQ2FsZW5kYXIsXG4gICAgSG9zdFVybE1hcCxcbiAgICBQcmVmZXJlbmNlcyxcbiAgICBEdXJhdGlvbixcbiAgICBNZWV0aW5nVHlwZUZvcm0sXG4gICAgTWVldGluZ1R5cGVGb3JtRmllbGQsXG4gICAgTWVldGluZ0Zvcm0sXG4gICAgTWVldGluZ0Zvcm1BbnN3ZXIsXG4gICAgTWVldGluZ01ldGFkYXRhLFxuICAgIFdlbGxLbm93bk1lZXRpbmdNZXRhZGF0YUtleXMsXG4gICAgV2VsbEtub3duRm9ybUZpZWxkSWRzLFxuICAgIG1lZXRpbmdTY2hlZHVsZXJJZFRvTWV0YWRhdGFLZXksXG4gICAgZHVyYXRpb25Gcm9tU3RyaW5nLFxuICAgIGR1cmF0aW9uVG9TdHJpbmcsXG4gICAgZHVyYXRpb25TdHJpbmdUb01pbnV0ZXMsXG4gICAgbmV3QnVzaW5lc3NDZW50ZXJBcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzLFxuICAgIG5ld1NhbGVzQ2VudGVyQXBwbGljYXRpb25Db250ZXh0UHJvcGVydGllcyxcbiAgICBuZXdQYXJ0bmVyQ2VudGVyQXBwbGljYXRpb25Db250ZXh0UHJvcGVydGllcyxcbiAgICBBcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzU2V0LFxuICAgIEJ1c2luZXNzQ2VudGVyQXBwbGljYXRpb25Db250ZXh0UHJvcGVydGllcyxcbiAgICBTYWxlc0NlbnRlckFwcGxpY2F0aW9uQ29udGV4dFByb3BlcnRpZXMsXG4gICAgUGFydG5lckNlbnRlckFwcGxpY2F0aW9uQ29udGV4dFByb3BlcnRpZXMsXG4gICAgS25vd25DYWxlbmRhckFwcGxpY2F0aW9uQ29udGV4dEtleXMsXG4gICAgS25vd25DYWxlbmRhckV4dGVybmFsSW50ZWdyYXRpb25zLFxuICAgIEhvc3RVc2VyLFxuICAgIEdyb3VwLFxuICAgIFNlcnZpY2UsXG4gICAgRXZlbnRHcm91cEFuZFNlcnZpY2VBc3NvY2lhdGlvbnMsXG4gICAgTWVldGluZ1NvdXJjZU9yaWdpbixcbiAgICBFbnRpdHlBc3NvY2lhdGlvbnMsXG59IGZyb20gJy4vc2hhcmVkL2luZGV4J1xuZXhwb3J0IHtcbiAgICBUaW1lUmFuZ2VJbnRlcmZhY2UgYXMgVGltZVJhbmdlLFxuICAgIFRpbWVPZkRheUludGVyZmFjZSBhcyBUaW1lT2ZEYXksXG4gICAgVGltZVpvbmVJbnRlcmZhY2UgYXMgVGltZVpvbmUsXG4gICAgTGlzdEJvb2tlZE1lZXRpbmdzUmVxdWVzdEZpbHRlcnNJbnRlcmZhY2UgYXMgTGlzdEJvb2tlZE1lZXRpbmdzUmVxdWVzdEZpbHRlcnMsXG4gICAgTGlzdEF2YWlsYWJpbGl0eVJlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlIGFzIExpc3RBdmFpbGFiaWxpdHlSZXF1ZXN0RmlsdGVycyxcbiAgICBQYWdlZFJlcXVlc3RPcHRpb25zSW50ZXJmYWNlIGFzIFBhZ2VkUmVxdWVzdE9wdGlvbnMsXG4gICAgRGF0ZVJhbmdlSW50ZXJmYWNlIGFzIERhdGVSYW5nZSxcbiAgICBDcmVhdGVDYWxlbmRhclJlcXVlc3RJbnRlcmZhY2UsXG4gICAgQ3JlYXRlQ2FsZW5kYXJSZXNwb25zZUludGVyZmFjZSxcbiAgICBVcGRhdGVDYWxlbmRhclJlcXVlc3RJbnRlcmZhY2UsXG4gICAgQXR0YWNobWVudEludGVyZmFjZSxcbiAgICBHb29nbGVNZWV0TWVldGluZ0F0dGVuZGVlSW50ZXJmYWNlLFxuICAgIElzQ2FsZW5kYXJDb25maWd1cmVkUmVxdWVzdEludGVyZmFjZSxcbiAgICBTZW5kTWVldGluZ1JlcXVlc3RFbWFpbFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgRXZlbnRUeXBlRGF0ZVJhbmdlSW50ZXJmYWNlLFxuICAgIERhdGVSYW5nZUludGVyZmFjZSxcbiAgICBSZWxhdGl2ZURhdGVSYW5nZUludGVyZmFjZSxcbiAgICBDaGVja0ZlYXR1cmVGbGFnUmVxdWVzdEludGVyZmFjZSxcbiAgICBDaGVja0ZlYXR1cmVGbGFnUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgQ2hlY2tFdmVudFR5cGVTbHVnRXhpc3RSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIENoZWNrRXZlbnRUeXBlU2x1Z0V4aXN0UmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgSG9zdEJvb2tNZWV0aW5nUmVxdWVzdEludGVyZmFjZSxcbiAgICBNZWV0aW5nSW50ZXJmYWNlLFxuICAgIFBob25lRmllbGRzSW50ZXJmYWNlLFxuICAgIEF2YWlsYWJpbGl0eVJ1bGVMaXN0SW50ZXJmYWNlIGFzIEF2YWlsYWJpbGl0eVJ1bGVMaXN0LFxuICAgIEV2ZW50VHlwZVN1bW1hcnlJbnRlcmZhY2UsXG4gICAgTGlzdEV2ZW50VHlwZXNGb3JNdWx0aXBsZUNhbGVuZGFyc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgIEVtYWlsc1RvRGVsZXRlSW50ZXJmYWNlLFxuICAgIEdldEdyb3VwUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgR2V0U2VydmljZVJlc3BvbnNlSW50ZXJmYWNlLFxuICAgIElzSG9zdENvbmZpZ3VyZWRSZXNwb25zZUludGVyZmFjZSxcbiAgICBMaXN0QXR0ZW5kZWVzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgUmVzY2hlZHVsZU1lZXRpbmdSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIFNlc3Npb25BdHRlbmRlZXNJbnRlcmZhY2UsXG4gICAgR3Vlc3RHZXRCb29rZWRNZWV0aW5nUmVzcG9uc2VWMkludGVyZmFjZSxcbiAgICBNZWV0aW5nRGV0YWlsSW50ZXJmYWNlLFxuICAgIFNlcnZpY2VFdmVudFR5cGVJbnRlcmZhY2UsXG4gICAgU2VydmljZUdyb3VwSW50ZXJmYWNlLFxuICAgIEhvc3RVc2VySW50ZXJmYWNlLFxuICAgIEJhdGNoQm9va2luZ1RhcmdldEludGVyZmFjZSxcbiAgICBCYXRjaEV2ZW50VHlwZVRhcmdldEludGVyZmFjZSxcbn0gZnJvbSAnLi9faW50ZXJuYWwvaW50ZXJmYWNlcy9pbmRleCciXX0=
|