@vendasta/meetings 1.7.5 → 1.7.6
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/index.mjs +1 -1
- 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/google-meet.mjs +1 -1
- package/esm2020/lib/_internal/objects/groups-and-services.mjs +1 -1
- package/esm2020/lib/_internal/objects/index.mjs +2 -2
- 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-source.mjs +1 -1
- 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 +38 -8
- package/fesm2015/vendasta-meetings.mjs.map +1 -1
- package/fesm2020/vendasta-meetings.mjs +40 -8
- package/fesm2020/vendasta-meetings.mjs.map +1 -1
- package/lib/_internal/interfaces/index.d.ts +1 -1
- 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/google-meet.d.ts +1 -1
- package/lib/_internal/objects/groups-and-services.d.ts +1 -1
- package/lib/_internal/objects/index.d.ts +1 -1
- 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-source.d.ts +1 -1
- 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
|
@@ -647,4 +647,4 @@ export class GoogleMeetMeetingReminders {
|
|
|
647
647
|
return toReturn;
|
|
648
648
|
}
|
|
649
649
|
}
|
|
650
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1lZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tZWV0aW5nc19zZGsvc3JjL2xpYi9faW50ZXJuYWwvb2JqZWN0cy9nb29nbGUtbWVldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0lBUWpDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLHdCQUF3QixFQUFFLENBQUM7UUFDdkMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFHLDRCQUE0QixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUFDO1FBQ3hILElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUcsaUNBQWlDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUFDO1FBQzlHLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7U0FBQztRQUMvRixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZLE1BQTRDO1FBQ3BELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFD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LENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQUM7UUFDOUYsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUE4QztRQUN0RCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxTQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQUM7UUFDckwsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUN2RixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCAqIGFzIGkgZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW51bVN0cmluZ1RvVmFsdWU8RT4oZW51bVJlZjogYW55LCB2YWx1ZTogc3RyaW5nKTogRSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBlbnVtUmVmW3ZhbHVlXTtcbn1cblxuZXhwb3J0IGNsYXNzIEdvb2dsZU1lZXRDb25mZXJlbmNlRGF0YSBpbXBsZW1lbnRzIGkuR29vZ2xlTWVldENvbmZlcmVuY2VEYXRhSW50ZXJmYWNlIHtcbiAgICBjb25mZXJlbmNlSWQ6IHN0cmluZztcbiAgICBjb25mZXJlbmNlU29sdXRpb246IEdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb247XG4gICAgY3JlYXRlUmVxdWVzdDogR29vZ2xlTWVldENyZWF0ZUNvbmZlcmVuY2VSZXF1ZXN0O1xuICAgIGVudHJ5UG9pbnRzOiBHb29nbGVNZWV0RW50cnlQb2ludFtdO1xuICAgIG5vdGVzOiBzdHJpbmc7XG4gICAgc2lnbmF0dXJlOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHb29nbGVNZWV0Q29uZmVyZW5jZURhdGEge1xuICAgICAgICBsZXQgbSA9IG5ldyBHb29nbGVNZWV0Q29uZmVyZW5jZURhdGEoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uY29uZmVyZW5jZVNvbHV0aW9uKSB7bS5jb25mZXJlbmNlU29sdXRpb24gPSBHb29nbGVNZWV0Q29uZmVyZW5jZVNvbHV0aW9uLmZyb21Qcm90byhwcm90by5jb25mZXJlbmNlU29sdXRpb24pO31cbiAgICAgICAgaWYgKHByb3RvLmNyZWF0ZVJlcXVlc3QpIHttLmNyZWF0ZVJlcXVlc3QgPSBHb29nbGVNZWV0Q3JlYXRlQ29uZmVyZW5jZVJlcXVlc3QuZnJvbVByb3RvKHByb3RvLmNyZWF0ZVJlcXVlc3QpO31cbiAgICAgICAgaWYgKHByb3RvLmVudHJ5UG9pbnRzKSB7bS5lbnRyeVBvaW50cyA9IHByb3RvLmVudHJ5UG9pbnRzLm1hcChHb29nbGVNZWV0RW50cnlQb2ludC5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0Q29uZmVyZW5jZURhdGFJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25mZXJlbmNlSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvbmZlcmVuY2VJZCddID0gdGhpcy5jb25mZXJlbmNlSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmVyZW5jZVNvbHV0aW9uICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNvbmZlcmVuY2VTb2x1dGlvbiAhPT0gbnVsbCkge3RvUmV0dXJuWydjb25mZXJlbmNlU29sdXRpb24nXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuY29uZmVyZW5jZVNvbHV0aW9uID8gKHRoaXMuY29uZmVyZW5jZVNvbHV0aW9uIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmNvbmZlcmVuY2VTb2x1dGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jcmVhdGVSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNyZWF0ZVJlcXVlc3QgIT09IG51bGwpIHt0b1JldHVyblsnY3JlYXRlUmVxdWVzdCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jcmVhdGVSZXF1ZXN0ID8gKHRoaXMuY3JlYXRlUmVxdWVzdCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jcmVhdGVSZXF1ZXN0O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVudHJ5UG9pbnRzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmVudHJ5UG9pbnRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2VudHJ5UG9pbnRzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmVudHJ5UG9pbnRzID8gKHRoaXMuZW50cnlQb2ludHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZW50cnlQb2ludHM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubm90ZXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ25vdGVzJ10gPSB0aGlzLm5vdGVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNpZ25hdHVyZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2lnbmF0dXJlJ10gPSB0aGlzLnNpZ25hdHVyZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHb29nbGVNZWV0Q29uZmVyZW5jZVJlcXVlc3RTdGF0dXMgaW1wbGVtZW50cyBpLkdvb2dsZU1lZXRDb25mZXJlbmNlUmVxdWVzdFN0YXR1c0ludGVyZmFjZSB7XG4gICAgc3RhdHVzQ29kZTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR29vZ2xlTWVldENvbmZlcmVuY2VSZXF1ZXN0U3RhdHVzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR29vZ2xlTWVldENvbmZlcmVuY2VSZXF1ZXN0U3RhdHVzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0Q29uZmVyZW5jZVJlcXVlc3RTdGF0dXNJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdGF0dXNDb2RlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGF0dXNDb2RlJ10gPSB0aGlzLnN0YXR1c0NvZGU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR29vZ2xlTWVldENvbmZlcmVuY2VTb2x1dGlvbiBpbXBsZW1lbnRzIGkuR29vZ2xlTWVldENvbmZlcmVuY2VTb2x1dGlvbkludGVyZmFjZSB7XG4gICAgaWNvblVyaTogc3RyaW5nO1xuICAgIGtleTogR29vZ2xlTWVldENvbmZlcmVuY2VTb2x1dGlvbktleTtcbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHb29nbGVNZWV0Q29uZmVyZW5jZVNvbHV0aW9uIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR29vZ2xlTWVldENvbmZlcmVuY2VTb2x1dGlvbigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5rZXkpIHttLmtleSA9IEdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb25LZXkuZnJvbVByb3RvKHByb3RvLmtleSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb25JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pY29uVXJpICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpY29uVXJpJ10gPSB0aGlzLmljb25Vcmk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMua2V5ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmtleSAhPT0gbnVsbCkge3RvUmV0dXJuWydrZXknXSA9ICd0b0FwaUpzb24nIGluIHRoaXMua2V5ID8gKHRoaXMua2V5IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmtleTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyduYW1lJ10gPSB0aGlzLm5hbWU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR29vZ2xlTWVldENvbmZlcmVuY2VTb2x1dGlvbktleSBpbXBsZW1lbnRzIGkuR29vZ2xlTWVldENvbmZlcmVuY2VTb2x1dGlvbktleUludGVyZmFjZSB7XG4gICAgdHlwZTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR29vZ2xlTWVldENvbmZlcmVuY2VTb2x1dGlvbktleSB7XG4gICAgICAgIGxldCBtID0gbmV3IEdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb25LZXkoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb25LZXlJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50eXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0eXBlJ10gPSB0aGlzLnR5cGU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR29vZ2xlTWVldENyZWF0ZUNvbmZlcmVuY2VSZXF1ZXN0IGltcGxlbWVudHMgaS5Hb29nbGVNZWV0Q3JlYXRlQ29uZmVyZW5jZVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGNvbmZlcmVuY2VTb2x1dGlvbktleTogR29vZ2xlTWVldENvbmZlcmVuY2VTb2x1dGlvbktleTtcbiAgICByZXF1ZXN0SWQ6IHN0cmluZztcbiAgICBzdGF0dXM6IEdvb2dsZU1lZXRDb25mZXJlbmNlUmVxdWVzdFN0YXR1cztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdvb2dsZU1lZXRDcmVhdGVDb25mZXJlbmNlUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEdvb2dsZU1lZXRDcmVhdGVDb25mZXJlbmNlUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5jb25mZXJlbmNlU29sdXRpb25LZXkpIHttLmNvbmZlcmVuY2VTb2x1dGlvbktleSA9IEdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb25LZXkuZnJvbVByb3RvKHByb3RvLmNvbmZlcmVuY2VTb2x1dGlvbktleSk7fVxuICAgICAgICBpZiAocHJvdG8uc3RhdHVzKSB7bS5zdGF0dXMgPSBHb29nbGVNZWV0Q29uZmVyZW5jZVJlcXVlc3RTdGF0dXMuZnJvbVByb3RvKHByb3RvLnN0YXR1cyk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdvb2dsZU1lZXRDcmVhdGVDb25mZXJlbmNlUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZlcmVuY2VTb2x1dGlvbktleSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jb25mZXJlbmNlU29sdXRpb25LZXkgIT09IG51bGwpIHt0b1JldHVyblsnY29uZmVyZW5jZVNvbHV0aW9uS2V5J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmNvbmZlcmVuY2VTb2x1dGlvbktleSA/ICh0aGlzLmNvbmZlcmVuY2VTb2x1dGlvbktleSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jb25mZXJlbmNlU29sdXRpb25LZXk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVxdWVzdElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydyZXF1ZXN0SWQnXSA9IHRoaXMucmVxdWVzdElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXR1cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5zdGF0dXMgIT09IG51bGwpIHt0b1JldHVyblsnc3RhdHVzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnN0YXR1cyA/ICh0aGlzLnN0YXR1cyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5zdGF0dXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR29vZ2xlTWVldENyZWF0ZU1lZXRpbmdSZXF1ZXN0IGltcGxlbWVudHMgaS5Hb29nbGVNZWV0Q3JlYXRlTWVldGluZ1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGNhbGVuZGVySWQ6IHN0cmluZztcbiAgICBtZWV0aW5nOiBHb29nbGVNZWV0TWVldGluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdvb2dsZU1lZXRDcmVhdGVNZWV0aW5nUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEdvb2dsZU1lZXRDcmVhdGVNZWV0aW5nUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5tZWV0aW5nKSB7bS5tZWV0aW5nID0gR29vZ2xlTWVldE1lZXRpbmcuZnJvbVByb3RvKHByb3RvLm1lZXRpbmcpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0Q3JlYXRlTWVldGluZ1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jYWxlbmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjYWxlbmRlcklkJ10gPSB0aGlzLmNhbGVuZGVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVldGluZyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5tZWV0aW5nICE9PSBudWxsKSB7dG9SZXR1cm5bJ21lZXRpbmcnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubWVldGluZyA/ICh0aGlzLm1lZXRpbmcgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubWVldGluZzt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1Jlc3BvbnNlIGltcGxlbWVudHMgaS5Hb29nbGVNZWV0Q3JlYXRlTWVldGluZ1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpYW1Vc2VySWQ6IHN0cmluZztcbiAgICBjYWxlbmRlcklkOiBzdHJpbmc7XG4gICAgbWVldGluZzogR29vZ2xlTWVldE1lZXRpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1Jlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR29vZ2xlTWVldENyZWF0ZU1lZXRpbmdSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5tZWV0aW5nKSB7bS5tZWV0aW5nID0gR29vZ2xlTWVldE1lZXRpbmcuZnJvbVByb3RvKHByb3RvLm1lZXRpbmcpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0Q3JlYXRlTWVldGluZ1Jlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWFtVXNlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpYW1Vc2VySWQnXSA9IHRoaXMuaWFtVXNlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNhbGVuZGVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NhbGVuZGVySWQnXSA9IHRoaXMuY2FsZW5kZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZWV0aW5nICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm1lZXRpbmcgIT09IG51bGwpIHt0b1JldHVyblsnbWVldGluZyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5tZWV0aW5nID8gKHRoaXMubWVldGluZyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5tZWV0aW5nO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdvb2dsZU1lZXRFbnRyeVBvaW50IGltcGxlbWVudHMgaS5Hb29nbGVNZWV0RW50cnlQb2ludEludGVyZmFjZSB7XG4gICAgYWNjZXNzQ29kZTogc3RyaW5nO1xuICAgIGVudHJ5UG9pbnRGZWF0dXJlczogc3RyaW5nW107XG4gICAgZW50cnlQb2ludFR5cGU6IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIG1lZXRpbmdDb2RlOiBzdHJpbmc7XG4gICAgcGFzc2NvZGU6IHN0cmluZztcbiAgICBwYXNzd29yZDogc3RyaW5nO1xuICAgIHBpbjogc3RyaW5nO1xuICAgIHJlZ2lvbkNvZGU6IHN0cmluZztcbiAgICB1cmk6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdvb2dsZU1lZXRFbnRyeVBvaW50IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR29vZ2xlTWVldEVudHJ5UG9pbnQoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdvb2dsZU1lZXRFbnRyeVBvaW50SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWNjZXNzQ29kZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWNjZXNzQ29kZSddID0gdGhpcy5hY2Nlc3NDb2RlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVudHJ5UG9pbnRGZWF0dXJlcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW50cnlQb2ludEZlYXR1cmVzJ10gPSB0aGlzLmVudHJ5UG9pbnRGZWF0dXJlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbnRyeVBvaW50VHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW50cnlQb2ludFR5cGUnXSA9IHRoaXMuZW50cnlQb2ludFR5cGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubGFiZWwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2xhYmVsJ10gPSB0aGlzLmxhYmVsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lZXRpbmdDb2RlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZWV0aW5nQ29kZSddID0gdGhpcy5tZWV0aW5nQ29kZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYXNzY29kZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncGFzc2NvZGUnXSA9IHRoaXMucGFzc2NvZGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFzc3dvcmQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Bhc3N3b3JkJ10gPSB0aGlzLnBhc3N3b3JkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBpbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncGluJ10gPSB0aGlzLnBpbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZWdpb25Db2RlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydyZWdpb25Db2RlJ10gPSB0aGlzLnJlZ2lvbkNvZGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudXJpICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd1cmknXSA9IHRoaXMudXJpO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdvb2dsZU1lZXRMaXN0TWVldGluZ3NSZXF1ZXN0IGltcGxlbWVudHMgaS5Hb29nbGVNZWV0TGlzdE1lZXRpbmdzUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdXNlcklkOiBzdHJpbmc7XG4gICAgcGFnZVNpemU6IG51bWJlcjtcbiAgICBwYWdlVG9rZW46IHN0cmluZztcbiAgICBzeW5jVG9rZW46IHN0cmluZztcbiAgICB0aW1lTWluOiBEYXRlO1xuICAgIHRpbWVNYXg6IERhdGU7XG4gICAgc2luZ2xlRXZlbnRzOiBib29sZWFuO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR29vZ2xlTWVldExpc3RNZWV0aW5nc1JlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBHb29nbGVNZWV0TGlzdE1lZXRpbmdzUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5wYWdlU2l6ZSkge20ucGFnZVNpemUgPSBwYXJzZUludChwcm90by5wYWdlU2l6ZSwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLnRpbWVNaW4pIHttLnRpbWVNaW4gPSBuZXcgRGF0ZShwcm90by50aW1lTWluKTt9XG4gICAgICAgIGlmIChwcm90by50aW1lTWF4KSB7bS50aW1lTWF4ID0gbmV3IERhdGUocHJvdG8udGltZU1heCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdvb2dsZU1lZXRMaXN0TWVldGluZ3NSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudXNlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd1c2VySWQnXSA9IHRoaXMudXNlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhZ2VTaXplICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwYWdlU2l6ZSddID0gdGhpcy5wYWdlU2l6ZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYWdlVG9rZW4gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3BhZ2VUb2tlbiddID0gdGhpcy5wYWdlVG9rZW47fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3luY1Rva2VuICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzeW5jVG9rZW4nXSA9IHRoaXMuc3luY1Rva2VuO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRpbWVNaW4gIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGltZU1pbiAhPT0gbnVsbCkge3RvUmV0dXJuWyd0aW1lTWluJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnRpbWVNaW4gPyAodGhpcy50aW1lTWluIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRpbWVNaW47fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGltZU1heCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50aW1lTWF4ICE9PSBudWxsKSB7dG9SZXR1cm5bJ3RpbWVNYXgnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudGltZU1heCA/ICh0aGlzLnRpbWVNYXggYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudGltZU1heDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zaW5nbGVFdmVudHMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NpbmdsZUV2ZW50cyddID0gdGhpcy5zaW5nbGVFdmVudHM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR29vZ2xlTWVldExpc3RNZWV0aW5nc1Jlc3BvbnNlIGltcGxlbWVudHMgaS5Hb29nbGVNZWV0TGlzdE1lZXRpbmdzUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIG1lZXRpbmdzOiBHb29nbGVNZWV0TWVldGluZ1tdO1xuICAgIG5leHRQYWdlVG9rZW46IHN0cmluZztcbiAgICBuZXh0U3luY1Rva2VuOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHb29nbGVNZWV0TGlzdE1lZXRpbmdzUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBHb29nbGVNZWV0TGlzdE1lZXRpbmdzUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ubWVldGluZ3MpIHttLm1lZXRpbmdzID0gcHJvdG8ubWVldGluZ3MubWFwKEdvb2dsZU1lZXRNZWV0aW5nLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdvb2dsZU1lZXRMaXN0TWVldGluZ3NSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lZXRpbmdzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm1lZXRpbmdzICE9PSBudWxsKSB7dG9SZXR1cm5bJ21lZXRpbmdzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm1lZXRpbmdzID8gKHRoaXMubWVldGluZ3MgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubWVldGluZ3M7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmV4dFBhZ2VUb2tlbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmV4dFBhZ2VUb2tlbiddID0gdGhpcy5uZXh0UGFnZVRva2VuO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5leHRTeW5jVG9rZW4gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ25leHRTeW5jVG9rZW4nXSA9IHRoaXMubmV4dFN5bmNUb2tlbjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHb29nbGVNZWV0TWVldGluZyBpbXBsZW1lbnRzIGkuR29vZ2xlTWVldE1lZXRpbmdJbnRlcmZhY2Uge1xuICAgIGFueW9uZUNhbkFkZFNlbGY6IGJvb2xlYW47XG4gICAgYXR0ZW5kZWVzOiBHb29nbGVNZWV0TWVldGluZ0F0dGVuZGVlW107XG4gICAgYXR0ZW5kZWVzT21pdHRlZDogYm9vbGVhbjtcbiAgICBjb2xvcklkOiBzdHJpbmc7XG4gICAgY29uZmVyZW5jZURhdGE6IEdvb2dsZU1lZXRDb25mZXJlbmNlRGF0YTtcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGVuZDogR29vZ2xlTWVldE1lZXRpbmdEYXRlVGltZTtcbiAgICBlbmRUaW1lVW5zcGVjaWZpZWQ6IGJvb2xlYW47XG4gICAgZXRhZzogc3RyaW5nO1xuICAgIGljYWxVaWQ6IHN0cmluZztcbiAgICBpZDogc3RyaW5nO1xuICAgIGtpbmQ6IHN0cmluZztcbiAgICBsb2NhdGlvbjogc3RyaW5nO1xuICAgIGxvY2tlZDogYm9vbGVhbjtcbiAgICBvcmlnaW5hbFN0YXJ0VGltZTogR29vZ2xlTWVldE1lZXRpbmdEYXRlVGltZTtcbiAgICByZWN1cnJlbmNlOiBzdHJpbmdbXTtcbiAgICByZWN1cnJpbmdNZWV0aW5nSWQ6IHN0cmluZztcbiAgICByZW1pbmRlcnM6IEdvb2dsZU1lZXRNZWV0aW5nUmVtaW5kZXJzO1xuICAgIHNlcXVlbmNlOiBudW1iZXI7XG4gICAgc3RhcnQ6IEdvb2dsZU1lZXRNZWV0aW5nRGF0ZVRpbWU7XG4gICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgc3VtbWFyeTogc3RyaW5nO1xuICAgIHRyYW5zcGFyZW5jeTogc3RyaW5nO1xuICAgIHZpc2liaWxpdHk6IHN0cmluZztcbiAgICBoYW5nb3V0TGluazogc3RyaW5nO1xuICAgIGh0bWxMaW5rOiBzdHJpbmc7XG4gICAgY3JlYXRlZDogc3RyaW5nO1xuICAgIGNyZWF0b3I6IEdvb2dsZU1lZXRNZWV0aW5nQ3JlYXRvcjtcbiAgICB1cGRhdGVkOiBzdHJpbmc7XG4gICAgb3JnYW5pemVyOiBHb29nbGVNZWV0TWVldGluZ09yZ2FuaXplcjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdvb2dsZU1lZXRNZWV0aW5nIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR29vZ2xlTWVldE1lZXRpbmcoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uYXR0ZW5kZWVzKSB7bS5hdHRlbmRlZXMgPSBwcm90by5hdHRlbmRlZXMubWFwKEdvb2dsZU1lZXRNZWV0aW5nQXR0ZW5kZWUuZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5jb25mZXJlbmNlRGF0YSkge20uY29uZmVyZW5jZURhdGEgPSBHb29nbGVNZWV0Q29uZmVyZW5jZURhdGEuZnJvbVByb3RvKHByb3RvLmNvbmZlcmVuY2VEYXRhKTt9XG4gICAgICAgIGlmIChwcm90by5lbmQpIHttLmVuZCA9IEdvb2dsZU1lZXRNZWV0aW5nRGF0ZVRpbWUuZnJvbVByb3RvKHByb3RvLmVuZCk7fVxuICAgICAgICBpZiAocHJvdG8ub3JpZ2luYWxTdGFydFRpbWUpIHttLm9yaWdpbmFsU3RhcnRUaW1lID0gR29vZ2xlTWVldE1lZXRpbmdEYXRlVGltZS5mcm9tUHJvdG8ocHJvdG8ub3JpZ2luYWxTdGFydFRpbWUpO31cbiAgICAgICAgaWYgKHByb3RvLnJlbWluZGVycykge20ucmVtaW5kZXJzID0gR29vZ2xlTWVldE1lZXRpbmdSZW1pbmRlcnMuZnJvbVByb3RvKHByb3RvLnJlbWluZGVycyk7fVxuICAgICAgICBpZiAocHJvdG8uc2VxdWVuY2UpIHttLnNlcXVlbmNlID0gcGFyc2VJbnQocHJvdG8uc2VxdWVuY2UsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5zdGFydCkge20uc3RhcnQgPSBHb29nbGVNZWV0TWVldGluZ0RhdGVUaW1lLmZyb21Qcm90byhwcm90by5zdGFydCk7fVxuICAgICAgICBpZiAocHJvdG8uY3JlYXRvcikge20uY3JlYXRvciA9IEdvb2dsZU1lZXRNZWV0aW5nQ3JlYXRvci5mcm9tUHJvdG8ocHJvdG8uY3JlYXRvcik7fVxuICAgICAgICBpZiAocHJvdG8ub3JnYW5pemVyKSB7bS5vcmdhbml6ZXIgPSBHb29nbGVNZWV0TWVldGluZ09yZ2FuaXplci5mcm9tUHJvdG8ocHJvdG8ub3JnYW5pemVyKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR29vZ2xlTWVldE1lZXRpbmdJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hbnlvbmVDYW5BZGRTZWxmICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhbnlvbmVDYW5BZGRTZWxmJ10gPSB0aGlzLmFueW9uZUNhbkFkZFNlbGY7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXR0ZW5kZWVzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmF0dGVuZGVlcyAhPT0gbnVsbCkge3RvUmV0dXJuWydhdHRlbmRlZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYXR0ZW5kZWVzID8gKHRoaXMuYXR0ZW5kZWVzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmF0dGVuZGVlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hdHRlbmRlZXNPbWl0dGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhdHRlbmRlZXNPbWl0dGVkJ10gPSB0aGlzLmF0dGVuZGVlc09taXR0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29sb3JJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY29sb3JJZCddID0gdGhpcy5jb2xvcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZlcmVuY2VEYXRhICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNvbmZlcmVuY2VEYXRhICE9PSBudWxsKSB7dG9SZXR1cm5bJ2NvbmZlcmVuY2VEYXRhJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmNvbmZlcmVuY2VEYXRhID8gKHRoaXMuY29uZmVyZW5jZURhdGEgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY29uZmVyZW5jZURhdGE7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVzY3JpcHRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rlc2NyaXB0aW9uJ10gPSB0aGlzLmRlc2NyaXB0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVuZCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5lbmQgIT09IG51bGwpIHt0b1JldHVyblsnZW5kJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmVuZCA/ICh0aGlzLmVuZCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5lbmQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW5kVGltZVVuc3BlY2lmaWVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbmRUaW1lVW5zcGVjaWZpZWQnXSA9IHRoaXMuZW5kVGltZVVuc3BlY2lmaWVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmV0YWcgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2V0YWcnXSA9IHRoaXMuZXRhZzt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pY2FsVWlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpY2FsVWlkJ10gPSB0aGlzLmljYWxVaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmtpbmQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2tpbmQnXSA9IHRoaXMua2luZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5sb2NhdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbG9jYXRpb24nXSA9IHRoaXMubG9jYXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubG9ja2VkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydsb2NrZWQnXSA9IHRoaXMubG9ja2VkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9yaWdpbmFsU3RhcnRUaW1lICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm9yaWdpbmFsU3RhcnRUaW1lICE9PSBudWxsKSB7dG9SZXR1cm5bJ29yaWdpbmFsU3RhcnRUaW1lJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm9yaWdpbmFsU3RhcnRUaW1lID8gKHRoaXMub3JpZ2luYWxTdGFydFRpbWUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMub3JpZ2luYWxTdGFydFRpbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVjdXJyZW5jZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncmVjdXJyZW5jZSddID0gdGhpcy5yZWN1cnJlbmNlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlY3VycmluZ01lZXRpbmdJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncmVjdXJyaW5nTWVldGluZ0lkJ10gPSB0aGlzLnJlY3VycmluZ01lZXRpbmdJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZW1pbmRlcnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMucmVtaW5kZXJzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3JlbWluZGVycyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5yZW1pbmRlcnMgPyAodGhpcy5yZW1pbmRlcnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucmVtaW5kZXJzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNlcXVlbmNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzZXF1ZW5jZSddID0gdGhpcy5zZXF1ZW5jZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdGFydCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5zdGFydCAhPT0gbnVsbCkge3RvUmV0dXJuWydzdGFydCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5zdGFydCA/ICh0aGlzLnN0YXJ0IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnN0YXJ0O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXR1cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhdHVzJ10gPSB0aGlzLnN0YXR1czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdW1tYXJ5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdW1tYXJ5J10gPSB0aGlzLnN1bW1hcnk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHJhbnNwYXJlbmN5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0cmFuc3BhcmVuY3knXSA9IHRoaXMudHJhbnNwYXJlbmN5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnZpc2liaWxpdHkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Zpc2liaWxpdHknXSA9IHRoaXMudmlzaWJpbGl0eTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5oYW5nb3V0TGluayAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaGFuZ291dExpbmsnXSA9IHRoaXMuaGFuZ291dExpbms7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaHRtbExpbmsgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2h0bWxMaW5rJ10gPSB0aGlzLmh0bWxMaW5rO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNyZWF0ZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NyZWF0ZWQnXSA9IHRoaXMuY3JlYXRlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jcmVhdG9yICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmNyZWF0b3IgIT09IG51bGwpIHt0b1JldHVyblsnY3JlYXRvciddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jcmVhdG9yID8gKHRoaXMuY3JlYXRvciBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jcmVhdG9yO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVwZGF0ZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3VwZGF0ZWQnXSA9IHRoaXMudXBkYXRlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmdhbml6ZXIgIT09ICd1bmRlZmluZWQnICYmIHRoaXMub3JnYW5pemVyICE9PSBudWxsKSB7dG9SZXR1cm5bJ29yZ2FuaXplciddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5vcmdhbml6ZXIgPyAodGhpcy5vcmdhbml6ZXIgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMub3JnYW5pemVyO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdvb2dsZU1lZXRNZWV0aW5nQXR0ZW5kZWUgaW1wbGVtZW50cyBpLkdvb2dsZU1lZXRNZWV0aW5nQXR0ZW5kZWVJbnRlcmZhY2Uge1xuICAgIGFkZGl0aW9uYWxHdWVzdHM6IG51bWJlcjtcbiAgICBjb21tZW50OiBzdHJpbmc7XG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuICAgIGlkOiBzdHJpbmc7XG4gICAgb3B0aW9uYWw6IGJvb2xlYW47XG4gICAgb3JnYW5pemVyOiBib29sZWFuO1xuICAgIHJlc291cmNlOiBib29sZWFuO1xuICAgIHJlc3BvbnNlU3RhdHVzOiBzdHJpbmc7XG4gICAgc2VsZjogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdvb2dsZU1lZXRNZWV0aW5nQXR0ZW5kZWUge1xuICAgICAgICBsZXQgbSA9IG5ldyBHb29nbGVNZWV0TWVldGluZ0F0dGVuZGVlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmFkZGl0aW9uYWxHdWVzdHMpIHttLmFkZGl0aW9uYWxHdWVzdHMgPSBwYXJzZUludChwcm90by5hZGRpdGlvbmFsR3Vlc3RzLCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdvb2dsZU1lZXRNZWV0aW5nQXR0ZW5kZWVJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hZGRpdGlvbmFsR3Vlc3RzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhZGRpdGlvbmFsR3Vlc3RzJ10gPSB0aGlzLmFkZGl0aW9uYWxHdWVzdHM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29tbWVudCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY29tbWVudCddID0gdGhpcy5jb21tZW50O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRpc3BsYXlOYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkaXNwbGF5TmFtZSddID0gdGhpcy5kaXNwbGF5TmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbWFpbCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW1haWwnXSA9IHRoaXMuZW1haWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbmFsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcHRpb25hbCddID0gdGhpcy5vcHRpb25hbDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmdhbml6ZXIgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ29yZ2FuaXplciddID0gdGhpcy5vcmdhbml6ZXI7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzb3VyY2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Jlc291cmNlJ10gPSB0aGlzLnJlc291cmNlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc3BvbnNlU3RhdHVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydyZXNwb25zZVN0YXR1cyddID0gdGhpcy5yZXNwb25zZVN0YXR1czt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zZWxmICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzZWxmJ10gPSB0aGlzLnNlbGY7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR29vZ2xlTWVldE1lZXRpbmdDcmVhdG9yIGltcGxlbWVudHMgaS5Hb29nbGVNZWV0TWVldGluZ0NyZWF0b3JJbnRlcmZhY2Uge1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgICBpZDogc3RyaW5nO1xuICAgIHNlbGY6IGJvb2xlYW47XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHb29nbGVNZWV0TWVldGluZ0NyZWF0b3Ige1xuICAgICAgICBsZXQgbSA9IG5ldyBHb29nbGVNZWV0TWVldGluZ0NyZWF0b3IoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdvb2dsZU1lZXRNZWV0aW5nQ3JlYXRvckludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRpc3BsYXlOYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkaXNwbGF5TmFtZSddID0gdGhpcy5kaXNwbGF5TmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbWFpbCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW1haWwnXSA9IHRoaXMuZW1haWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNlbGYgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NlbGYnXSA9IHRoaXMuc2VsZjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHb29nbGVNZWV0TWVldGluZ0RhdGVUaW1lIGltcGxlbWVudHMgaS5Hb29nbGVNZWV0TWVldGluZ0RhdGVUaW1lSW50ZXJmYWNlIHtcbiAgICBkYXRlOiBzdHJpbmc7XG4gICAgZGF0ZVRpbWU6IHN0cmluZztcbiAgICB0aW1lWm9uZTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR29vZ2xlTWVldE1lZXRpbmdEYXRlVGltZSB7XG4gICAgICAgIGxldCBtID0gbmV3IEdvb2dsZU1lZXRNZWV0aW5nRGF0ZVRpbWUoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdvb2dsZU1lZXRNZWV0aW5nRGF0ZVRpbWVJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kYXRlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkYXRlJ10gPSB0aGlzLmRhdGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGF0ZVRpbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2RhdGVUaW1lJ10gPSB0aGlzLmRhdGVUaW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRpbWVab25lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0aW1lWm9uZSddID0gdGhpcy50aW1lWm9uZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHb29nbGVNZWV0TWVldGluZ09yZ2FuaXplciBpbXBsZW1lbnRzIGkuR29vZ2xlTWVldE1lZXRpbmdPcmdhbml6ZXJJbnRlcmZhY2Uge1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgICBpZDogc3RyaW5nO1xuICAgIHNlbGY6IGJvb2xlYW47XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHb29nbGVNZWV0TWVldGluZ09yZ2FuaXplciB7XG4gICAgICAgIGxldCBtID0gbmV3IEdvb2dsZU1lZXRNZWV0aW5nT3JnYW5pemVyKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0TWVldGluZ09yZ2FuaXplckludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRpc3BsYXlOYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkaXNwbGF5TmFtZSddID0gdGhpcy5kaXNwbGF5TmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbWFpbCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW1haWwnXSA9IHRoaXMuZW1haWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNlbGYgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NlbGYnXSA9IHRoaXMuc2VsZjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHb29nbGVNZWV0TWVldGluZ1JlbWluZGVyIGltcGxlbWVudHMgaS5Hb29nbGVNZWV0TWVldGluZ1JlbWluZGVySW50ZXJmYWNlIHtcbiAgICBtZXRob2Q6IHN0cmluZztcbiAgICBtaW51dGVzOiBudW1iZXI7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHb29nbGVNZWV0TWVldGluZ1JlbWluZGVyIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR29vZ2xlTWVldE1lZXRpbmdSZW1pbmRlcigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5taW51dGVzKSB7bS5taW51dGVzID0gcGFyc2VJbnQocHJvdG8ubWludXRlcywgMTApO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0TWVldGluZ1JlbWluZGVySW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWV0aG9kICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXRob2QnXSA9IHRoaXMubWV0aG9kO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1pbnV0ZXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21pbnV0ZXMnXSA9IHRoaXMubWludXRlczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHb29nbGVNZWV0TWVldGluZ1JlbWluZGVycyBpbXBsZW1lbnRzIGkuR29vZ2xlTWVldE1lZXRpbmdSZW1pbmRlcnNJbnRlcmZhY2Uge1xuICAgIG92ZXJyaWRlczogR29vZ2xlTWVldE1lZXRpbmdSZW1pbmRlcltdO1xuICAgIHVzZURlZmF1bHQ6IGJvb2xlYW47XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHb29nbGVNZWV0TWVldGluZ1JlbWluZGVycyB7XG4gICAgICAgIGxldCBtID0gbmV3IEdvb2dsZU1lZXRNZWV0aW5nUmVtaW5kZXJzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLm92ZXJyaWRlcykge20ub3ZlcnJpZGVzID0gcHJvdG8ub3ZlcnJpZGVzLm1hcChHb29nbGVNZWV0TWVldGluZ1JlbWluZGVyLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdvb2dsZU1lZXRNZWV0aW5nUmVtaW5kZXJzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3ZlcnJpZGVzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm92ZXJyaWRlcyAhPT0gbnVsbCkge3RvUmV0dXJuWydvdmVycmlkZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMub3ZlcnJpZGVzID8gKHRoaXMub3ZlcnJpZGVzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm92ZXJyaWRlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51c2VEZWZhdWx0ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd1c2VEZWZhdWx0J10gPSB0aGlzLnVzZURlZmF1bHQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
|
|
650
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1lZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tZWV0aW5nc19zZGsvc3JjL2xpYi9faW50ZXJuYWwvb2JqZWN0cy9nb29nbGUtbWVldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0lBUWpDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsR0FBRyxJQUFJLHdCQUF3QixFQUFFLENBQUM7UUFDdkMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQUMsQ0FBQyxDQUFDLGtCQUFrQixHQUFHLDRCQUE0QixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUFDO1FBQ3hILElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUcsaUNBQWlDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUFDO1FBQzlHLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUFDLENBQUMsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUM7U0FBQztRQUMvRixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZLE1BQTRDO1FBQ3BELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFD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LENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQUM7UUFDOUYsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWSxNQUE4QztRQUN0RCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFNBQVM7UUFDTCxNQUFNLFFBQVEsR0FFVixFQUFFLENBQUM7UUFFUCxJQUFJLE9BQU8sSUFBSSxDQUFDLFNBQVMsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxTQUFpQixDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQUM7UUFDckwsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUN2RixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCAqIGFzIGkgZnJvbSAnLi4vaW50ZXJmYWNlcy9nb29nbGUtbWVldC5pbnRlcmZhY2UnO1xuXG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBHb29nbGVNZWV0Q29uZmVyZW5jZURhdGEgaW1wbGVtZW50cyBpLkdvb2dsZU1lZXRDb25mZXJlbmNlRGF0YUludGVyZmFjZSB7XG4gICAgY29uZmVyZW5jZUlkOiBzdHJpbmc7XG4gICAgY29uZmVyZW5jZVNvbHV0aW9uOiBHb29nbGVNZWV0Q29uZmVyZW5jZVNvbHV0aW9uO1xuICAgIGNyZWF0ZVJlcXVlc3Q6IEdvb2dsZU1lZXRDcmVhdGVDb25mZXJlbmNlUmVxdWVzdDtcbiAgICBlbnRyeVBvaW50czogR29vZ2xlTWVldEVudHJ5UG9pbnRbXTtcbiAgICBub3Rlczogc3RyaW5nO1xuICAgIHNpZ25hdHVyZTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR29vZ2xlTWVldENvbmZlcmVuY2VEYXRhIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR29vZ2xlTWVldENvbmZlcmVuY2VEYXRhKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmNvbmZlcmVuY2VTb2x1dGlvbikge20uY29uZmVyZW5jZVNvbHV0aW9uID0gR29vZ2xlTWVldENvbmZlcmVuY2VTb2x1dGlvbi5mcm9tUHJvdG8ocHJvdG8uY29uZmVyZW5jZVNvbHV0aW9uKTt9XG4gICAgICAgIGlmIChwcm90by5jcmVhdGVSZXF1ZXN0KSB7bS5jcmVhdGVSZXF1ZXN0ID0gR29vZ2xlTWVldENyZWF0ZUNvbmZlcmVuY2VSZXF1ZXN0LmZyb21Qcm90byhwcm90by5jcmVhdGVSZXF1ZXN0KTt9XG4gICAgICAgIGlmIChwcm90by5lbnRyeVBvaW50cykge20uZW50cnlQb2ludHMgPSBwcm90by5lbnRyeVBvaW50cy5tYXAoR29vZ2xlTWVldEVudHJ5UG9pbnQuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR29vZ2xlTWVldENvbmZlcmVuY2VEYXRhSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmVyZW5jZUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb25mZXJlbmNlSWQnXSA9IHRoaXMuY29uZmVyZW5jZUlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZlcmVuY2VTb2x1dGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jb25mZXJlbmNlU29sdXRpb24gIT09IG51bGwpIHt0b1JldHVyblsnY29uZmVyZW5jZVNvbHV0aW9uJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmNvbmZlcmVuY2VTb2x1dGlvbiA/ICh0aGlzLmNvbmZlcmVuY2VTb2x1dGlvbiBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5jb25mZXJlbmNlU29sdXRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3JlYXRlUmVxdWVzdCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jcmVhdGVSZXF1ZXN0ICE9PSBudWxsKSB7dG9SZXR1cm5bJ2NyZWF0ZVJlcXVlc3QnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuY3JlYXRlUmVxdWVzdCA/ICh0aGlzLmNyZWF0ZVJlcXVlc3QgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY3JlYXRlUmVxdWVzdDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbnRyeVBvaW50cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5lbnRyeVBvaW50cyAhPT0gbnVsbCkge3RvUmV0dXJuWydlbnRyeVBvaW50cyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5lbnRyeVBvaW50cyA/ICh0aGlzLmVudHJ5UG9pbnRzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmVudHJ5UG9pbnRzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5vdGVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydub3RlcyddID0gdGhpcy5ub3Rlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zaWduYXR1cmUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NpZ25hdHVyZSddID0gdGhpcy5zaWduYXR1cmU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR29vZ2xlTWVldENvbmZlcmVuY2VSZXF1ZXN0U3RhdHVzIGltcGxlbWVudHMgaS5Hb29nbGVNZWV0Q29uZmVyZW5jZVJlcXVlc3RTdGF0dXNJbnRlcmZhY2Uge1xuICAgIHN0YXR1c0NvZGU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdvb2dsZU1lZXRDb25mZXJlbmNlUmVxdWVzdFN0YXR1cyB7XG4gICAgICAgIGxldCBtID0gbmV3IEdvb2dsZU1lZXRDb25mZXJlbmNlUmVxdWVzdFN0YXR1cygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR29vZ2xlTWVldENvbmZlcmVuY2VSZXF1ZXN0U3RhdHVzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhdHVzQ29kZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhdHVzQ29kZSddID0gdGhpcy5zdGF0dXNDb2RlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb24gaW1wbGVtZW50cyBpLkdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb25JbnRlcmZhY2Uge1xuICAgIGljb25Vcmk6IHN0cmluZztcbiAgICBrZXk6IEdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb25LZXk7XG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR29vZ2xlTWVldENvbmZlcmVuY2VTb2x1dGlvbiB7XG4gICAgICAgIGxldCBtID0gbmV3IEdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb24oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ua2V5KSB7bS5rZXkgPSBHb29nbGVNZWV0Q29uZmVyZW5jZVNvbHV0aW9uS2V5LmZyb21Qcm90byhwcm90by5rZXkpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0Q29uZmVyZW5jZVNvbHV0aW9uSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWNvblVyaSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWNvblVyaSddID0gdGhpcy5pY29uVXJpO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmtleSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5rZXkgIT09IG51bGwpIHt0b1JldHVyblsna2V5J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmtleSA/ICh0aGlzLmtleSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5rZXk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb25LZXkgaW1wbGVtZW50cyBpLkdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb25LZXlJbnRlcmZhY2Uge1xuICAgIHR5cGU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb25LZXkge1xuICAgICAgICBsZXQgbSA9IG5ldyBHb29nbGVNZWV0Q29uZmVyZW5jZVNvbHV0aW9uS2V5KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0Q29uZmVyZW5jZVNvbHV0aW9uS2V5SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndHlwZSddID0gdGhpcy50eXBlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdvb2dsZU1lZXRDcmVhdGVDb25mZXJlbmNlUmVxdWVzdCBpbXBsZW1lbnRzIGkuR29vZ2xlTWVldENyZWF0ZUNvbmZlcmVuY2VSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBjb25mZXJlbmNlU29sdXRpb25LZXk6IEdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb25LZXk7XG4gICAgcmVxdWVzdElkOiBzdHJpbmc7XG4gICAgc3RhdHVzOiBHb29nbGVNZWV0Q29uZmVyZW5jZVJlcXVlc3RTdGF0dXM7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHb29nbGVNZWV0Q3JlYXRlQ29uZmVyZW5jZVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBHb29nbGVNZWV0Q3JlYXRlQ29uZmVyZW5jZVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uY29uZmVyZW5jZVNvbHV0aW9uS2V5KSB7bS5jb25mZXJlbmNlU29sdXRpb25LZXkgPSBHb29nbGVNZWV0Q29uZmVyZW5jZVNvbHV0aW9uS2V5LmZyb21Qcm90byhwcm90by5jb25mZXJlbmNlU29sdXRpb25LZXkpO31cbiAgICAgICAgaWYgKHByb3RvLnN0YXR1cykge20uc3RhdHVzID0gR29vZ2xlTWVldENvbmZlcmVuY2VSZXF1ZXN0U3RhdHVzLmZyb21Qcm90byhwcm90by5zdGF0dXMpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0Q3JlYXRlQ29uZmVyZW5jZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25mZXJlbmNlU29sdXRpb25LZXkgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuY29uZmVyZW5jZVNvbHV0aW9uS2V5ICE9PSBudWxsKSB7dG9SZXR1cm5bJ2NvbmZlcmVuY2VTb2x1dGlvbktleSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jb25mZXJlbmNlU29sdXRpb25LZXkgPyAodGhpcy5jb25mZXJlbmNlU29sdXRpb25LZXkgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY29uZmVyZW5jZVNvbHV0aW9uS2V5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlcXVlc3RJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncmVxdWVzdElkJ10gPSB0aGlzLnJlcXVlc3RJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdGF0dXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc3RhdHVzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3N0YXR1cyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5zdGF0dXMgPyAodGhpcy5zdGF0dXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuc3RhdHVzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdvb2dsZU1lZXRDcmVhdGVNZWV0aW5nUmVxdWVzdCBpbXBsZW1lbnRzIGkuR29vZ2xlTWVldENyZWF0ZU1lZXRpbmdSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBjYWxlbmRlcklkOiBzdHJpbmc7XG4gICAgbWVldGluZzogR29vZ2xlTWVldE1lZXRpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1JlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ubWVldGluZykge20ubWVldGluZyA9IEdvb2dsZU1lZXRNZWV0aW5nLmZyb21Qcm90byhwcm90by5tZWV0aW5nKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR29vZ2xlTWVldENyZWF0ZU1lZXRpbmdSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2FsZW5kZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY2FsZW5kZXJJZCddID0gdGhpcy5jYWxlbmRlcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lZXRpbmcgIT09ICd1bmRlZmluZWQnICYmIHRoaXMubWVldGluZyAhPT0gbnVsbCkge3RvUmV0dXJuWydtZWV0aW5nJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm1lZXRpbmcgPyAodGhpcy5tZWV0aW5nIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm1lZXRpbmc7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR29vZ2xlTWVldENyZWF0ZU1lZXRpbmdSZXNwb25zZSBpbXBsZW1lbnRzIGkuR29vZ2xlTWVldENyZWF0ZU1lZXRpbmdSZXNwb25zZUludGVyZmFjZSB7XG4gICAgaWFtVXNlcklkOiBzdHJpbmc7XG4gICAgY2FsZW5kZXJJZDogc3RyaW5nO1xuICAgIG1lZXRpbmc6IEdvb2dsZU1lZXRNZWV0aW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR29vZ2xlTWVldENyZWF0ZU1lZXRpbmdSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IEdvb2dsZU1lZXRDcmVhdGVNZWV0aW5nUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ubWVldGluZykge20ubWVldGluZyA9IEdvb2dsZU1lZXRNZWV0aW5nLmZyb21Qcm90byhwcm90by5tZWV0aW5nKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR29vZ2xlTWVldENyZWF0ZU1lZXRpbmdSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlhbVVzZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWFtVXNlcklkJ10gPSB0aGlzLmlhbVVzZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jYWxlbmRlcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjYWxlbmRlcklkJ10gPSB0aGlzLmNhbGVuZGVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVldGluZyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5tZWV0aW5nICE9PSBudWxsKSB7dG9SZXR1cm5bJ21lZXRpbmcnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMubWVldGluZyA/ICh0aGlzLm1lZXRpbmcgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMubWVldGluZzt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHb29nbGVNZWV0RW50cnlQb2ludCBpbXBsZW1lbnRzIGkuR29vZ2xlTWVldEVudHJ5UG9pbnRJbnRlcmZhY2Uge1xuICAgIGFjY2Vzc0NvZGU6IHN0cmluZztcbiAgICBlbnRyeVBvaW50RmVhdHVyZXM6IHN0cmluZ1tdO1xuICAgIGVudHJ5UG9pbnRUeXBlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBtZWV0aW5nQ29kZTogc3RyaW5nO1xuICAgIHBhc3Njb2RlOiBzdHJpbmc7XG4gICAgcGFzc3dvcmQ6IHN0cmluZztcbiAgICBwaW46IHN0cmluZztcbiAgICByZWdpb25Db2RlOiBzdHJpbmc7XG4gICAgdXJpOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHb29nbGVNZWV0RW50cnlQb2ludCB7XG4gICAgICAgIGxldCBtID0gbmV3IEdvb2dsZU1lZXRFbnRyeVBvaW50KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0RW50cnlQb2ludEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFjY2Vzc0NvZGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FjY2Vzc0NvZGUnXSA9IHRoaXMuYWNjZXNzQ29kZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbnRyeVBvaW50RmVhdHVyZXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2VudHJ5UG9pbnRGZWF0dXJlcyddID0gdGhpcy5lbnRyeVBvaW50RmVhdHVyZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW50cnlQb2ludFR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2VudHJ5UG9pbnRUeXBlJ10gPSB0aGlzLmVudHJ5UG9pbnRUeXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxhYmVsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydsYWJlbCddID0gdGhpcy5sYWJlbDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZWV0aW5nQ29kZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVldGluZ0NvZGUnXSA9IHRoaXMubWVldGluZ0NvZGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFzc2NvZGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3Bhc3Njb2RlJ10gPSB0aGlzLnBhc3Njb2RlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhc3N3b3JkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwYXNzd29yZCddID0gdGhpcy5wYXNzd29yZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5waW4gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3BpbiddID0gdGhpcy5waW47fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVnaW9uQ29kZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncmVnaW9uQ29kZSddID0gdGhpcy5yZWdpb25Db2RlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVyaSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndXJpJ10gPSB0aGlzLnVyaTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHb29nbGVNZWV0TGlzdE1lZXRpbmdzUmVxdWVzdCBpbXBsZW1lbnRzIGkuR29vZ2xlTWVldExpc3RNZWV0aW5nc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHVzZXJJZDogc3RyaW5nO1xuICAgIHBhZ2VTaXplOiBudW1iZXI7XG4gICAgcGFnZVRva2VuOiBzdHJpbmc7XG4gICAgc3luY1Rva2VuOiBzdHJpbmc7XG4gICAgdGltZU1pbjogRGF0ZTtcbiAgICB0aW1lTWF4OiBEYXRlO1xuICAgIHNpbmdsZUV2ZW50czogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdvb2dsZU1lZXRMaXN0TWVldGluZ3NSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR29vZ2xlTWVldExpc3RNZWV0aW5nc1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ucGFnZVNpemUpIHttLnBhZ2VTaXplID0gcGFyc2VJbnQocHJvdG8ucGFnZVNpemUsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by50aW1lTWluKSB7bS50aW1lTWluID0gbmV3IERhdGUocHJvdG8udGltZU1pbik7fVxuICAgICAgICBpZiAocHJvdG8udGltZU1heCkge20udGltZU1heCA9IG5ldyBEYXRlKHByb3RvLnRpbWVNYXgpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0TGlzdE1lZXRpbmdzUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVzZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndXNlcklkJ10gPSB0aGlzLnVzZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wYWdlU2l6ZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncGFnZVNpemUnXSA9IHRoaXMucGFnZVNpemU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFnZVRva2VuICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydwYWdlVG9rZW4nXSA9IHRoaXMucGFnZVRva2VuO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN5bmNUb2tlbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3luY1Rva2VuJ10gPSB0aGlzLnN5bmNUb2tlbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aW1lTWluICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRpbWVNaW4gIT09IG51bGwpIHt0b1JldHVyblsndGltZU1pbiddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50aW1lTWluID8gKHRoaXMudGltZU1pbiBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50aW1lTWluO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRpbWVNYXggIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGltZU1heCAhPT0gbnVsbCkge3RvUmV0dXJuWyd0aW1lTWF4J10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnRpbWVNYXggPyAodGhpcy50aW1lTWF4IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRpbWVNYXg7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2luZ2xlRXZlbnRzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzaW5nbGVFdmVudHMnXSA9IHRoaXMuc2luZ2xlRXZlbnRzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdvb2dsZU1lZXRMaXN0TWVldGluZ3NSZXNwb25zZSBpbXBsZW1lbnRzIGkuR29vZ2xlTWVldExpc3RNZWV0aW5nc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBtZWV0aW5nczogR29vZ2xlTWVldE1lZXRpbmdbXTtcbiAgICBuZXh0UGFnZVRva2VuOiBzdHJpbmc7XG4gICAgbmV4dFN5bmNUb2tlbjogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR29vZ2xlTWVldExpc3RNZWV0aW5nc1Jlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR29vZ2xlTWVldExpc3RNZWV0aW5nc1Jlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLm1lZXRpbmdzKSB7bS5tZWV0aW5ncyA9IHByb3RvLm1lZXRpbmdzLm1hcChHb29nbGVNZWV0TWVldGluZy5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0TGlzdE1lZXRpbmdzUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZWV0aW5ncyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5tZWV0aW5ncyAhPT0gbnVsbCkge3RvUmV0dXJuWydtZWV0aW5ncyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5tZWV0aW5ncyA/ICh0aGlzLm1lZXRpbmdzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm1lZXRpbmdzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5leHRQYWdlVG9rZW4gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ25leHRQYWdlVG9rZW4nXSA9IHRoaXMubmV4dFBhZ2VUb2tlbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uZXh0U3luY1Rva2VuICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyduZXh0U3luY1Rva2VuJ10gPSB0aGlzLm5leHRTeW5jVG9rZW47fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR29vZ2xlTWVldE1lZXRpbmcgaW1wbGVtZW50cyBpLkdvb2dsZU1lZXRNZWV0aW5nSW50ZXJmYWNlIHtcbiAgICBhbnlvbmVDYW5BZGRTZWxmOiBib29sZWFuO1xuICAgIGF0dGVuZGVlczogR29vZ2xlTWVldE1lZXRpbmdBdHRlbmRlZVtdO1xuICAgIGF0dGVuZGVlc09taXR0ZWQ6IGJvb2xlYW47XG4gICAgY29sb3JJZDogc3RyaW5nO1xuICAgIGNvbmZlcmVuY2VEYXRhOiBHb29nbGVNZWV0Q29uZmVyZW5jZURhdGE7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBlbmQ6IEdvb2dsZU1lZXRNZWV0aW5nRGF0ZVRpbWU7XG4gICAgZW5kVGltZVVuc3BlY2lmaWVkOiBib29sZWFuO1xuICAgIGV0YWc6IHN0cmluZztcbiAgICBpY2FsVWlkOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgICBraW5kOiBzdHJpbmc7XG4gICAgbG9jYXRpb246IHN0cmluZztcbiAgICBsb2NrZWQ6IGJvb2xlYW47XG4gICAgb3JpZ2luYWxTdGFydFRpbWU6IEdvb2dsZU1lZXRNZWV0aW5nRGF0ZVRpbWU7XG4gICAgcmVjdXJyZW5jZTogc3RyaW5nW107XG4gICAgcmVjdXJyaW5nTWVldGluZ0lkOiBzdHJpbmc7XG4gICAgcmVtaW5kZXJzOiBHb29nbGVNZWV0TWVldGluZ1JlbWluZGVycztcbiAgICBzZXF1ZW5jZTogbnVtYmVyO1xuICAgIHN0YXJ0OiBHb29nbGVNZWV0TWVldGluZ0RhdGVUaW1lO1xuICAgIHN0YXR1czogc3RyaW5nO1xuICAgIHN1bW1hcnk6IHN0cmluZztcbiAgICB0cmFuc3BhcmVuY3k6IHN0cmluZztcbiAgICB2aXNpYmlsaXR5OiBzdHJpbmc7XG4gICAgaGFuZ291dExpbms6IHN0cmluZztcbiAgICBodG1sTGluazogc3RyaW5nO1xuICAgIGNyZWF0ZWQ6IHN0cmluZztcbiAgICBjcmVhdG9yOiBHb29nbGVNZWV0TWVldGluZ0NyZWF0b3I7XG4gICAgdXBkYXRlZDogc3RyaW5nO1xuICAgIG9yZ2FuaXplcjogR29vZ2xlTWVldE1lZXRpbmdPcmdhbml6ZXI7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHb29nbGVNZWV0TWVldGluZyB7XG4gICAgICAgIGxldCBtID0gbmV3IEdvb2dsZU1lZXRNZWV0aW5nKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmF0dGVuZGVlcykge20uYXR0ZW5kZWVzID0gcHJvdG8uYXR0ZW5kZWVzLm1hcChHb29nbGVNZWV0TWVldGluZ0F0dGVuZGVlLmZyb21Qcm90byk7fVxuICAgICAgICBpZiAocHJvdG8uY29uZmVyZW5jZURhdGEpIHttLmNvbmZlcmVuY2VEYXRhID0gR29vZ2xlTWVldENvbmZlcmVuY2VEYXRhLmZyb21Qcm90byhwcm90by5jb25mZXJlbmNlRGF0YSk7fVxuICAgICAgICBpZiAocHJvdG8uZW5kKSB7bS5lbmQgPSBHb29nbGVNZWV0TWVldGluZ0RhdGVUaW1lLmZyb21Qcm90byhwcm90by5lbmQpO31cbiAgICAgICAgaWYgKHByb3RvLm9yaWdpbmFsU3RhcnRUaW1lKSB7bS5vcmlnaW5hbFN0YXJ0VGltZSA9IEdvb2dsZU1lZXRNZWV0aW5nRGF0ZVRpbWUuZnJvbVByb3RvKHByb3RvLm9yaWdpbmFsU3RhcnRUaW1lKTt9XG4gICAgICAgIGlmIChwcm90by5yZW1pbmRlcnMpIHttLnJlbWluZGVycyA9IEdvb2dsZU1lZXRNZWV0aW5nUmVtaW5kZXJzLmZyb21Qcm90byhwcm90by5yZW1pbmRlcnMpO31cbiAgICAgICAgaWYgKHByb3RvLnNlcXVlbmNlKSB7bS5zZXF1ZW5jZSA9IHBhcnNlSW50KHByb3RvLnNlcXVlbmNlLCAxMCk7fVxuICAgICAgICBpZiAocHJvdG8uc3RhcnQpIHttLnN0YXJ0ID0gR29vZ2xlTWVldE1lZXRpbmdEYXRlVGltZS5mcm9tUHJvdG8ocHJvdG8uc3RhcnQpO31cbiAgICAgICAgaWYgKHByb3RvLmNyZWF0b3IpIHttLmNyZWF0b3IgPSBHb29nbGVNZWV0TWVldGluZ0NyZWF0b3IuZnJvbVByb3RvKHByb3RvLmNyZWF0b3IpO31cbiAgICAgICAgaWYgKHByb3RvLm9yZ2FuaXplcikge20ub3JnYW5pemVyID0gR29vZ2xlTWVldE1lZXRpbmdPcmdhbml6ZXIuZnJvbVByb3RvKHByb3RvLm9yZ2FuaXplcik7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdvb2dsZU1lZXRNZWV0aW5nSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYW55b25lQ2FuQWRkU2VsZiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYW55b25lQ2FuQWRkU2VsZiddID0gdGhpcy5hbnlvbmVDYW5BZGRTZWxmO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmF0dGVuZGVlcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5hdHRlbmRlZXMgIT09IG51bGwpIHt0b1JldHVyblsnYXR0ZW5kZWVzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmF0dGVuZGVlcyA/ICh0aGlzLmF0dGVuZGVlcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5hdHRlbmRlZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXR0ZW5kZWVzT21pdHRlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYXR0ZW5kZWVzT21pdHRlZCddID0gdGhpcy5hdHRlbmRlZXNPbWl0dGVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbG9ySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvbG9ySWQnXSA9IHRoaXMuY29sb3JJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25mZXJlbmNlRGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jb25mZXJlbmNlRGF0YSAhPT0gbnVsbCkge3RvUmV0dXJuWydjb25mZXJlbmNlRGF0YSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5jb25mZXJlbmNlRGF0YSA/ICh0aGlzLmNvbmZlcmVuY2VEYXRhIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmNvbmZlcmVuY2VEYXRhO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbiddID0gdGhpcy5kZXNjcmlwdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbmQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZW5kICE9PSBudWxsKSB7dG9SZXR1cm5bJ2VuZCddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5lbmQgPyAodGhpcy5lbmQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZW5kO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVuZFRpbWVVbnNwZWNpZmllZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW5kVGltZVVuc3BlY2lmaWVkJ10gPSB0aGlzLmVuZFRpbWVVbnNwZWNpZmllZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5ldGFnICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydldGFnJ10gPSB0aGlzLmV0YWc7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWNhbFVpZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWNhbFVpZCddID0gdGhpcy5pY2FsVWlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5raW5kICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydraW5kJ10gPSB0aGlzLmtpbmQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubG9jYXRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2xvY2F0aW9uJ10gPSB0aGlzLmxvY2F0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmxvY2tlZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbG9ja2VkJ10gPSB0aGlzLmxvY2tlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcmlnaW5hbFN0YXJ0VGltZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5vcmlnaW5hbFN0YXJ0VGltZSAhPT0gbnVsbCkge3RvUmV0dXJuWydvcmlnaW5hbFN0YXJ0VGltZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5vcmlnaW5hbFN0YXJ0VGltZSA/ICh0aGlzLm9yaWdpbmFsU3RhcnRUaW1lIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm9yaWdpbmFsU3RhcnRUaW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlY3VycmVuY2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JlY3VycmVuY2UnXSA9IHRoaXMucmVjdXJyZW5jZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZWN1cnJpbmdNZWV0aW5nSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3JlY3VycmluZ01lZXRpbmdJZCddID0gdGhpcy5yZWN1cnJpbmdNZWV0aW5nSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVtaW5kZXJzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnJlbWluZGVycyAhPT0gbnVsbCkge3RvUmV0dXJuWydyZW1pbmRlcnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucmVtaW5kZXJzID8gKHRoaXMucmVtaW5kZXJzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnJlbWluZGVyczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zZXF1ZW5jZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2VxdWVuY2UnXSA9IHRoaXMuc2VxdWVuY2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3RhcnQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuc3RhcnQgIT09IG51bGwpIHt0b1JldHVyblsnc3RhcnQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuc3RhcnQgPyAodGhpcy5zdGFydCBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5zdGFydDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdGF0dXMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N0YXR1cyddID0gdGhpcy5zdGF0dXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3VtbWFyeSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3VtbWFyeSddID0gdGhpcy5zdW1tYXJ5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRyYW5zcGFyZW5jeSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndHJhbnNwYXJlbmN5J10gPSB0aGlzLnRyYW5zcGFyZW5jeTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy52aXNpYmlsaXR5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd2aXNpYmlsaXR5J10gPSB0aGlzLnZpc2liaWxpdHk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaGFuZ291dExpbmsgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2hhbmdvdXRMaW5rJ10gPSB0aGlzLmhhbmdvdXRMaW5rO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmh0bWxMaW5rICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydodG1sTGluayddID0gdGhpcy5odG1sTGluazt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jcmVhdGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjcmVhdGVkJ10gPSB0aGlzLmNyZWF0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3JlYXRvciAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5jcmVhdG9yICE9PSBudWxsKSB7dG9SZXR1cm5bJ2NyZWF0b3InXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuY3JlYXRvciA/ICh0aGlzLmNyZWF0b3IgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY3JlYXRvcjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51cGRhdGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd1cGRhdGVkJ10gPSB0aGlzLnVwZGF0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JnYW5pemVyICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLm9yZ2FuaXplciAhPT0gbnVsbCkge3RvUmV0dXJuWydvcmdhbml6ZXInXSA9ICd0b0FwaUpzb24nIGluIHRoaXMub3JnYW5pemVyID8gKHRoaXMub3JnYW5pemVyIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLm9yZ2FuaXplcjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHb29nbGVNZWV0TWVldGluZ0F0dGVuZGVlIGltcGxlbWVudHMgaS5Hb29nbGVNZWV0TWVldGluZ0F0dGVuZGVlSW50ZXJmYWNlIHtcbiAgICBhZGRpdGlvbmFsR3Vlc3RzOiBudW1iZXI7XG4gICAgY29tbWVudDogc3RyaW5nO1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgICBpZDogc3RyaW5nO1xuICAgIG9wdGlvbmFsOiBib29sZWFuO1xuICAgIG9yZ2FuaXplcjogYm9vbGVhbjtcbiAgICByZXNvdXJjZTogYm9vbGVhbjtcbiAgICByZXNwb25zZVN0YXR1czogc3RyaW5nO1xuICAgIHNlbGY6IGJvb2xlYW47XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHb29nbGVNZWV0TWVldGluZ0F0dGVuZGVlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR29vZ2xlTWVldE1lZXRpbmdBdHRlbmRlZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5hZGRpdGlvbmFsR3Vlc3RzKSB7bS5hZGRpdGlvbmFsR3Vlc3RzID0gcGFyc2VJbnQocHJvdG8uYWRkaXRpb25hbEd1ZXN0cywgMTApO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0TWVldGluZ0F0dGVuZGVlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWRkaXRpb25hbEd1ZXN0cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWRkaXRpb25hbEd1ZXN0cyddID0gdGhpcy5hZGRpdGlvbmFsR3Vlc3RzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbW1lbnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvbW1lbnQnXSA9IHRoaXMuY29tbWVudDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kaXNwbGF5TmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGlzcGxheU5hbWUnXSA9IHRoaXMuZGlzcGxheU5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW1haWwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2VtYWlsJ10gPSB0aGlzLmVtYWlsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25hbCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnb3B0aW9uYWwnXSA9IHRoaXMub3B0aW9uYWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMub3JnYW5pemVyICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydvcmdhbml6ZXInXSA9IHRoaXMub3JnYW5pemVyO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnJlc291cmNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydyZXNvdXJjZSddID0gdGhpcy5yZXNvdXJjZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5yZXNwb25zZVN0YXR1cyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncmVzcG9uc2VTdGF0dXMnXSA9IHRoaXMucmVzcG9uc2VTdGF0dXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2VsZiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2VsZiddID0gdGhpcy5zZWxmO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdvb2dsZU1lZXRNZWV0aW5nQ3JlYXRvciBpbXBsZW1lbnRzIGkuR29vZ2xlTWVldE1lZXRpbmdDcmVhdG9ySW50ZXJmYWNlIHtcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgICBzZWxmOiBib29sZWFuO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR29vZ2xlTWVldE1lZXRpbmdDcmVhdG9yIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgR29vZ2xlTWVldE1lZXRpbmdDcmVhdG9yKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0TWVldGluZ0NyZWF0b3JJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kaXNwbGF5TmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGlzcGxheU5hbWUnXSA9IHRoaXMuZGlzcGxheU5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW1haWwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2VtYWlsJ10gPSB0aGlzLmVtYWlsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zZWxmICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzZWxmJ10gPSB0aGlzLnNlbGY7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR29vZ2xlTWVldE1lZXRpbmdEYXRlVGltZSBpbXBsZW1lbnRzIGkuR29vZ2xlTWVldE1lZXRpbmdEYXRlVGltZUludGVyZmFjZSB7XG4gICAgZGF0ZTogc3RyaW5nO1xuICAgIGRhdGVUaW1lOiBzdHJpbmc7XG4gICAgdGltZVpvbmU6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEdvb2dsZU1lZXRNZWV0aW5nRGF0ZVRpbWUge1xuICAgICAgICBsZXQgbSA9IG5ldyBHb29nbGVNZWV0TWVldGluZ0RhdGVUaW1lKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0TWVldGluZ0RhdGVUaW1lSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGF0ZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGF0ZSddID0gdGhpcy5kYXRlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRhdGVUaW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkYXRlVGltZSddID0gdGhpcy5kYXRlVGltZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50aW1lWm9uZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGltZVpvbmUnXSA9IHRoaXMudGltZVpvbmU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR29vZ2xlTWVldE1lZXRpbmdPcmdhbml6ZXIgaW1wbGVtZW50cyBpLkdvb2dsZU1lZXRNZWV0aW5nT3JnYW5pemVySW50ZXJmYWNlIHtcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgICBzZWxmOiBib29sZWFuO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR29vZ2xlTWVldE1lZXRpbmdPcmdhbml6ZXIge1xuICAgICAgICBsZXQgbSA9IG5ldyBHb29nbGVNZWV0TWVldGluZ09yZ2FuaXplcigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR29vZ2xlTWVldE1lZXRpbmdPcmdhbml6ZXJJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kaXNwbGF5TmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGlzcGxheU5hbWUnXSA9IHRoaXMuZGlzcGxheU5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW1haWwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2VtYWlsJ10gPSB0aGlzLmVtYWlsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zZWxmICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzZWxmJ10gPSB0aGlzLnNlbGY7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR29vZ2xlTWVldE1lZXRpbmdSZW1pbmRlciBpbXBsZW1lbnRzIGkuR29vZ2xlTWVldE1lZXRpbmdSZW1pbmRlckludGVyZmFjZSB7XG4gICAgbWV0aG9kOiBzdHJpbmc7XG4gICAgbWludXRlczogbnVtYmVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR29vZ2xlTWVldE1lZXRpbmdSZW1pbmRlciB7XG4gICAgICAgIGxldCBtID0gbmV3IEdvb2dsZU1lZXRNZWV0aW5nUmVtaW5kZXIoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8ubWludXRlcykge20ubWludXRlcyA9IHBhcnNlSW50KHByb3RvLm1pbnV0ZXMsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR29vZ2xlTWVldE1lZXRpbmdSZW1pbmRlckludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1ldGhvZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWV0aG9kJ10gPSB0aGlzLm1ldGhvZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5taW51dGVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtaW51dGVzJ10gPSB0aGlzLm1pbnV0ZXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR29vZ2xlTWVldE1lZXRpbmdSZW1pbmRlcnMgaW1wbGVtZW50cyBpLkdvb2dsZU1lZXRNZWV0aW5nUmVtaW5kZXJzSW50ZXJmYWNlIHtcbiAgICBvdmVycmlkZXM6IEdvb2dsZU1lZXRNZWV0aW5nUmVtaW5kZXJbXTtcbiAgICB1c2VEZWZhdWx0OiBib29sZWFuO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR29vZ2xlTWVldE1lZXRpbmdSZW1pbmRlcnMge1xuICAgICAgICBsZXQgbSA9IG5ldyBHb29nbGVNZWV0TWVldGluZ1JlbWluZGVycygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5vdmVycmlkZXMpIHttLm92ZXJyaWRlcyA9IHByb3RvLm92ZXJyaWRlcy5tYXAoR29vZ2xlTWVldE1lZXRpbmdSZW1pbmRlci5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5Hb29nbGVNZWV0TWVldGluZ1JlbWluZGVyc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm92ZXJyaWRlcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5vdmVycmlkZXMgIT09IG51bGwpIHt0b1JldHVyblsnb3ZlcnJpZGVzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLm92ZXJyaWRlcyA/ICh0aGlzLm92ZXJyaWRlcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5vdmVycmlkZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudXNlRGVmYXVsdCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndXNlRGVmYXVsdCddID0gdGhpcy51c2VEZWZhdWx0O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
|
|
@@ -148,4 +148,4 @@ export class Service {
|
|
|
148
148
|
return toReturn;
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBzLWFuZC1zZXJ2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21lZXRpbmdzX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL2dyb3Vwcy1hbmQtc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE9BQVksRUFBRSxLQUFhO0lBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxPQUFPLGdDQUFnQztJQWF6QyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxnQ0FBZ0MsRUFBRSxDQUFDO1FBQy9DLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZLE1BQW9EO1FBQzVELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQUM7UUFDL0QsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FBQztRQUNyRSxJQUFJLE9BQU8sSUFBSSxDQUFD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Q0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQUM7UUFDdk0sSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FBQztRQUNqRixJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQ3ZGLElBQUksT0FBTyxJQUFJLENBQUMscUJBQXFCLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1NBQUM7UUFDeEgsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBFdmVudEdyb3VwQW5kU2VydmljZUFzc29jaWF0aW9ucyBpbXBsZW1lbnRzIGkuRXZlbnRHcm91cEFuZFNlcnZpY2VBc3NvY2lhdGlvbnNJbnRlcmZhY2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGV2ZW50VHlwZTogc3RyaW5nO1xuICAgIGlkZW50aWZpZXI6IHN0cmluZztcbiAgICBpc0VkaXRhYmxlOiBib29sZWFuO1xuICAgIGNyZWF0b3JVc2VyTmFtZTogc3RyaW5nO1xuICAgIGNhbGVuZGFySWQ6IHN0cmluZztcbiAgICBoZXhDb2xvcjogc3RyaW5nO1xuICAgIGR1cmF0aW9uOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBib29raW5nVXJsOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBFdmVudEdyb3VwQW5kU2VydmljZUFzc29jaWF0aW9ucyB7XG4gICAgICAgIGxldCBtID0gbmV3IEV2ZW50R3JvdXBBbmRTZXJ2aWNlQXNzb2NpYXRpb25zKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5FdmVudEdyb3VwQW5kU2VydmljZUFzc29jaWF0aW9uc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyduYW1lJ10gPSB0aGlzLm5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXZlbnRUeXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydldmVudFR5cGUnXSA9IHRoaXMuZXZlbnRUeXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkZW50aWZpZXIgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkZW50aWZpZXInXSA9IHRoaXMuaWRlbnRpZmllcjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pc0VkaXRhYmxlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpc0VkaXRhYmxlJ10gPSB0aGlzLmlzRWRpdGFibGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3JlYXRvclVzZXJOYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjcmVhdG9yVXNlck5hbWUnXSA9IHRoaXMuY3JlYXRvclVzZXJOYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNhbGVuZGFySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NhbGVuZGFySWQnXSA9IHRoaXMuY2FsZW5kYXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5oZXhDb2xvciAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaGV4Q29sb3InXSA9IHRoaXMuaGV4Q29sb3I7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZHVyYXRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2R1cmF0aW9uJ10gPSB0aGlzLmR1cmF0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbiddID0gdGhpcy5kZXNjcmlwdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5ib29raW5nVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydib29raW5nVXJsJ10gPSB0aGlzLmJvb2tpbmdVcmw7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR3JvdXAgaW1wbGVtZW50cyBpLkdyb3VwSW50ZXJmYWNlIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIHNsdWc6IHN0cmluZztcbiAgICBpc1Bpbm5lZDogYm9vbGVhbjtcbiAgICBhc3NvY2lhdGlvbnM6IEV2ZW50R3JvdXBBbmRTZXJ2aWNlQXNzb2NpYXRpb25zW107XG4gICAgaGV4Q29sb3I6IHN0cmluZztcbiAgICBib29raW5nVXJsOiBzdHJpbmc7XG4gICAgaXNCYXRjaEJvb2tpbmdFbmFibGVkOiBib29sZWFuO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR3JvdXAge1xuICAgICAgICBsZXQgbSA9IG5ldyBHcm91cCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5hc3NvY2lhdGlvbnMpIHttLmFzc29jaWF0aW9ucyA9IHByb3RvLmFzc29jaWF0aW9ucy5tYXAoRXZlbnRHcm91cEFuZFNlcnZpY2VBc3NvY2lhdGlvbnMuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR3JvdXBJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbiddID0gdGhpcy5kZXNjcmlwdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zbHVnICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzbHVnJ10gPSB0aGlzLnNsdWc7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXNQaW5uZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lzUGlubmVkJ10gPSB0aGlzLmlzUGlubmVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFzc29jaWF0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5hc3NvY2lhdGlvbnMgIT09IG51bGwpIHt0b1JldHVyblsnYXNzb2NpYXRpb25zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmFzc29jaWF0aW9ucyA/ICh0aGlzLmFzc29jaWF0aW9ucyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5hc3NvY2lhdGlvbnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaGV4Q29sb3IgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2hleENvbG9yJ10gPSB0aGlzLmhleENvbG9yO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJvb2tpbmdVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Jvb2tpbmdVcmwnXSA9IHRoaXMuYm9va2luZ1VybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pc0JhdGNoQm9va2luZ0VuYWJsZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lzQmF0Y2hCb29raW5nRW5hYmxlZCddID0gdGhpcy5pc0JhdGNoQm9va2luZ0VuYWJsZWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VydmljZSBpbXBsZW1lbnRzIGkuU2VydmljZUludGVyZmFjZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgaXNQaW5uZWQ6IGJvb2xlYW47XG4gICAgYXNzb2NpYXRpb25zOiBFdmVudEdyb3VwQW5kU2VydmljZUFzc29jaWF0aW9uc1tdO1xuICAgIGhleENvbG9yOiBzdHJpbmc7XG4gICAgYm9va2luZ1VybDogc3RyaW5nO1xuICAgIGlzQmF0Y2hCb29raW5nRW5hYmxlZDogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFNlcnZpY2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBTZXJ2aWNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmFzc29jaWF0aW9ucykge20uYXNzb2NpYXRpb25zID0gcHJvdG8uYXNzb2NpYXRpb25zLm1hcChFdmVudEdyb3VwQW5kU2VydmljZUFzc29jaWF0aW9ucy5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5TZXJ2aWNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ25hbWUnXSA9IHRoaXMubmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVzY3JpcHRpb24nXSA9IHRoaXMuZGVzY3JpcHRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2x1ZyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2x1ZyddID0gdGhpcy5zbHVnO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlzUGlubmVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpc1Bpbm5lZCddID0gdGhpcy5pc1Bpbm5lZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hc3NvY2lhdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuYXNzb2NpYXRpb25zICE9PSBudWxsKSB7dG9SZXR1cm5bJ2Fzc29jaWF0aW9ucyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5hc3NvY2lhdGlvbnMgPyAodGhpcy5hc3NvY2lhdGlvbnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYXNzb2NpYXRpb25zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmhleENvbG9yICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydoZXhDb2xvciddID0gdGhpcy5oZXhDb2xvcjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5ib29raW5nVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydib29raW5nVXJsJ10gPSB0aGlzLmJvb2tpbmdVcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXNCYXRjaEJvb2tpbmdFbmFibGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpc0JhdGNoQm9va2luZ0VuYWJsZWQnXSA9IHRoaXMuaXNCYXRjaEJvb2tpbmdFbmFibGVkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBzLWFuZC1zZXJ2aWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21lZXRpbmdzX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL2dyb3Vwcy1hbmQtc2VydmljZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxVQUFVLGlCQUFpQixDQUFJLE9BQVksRUFBRSxLQUFhO0lBQzlELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSxPQUFPLGdDQUFnQztJQWF6QyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSxnQ0FBZ0MsRUFBRSxDQUFDO1FBQy9DLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZLE1BQW9EO1FBQzVELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsRUFBRSxLQUFLLFdBQVcsRUFBRTtZQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQUM7UUFDL0QsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FBQztRQUNyRSxJQUFJLE9BQU8sSUFBSSxDQUFD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Q0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQUM7UUFDdk0sSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FBQztRQUNqRixJQUFJLE9BQU8sSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXLEVBQUU7WUFBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUFDO1FBQ3ZGLElBQUksT0FBTyxJQUFJLENBQUMscUJBQXFCLEtBQUssV0FBVyxFQUFFO1lBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1NBQUM7UUFDeEgsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBPYmplY3RzLlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgKiBhcyBpIGZyb20gJy4uL2ludGVyZmFjZXMvZ3JvdXBzLWFuZC1zZXJ2aWNlcy5pbnRlcmZhY2UnO1xuXG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBFdmVudEdyb3VwQW5kU2VydmljZUFzc29jaWF0aW9ucyBpbXBsZW1lbnRzIGkuRXZlbnRHcm91cEFuZFNlcnZpY2VBc3NvY2lhdGlvbnNJbnRlcmZhY2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGV2ZW50VHlwZTogc3RyaW5nO1xuICAgIGlkZW50aWZpZXI6IHN0cmluZztcbiAgICBpc0VkaXRhYmxlOiBib29sZWFuO1xuICAgIGNyZWF0b3JVc2VyTmFtZTogc3RyaW5nO1xuICAgIGNhbGVuZGFySWQ6IHN0cmluZztcbiAgICBoZXhDb2xvcjogc3RyaW5nO1xuICAgIGR1cmF0aW9uOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBib29raW5nVXJsOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBFdmVudEdyb3VwQW5kU2VydmljZUFzc29jaWF0aW9ucyB7XG4gICAgICAgIGxldCBtID0gbmV3IEV2ZW50R3JvdXBBbmRTZXJ2aWNlQXNzb2NpYXRpb25zKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5FdmVudEdyb3VwQW5kU2VydmljZUFzc29jaWF0aW9uc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5uYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyduYW1lJ10gPSB0aGlzLm5hbWU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZXZlbnRUeXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydldmVudFR5cGUnXSA9IHRoaXMuZXZlbnRUeXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkZW50aWZpZXIgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkZW50aWZpZXInXSA9IHRoaXMuaWRlbnRpZmllcjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pc0VkaXRhYmxlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpc0VkaXRhYmxlJ10gPSB0aGlzLmlzRWRpdGFibGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3JlYXRvclVzZXJOYW1lICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjcmVhdG9yVXNlck5hbWUnXSA9IHRoaXMuY3JlYXRvclVzZXJOYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNhbGVuZGFySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NhbGVuZGFySWQnXSA9IHRoaXMuY2FsZW5kYXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5oZXhDb2xvciAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaGV4Q29sb3InXSA9IHRoaXMuaGV4Q29sb3I7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZHVyYXRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2R1cmF0aW9uJ10gPSB0aGlzLmR1cmF0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbiddID0gdGhpcy5kZXNjcmlwdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5ib29raW5nVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydib29raW5nVXJsJ10gPSB0aGlzLmJvb2tpbmdVcmw7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR3JvdXAgaW1wbGVtZW50cyBpLkdyb3VwSW50ZXJmYWNlIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIHNsdWc6IHN0cmluZztcbiAgICBpc1Bpbm5lZDogYm9vbGVhbjtcbiAgICBhc3NvY2lhdGlvbnM6IEV2ZW50R3JvdXBBbmRTZXJ2aWNlQXNzb2NpYXRpb25zW107XG4gICAgaGV4Q29sb3I6IHN0cmluZztcbiAgICBib29raW5nVXJsOiBzdHJpbmc7XG4gICAgaXNCYXRjaEJvb2tpbmdFbmFibGVkOiBib29sZWFuO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR3JvdXAge1xuICAgICAgICBsZXQgbSA9IG5ldyBHcm91cCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5hc3NvY2lhdGlvbnMpIHttLmFzc29jaWF0aW9ucyA9IHByb3RvLmFzc29jaWF0aW9ucy5tYXAoRXZlbnRHcm91cEFuZFNlcnZpY2VBc3NvY2lhdGlvbnMuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR3JvdXBJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbiddID0gdGhpcy5kZXNjcmlwdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zbHVnICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzbHVnJ10gPSB0aGlzLnNsdWc7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXNQaW5uZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lzUGlubmVkJ10gPSB0aGlzLmlzUGlubmVkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFzc29jaWF0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5hc3NvY2lhdGlvbnMgIT09IG51bGwpIHt0b1JldHVyblsnYXNzb2NpYXRpb25zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmFzc29jaWF0aW9ucyA/ICh0aGlzLmFzc29jaWF0aW9ucyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5hc3NvY2lhdGlvbnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaGV4Q29sb3IgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2hleENvbG9yJ10gPSB0aGlzLmhleENvbG9yO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJvb2tpbmdVcmwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Jvb2tpbmdVcmwnXSA9IHRoaXMuYm9va2luZ1VybDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pc0JhdGNoQm9va2luZ0VuYWJsZWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lzQmF0Y2hCb29raW5nRW5hYmxlZCddID0gdGhpcy5pc0JhdGNoQm9va2luZ0VuYWJsZWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VydmljZSBpbXBsZW1lbnRzIGkuU2VydmljZUludGVyZmFjZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICBzbHVnOiBzdHJpbmc7XG4gICAgaXNQaW5uZWQ6IGJvb2xlYW47XG4gICAgYXNzb2NpYXRpb25zOiBFdmVudEdyb3VwQW5kU2VydmljZUFzc29jaWF0aW9uc1tdO1xuICAgIGhleENvbG9yOiBzdHJpbmc7XG4gICAgYm9va2luZ1VybDogc3RyaW5nO1xuICAgIGlzQmF0Y2hCb29raW5nRW5hYmxlZDogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFNlcnZpY2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBTZXJ2aWNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmFzc29jaWF0aW9ucykge20uYXNzb2NpYXRpb25zID0gcHJvdG8uYXNzb2NpYXRpb25zLm1hcChFdmVudEdyb3VwQW5kU2VydmljZUFzc29jaWF0aW9ucy5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5TZXJ2aWNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm5hbWUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ25hbWUnXSA9IHRoaXMubmFtZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVzY3JpcHRpb24nXSA9IHRoaXMuZGVzY3JpcHRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2x1ZyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2x1ZyddID0gdGhpcy5zbHVnO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlzUGlubmVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpc1Bpbm5lZCddID0gdGhpcy5pc1Bpbm5lZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hc3NvY2lhdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuYXNzb2NpYXRpb25zICE9PSBudWxsKSB7dG9SZXR1cm5bJ2Fzc29jaWF0aW9ucyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5hc3NvY2lhdGlvbnMgPyAodGhpcy5hc3NvY2lhdGlvbnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYXNzb2NpYXRpb25zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmhleENvbG9yICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydoZXhDb2xvciddID0gdGhpcy5oZXhDb2xvcjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5ib29raW5nVXJsICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydib29raW5nVXJsJ10gPSB0aGlzLmJvb2tpbmdVcmw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaXNCYXRjaEJvb2tpbmdFbmFibGVkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpc0JhdGNoQm9va2luZ0VuYWJsZWQnXSA9IHRoaXMuaXNCYXRjaEJvb2tpbmdFbmFibGVkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
|
|
@@ -16,7 +16,7 @@ export { AvailableTimeSlotsRequest, AvailableTimeSlotsResponse, BookMeetingExter
|
|
|
16
16
|
export { FieldMask, } from './field-mask';
|
|
17
17
|
export { IsCalendarConfiguredRequestApplicationContextPropertiesEntry, BuildHostIdRequestApplicationContextPropertiesEntry, EnsurePersonalCalendarExistsRequestApplicationContextPropertiesEntry, AvailabilityRule, AvailabilityRuleList, BuildHostIdRequest, BuildHostIdResponse, GetMeetingTypesForCalendarsResponseCalendarMeetingTypesMapEntry, CalendarMigrationResponse, CancelMeetingRequest, CheckEventTypeSlugExistRequest, CheckEventTypeSlugExistResponse, CheckGroupOrServiceSlugExistRequest, CheckGroupOrServiceSlugExistResponse, CreateAvailabilityRequest, CreateAvailabilityResponse, CreateCalendarRequest, CreateCalendarResponse, CreateDefaultMeetingTypesRequest, CreateGroupRequest, CreateGroupResponse, CreateMeetingTypeRequest, CreateMeetingTypeResponse, CreateServiceRequest, CreateServiceResponse, DeleteAvailabilityRequest, DeleteGroupRequest, DeleteMeetingTypeRequest, DeleteServiceRequest, DoesCalendarExistRequest, DoesCalendarExistResponse, EnsureGroupCalendarsExistRequest, EnsureGroupCalendarsExistResponse, EnsurePersonalCalendarExistsRequest, EnsurePersonalCalendarExistsResponse, EnsureSessionEventCalendarsExistRequest, EnsureSessionEventCalendarsExistResponse, EventTypeSummary, ListAvailabilityRequestFilters, ListBookedMeetingsRequestFilters, GetEntityAssociationRequest, GetEntityAssociationResponse, GetEventTypeByIdRequest, GetEventTypeByIdResponse, GetHostMeetingRequest, GetHostMeetingResponse, GetHostPreferencesRequest, GetHostPreferencesResponse, GetHostsForCalendarRequest, GetHostsForCalendarResponse, GetMeetingTypesForCalendarsRequest, GetMeetingTypesForCalendarsResponse, HostBookMeetingRequest, HostBookMeetingResponse, HostBookSessionRequest, HostBookSessionResponse, HostDeleteAttendeesRequest, HostDetails, HostGetCalendarRequest, HostGetCalendarResponse, HostGetMeetingTypeRequest, HostGetMeetingTypeResponse, HostListMeetingTypesRequest, HostListMeetingTypesResponse, GetHostsForCalendarResponseHostUserAvailabilityRuleEntry, IsCalendarConfiguredRequest, IsCalendarConfiguredResponse, IsHostConfiguredRequest, IsHostConfiguredResponse, ListAttendeesRequest, ListAttendeesResponse, ListAvailabilityRequest, ListAvailabilityResponse, ListAvailableTimeslotsForRecurringSessionRequest, ListAvailableTimeslotsForRecurringSessionResponse, ListAvailableTimeslotsForSessionRequest, ListAvailableTimeslotsForSessionResponse, ListBookedMeetingsRequest, ListBookedMeetingsResponse, ListBookingTypesForAIRequest, ListBookingTypesForAIResponse, ListEventTypesForMultipleCalendarsRequest, ListEventTypesForMultipleCalendarsResponse, ListGroupsRequest, ListGroupsResponse, ListServicesRequest, ListServicesResponse, Meeting, MeetingTypeList, UpdateMeetingMetadataRequestMetadataEntry, MeetingMetadataEntry, RecurrenceConfig, RecurrenceEnd, RescheduleMeetingRequest, SendMeetingRequestEmailRequest, SessionAttendees, SetGeneralAvailabilityRequest, TimeSlotsByWeekDay, UpdateAvailabilityRequest, UpdateCalendarRequest, UpdateGroupRequest, UpdateHostPreferencesRequest, UpdateMeetingMetadataRequest, UpdateMeetingTypeRequest, UpdateServiceRequest, WeekdayAvailability, } from './meeting-host';
|
|
18
18
|
export { Access, MCPOptions, } from './annotations';
|
|
19
|
-
export { EnumSchema, ResponseExamplesEntry,
|
|
19
|
+
export { EnumSchema, ResponseExamplesEntry, InfoExtensionsEntry, SwaggerExtensionsEntry, SecuritySchemeExtensionsEntry, TagExtensionsEntry, OperationExtensionsEntry, JSONSchemaExtensionsEntry, EnumSchemaExtensionsEntry, ResponseExtensionsEntry, ExternalDocumentation, JSONSchemaFieldConfiguration, Header, HeaderParameter, ResponseHeadersEntry, Info, JSONSchema, License, Operation, Parameters, Response, OperationResponsesEntry, SwaggerResponsesEntry, Schema, ScopesScopeEntry, Scopes, SecurityDefinitions, SecurityDefinitionsSecurityEntry, SecurityRequirement, SecurityRequirementSecurityRequirementEntry, SecurityRequirementSecurityRequirementValue, SecurityScheme, Swagger, Tag, } from './openapiv2';
|
|
20
20
|
export { TimeOfDay, } from './timeofday';
|
|
21
21
|
export { DateTime, TimeZone, } from './datetime';
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tZWV0aW5nc19zZGsvc3JjL2xpYi9faW50ZXJuYWwvb2JqZWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsMkJBQTJCO0FBQzNCLGdCQUFnQjtBQUNoQixFQUFFO0FBQ0YsaUJBQWlCO0FBQ2pCLG9DQUFvQztBQUNwQyxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsa0JBQWtCLEdBQ3JCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxFQUNILHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNqQixNQUFNLFFBQVEsQ0FBQztBQUVoQixPQUFPLEVBQ0gsd0JBQXdCLEVBQ3hCLGlDQUFpQyxFQUNqQyw0QkFBNEIsRUFDNUIsK0JBQStCLEVBQy9CLGlDQUFpQyxFQUNqQyw4QkFBOEIsRUFDOUIsK0JBQStCLEVBQy9CLG9CQUFvQixFQUNwQiw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLGlCQUFpQixFQUNqQix5QkFBeUIsRUFDekIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLDBCQUEwQixHQUM3QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0gsTUFBTSxFQUNOLE9BQU8sRUFDUCwrQkFBK0IsRUFDL0IsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEVBQ1IsT0FBTyxFQUNQLGNBQWMsRUFDZCxJQUFJLEVBQ0osZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQ0gs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QUFPLEVBRUgsVUFBVSxFQUNWLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3QixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQiw0QkFBNEIsRUFDNUIsTUFBTSxFQUNOLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsSUFBSSxFQUNKLFVBQVUsRUFDVixPQUFPLEVBQ1AsU0FBUyxFQUNULFVBQVUsRUFDVixRQUFRLEVBQ1IsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixtQkFBbUIsRUFDbkIsZ0NBQWdDLEVBQ2hDLG1CQUFtQixFQUNuQiwyQ0FBMkMsRUFDM0MsMkNBQTJDLEVBQzNDLGNBQWMsRUFDZCxPQUFPLEVBQ1AsR0FBRyxHQUNOLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxTQUFTLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEdBQUcsTUFBTSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMgSW5kZXguXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmV4cG9ydCB7XG4gICAgTWVldGluZ1NvdXJjZUluZm8sXG4gICAgTWVldGluZ1NvdXJjZUxpc3RSZXF1ZXN0LFxuICAgIE1lZXRpbmdTb3VyY2VMaXN0UmVzcG9uc2UsXG4gICAgTWVldGluZ1NvdXJjZVF1ZXJ5LFxufSBmcm9tICcuL21lZXRpbmctc291cmNlJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVab29tTWVldGluZ1JlcXVlc3QsXG4gICAgQ3JlYXRlWm9vbU1lZXRpbmdSZXNwb25zZSxcbiAgICBab29tTWVldGluZ1JlY3VycmVuY2UsXG4gICAgWm9vbU1lZXRpbmdTZXR0aW5ncyxcbiAgICBab29tTWVldGluZ1RyYWNraW5nRmllbGQsXG4gICAgWm9vbU9jY3VycmVuY2UsXG59IGZyb20gJy4vem9vbSc7XG5cbmV4cG9ydCB7XG4gICAgR29vZ2xlTWVldENvbmZlcmVuY2VEYXRhLFxuICAgIEdvb2dsZU1lZXRDb25mZXJlbmNlUmVxdWVzdFN0YXR1cyxcbiAgICBHb29nbGVNZWV0Q29uZmVyZW5jZVNvbHV0aW9uLFxuICAgIEdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb25LZXksXG4gICAgR29vZ2xlTWVldENyZWF0ZUNvbmZlcmVuY2VSZXF1ZXN0LFxuICAgIEdvb2dsZU1lZXRDcmVhdGVNZWV0aW5nUmVxdWVzdCxcbiAgICBHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1Jlc3BvbnNlLFxuICAgIEdvb2dsZU1lZXRFbnRyeVBvaW50LFxuICAgIEdvb2dsZU1lZXRMaXN0TWVldGluZ3NSZXF1ZXN0LFxuICAgIEdvb2dsZU1lZXRMaXN0TWVldGluZ3NSZXNwb25zZSxcbiAgICBHb29nbGVNZWV0TWVldGluZyxcbiAgICBHb29nbGVNZWV0TWVldGluZ0F0dGVuZGVlLFxuICAgIEdvb2dsZU1lZXRNZWV0aW5nQ3JlYXRvcixcbiAgICBHb29nbGVNZWV0TWVldGluZ0RhdGVUaW1lLFxuICAgIEdvb2dsZU1lZXRNZWV0aW5nT3JnYW5pemVyLFxuICAgIEdvb2dsZU1lZXRNZWV0aW5nUmVtaW5kZXIsXG4gICAgR29vZ2xlTWVldE1lZXRpbmdSZW1pbmRlcnMsXG59IGZyb20gJy4vZ29vZ2xlLW1lZXQnO1xuXG5leHBvcnQge1xuICAgIEFuc3dlcixcbiAgICBBbnN3ZXJzLFxuICAgIENhbGVuZGFyQXBwbGljYXRpb25Db250ZXh0RW50cnksXG4gICAgQXR0YWNobWVudCxcbiAgICBBdHRlbmRlZSxcbiAgICBDYWxlbmRhcixcbiAgICBDb250YWN0LFxuICAgIEVtYWlsc1RvRGVsZXRlLFxuICAgIEhvc3QsXG4gICAgSG9zdE9yZGVyRGV0YWlscyxcbiAgICBIb3N0VXNlcixcbiAgICBJc29EYXRlVGltZVJhbmdlLFxuICAgIFBhZ2VkUmVxdWVzdE9wdGlvbnMsXG4gICAgUGFnZWRSZXNwb25zZU1ldGFkYXRhLFxuICAgIFBob25lRmllbGRzLFxuICAgIFByZWZlcmVuY2VzLFxuICAgIFRpbWVSYW5nZSxcbn0gZnJvbSAnLi9zaGFyZWQnO1xuXG5leHBvcnQge1xuICAgIERhdGVSYW5nZSxcbn0gZnJvbSAnLi9kYXRlLXJhbmdlJztcblxuZXhwb3J0IHtcbiAgICBCb29raW5nRXZlbnRGb3JBSSxcbiAgICBFdmVudFR5cGVEYXRlUmFuZ2UsXG4gICAgRmllbGQsXG4gICAgRm9ybSxcbiAgICBNZWV0aW5nVHlwZSxcbiAgICBSZWdpc3RyYXRpb25DdXRPZmYsXG4gICAgUmVsYXRpdmVEYXRlUmFuZ2UsXG59IGZyb20gJy4vbWVldGluZy10eXBlJztcblxuZXhwb3J0IHtcbiAgICBFdmVudEdyb3VwQW5kU2VydmljZUFzc29jaWF0aW9ucyxcbiAgICBHcm91cCxcbiAgICBTZXJ2aWNlLFxufSBmcm9tICcuL2dyb3Vwcy1hbmQtc2VydmljZXMnO1xuXG5leHBvcnQge1xuICAgIEJhdGNoQm9va2luZ1RhcmdldCxcbiAgICBCYXRjaEV2ZW50VHlwZVRhcmdldCxcbiAgICBCb29rQmF0Y2hNZWV0aW5nUmVxdWVzdCxcbiAgICBCb29rQmF0Y2hNZWV0aW5nUmVzcG9uc2UsXG4gICAgQm9va01lZXRpbmdSZXF1ZXN0LFxuICAgIEJvb2tNZWV0aW5nUmVzcG9uc2UsXG4gICAgQ2FuY2VsQmF0Y2hNZWV0aW5nUmVxdWVzdCxcbiAgICBDaGVja0ZlYXR1cmVGbGFnUmVxdWVzdCxcbiAgICBDaGVja0ZlYXR1cmVGbGFnUmVzcG9uc2UsXG4gICAgR2V0Q2FsZW5kYXJSZXF1ZXN0LFxuICAgIEdldENhbGVuZGFyUmVzcG9uc2UsXG4gICAgR2V0R3JvdXBSZXF1ZXN0LFxuICAgIEdldEdyb3VwUmVzcG9uc2UsXG4gICAgR2V0SG9zdFJlcXVlc3QsXG4gICAgR2V0SG9zdFJlc3BvbnNlLFxuICAgIEdldE1lZXRpbmdDYWxlbmRhckluZm9SZXF1ZXN0LFxuICAgIEdldE1lZXRpbmdDYWxlbmRhckluZm9SZXNwb25zZSxcbiAgICBHZXRNZWV0aW5nVHlwZVJlcXVlc3QsXG4gICAgR2V0TWVldGluZ1R5cGVSZXNwb25zZSxcbiAgICBHZXRTZXJ2aWNlUmVxdWVzdCxcbiAgICBHZXRTZXJ2aWNlUmVzcG9uc2UsXG4gICAgR2V0U2VydmljZVYyUmVxdWVzdCxcbiAgICBHZXRTZXJ2aWNlVjJSZXNwb25zZSxcbiAgICBHZXRTZXNzaW9uSW52aXRlZU1lZXRpbmdJbmZvUmVxdWVzdCxcbiAgICBHZXRTZXNzaW9uSW52aXRlZU1lZXRpbmdJbmZvUmVzcG9uc2UsXG4gICAgR2V0U2Vzc2lvbk1lZXRpbmdSZXF1ZXN0LFxuICAgIEdldFNlc3Npb25NZWV0aW5nUmVzcG9uc2UsXG4gICAgR3Vlc3RDYW5jZWxNZWV0aW5nUmVxdWVzdCxcbiAgICBHdWVzdEdldEJvb2tlZE1lZXRpbmdSZXF1ZXN0LFxuICAgIEd1ZXN0R2V0Qm9va2VkTWVldGluZ1JlcXVlc3RWMixcbiAgICBHdWVzdEdldEJvb2tlZE1lZXRpbmdSZXNwb25zZSxcbiAgICBHdWVzdEdldEJvb2tlZE1lZXRpbmdSZXNwb25zZVYyLFxuICAgIEd1ZXN0SXNIb3N0Q29uZmlndXJlZFJlcXVlc3QsXG4gICAgR3Vlc3RJc0hvc3RDb25maWd1cmVkUmVzcG9uc2UsXG4gICAgR3Vlc3RSZXNjaGVkdWxlTWVldGluZ1JlcXVlc3QsXG4gICAgSW52aXRlZURlcmVnaXN0ZXJTZXNzaW9uTWVldGluZ1JlcXVlc3QsXG4gICAgSW52aXRlZVJlZ2lzdGVyU2Vzc2lvbk1lZXRpbmdSZXF1ZXN0LFxuICAgIExpc3RBdmFpbGFibGVUaW1lU2xvdHNSZXF1ZXN0LFxuICAgIExpc3RBdmFpbGFibGVUaW1lU2xvdHNSZXNwb25zZSxcbiAgICBMaXN0QmF0Y2hBdmFpbGFibGVUaW1lU2xvdHNSZXF1ZXN0LFxuICAgIExpc3RCYXRjaEF2YWlsYWJsZVRpbWVTbG90c1Jlc3BvbnNlLFxuICAgIExpc3RHdWVzdEJvb2tlZE1lZXRpbmdzUmVxdWVzdCxcbiAgICBMaXN0R3Vlc3RCb29rZWRNZWV0aW5nc1Jlc3BvbnNlLFxuICAgIExpc3RNZWV0aW5nVHlwZXNSZXF1ZXN0LFxuICAgIExpc3RNZWV0aW5nVHlwZXNSZXNwb25zZSxcbiAgICBNZWV0aW5nRGV0YWlsLFxuICAgIE1lZXRpbmdTdW1tYXJ5LFxuICAgIEJvb2tCYXRjaE1lZXRpbmdSZXF1ZXN0TWV0YWRhdGFFbnRyeSxcbiAgICBCb29rTWVldGluZ1JlcXVlc3RNZXRhZGF0YUVudHJ5LFxuICAgIFJlZ2lzdGVyU2Vzc2lvblJlcXVlc3QsXG4gICAgUmVzY2hlZHVsZUJhdGNoTWVldGluZ1JlcXVlc3QsXG4gICAgU2VydmljZUV2ZW50VHlwZSxcbiAgICBTZXJ2aWNlR3JvdXAsXG59IGZyb20gJy4vbWVldGluZy1ndWVzdCc7XG5cbmV4cG9ydCB7XG4gICAgQXZhaWxhYmxlVGltZVNsb3RzUmVxdWVzdCxcbiAgICBBdmFpbGFibGVUaW1lU2xvdHNSZXNwb25zZSxcbiAgICBCb29rTWVldGluZ0V4dGVybmFsUmVxdWVzdCxcbiAgICBCb29rTWVldGluZ0V4dGVybmFsUmVzcG9uc2UsXG4gICAgRXZlbnRUeXBlLFxuICAgIEV4dGVybmFsQ2FuY2VsTWVldGluZ1JlcXVlc3QsXG4gICAgRXh0ZXJuYWxSZXNjaGVkdWxlTWVldGluZ1JlcXVlc3QsXG4gICAgRXh0ZXJuYWxSZXNjaGVkdWxlTWVldGluZ1Jlc3BvbnNlLFxuICAgIEdldFVzZXJzUmVxdWVzdCxcbiAgICBHZXRVc2Vyc1Jlc3BvbnNlLFxuICAgIEdyb3VwUmVzcG9uc2UsXG4gICAgR3JvdXBzUmVxdWVzdCxcbiAgICBHcm91cHNSZXNwb25zZSxcbiAgICBIb3N0VXNlckRldGFpbHMsXG4gICAgTGlzdFRlYW1FdmVudFR5cGVzUmVxdWVzdCxcbiAgICBMaXN0VGVhbUV2ZW50VHlwZXNSZXNwb25zZSxcbiAgICBMaXN0VXNlckV2ZW50VHlwZXNSZXF1ZXN0LFxuICAgIExpc3RVc2VyRXZlbnRUeXBlc1Jlc3BvbnNlLFxuICAgIFNlcnZpY2VSZXNwb25zZSxcbiAgICBTZXJ2aWNlc1JlcXVlc3QsXG4gICAgU2VydmljZXNSZXNwb25zZSxcbiAgICBVc2VyUmVzcG9uc2UsXG59IGZyb20gJy4vbWVldGluZy1leHRlcm5hbCc7XG5cbmV4cG9ydCB7XG4gICAgRmllbGRNYXNrLFxufSBmcm9tICcuL2ZpZWxkLW1hc2snO1xuXG5leHBvcnQge1xuICAgIElzQ2FsZW5kYXJDb25maWd1cmVkUmVxdWVzdEFwcGxpY2F0aW9uQ29udGV4dFByb3BlcnRpZXNFbnRyeSxcbiAgICBCdWlsZEhvc3RJZFJlcXVlc3RBcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzRW50cnksXG4gICAgRW5zdXJlUGVyc29uYWxDYWxlbmRhckV4aXN0c1JlcXVlc3RBcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzRW50cnksXG4gICAgQXZhaWxhYmlsaXR5UnVsZSxcbiAgICBBdmFpbGFiaWxpdHlSdWxlTGlzdCxcbiAgICBCdWlsZEhvc3RJZFJlcXVlc3QsXG4gICAgQnVpbGRIb3N0SWRSZXNwb25zZSxcbiAgICBHZXRNZWV0aW5nVHlwZXNGb3JDYWxlbmRhcnNSZXNwb25zZUNhbGVuZGFyTWVldGluZ1R5cGVzTWFwRW50cnksXG4gICAgQ2FsZW5kYXJNaWdyYXRpb25SZXNwb25zZSxcbiAgICBDYW5jZWxNZWV0aW5nUmVxdWVzdCxcbiAgICBDaGVja0V2ZW50VHlwZVNsdWdFeGlzdFJlcXVlc3QsXG4gICAgQ2hlY2tFdmVudFR5cGVTbHVnRXhpc3RSZXNwb25zZSxcbiAgICBDaGVja0dyb3VwT3JTZXJ2aWNlU2x1Z0V4aXN0UmVxdWVzdCxcbiAgICBDaGVja0dyb3VwT3JTZXJ2aWNlU2x1Z0V4aXN0UmVzcG9uc2UsXG4gICAgQ3JlYXRlQXZhaWxhYmlsaXR5UmVxdWVzdCxcbiAgICBDcmVhdGVBdmFpbGFiaWxpdHlSZXNwb25zZSxcbiAgICBDcmVhdGVDYWxlbmRhclJlcXVlc3QsXG4gICAgQ3JlYXRlQ2FsZW5kYXJSZXNwb25zZSxcbiAgICBDcmVhdGVEZWZhdWx0TWVldGluZ1R5cGVzUmVxdWVzdCxcbiAgICBDcmVhdGVHcm91cFJlcXVlc3QsXG4gICAgQ3JlYXRlR3JvdXBSZXNwb25zZSxcbiAgICBDcmVhdGVNZWV0aW5nVHlwZVJlcXVlc3QsXG4gICAgQ3JlYXRlTWVldGluZ1R5cGVSZXNwb25zZSxcbiAgICBDcmVhdGVTZXJ2aWNlUmVxdWVzdCxcbiAgICBDcmVhdGVTZXJ2aWNlUmVzcG9uc2UsXG4gICAgRGVsZXRlQXZhaWxhYmlsaXR5UmVxdWVzdCxcbiAgICBEZWxldGVHcm91cFJlcXVlc3QsXG4gICAgRGVsZXRlTWVldGluZ1R5cGVSZXF1ZXN0LFxuICAgIERlbGV0ZVNlcnZpY2VSZXF1ZXN0LFxuICAgIERvZXNDYWxlbmRhckV4aXN0UmVxdWVzdCxcbiAgICBEb2VzQ2FsZW5kYXJFeGlzdFJlc3BvbnNlLFxuICAgIEVuc3VyZUdyb3VwQ2FsZW5kYXJzRXhpc3RSZXF1ZXN0LFxuICAgIEVuc3VyZUdyb3VwQ2FsZW5kYXJzRXhpc3RSZXNwb25zZSxcbiAgICBFbnN1cmVQZXJzb25hbENhbGVuZGFyRXhpc3RzUmVxdWVzdCxcbiAgICBFbnN1cmVQZXJzb25hbENhbGVuZGFyRXhpc3RzUmVzcG9uc2UsXG4gICAgRW5zdXJlU2Vzc2lvbkV2ZW50Q2FsZW5kYXJzRXhpc3RSZXF1ZXN0LFxuICAgIEVuc3VyZVNlc3Npb25FdmVudENhbGVuZGFyc0V4aXN0UmVzcG9uc2UsXG4gICAgRXZlbnRUeXBlU3VtbWFyeSxcbiAgICBMaXN0QXZhaWxhYmlsaXR5UmVxdWVzdEZpbHRlcnMsXG4gICAgTGlzdEJvb2tlZE1lZXRpbmdzUmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0RW50aXR5QXNzb2NpYXRpb25SZXF1ZXN0LFxuICAgIEdldEVudGl0eUFzc29jaWF0aW9uUmVzcG9uc2UsXG4gICAgR2V0RXZlbnRUeXBlQnlJZFJlcXVlc3QsXG4gICAgR2V0RXZlbnRUeXBlQnlJZFJlc3BvbnNlLFxuICAgIEdldEhvc3RNZWV0aW5nUmVxdWVzdCxcbiAgICBHZXRIb3N0TWVldGluZ1Jlc3BvbnNlLFxuICAgIEdldEhvc3RQcmVmZXJlbmNlc1JlcXVlc3QsXG4gICAgR2V0SG9zdFByZWZlcmVuY2VzUmVzcG9uc2UsXG4gICAgR2V0SG9zdHNGb3JDYWxlbmRhclJlcXVlc3QsXG4gICAgR2V0SG9zdHNGb3JDYWxlbmRhclJlc3BvbnNlLFxuICAgIEdldE1lZXRpbmdUeXBlc0ZvckNhbGVuZGFyc1JlcXVlc3QsXG4gICAgR2V0TWVldGluZ1R5cGVzRm9yQ2FsZW5kYXJzUmVzcG9uc2UsXG4gICAgSG9zdEJvb2tNZWV0aW5nUmVxdWVzdCxcbiAgICBIb3N0Qm9va01lZXRpbmdSZXNwb25zZSxcbiAgICBIb3N0Qm9va1Nlc3Npb25SZXF1ZXN0LFxuICAgIEhvc3RCb29rU2Vzc2lvblJlc3BvbnNlLFxuICAgIEhvc3REZWxldGVBdHRlbmRlZXNSZXF1ZXN0LFxuICAgIEhvc3REZXRhaWxzLFxuICAgIEhvc3RHZXRDYWxlbmRhclJlcXVlc3QsXG4gICAgSG9zdEdldENhbGVuZGFyUmVzcG9uc2UsXG4gICAgSG9zdEdldE1lZXRpbmdUeXBlUmVxdWVzdCxcbiAgICBIb3N0R2V0TWVldGluZ1R5cGVSZXNwb25zZSxcbiAgICBIb3N0TGlzdE1lZXRpbmdUeXBlc1JlcXVlc3QsXG4gICAgSG9zdExpc3RNZWV0aW5nVHlwZXNSZXNwb25zZSxcbiAgICBHZXRIb3N0c0ZvckNhbGVuZGFyUmVzcG9uc2VIb3N0VXNlckF2YWlsYWJpbGl0eVJ1bGVFbnRyeSxcbiAgICBJc0NhbGVuZGFyQ29uZmlndXJlZFJlcXVlc3QsXG4gICAgSXNDYWxlbmRhckNvbmZpZ3VyZWRSZXNwb25zZSxcbiAgICBJc0hvc3RDb25maWd1cmVkUmVxdWVzdCxcbiAgICBJc0hvc3RDb25maWd1cmVkUmVzcG9uc2UsXG4gICAgTGlzdEF0dGVuZGVlc1JlcXVlc3QsXG4gICAgTGlzdEF0dGVuZGVlc1Jlc3BvbnNlLFxuICAgIExpc3RBdmFpbGFiaWxpdHlSZXF1ZXN0LFxuICAgIExpc3RBdmFpbGFiaWxpdHlSZXNwb25zZSxcbiAgICBMaXN0QXZhaWxhYmxlVGltZXNsb3RzRm9yUmVjdXJyaW5nU2Vzc2lvblJlcXVlc3QsXG4gICAgTGlzdEF2YWlsYWJsZVRpbWVzbG90c0ZvclJlY3VycmluZ1Nlc3Npb25SZXNwb25zZSxcbiAgICBMaXN0QXZhaWxhYmxlVGltZXNsb3RzRm9yU2Vzc2lvblJlcXVlc3QsXG4gICAgTGlzdEF2YWlsYWJsZVRpbWVzbG90c0ZvclNlc3Npb25SZXNwb25zZSxcbiAgICBMaXN0Qm9va2VkTWVldGluZ3NSZXF1ZXN0LFxuICAgIExpc3RCb29rZWRNZWV0aW5nc1Jlc3BvbnNlLFxuICAgIExpc3RCb29raW5nVHlwZXNGb3JBSVJlcXVlc3QsXG4gICAgTGlzdEJvb2tpbmdUeXBlc0ZvckFJUmVzcG9uc2UsXG4gICAgTGlzdEV2ZW50VHlwZXNGb3JNdWx0aXBsZUNhbGVuZGFyc1JlcXVlc3QsXG4gICAgTGlzdEV2ZW50VHlwZXNGb3JNdWx0aXBsZUNhbGVuZGFyc1Jlc3BvbnNlLFxuICAgIExpc3RHcm91cHNSZXF1ZXN0LFxuICAgIExpc3RHcm91cHNSZXNwb25zZSxcbiAgICBMaXN0U2VydmljZXNSZXF1ZXN0LFxuICAgIExpc3RTZXJ2aWNlc1Jlc3BvbnNlLFxuICAgIE1lZXRpbmcsXG4gICAgTWVldGluZ1R5cGVMaXN0LFxuICAgIFVwZGF0ZU1lZXRpbmdNZXRhZGF0YVJlcXVlc3RNZXRhZGF0YUVudHJ5LFxuICAgIE1lZXRpbmdNZXRhZGF0YUVudHJ5LFxuICAgIFJlY3VycmVuY2VDb25maWcsXG4gICAgUmVjdXJyZW5jZUVuZCxcbiAgICBSZXNjaGVkdWxlTWVldGluZ1JlcXVlc3QsXG4gICAgU2VuZE1lZXRpbmdSZXF1ZXN0RW1haWxSZXF1ZXN0LFxuICAgIFNlc3Npb25BdHRlbmRlZXMsXG4gICAgU2V0R2VuZXJhbEF2YWlsYWJpbGl0eVJlcXVlc3QsXG4gICAgVGltZVNsb3RzQnlXZWVrRGF5LFxuICAgIFVwZGF0ZUF2YWlsYWJpbGl0eVJlcXVlc3QsXG4gICAgVXBkYXRlQ2FsZW5kYXJSZXF1ZXN0LFxuICAgIFVwZGF0ZUdyb3VwUmVxdWVzdCxcbiAgICBVcGRhdGVIb3N0UHJlZmVyZW5jZXNSZXF1ZXN0LFxuICAgIFVwZGF0ZU1lZXRpbmdNZXRhZGF0YVJlcXVlc3QsXG4gICAgVXBkYXRlTWVldGluZ1R5cGVSZXF1ZXN0LFxuICAgIFVwZGF0ZVNlcnZpY2VSZXF1ZXN0LFxuICAgIFdlZWtkYXlBdmFpbGFiaWxpdHksXG59IGZyb20gJy4vbWVldGluZy1ob3N0JztcblxuZXhwb3J0IHtcbiAgICBBY2Nlc3MsXG4gICAgTUNQT3B0aW9ucyxcbn0gZnJvbSAnLi9hbm5vdGF0aW9ucyc7XG5cbmV4cG9ydCB7XG5cbiAgICBFbnVtU2NoZW1hLFxuICAgIFJlc3BvbnNlRXhhbXBsZXNFbnRyeSxcbiAgICBSZXNwb25zZUV4dGVuc2lvbnNFbnRyeSxcbiAgICBTd2FnZ2VyRXh0ZW5zaW9uc0VudHJ5LFxuICAgIFNlY3VyaXR5U2NoZW1lRXh0ZW5zaW9uc0VudHJ5LFxuICAgIFRhZ0V4dGVuc2lvbnNFbnRyeSxcbiAgICBPcGVyYXRpb25FeHRlbnNpb25zRW50cnksXG4gICAgSlNPTlNjaGVtYUV4dGVuc2lvbnNFbnRyeSxcbiAgICBFbnVtU2NoZW1hRXh0ZW5zaW9uc0VudHJ5LFxuICAgIEluZm9FeHRlbnNpb25zRW50cnksXG4gICAgRXh0ZXJuYWxEb2N1bWVudGF0aW9uLFxuICAgIEpTT05TY2hlbWFGaWVsZENvbmZpZ3VyYXRpb24sXG4gICAgSGVhZGVyLFxuICAgIEhlYWRlclBhcmFtZXRlcixcbiAgICBSZXNwb25zZUhlYWRlcnNFbnRyeSxcbiAgICBJbmZvLFxuICAgIEpTT05TY2hlbWEsXG4gICAgTGljZW5zZSxcbiAgICBPcGVyYXRpb24sXG4gICAgUGFyYW1ldGVycyxcbiAgICBSZXNwb25zZSxcbiAgICBPcGVyYXRpb25SZXNwb25zZXNFbnRyeSxcbiAgICBTd2FnZ2VyUmVzcG9uc2VzRW50cnksXG4gICAgU2NoZW1hLFxuICAgIFNjb3Blc1Njb3BlRW50cnksXG4gICAgU2NvcGVzLFxuICAgIFNlY3VyaXR5RGVmaW5pdGlvbnMsXG4gICAgU2VjdXJpdHlEZWZpbml0aW9uc1NlY3VyaXR5RW50cnksXG4gICAgU2VjdXJpdHlSZXF1aXJlbWVudCxcbiAgICBTZWN1cml0eVJlcXVpcmVtZW50U2VjdXJpdHlSZXF1aXJlbWVudEVudHJ5LFxuICAgIFNlY3VyaXR5UmVxdWlyZW1lbnRTZWN1cml0eVJlcXVpcmVtZW50VmFsdWUsXG4gICAgU2VjdXJpdHlTY2hlbWUsXG4gICAgU3dhZ2dlcixcbiAgICBUYWcsXG59IGZyb20gJy4vb3BlbmFwaXYyJztcblxuZXhwb3J0IHsgVGltZU9mRGF5LCB9IGZyb20gJy4vdGltZW9mZGF5JztcbmV4cG9ydCB7IERhdGVUaW1lLCBUaW1lWm9uZSwgfSBmcm9tICcuL2RhdGV0aW1lJztcbiJdfQ==
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tZWV0aW5nc19zZGsvc3JjL2xpYi9faW50ZXJuYWwvb2JqZWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsMkJBQTJCO0FBQzNCLGdCQUFnQjtBQUNoQixFQUFFO0FBQ0YsaUJBQWlCO0FBQ2pCLG9DQUFvQztBQUNwQyxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsa0JBQWtCLEdBQ3JCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxFQUNILHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNqQixNQUFNLFFBQVEsQ0FBQztBQUVoQixPQUFPLEVBQ0gsd0JBQXdCLEVBQ3hCLGlDQUFpQyxFQUNqQyw0QkFBNEIsRUFDNUIsK0JBQStCLEVBQy9CLGlDQUFpQyxFQUNqQyw4QkFBOEIsRUFDOUIsK0JBQStCLEVBQy9CLG9CQUFvQixFQUNwQiw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLGlCQUFpQixFQUNqQix5QkFBeUIsRUFDekIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6QiwwQkFBMEIsRUFDMUIseUJBQXlCLEVBQ3pCLDBCQUEwQixHQUM3QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0gsTUFBTSxFQUNOLE9BQU8sRUFDUCwrQkFBK0IsRUFDL0IsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEVBQ1IsT0FBTyxFQUNQLGNBQWMsRUFDZCxJQUFJLEVBQ0osZ0JBQWdCLEVBQ2hCLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixXQUFXLEVBQ1gsV0FBVyxFQUNYLFNBQVMsR0FDWixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQ0gs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QUFPLEVBQ0gsVUFBVSxFQUNWLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3QixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6Qix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQiw0QkFBNEIsRUFDNUIsTUFBTSxFQUNOLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsSUFBSSxFQUNKLFVBQVUsRUFDVixPQUFPLEVBQ1AsU0FBUyxFQUNULFVBQVUsRUFDVixRQUFRLEVBQ1IsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQixNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixtQkFBbUIsRUFDbkIsZ0NBQWdDLEVBQ2hDLG1CQUFtQixFQUNuQiwyQ0FBMkMsRUFDM0MsMkNBQTJDLEVBQzNDLGNBQWMsRUFDZCxPQUFPLEVBQ1AsR0FBRyxHQUNOLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFBRSxTQUFTLEdBQUcsTUFBTSxhQUFhLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEdBQUcsTUFBTSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMgSW5kZXguXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmV4cG9ydCB7XG4gICAgTWVldGluZ1NvdXJjZUluZm8sXG4gICAgTWVldGluZ1NvdXJjZUxpc3RSZXF1ZXN0LFxuICAgIE1lZXRpbmdTb3VyY2VMaXN0UmVzcG9uc2UsXG4gICAgTWVldGluZ1NvdXJjZVF1ZXJ5LFxufSBmcm9tICcuL21lZXRpbmctc291cmNlJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVab29tTWVldGluZ1JlcXVlc3QsXG4gICAgQ3JlYXRlWm9vbU1lZXRpbmdSZXNwb25zZSxcbiAgICBab29tTWVldGluZ1JlY3VycmVuY2UsXG4gICAgWm9vbU1lZXRpbmdTZXR0aW5ncyxcbiAgICBab29tTWVldGluZ1RyYWNraW5nRmllbGQsXG4gICAgWm9vbU9jY3VycmVuY2UsXG59IGZyb20gJy4vem9vbSc7XG5cbmV4cG9ydCB7XG4gICAgR29vZ2xlTWVldENvbmZlcmVuY2VEYXRhLFxuICAgIEdvb2dsZU1lZXRDb25mZXJlbmNlUmVxdWVzdFN0YXR1cyxcbiAgICBHb29nbGVNZWV0Q29uZmVyZW5jZVNvbHV0aW9uLFxuICAgIEdvb2dsZU1lZXRDb25mZXJlbmNlU29sdXRpb25LZXksXG4gICAgR29vZ2xlTWVldENyZWF0ZUNvbmZlcmVuY2VSZXF1ZXN0LFxuICAgIEdvb2dsZU1lZXRDcmVhdGVNZWV0aW5nUmVxdWVzdCxcbiAgICBHb29nbGVNZWV0Q3JlYXRlTWVldGluZ1Jlc3BvbnNlLFxuICAgIEdvb2dsZU1lZXRFbnRyeVBvaW50LFxuICAgIEdvb2dsZU1lZXRMaXN0TWVldGluZ3NSZXF1ZXN0LFxuICAgIEdvb2dsZU1lZXRMaXN0TWVldGluZ3NSZXNwb25zZSxcbiAgICBHb29nbGVNZWV0TWVldGluZyxcbiAgICBHb29nbGVNZWV0TWVldGluZ0F0dGVuZGVlLFxuICAgIEdvb2dsZU1lZXRNZWV0aW5nQ3JlYXRvcixcbiAgICBHb29nbGVNZWV0TWVldGluZ0RhdGVUaW1lLFxuICAgIEdvb2dsZU1lZXRNZWV0aW5nT3JnYW5pemVyLFxuICAgIEdvb2dsZU1lZXRNZWV0aW5nUmVtaW5kZXIsXG4gICAgR29vZ2xlTWVldE1lZXRpbmdSZW1pbmRlcnMsXG59IGZyb20gJy4vZ29vZ2xlLW1lZXQnO1xuXG5leHBvcnQge1xuICAgIEFuc3dlcixcbiAgICBBbnN3ZXJzLFxuICAgIENhbGVuZGFyQXBwbGljYXRpb25Db250ZXh0RW50cnksXG4gICAgQXR0YWNobWVudCxcbiAgICBBdHRlbmRlZSxcbiAgICBDYWxlbmRhcixcbiAgICBDb250YWN0LFxuICAgIEVtYWlsc1RvRGVsZXRlLFxuICAgIEhvc3QsXG4gICAgSG9zdE9yZGVyRGV0YWlscyxcbiAgICBIb3N0VXNlcixcbiAgICBJc29EYXRlVGltZVJhbmdlLFxuICAgIFBhZ2VkUmVxdWVzdE9wdGlvbnMsXG4gICAgUGFnZWRSZXNwb25zZU1ldGFkYXRhLFxuICAgIFBob25lRmllbGRzLFxuICAgIFByZWZlcmVuY2VzLFxuICAgIFRpbWVSYW5nZSxcbn0gZnJvbSAnLi9zaGFyZWQnO1xuXG5leHBvcnQge1xuICAgIERhdGVSYW5nZSxcbn0gZnJvbSAnLi9kYXRlLXJhbmdlJztcblxuZXhwb3J0IHtcbiAgICBCb29raW5nRXZlbnRGb3JBSSxcbiAgICBFdmVudFR5cGVEYXRlUmFuZ2UsXG4gICAgRmllbGQsXG4gICAgRm9ybSxcbiAgICBNZWV0aW5nVHlwZSxcbiAgICBSZWdpc3RyYXRpb25DdXRPZmYsXG4gICAgUmVsYXRpdmVEYXRlUmFuZ2UsXG59IGZyb20gJy4vbWVldGluZy10eXBlJztcblxuZXhwb3J0IHtcbiAgICBFdmVudEdyb3VwQW5kU2VydmljZUFzc29jaWF0aW9ucyxcbiAgICBHcm91cCxcbiAgICBTZXJ2aWNlLFxufSBmcm9tICcuL2dyb3Vwcy1hbmQtc2VydmljZXMnO1xuXG5leHBvcnQge1xuICAgIEJhdGNoQm9va2luZ1RhcmdldCxcbiAgICBCYXRjaEV2ZW50VHlwZVRhcmdldCxcbiAgICBCb29rQmF0Y2hNZWV0aW5nUmVxdWVzdCxcbiAgICBCb29rQmF0Y2hNZWV0aW5nUmVzcG9uc2UsXG4gICAgQm9va01lZXRpbmdSZXF1ZXN0LFxuICAgIEJvb2tNZWV0aW5nUmVzcG9uc2UsXG4gICAgQ2FuY2VsQmF0Y2hNZWV0aW5nUmVxdWVzdCxcbiAgICBDaGVja0ZlYXR1cmVGbGFnUmVxdWVzdCxcbiAgICBDaGVja0ZlYXR1cmVGbGFnUmVzcG9uc2UsXG4gICAgR2V0Q2FsZW5kYXJSZXF1ZXN0LFxuICAgIEdldENhbGVuZGFyUmVzcG9uc2UsXG4gICAgR2V0R3JvdXBSZXF1ZXN0LFxuICAgIEdldEdyb3VwUmVzcG9uc2UsXG4gICAgR2V0SG9zdFJlcXVlc3QsXG4gICAgR2V0SG9zdFJlc3BvbnNlLFxuICAgIEdldE1lZXRpbmdDYWxlbmRhckluZm9SZXF1ZXN0LFxuICAgIEdldE1lZXRpbmdDYWxlbmRhckluZm9SZXNwb25zZSxcbiAgICBHZXRNZWV0aW5nVHlwZVJlcXVlc3QsXG4gICAgR2V0TWVldGluZ1R5cGVSZXNwb25zZSxcbiAgICBHZXRTZXJ2aWNlUmVxdWVzdCxcbiAgICBHZXRTZXJ2aWNlUmVzcG9uc2UsXG4gICAgR2V0U2VydmljZVYyUmVxdWVzdCxcbiAgICBHZXRTZXJ2aWNlVjJSZXNwb25zZSxcbiAgICBHZXRTZXNzaW9uSW52aXRlZU1lZXRpbmdJbmZvUmVxdWVzdCxcbiAgICBHZXRTZXNzaW9uSW52aXRlZU1lZXRpbmdJbmZvUmVzcG9uc2UsXG4gICAgR2V0U2Vzc2lvbk1lZXRpbmdSZXF1ZXN0LFxuICAgIEdldFNlc3Npb25NZWV0aW5nUmVzcG9uc2UsXG4gICAgR3Vlc3RDYW5jZWxNZWV0aW5nUmVxdWVzdCxcbiAgICBHdWVzdEdldEJvb2tlZE1lZXRpbmdSZXF1ZXN0LFxuICAgIEd1ZXN0R2V0Qm9va2VkTWVldGluZ1JlcXVlc3RWMixcbiAgICBHdWVzdEdldEJvb2tlZE1lZXRpbmdSZXNwb25zZSxcbiAgICBHdWVzdEdldEJvb2tlZE1lZXRpbmdSZXNwb25zZVYyLFxuICAgIEd1ZXN0SXNIb3N0Q29uZmlndXJlZFJlcXVlc3QsXG4gICAgR3Vlc3RJc0hvc3RDb25maWd1cmVkUmVzcG9uc2UsXG4gICAgR3Vlc3RSZXNjaGVkdWxlTWVldGluZ1JlcXVlc3QsXG4gICAgSW52aXRlZURlcmVnaXN0ZXJTZXNzaW9uTWVldGluZ1JlcXVlc3QsXG4gICAgSW52aXRlZVJlZ2lzdGVyU2Vzc2lvbk1lZXRpbmdSZXF1ZXN0LFxuICAgIExpc3RBdmFpbGFibGVUaW1lU2xvdHNSZXF1ZXN0LFxuICAgIExpc3RBdmFpbGFibGVUaW1lU2xvdHNSZXNwb25zZSxcbiAgICBMaXN0QmF0Y2hBdmFpbGFibGVUaW1lU2xvdHNSZXF1ZXN0LFxuICAgIExpc3RCYXRjaEF2YWlsYWJsZVRpbWVTbG90c1Jlc3BvbnNlLFxuICAgIExpc3RHdWVzdEJvb2tlZE1lZXRpbmdzUmVxdWVzdCxcbiAgICBMaXN0R3Vlc3RCb29rZWRNZWV0aW5nc1Jlc3BvbnNlLFxuICAgIExpc3RNZWV0aW5nVHlwZXNSZXF1ZXN0LFxuICAgIExpc3RNZWV0aW5nVHlwZXNSZXNwb25zZSxcbiAgICBNZWV0aW5nRGV0YWlsLFxuICAgIE1lZXRpbmdTdW1tYXJ5LFxuICAgIEJvb2tCYXRjaE1lZXRpbmdSZXF1ZXN0TWV0YWRhdGFFbnRyeSxcbiAgICBCb29rTWVldGluZ1JlcXVlc3RNZXRhZGF0YUVudHJ5LFxuICAgIFJlZ2lzdGVyU2Vzc2lvblJlcXVlc3QsXG4gICAgUmVzY2hlZHVsZUJhdGNoTWVldGluZ1JlcXVlc3QsXG4gICAgU2VydmljZUV2ZW50VHlwZSxcbiAgICBTZXJ2aWNlR3JvdXAsXG59IGZyb20gJy4vbWVldGluZy1ndWVzdCc7XG5cbmV4cG9ydCB7XG4gICAgQXZhaWxhYmxlVGltZVNsb3RzUmVxdWVzdCxcbiAgICBBdmFpbGFibGVUaW1lU2xvdHNSZXNwb25zZSxcbiAgICBCb29rTWVldGluZ0V4dGVybmFsUmVxdWVzdCxcbiAgICBCb29rTWVldGluZ0V4dGVybmFsUmVzcG9uc2UsXG4gICAgRXZlbnRUeXBlLFxuICAgIEV4dGVybmFsQ2FuY2VsTWVldGluZ1JlcXVlc3QsXG4gICAgRXh0ZXJuYWxSZXNjaGVkdWxlTWVldGluZ1JlcXVlc3QsXG4gICAgRXh0ZXJuYWxSZXNjaGVkdWxlTWVldGluZ1Jlc3BvbnNlLFxuICAgIEdldFVzZXJzUmVxdWVzdCxcbiAgICBHZXRVc2Vyc1Jlc3BvbnNlLFxuICAgIEdyb3VwUmVzcG9uc2UsXG4gICAgR3JvdXBzUmVxdWVzdCxcbiAgICBHcm91cHNSZXNwb25zZSxcbiAgICBIb3N0VXNlckRldGFpbHMsXG4gICAgTGlzdFRlYW1FdmVudFR5cGVzUmVxdWVzdCxcbiAgICBMaXN0VGVhbUV2ZW50VHlwZXNSZXNwb25zZSxcbiAgICBMaXN0VXNlckV2ZW50VHlwZXNSZXF1ZXN0LFxuICAgIExpc3RVc2VyRXZlbnRUeXBlc1Jlc3BvbnNlLFxuICAgIFNlcnZpY2VSZXNwb25zZSxcbiAgICBTZXJ2aWNlc1JlcXVlc3QsXG4gICAgU2VydmljZXNSZXNwb25zZSxcbiAgICBVc2VyUmVzcG9uc2UsXG59IGZyb20gJy4vbWVldGluZy1leHRlcm5hbCc7XG5cbmV4cG9ydCB7XG4gICAgRmllbGRNYXNrLFxufSBmcm9tICcuL2ZpZWxkLW1hc2snO1xuXG5leHBvcnQge1xuICAgIElzQ2FsZW5kYXJDb25maWd1cmVkUmVxdWVzdEFwcGxpY2F0aW9uQ29udGV4dFByb3BlcnRpZXNFbnRyeSxcbiAgICBCdWlsZEhvc3RJZFJlcXVlc3RBcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzRW50cnksXG4gICAgRW5zdXJlUGVyc29uYWxDYWxlbmRhckV4aXN0c1JlcXVlc3RBcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzRW50cnksXG4gICAgQXZhaWxhYmlsaXR5UnVsZSxcbiAgICBBdmFpbGFiaWxpdHlSdWxlTGlzdCxcbiAgICBCdWlsZEhvc3RJZFJlcXVlc3QsXG4gICAgQnVpbGRIb3N0SWRSZXNwb25zZSxcbiAgICBHZXRNZWV0aW5nVHlwZXNGb3JDYWxlbmRhcnNSZXNwb25zZUNhbGVuZGFyTWVldGluZ1R5cGVzTWFwRW50cnksXG4gICAgQ2FsZW5kYXJNaWdyYXRpb25SZXNwb25zZSxcbiAgICBDYW5jZWxNZWV0aW5nUmVxdWVzdCxcbiAgICBDaGVja0V2ZW50VHlwZVNsdWdFeGlzdFJlcXVlc3QsXG4gICAgQ2hlY2tFdmVudFR5cGVTbHVnRXhpc3RSZXNwb25zZSxcbiAgICBDaGVja0dyb3VwT3JTZXJ2aWNlU2x1Z0V4aXN0UmVxdWVzdCxcbiAgICBDaGVja0dyb3VwT3JTZXJ2aWNlU2x1Z0V4aXN0UmVzcG9uc2UsXG4gICAgQ3JlYXRlQXZhaWxhYmlsaXR5UmVxdWVzdCxcbiAgICBDcmVhdGVBdmFpbGFiaWxpdHlSZXNwb25zZSxcbiAgICBDcmVhdGVDYWxlbmRhclJlcXVlc3QsXG4gICAgQ3JlYXRlQ2FsZW5kYXJSZXNwb25zZSxcbiAgICBDcmVhdGVEZWZhdWx0TWVldGluZ1R5cGVzUmVxdWVzdCxcbiAgICBDcmVhdGVHcm91cFJlcXVlc3QsXG4gICAgQ3JlYXRlR3JvdXBSZXNwb25zZSxcbiAgICBDcmVhdGVNZWV0aW5nVHlwZVJlcXVlc3QsXG4gICAgQ3JlYXRlTWVldGluZ1R5cGVSZXNwb25zZSxcbiAgICBDcmVhdGVTZXJ2aWNlUmVxdWVzdCxcbiAgICBDcmVhdGVTZXJ2aWNlUmVzcG9uc2UsXG4gICAgRGVsZXRlQXZhaWxhYmlsaXR5UmVxdWVzdCxcbiAgICBEZWxldGVHcm91cFJlcXVlc3QsXG4gICAgRGVsZXRlTWVldGluZ1R5cGVSZXF1ZXN0LFxuICAgIERlbGV0ZVNlcnZpY2VSZXF1ZXN0LFxuICAgIERvZXNDYWxlbmRhckV4aXN0UmVxdWVzdCxcbiAgICBEb2VzQ2FsZW5kYXJFeGlzdFJlc3BvbnNlLFxuICAgIEVuc3VyZUdyb3VwQ2FsZW5kYXJzRXhpc3RSZXF1ZXN0LFxuICAgIEVuc3VyZUdyb3VwQ2FsZW5kYXJzRXhpc3RSZXNwb25zZSxcbiAgICBFbnN1cmVQZXJzb25hbENhbGVuZGFyRXhpc3RzUmVxdWVzdCxcbiAgICBFbnN1cmVQZXJzb25hbENhbGVuZGFyRXhpc3RzUmVzcG9uc2UsXG4gICAgRW5zdXJlU2Vzc2lvbkV2ZW50Q2FsZW5kYXJzRXhpc3RSZXF1ZXN0LFxuICAgIEVuc3VyZVNlc3Npb25FdmVudENhbGVuZGFyc0V4aXN0UmVzcG9uc2UsXG4gICAgRXZlbnRUeXBlU3VtbWFyeSxcbiAgICBMaXN0QXZhaWxhYmlsaXR5UmVxdWVzdEZpbHRlcnMsXG4gICAgTGlzdEJvb2tlZE1lZXRpbmdzUmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0RW50aXR5QXNzb2NpYXRpb25SZXF1ZXN0LFxuICAgIEdldEVudGl0eUFzc29jaWF0aW9uUmVzcG9uc2UsXG4gICAgR2V0RXZlbnRUeXBlQnlJZFJlcXVlc3QsXG4gICAgR2V0RXZlbnRUeXBlQnlJZFJlc3BvbnNlLFxuICAgIEdldEhvc3RNZWV0aW5nUmVxdWVzdCxcbiAgICBHZXRIb3N0TWVldGluZ1Jlc3BvbnNlLFxuICAgIEdldEhvc3RQcmVmZXJlbmNlc1JlcXVlc3QsXG4gICAgR2V0SG9zdFByZWZlcmVuY2VzUmVzcG9uc2UsXG4gICAgR2V0SG9zdHNGb3JDYWxlbmRhclJlcXVlc3QsXG4gICAgR2V0SG9zdHNGb3JDYWxlbmRhclJlc3BvbnNlLFxuICAgIEdldE1lZXRpbmdUeXBlc0ZvckNhbGVuZGFyc1JlcXVlc3QsXG4gICAgR2V0TWVldGluZ1R5cGVzRm9yQ2FsZW5kYXJzUmVzcG9uc2UsXG4gICAgSG9zdEJvb2tNZWV0aW5nUmVxdWVzdCxcbiAgICBIb3N0Qm9va01lZXRpbmdSZXNwb25zZSxcbiAgICBIb3N0Qm9va1Nlc3Npb25SZXF1ZXN0LFxuICAgIEhvc3RCb29rU2Vzc2lvblJlc3BvbnNlLFxuICAgIEhvc3REZWxldGVBdHRlbmRlZXNSZXF1ZXN0LFxuICAgIEhvc3REZXRhaWxzLFxuICAgIEhvc3RHZXRDYWxlbmRhclJlcXVlc3QsXG4gICAgSG9zdEdldENhbGVuZGFyUmVzcG9uc2UsXG4gICAgSG9zdEdldE1lZXRpbmdUeXBlUmVxdWVzdCxcbiAgICBIb3N0R2V0TWVldGluZ1R5cGVSZXNwb25zZSxcbiAgICBIb3N0TGlzdE1lZXRpbmdUeXBlc1JlcXVlc3QsXG4gICAgSG9zdExpc3RNZWV0aW5nVHlwZXNSZXNwb25zZSxcbiAgICBHZXRIb3N0c0ZvckNhbGVuZGFyUmVzcG9uc2VIb3N0VXNlckF2YWlsYWJpbGl0eVJ1bGVFbnRyeSxcbiAgICBJc0NhbGVuZGFyQ29uZmlndXJlZFJlcXVlc3QsXG4gICAgSXNDYWxlbmRhckNvbmZpZ3VyZWRSZXNwb25zZSxcbiAgICBJc0hvc3RDb25maWd1cmVkUmVxdWVzdCxcbiAgICBJc0hvc3RDb25maWd1cmVkUmVzcG9uc2UsXG4gICAgTGlzdEF0dGVuZGVlc1JlcXVlc3QsXG4gICAgTGlzdEF0dGVuZGVlc1Jlc3BvbnNlLFxuICAgIExpc3RBdmFpbGFiaWxpdHlSZXF1ZXN0LFxuICAgIExpc3RBdmFpbGFiaWxpdHlSZXNwb25zZSxcbiAgICBMaXN0QXZhaWxhYmxlVGltZXNsb3RzRm9yUmVjdXJyaW5nU2Vzc2lvblJlcXVlc3QsXG4gICAgTGlzdEF2YWlsYWJsZVRpbWVzbG90c0ZvclJlY3VycmluZ1Nlc3Npb25SZXNwb25zZSxcbiAgICBMaXN0QXZhaWxhYmxlVGltZXNsb3RzRm9yU2Vzc2lvblJlcXVlc3QsXG4gICAgTGlzdEF2YWlsYWJsZVRpbWVzbG90c0ZvclNlc3Npb25SZXNwb25zZSxcbiAgICBMaXN0Qm9va2VkTWVldGluZ3NSZXF1ZXN0LFxuICAgIExpc3RCb29rZWRNZWV0aW5nc1Jlc3BvbnNlLFxuICAgIExpc3RCb29raW5nVHlwZXNGb3JBSVJlcXVlc3QsXG4gICAgTGlzdEJvb2tpbmdUeXBlc0ZvckFJUmVzcG9uc2UsXG4gICAgTGlzdEV2ZW50VHlwZXNGb3JNdWx0aXBsZUNhbGVuZGFyc1JlcXVlc3QsXG4gICAgTGlzdEV2ZW50VHlwZXNGb3JNdWx0aXBsZUNhbGVuZGFyc1Jlc3BvbnNlLFxuICAgIExpc3RHcm91cHNSZXF1ZXN0LFxuICAgIExpc3RHcm91cHNSZXNwb25zZSxcbiAgICBMaXN0U2VydmljZXNSZXF1ZXN0LFxuICAgIExpc3RTZXJ2aWNlc1Jlc3BvbnNlLFxuICAgIE1lZXRpbmcsXG4gICAgTWVldGluZ1R5cGVMaXN0LFxuICAgIFVwZGF0ZU1lZXRpbmdNZXRhZGF0YVJlcXVlc3RNZXRhZGF0YUVudHJ5LFxuICAgIE1lZXRpbmdNZXRhZGF0YUVudHJ5LFxuICAgIFJlY3VycmVuY2VDb25maWcsXG4gICAgUmVjdXJyZW5jZUVuZCxcbiAgICBSZXNjaGVkdWxlTWVldGluZ1JlcXVlc3QsXG4gICAgU2VuZE1lZXRpbmdSZXF1ZXN0RW1haWxSZXF1ZXN0LFxuICAgIFNlc3Npb25BdHRlbmRlZXMsXG4gICAgU2V0R2VuZXJhbEF2YWlsYWJpbGl0eVJlcXVlc3QsXG4gICAgVGltZVNsb3RzQnlXZWVrRGF5LFxuICAgIFVwZGF0ZUF2YWlsYWJpbGl0eVJlcXVlc3QsXG4gICAgVXBkYXRlQ2FsZW5kYXJSZXF1ZXN0LFxuICAgIFVwZGF0ZUdyb3VwUmVxdWVzdCxcbiAgICBVcGRhdGVIb3N0UHJlZmVyZW5jZXNSZXF1ZXN0LFxuICAgIFVwZGF0ZU1lZXRpbmdNZXRhZGF0YVJlcXVlc3QsXG4gICAgVXBkYXRlTWVldGluZ1R5cGVSZXF1ZXN0LFxuICAgIFVwZGF0ZVNlcnZpY2VSZXF1ZXN0LFxuICAgIFdlZWtkYXlBdmFpbGFiaWxpdHksXG59IGZyb20gJy4vbWVldGluZy1ob3N0JztcblxuZXhwb3J0IHtcbiAgICBBY2Nlc3MsXG4gICAgTUNQT3B0aW9ucyxcbn0gZnJvbSAnLi9hbm5vdGF0aW9ucyc7XG5cbmV4cG9ydCB7XG4gICAgRW51bVNjaGVtYSxcbiAgICBSZXNwb25zZUV4YW1wbGVzRW50cnksXG4gICAgSW5mb0V4dGVuc2lvbnNFbnRyeSxcbiAgICBTd2FnZ2VyRXh0ZW5zaW9uc0VudHJ5LFxuICAgIFNlY3VyaXR5U2NoZW1lRXh0ZW5zaW9uc0VudHJ5LFxuICAgIFRhZ0V4dGVuc2lvbnNFbnRyeSxcbiAgICBPcGVyYXRpb25FeHRlbnNpb25zRW50cnksXG4gICAgSlNPTlNjaGVtYUV4dGVuc2lvbnNFbnRyeSxcbiAgICBFbnVtU2NoZW1hRXh0ZW5zaW9uc0VudHJ5LFxuICAgIFJlc3BvbnNlRXh0ZW5zaW9uc0VudHJ5LFxuICAgIEV4dGVybmFsRG9jdW1lbnRhdGlvbixcbiAgICBKU09OU2NoZW1hRmllbGRDb25maWd1cmF0aW9uLFxuICAgIEhlYWRlcixcbiAgICBIZWFkZXJQYXJhbWV0ZXIsXG4gICAgUmVzcG9uc2VIZWFkZXJzRW50cnksXG4gICAgSW5mbyxcbiAgICBKU09OU2NoZW1hLFxuICAgIExpY2Vuc2UsXG4gICAgT3BlcmF0aW9uLFxuICAgIFBhcmFtZXRlcnMsXG4gICAgUmVzcG9uc2UsXG4gICAgT3BlcmF0aW9uUmVzcG9uc2VzRW50cnksXG4gICAgU3dhZ2dlclJlc3BvbnNlc0VudHJ5LFxuICAgIFNjaGVtYSxcbiAgICBTY29wZXNTY29wZUVudHJ5LFxuICAgIFNjb3BlcyxcbiAgICBTZWN1cml0eURlZmluaXRpb25zLFxuICAgIFNlY3VyaXR5RGVmaW5pdGlvbnNTZWN1cml0eUVudHJ5LFxuICAgIFNlY3VyaXR5UmVxdWlyZW1lbnQsXG4gICAgU2VjdXJpdHlSZXF1aXJlbWVudFNlY3VyaXR5UmVxdWlyZW1lbnRFbnRyeSxcbiAgICBTZWN1cml0eVJlcXVpcmVtZW50U2VjdXJpdHlSZXF1aXJlbWVudFZhbHVlLFxuICAgIFNlY3VyaXR5U2NoZW1lLFxuICAgIFN3YWdnZXIsXG4gICAgVGFnLFxufSBmcm9tICcuL29wZW5hcGl2Mic7XG5cbmV4cG9ydCB7IFRpbWVPZkRheSwgfSBmcm9tICcuL3RpbWVvZmRheSc7XG5leHBvcnQgeyBEYXRlVGltZSwgVGltZVpvbmUsIH0gZnJvbSAnLi9kYXRldGltZSc7XG4iXX0=
|