@firestitch/address
Advanced tools
Comparing version 12.0.0 to 12.0.1
@@ -192,5 +192,6 @@ import { Component, ElementRef, EventEmitter, Input, NgZone, Output, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef, HostBinding, Optional, Self, } from '@angular/core'; | ||
clear() { | ||
var _a; | ||
this.inputAddress = this._defaultInputAddress(); | ||
this.value = createEmptyAddress(); | ||
this._ngModel.reset(); | ||
(_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.control.setValue(this.value); | ||
} | ||
@@ -404,2 +405,2 @@ reset() { | ||
}] } }); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1hdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2FkZHJlc3MtYXV0b2NvbXBsZXRlL2FkZHJlc3MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hZGRyZXNzLWF1dG9jb21wbGV0ZS9hZGRyZXNzLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixNQUFNLEVBQ04sU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLFFBQVEsRUFDUixJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFLVCxPQUFPLEdBQ1IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUFFLEdBQUcsR0FDZixNQUFNLGdCQUFnQixDQUFDO0FBS3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7QUFlekQsTUFBTSxPQUFPLDhCQUE4QjtJQThFekMsWUFDNkIsU0FBb0IsRUFDdkMsY0FBNkIsRUFDN0IsT0FBZSxFQUNmLEdBQWlCLEVBQ2pCLFdBQXVCLEVBQ3ZCLE1BQXlCLEVBQ3pCLFFBQWlCO1FBTkUsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN2QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsUUFBRyxHQUFILEdBQUcsQ0FBYztRQUNqQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBL0VwQixXQUFNLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQztRQUcvQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLFNBQUksR0FBRyxJQUFJLENBQUM7UUFHWixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQXVCWCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFTNUMsT0FBRSxHQUFHLDJCQUEyQiw4QkFBOEIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBRTFFLGlCQUFZLEdBQXVCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQy9ELGdCQUFXLEdBQVUsRUFBRSxDQUFDO1FBQ3hCLDhCQUF5QixHQUEyQyxJQUFJLENBQUM7UUFDekUsd0JBQW1CLEdBQXFDLElBQUksQ0FBQztRQUVwRSxtQkFBbUI7UUFDWixhQUFRLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUM3QixjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBRTVCLFdBQVc7UUFDSixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzFDLEVBQUU7UUFFYyxxQkFBZ0IsR0FBRyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBRXhELFlBQU8sR0FBb0IsRUFBRSxDQUFDO1FBQzlCLGFBQVEsR0FBYyxFQUFFLENBQUM7UUFDekIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFekIsV0FBVztRQUNILGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUUxQixFQUFFO1FBRU0sY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUE0R2pDLGdCQUFXLEdBQUcsQ0FBQyxLQUFnQixFQUFFLEVBQUU7WUFDeEMsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2FBQzFCO2lCQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUN0QixPQUFPLEdBQUcsQ0FBQzthQUNaO1FBQ0gsQ0FBQyxDQUFDO1FBdkdBLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQXpFRCxJQUNXLE1BQU0sQ0FBQyxLQUFzQjtRQUN0QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFFBQVE7Z0JBQ2IsQ0FBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDL0MsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7b0JBQ3JELENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO29CQUNuRCxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDL0MsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7b0JBQ25ELENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO29CQUN2RCxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztvQkFDdkQsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBeURELElBQVcsS0FBSyxDQUFDLEtBQWdCO1FBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQ0ksUUFBUSxLQUFjLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsR0FBRztRQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxHQUFHO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQ1csZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQVcsS0FBSzs7UUFDZCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxNQUFNLENBQUEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsS0FBSywwQ0FBRSxNQUFNLENBQUEsQ0FBQyxDQUFDO1NBQ2xHO2FBQU07WUFDTCxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLFlBQVksS0FBSyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXZGLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTdCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUF1QjtRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0saUJBQWlCLENBQUMsR0FBYTtRQUNwQyxPQUFPO0lBQ1QsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEtBQWlCO1FBQ3ZDLElBQUssS0FBSyxDQUFDLE1BQWtCLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLE9BQU8sRUFBRTtZQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDL0Q7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBdUI7UUFDN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEVBQWM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQVVNLFFBQVEsQ0FBQyxPQUF3QjtRQUN0QyxNQUFNLGdCQUFnQixHQUFxQixFQUFFLENBQUM7UUFFOUMsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUVyRSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ2xDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDeEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDeEUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQzVCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JBQ2hELENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzlDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ3RDLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQzthQUM5QztZQUVELElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRTtnQkFDeEIsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDOUIsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7aUJBQ2xFO3FCQUFNO29CQUNMLE1BQU0sSUFBSSxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDakMsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLGVBQWUsQ0FBQztpQkFDdkY7YUFDRjtTQUNGO1FBRUQsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLEtBQUssR0FBRyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLHVCQUF1QjtRQUM1QixJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRU0scUJBQXFCO1FBQzFCLElBQUksSUFBSSxDQUFDLEtBQUs7ZUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLEtBQUssUUFBUTtlQUNyQyxJQUFJLENBQUMsWUFBWSxLQUFLLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCw0RkFBNEY7SUFDNUYsK0VBQStFO0lBQy9FLG1FQUFtRTtJQUMzRCxvQkFBb0I7UUFDMUIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2xDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7aUJBQ2pELElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUFDLEVBQ0YsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixNQUFNLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUU7Z0JBQzlCLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7WUFDaEMsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsS0FBb0IsRUFBRSxFQUFFO2dCQUMzQixPQUFRLEtBQUssQ0FBQyxNQUEyQixDQUFDLEtBQUssQ0FBQztZQUNsRCxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztnQkFDekIsSUFBSSxDQUFDLEtBQUssRUFBRTtvQkFDVixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7b0JBQzdCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNyQztZQUNILENBQUMsQ0FBQyxFQUNGLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNkLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBRTFCLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7b0JBRXRCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7aUJBQzVCO2dCQUVELE9BQU8sVUFBVSxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxFQUNGLG9CQUFvQixFQUFFLEVBQ3RCLFNBQVMsQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO2dCQUN6QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjtpQkFDQSxTQUFTLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxXQUFXLEVBQUMsRUFBRSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7b0JBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUc7d0JBQ2pCLEdBQUcsV0FBVztxQkFDZixDQUFDO29CQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxDQUFBO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyw0QkFBNEI7UUFDcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjO2FBQ2hDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNiLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDN0IsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbEIsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDdkMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDakI7WUFFRCxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7Z0JBQzVCLE9BQU8sRUFBRSxpQ0FDSixJQUFJLENBQUMsS0FBSyxLQUNiLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxFQUNsQixNQUFNLEVBQUUsSUFBSSxJQUNaLENBQUM7YUFDSjtZQUVELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2YsSUFBSSxPQUFrQixDQUFDO1lBRXZCLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRTtnQkFDbkIsT0FBTyxHQUFHLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvRCxPQUFPLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO2FBQ2xEO2lCQUFNO2dCQUNMLE9BQU8sR0FBRyxRQUFRLENBQUM7YUFDcEI7WUFFRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO2dCQUVyQiw4SEFBOEg7Z0JBQzlILE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLElBQUksRUFBRTtvQkFDUixPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztpQkFDekI7Z0JBRUQsZ0VBQWdFO2dCQUNoRSxxQkFBcUI7Z0JBQ3JCLHVDQUF1QztnQkFDdkMsSUFBSTtnQkFFSixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7Z0JBRTVCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxjQUFjO2lCQUNoQixJQUFJLEVBQUU7aUJBQ04sSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDVCxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUM5RSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNwRyxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE9BQWU7UUFDMUMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0QyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMseUJBQXlCO2FBQ2pELG1CQUFtQixDQUNsQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFDZixHQUFHLEVBQUUsR0FBRSxDQUFDLENBQzBFLENBQUM7UUFFdkYsT0FBTyxhQUFhO2FBQ2pCLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2YsT0FBTztnQkFDTCxLQUFLLEVBQUUsSUFBSTtnQkFDWCxXQUFXLEVBQUUsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsV0FBVyxLQUFJLEVBQUU7YUFDdkMsQ0FBQTtRQUNILENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDVixPQUFPO2dCQUNMLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxFQUFFO2FBQ2hCLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFTyxnQkFBZ0IsQ0FDdEIsS0FBNkM7UUFFN0MsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQ3BDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUM1RCxDQUFDO1FBRVQsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7YUFDNUIsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxNQUFNLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsRUFBRSxFQUFFO2dCQUN4RCxPQUFPLElBQUksQ0FBQzthQUNiO2lCQUFNO2dCQUNMLE9BQU87b0JBQ0wsS0FBSztvQkFDTCxNQUFNO2lCQUNQLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRU8scUJBQXFCO1FBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDO2FBQ3JDLElBQUksQ0FDSCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQzVCLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDOztBQWhiYSxxQ0FBTSxHQUFHLENBQUMsQ0FBQzs0SEFIZCw4QkFBOEI7Z0hBQTlCLDhCQUE4Qiw2V0FSOUI7UUFDVDtZQUNFLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsV0FBVyxFQUFFLDhCQUE4QjtTQUM1QztLQUNGLHdMQThDVSxlQUFlLDhEQzlHNUIsaXNCQXlCQTs0RkQwQ2EsOEJBQThCO2tCQVoxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFdBQVcsRUFBRSx1Q0FBdUM7b0JBQ3BELFNBQVMsRUFBRSxDQUFDLHVDQUF1QyxDQUFDO29CQUNwRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxnQ0FBZ0M7eUJBQzVDO3FCQUNGO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs7MEJBZ0ZJLFFBQVE7OzBCQUFJLElBQUk7dU1BekVaLE1BQU07c0JBRFosS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUssTUFBTTtzQkFEaEIsS0FBSztnQkFxQlUsYUFBYTtzQkFENUIsTUFBTTtnQkFJUyxhQUFhO3NCQUQ1QixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTFCLGVBQWU7c0JBRDlCLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJckMsRUFBRTtzQkFEUixXQUFXO2dCQXdEUixRQUFRO3NCQURYLEtBQUs7Z0JBUUYsUUFBUTtzQkFEWCxLQUFLO2dCQVVGLFdBQVc7c0JBRGQsS0FBSztnQkFVSyxnQkFBZ0I7c0JBRDFCLFdBQVc7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBIb3N0QmluZGluZyxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTmdDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBBYnN0cmFjdENvbnRyb2wsXG4gIE5nTW9kZWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcblxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcblxuaW1wb3J0IHsgZ3VpZCB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5cbmltcG9ydCB7IE1hcHNBUElMb2FkZXIgfSBmcm9tICdAYWdtL2NvcmUnO1xuXG5pbXBvcnQgeyBiaW5kQ2FsbGJhY2ssIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRlYm91bmNlVGltZSxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICBzd2l0Y2hNYXAsXG4gIHRha2VVbnRpbCwgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuaW1wb3J0IHsgRnNBZGRyZXNzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hZGRyZXNzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGc0FkZHJlc3NDb25maWcgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2FkZHJlc3MtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBZGRyZXNzRm9ybWF0IH0gZnJvbSAnLi4vLi4vZW51bXMvYWRkcmVzcy1mb3JtYXQuZW51bSc7XG5pbXBvcnQgeyBnb29nbGVEZXRhaWxzVG9BZGRyZXNzIH0gZnJvbSAnLi4vLi4vaGVscGVycy9nb29nbGUtZGV0YWlscy10by1hZGRyZXNzJztcbmltcG9ydCB7IGNyZWF0ZUVtcHR5QWRkcmVzcyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY3JlYXRlLWVtcHR5LWFkZHJlc3MnO1xuaW1wb3J0IHsgYWRkcmVzc0lzRW1wdHkgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2FkZHJlc3MtaXMtZW1wdHknO1xuaW1wb3J0IHsgZXh0cmFjdFVuaXQgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2V4dHJhY3QtdW5pdCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtYWRkcmVzcy1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkcmVzcy1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGRyZXNzLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLFxuICAgICAgdXNlRXhpc3Rpbmc6IEZzQWRkcmVzc0F1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRnNBZGRyZXNzQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE1hdEZvcm1GaWVsZENvbnRyb2w8RnNBZGRyZXNzPiwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG5cbiAgcHVibGljIHN0YXRpYyBuZXh0SWQgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb3JtYXQgPSBBZGRyZXNzRm9ybWF0LlR3b0xpbmU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlYWRvbmx5ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG5hbWUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdWdnZXN0aW9ucyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29uZmlnKHZhbHVlOiBGc0FkZHJlc3NDb25maWcpIHtcbiAgICB0aGlzLl9jb25maWcgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5fY29uZmlnKSB7XG4gICAgICB0aGlzLnJlcXVpcmVkID1cbiAgICAgICggKHRoaXMuY29uZmlnLm5hbWUgJiYgdGhpcy5jb25maWcubmFtZS5yZXF1aXJlZCkgfHxcbiAgICAgICAgKHRoaXMuY29uZmlnLmNvdW50cnkgJiYgdGhpcy5jb25maWcuY291bnRyeS5yZXF1aXJlZCkgfHxcbiAgICAgICAgKHRoaXMuY29uZmlnLnJlZ2lvbiAmJiB0aGlzLmNvbmZpZy5yZWdpb24ucmVxdWlyZWQpIHx8XG4gICAgICAgICh0aGlzLmNvbmZpZy5jaXR5ICYmIHRoaXMuY29uZmlnLmNpdHkucmVxdWlyZWQpIHx8XG4gICAgICAgICh0aGlzLmNvbmZpZy5zdHJlZXQgJiYgdGhpcy5jb25maWcuc3RyZWV0LnJlcXVpcmVkKSB8fFxuICAgICAgICAodGhpcy5jb25maWcuYWRkcmVzczIgJiYgdGhpcy5jb25maWcuYWRkcmVzczIucmVxdWlyZWQpIHx8XG4gICAgICAgICh0aGlzLmNvbmZpZy5hZGRyZXNzMyAmJiB0aGlzLmNvbmZpZy5hZGRyZXNzMy5yZXF1aXJlZCkgfHxcbiAgICAgICAgKHRoaXMuY29uZmlnLnppcCAmJiB0aGlzLmNvbmZpZy56aXAucmVxdWlyZWQpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbmZpZygpOiBGc0FkZHJlc3NDb25maWcge1xuICAgIHJldHVybiB0aGlzLl9jb25maWc7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGFkZHJlc3NDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgcmVhZG9ubHkgc2VhcmNoRWxlbWVudDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHJlYWRvbmx5IGF1dG9Db21wbGV0ZVJlZjogTWF0QXV0b2NvbXBsZXRlO1xuXG4gIEBIb3N0QmluZGluZygpXG4gIHB1YmxpYyBpZCA9IGBmcy1hZGRyZXNzLWF1dG9jb21wbGV0ZS0ke0ZzQWRkcmVzc0F1dG9jb21wbGV0ZUNvbXBvbmVudC5uZXh0SWQrK31gO1xuXG4gIHB1YmxpYyBpbnB1dEFkZHJlc3M6IHN0cmluZyB8IEZzQWRkcmVzcyA9IHRoaXMuX2RlZmF1bHRJbnB1dEFkZHJlc3MoKTtcbiAgcHVibGljIHByZWRpY3Rpb25zOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgZ29vZ2xlQXV0b2NvbXBsZXRlU2VydmljZTogZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZVNlcnZpY2UgPSBudWxsO1xuICBwdWJsaWMgZ29vZ2xlUGxhY2VzU2VydmljZTogZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2UgPSBudWxsO1xuXG4gIC8vIENvbnRyb2wgQWNjZXNzb3JcbiAgcHVibGljIG9uQ2hhbmdlID0gKGRhdGE6IGFueSkgPT4ge307XG4gIHB1YmxpYyBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICAvLyBNYXRlcmlhbFxuICBwdWJsaWMgZXJyb3JTdGF0ZSA9IGZhbHNlO1xuICBwdWJsaWMgZm9jdXNlZCA9IGZhbHNlO1xuICBwdWJsaWMgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgLy9cblxuICBwdWJsaWMgcmVhZG9ubHkgYXV0b2NvbXBsZXRlTmFtZSA9IGBzZWFyY2gtJHtndWlkKCd4eHh4eHh4eCcpfWA7XG5cbiAgcHJpdmF0ZSBfY29uZmlnOiBGc0FkZHJlc3NDb25maWcgPSB7fTtcbiAgcHJpdmF0ZSBfYWRkcmVzczogRnNBZGRyZXNzID0ge307XG4gIHByaXZhdGUgX3NlYXJjaFRleHQgPSAnJztcblxuICAvLyBNYXRlcmlhbFxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xuICAvL1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcml2YXRlIF9tYXBzQVBJTG9hZGVyOiBNYXBzQVBJTG9hZGVyLFxuICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgX2ZtOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfbmdNb2RlbDogTmdNb2RlbCxcbiAgKSB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IEZzQWRkcmVzcykge1xuICAgIHRoaXMuX2FkZHJlc3MgPSB2YWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX2FkZHJlc3MpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBGc0FkZHJlc3Mge1xuICAgIHJldHVybiB0aGlzLl9hZGRyZXNzO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7IH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCByZXF1aXJlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gIH1cbiAgc2V0IHJlcXVpcmVkKHJlcSkge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHJlcSk7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IHBsYWNlaG9sZGVyKCkge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgfVxuICBzZXQgcGxhY2Vob2xkZXIocGxoKSB7XG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGg7XG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mbG9hdGluZycpXG4gIHB1YmxpYyBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICEodGhpcy52YWx1ZSAmJiAhdGhpcy52YWx1ZS5zdHJlZXQpO1xuICB9XG5cbiAgcHVibGljIGdldCBlbXB0eSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5zdWdnZXN0aW9ucykge1xuICAgICAgcmV0dXJuICghdGhpcy5pbnB1dEFkZHJlc3MgJiYgIXRoaXMudmFsdWU/LnN0cmVldCkgfHwgKHRoaXMuaW5wdXRBZGRyZXNzICYmICF0aGlzLnZhbHVlPy5zdHJlZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBpbnB1dFZhbHVlID0gKHR5cGVvZiB0aGlzLmlucHV0QWRkcmVzcyA9PT0gJ3N0cmluZycpICYmIHRoaXMuaW5wdXRBZGRyZXNzLnRyaW0oKTtcblxuICAgICAgcmV0dXJuIHRoaXMuYWRkcmVzc0lzRW1wdHkgJiYgIWlucHV0VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBhZGRyZXNzSXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gYWRkcmVzc0lzRW1wdHkodGhpcy52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0R29vZ2xlTWFwKCk7XG5cbiAgICB0aGlzLl9saXN0ZW5Vc2VyVHlwaW5nKCk7XG4gICAgdGhpcy5fbGlzdGVuQXV0b2NvbXBsZXRlU2VsZWN0aW9uKCk7XG4gICAgdGhpcy5fcmVnaXN0ZXJGb2N1c01vbml0b3IoKTtcblxuICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbdGhpcy52YWxpZGF0ZS5iaW5kKHRoaXMpXSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogRnNBZGRyZXNzIHwgbnVsbCkge1xuICAgIHRoaXMuX2FkZHJlc3MgPSB2YWx1ZTtcbiAgICB0aGlzLmlucHV0QWRkcmVzcyA9ICcnO1xuICB9XG5cbiAgcHVibGljIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pIHtcbiAgICAvLyBUT0RPXG4gIH1cblxuICBwdWJsaWMgb25Db250YWluZXJDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICgoZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQpLnRhZ05hbWUudG9Mb3dlckNhc2UoKSAhPSAnaW5wdXQnKSB7XG4gICAgICB0aGlzLnNlYXJjaEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGRhdGE6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwdWJsaWMgZGlzcGxheVdpdGggPSAodmFsdWU6IEZzQWRkcmVzcykgPT4ge1xuICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZS5zdHJlZXQ7XG4gICAgfSBlbHNlIGlmICghdGhpcy5lbXB0eSkge1xuICAgICAgcmV0dXJuICcgJztcbiAgICB9XG4gIH07XG5cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWxpZGF0aW9uRXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzID0ge307XG5cbiAgICBjb25zdCByZXF1aXJlZEZpZWxkID0gW107XG4gICAgY29uc3QgcGFydHMgPSBbJ25hbWUnLCAnc3RyZWV0JywgJ2NpdHknLCAncmVnaW9uJywgJ3ppcCcsICdjb3VudHJ5J107XG5cbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiB0aGlzLmFkZHJlc3NJc0VtcHR5KSB7XG4gICAgICB2YWxpZGF0aW9uRXJyb3JzLnJlcXVpcmVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYWRkcmVzc0lzRW1wdHkpIHtcbiAgICAgIHBhcnRzLmZvckVhY2gocGFydCA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ1twYXJ0XSAmJiB0aGlzLmNvbmZpZ1twYXJ0XS5yZXF1aXJlZCAmJiAhdGhpcy52YWx1ZVtwYXJ0XSkge1xuICAgICAgICAgIHJlcXVpcmVkRmllbGQucHVzaChbcGFydF0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgaWYgKCgodGhpcy5jb25maWcubGF0ICYmIHRoaXMuY29uZmlnLmxhdC5yZXF1aXJlZCkgfHxcbiAgICAgICAgKHRoaXMuY29uZmlnLmxuZyAmJiB0aGlzLmNvbmZpZy5sbmcucmVxdWlyZWQpKSAmJlxuICAgICAgICAoIXRoaXMudmFsdWUubGF0IHx8ICF0aGlzLnZhbHVlLmxhdCkpIHtcbiAgICAgICAgdmFsaWRhdGlvbkVycm9ycy5pbnZhbGlkID0gJ3Bvc2l0aW9uIG9uIG1hcCc7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXF1aXJlZEZpZWxkLmxlbmd0aCkge1xuICAgICAgICBpZiAocmVxdWlyZWRGaWVsZC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICB2YWxpZGF0aW9uRXJyb3JzLmludmFsaWQgPSBgVGhlICR7cmVxdWlyZWRGaWVsZFswXX0gaXMgcmVxdWlyZWRgO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGxhc3QgPSByZXF1aXJlZEZpZWxkLnBvcCgpO1xuICAgICAgICAgIHZhbGlkYXRpb25FcnJvcnMuaW52YWxpZCA9IGBUaGUgJHtyZXF1aXJlZEZpZWxkLmpvaW4oJywgJyl9IGFuZCAke2xhc3R9IGFyZSByZXF1aXJlZGA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdGlvbkVycm9ycztcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0QWRkcmVzcyA9IHRoaXMuX2RlZmF1bHRJbnB1dEFkZHJlc3MoKTtcbiAgICB0aGlzLnZhbHVlID0gY3JlYXRlRW1wdHlBZGRyZXNzKCk7XG4gICAgdGhpcy5fbmdNb2RlbC5yZXNldCgpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMubmdDb250cm9sLnJlc2V0KGNyZWF0ZUVtcHR5QWRkcmVzcygpKTtcbiAgfVxuXG4gIHB1YmxpYyBhdXRvY29tcGxldGVQYW5lbENsb3NlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZGRyZXNzSXNFbXB0eSAmJiAhIXRoaXMuaW5wdXRBZGRyZXNzKSB7XG4gICAgICB0aGlzLmlucHV0QWRkcmVzcyA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJsdXJBdXRvY29tcGxldGVJbnB1dCgpIHtcbiAgICBpZiAodGhpcy5lbXB0eVxuICAgICAgJiYgdHlwZW9mIHRoaXMuaW5wdXRBZGRyZXNzID09PSAnc3RyaW5nJ1xuICAgICAgJiYgdGhpcy5pbnB1dEFkZHJlc3MgIT09ICcnKSB7XG4gICAgICB0aGlzLmlucHV0QWRkcmVzcyA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNlYXJjaCBpbnB1dCBjYW4ndCBiZSBudWxsLiBXZSBpbXBsZW1lbnRlZCByZXF1aXJlZCB2YWxpZGF0aW9uIHRvIHNob3cgYXN0ZXJpc2sgaWYgbmVlZGVkXG4gIC8vIEJ1dCBnZW5lcmFsIHZhbGlkYXRpb24gcGxhY2VkIGluIGFub3RoZXIgbGV2ZWwgYW5kIG5vdCBkZXBlbmRzIG9mIHRoaXMgaW5wdXRcbiAgLy8gVGhpcyBoYWNrIGFsbG93IHVzIHRvIHNob3cgYXN0ZXJpc2sgYnV0IGRpc2FibGUgZXh0cmEgdmFsaWRhdGlvblxuICBwcml2YXRlIF9kZWZhdWx0SW5wdXRBZGRyZXNzKCkge1xuICAgIHJldHVybiAnICc7XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5Vc2VyVHlwaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBmcm9tRXZlbnQodGhpcy5zZWFyY2hFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICAgICAgZmlsdGVyKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50LmNvZGUgIT09ICdFbnRlcic7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgbWFwKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2VhcmNoVGV4dCA9IHZhbHVlO1xuICAgICAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgICB0aGlzLl9hZGRyZXNzLnN0cmVldCA9IHZhbHVlO1xuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5fYWRkcmVzcztcbiAgICAgICAgICAgICAgdGhpcy5hZGRyZXNzQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZmlsdGVyKCh0ZXh0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZXh0RXhpc3RzID0gISF0ZXh0O1xuXG4gICAgICAgICAgICBpZiAoIXRleHRFeGlzdHMpIHtcbiAgICAgICAgICAgICAgdGhpcy5wcmVkaWN0aW9ucyA9IFtdO1xuXG4gICAgICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGV4dEV4aXN0cztcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgIHN3aXRjaE1hcCgodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZ2V0UGxhY2VQcmVkaWN0aW9ucyh0ZXh0KTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHt2YWx1ZSwgcHJlZGljdGlvbnN9KSA9PiB7XG4gICAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByZWRpY3Rpb25zID0gW1xuICAgICAgICAgICAgICAuLi5wcmVkaWN0aW9ucyxcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH0pXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgICBwcml2YXRlIF9saXN0ZW5BdXRvY29tcGxldGVTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5hdXRvQ29tcGxldGVSZWYub3B0aW9uU2VsZWN0ZWRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgIHJldHVybiBvcHRpb24ub3B0aW9uLnZhbHVlO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKChwbGFjZSkgPT4ge1xuICAgICAgICAgIGlmICghcGxhY2UgfHwgIXRoaXMuZ29vZ2xlUGxhY2VzU2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwbGFjZSAmJiAhcGxhY2UucGxhY2VfaWQpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih7XG4gICAgICAgICAgICAgIC4uLnRoaXMudmFsdWUsXG4gICAgICAgICAgICAgIHN0cmVldDogcGxhY2UubmFtZSxcbiAgICAgICAgICAgICAgbWFudWFsOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuX2dldFBsYWNlRGV0YWlscyhwbGFjZSk7XG4gICAgICAgIH0pLFxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgbGV0IGFkZHJlc3M6IEZzQWRkcmVzcztcblxuICAgICAgICAgIGlmIChyZXNwb25zZS5yZXN1bHQpIHtcbiAgICAgICAgICAgIGFkZHJlc3MgPSBnb29nbGVEZXRhaWxzVG9BZGRyZXNzKHJlc3BvbnNlLnJlc3VsdCwgdGhpcy5jb25maWcpO1xuICAgICAgICAgICAgYWRkcmVzcy5kZXNjcmlwdGlvbiA9IHJlc3BvbnNlLnBsYWNlLmRlc2NyaXB0aW9uO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhZGRyZXNzID0gcmVzcG9uc2U7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGFkZHJlc3M7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoYWRkcmVzcykgPT4ge1xuICAgICAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNlYXJjaEVsZW1lbnQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IGFkZHJlc3M7XG5cbiAgICAgICAgICAvLyBjb25zdCBtYXRjaFNlY29uZGFyeSA9IHRoaXMuX3NlYXJjaFRleHQudHJpbSgpLm1hdGNoKC8oYXBhcnRtZW50fGJ1aWxkaW5nfGZsb29yfHN1aXRlfHJvb218ZGVwYXJ0bWVudHx1bml0fHBvXFxzKmJveCkuKiQvaSk7XG4gICAgICAgICAgY29uc3QgeyB1bml0IH0gPSBleHRyYWN0VW5pdCh0aGlzLl9zZWFyY2hUZXh0KTtcbiAgICAgICAgICBpZiAodW5pdCkge1xuICAgICAgICAgICAgYWRkcmVzcy5hZGRyZXNzMiA9IHVuaXQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gY29uc3QgbWF0Y2hOdW1iZXIgPSB0aGlzLl9zZWFyY2hUZXh0LnRyaW0oKS5tYXRjaCgvXihcXGQrKS0vKTtcbiAgICAgICAgICAvLyBpZiAobWF0Y2hOdW1iZXIpIHtcbiAgICAgICAgICAvLyAgIGFkZHJlc3MuYWRkcmVzczIgPSBtYXRjaE51bWJlclsxXTtcbiAgICAgICAgICAvLyB9XG5cbiAgICAgICAgICB0aGlzLmFkZHJlc3NDaGFuZ2UuZW1pdChhZGRyZXNzKTtcbiAgICAgICAgICB0aGlzLmlucHV0QWRkcmVzcyA9IGFkZHJlc3M7XG5cbiAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0R29vZ2xlTWFwKCkge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLl9tYXBzQVBJTG9hZGVyXG4gICAgICAgIC5sb2FkKClcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZ29vZ2xlQXV0b2NvbXBsZXRlU2VydmljZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlU2VydmljZSgpO1xuICAgICAgICAgIHRoaXMuZ29vZ2xlUGxhY2VzU2VydmljZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZSh0aGlzLnNlYXJjaEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UGxhY2VQcmVkaWN0aW9ucyhhZGRyZXNzOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IHRleHQgfSA9IGV4dHJhY3RVbml0KGFkZHJlc3MpO1xuICAgIGNvbnN0IHBsYWNlc1JlcXVlc3QgPSB0aGlzLmdvb2dsZUF1dG9jb21wbGV0ZVNlcnZpY2VcbiAgICAgIC5nZXRQbGFjZVByZWRpY3Rpb25zKFxuICAgICAgICB7IGlucHV0OiB0ZXh0IH0sXG4gICAgICAgICgpID0+IHt9XG4gICAgICApIGFzIHVua25vd24gYXMgUHJvbWlzZTx7IHByZWRpY3Rpb25zOiBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlUHJlZGljdGlvbltdfT47XG5cbiAgICByZXR1cm4gcGxhY2VzUmVxdWVzdFxuICAgICAgLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiB0ZXh0LFxuICAgICAgICAgIHByZWRpY3Rpb25zOiByZXN1bHQ/LnByZWRpY3Rpb25zIHx8IFtdLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogdGV4dCxcbiAgICAgICAgICBwcmVkaWN0aW9uczogW10sXG4gICAgICAgIH1cbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9nZXRQbGFjZURldGFpbHMoXG4gICAgcGxhY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZURldGFpbHNSZXF1ZXN0XG4gICk6IE9ic2VydmFibGU8eyByZXN1bHQ6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdCwgcGxhY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZURldGFpbHNSZXF1ZXN0IH0+IHtcbiAgICBjb25zdCBnZXREZXRhaWxzRmFjdG9yeSA9IGJpbmRDYWxsYmFjayhcbiAgICAgIHRoaXMuZ29vZ2xlUGxhY2VzU2VydmljZS5nZXREZXRhaWxzLmJpbmQodGhpcy5nb29nbGVQbGFjZXNTZXJ2aWNlKVxuICAgICkgYXMgYW55O1xuXG4gICAgcmV0dXJuIGdldERldGFpbHNGYWN0b3J5KHBsYWNlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoW3Jlc3VsdCwgc3RhdHVzXSkgPT4ge1xuICAgICAgICAgIGlmIChzdGF0dXMgIT09IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlU3RhdHVzLk9LKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcGxhY2UsXG4gICAgICAgICAgICAgIHJlc3VsdCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlZ2lzdGVyRm9jdXNNb25pdG9yKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZtLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwgdHJ1ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMuZGlzYWJsZWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgob3JpZ2luKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgICB9KVxuICB9XG59XG4iLCI8aW5wdXRcbiAgbWF0SW5wdXRcbiAgdHlwZT1cInNlYXJjaFwiXG4gIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gIFsobmdNb2RlbCldPVwiaW5wdXRBZGRyZXNzXCJcbiAgKGJsdXIpPVwiYmx1ckF1dG9jb21wbGV0ZUlucHV0KClcIlxuICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gIFtuYW1lXT1cImF1dG9jb21wbGV0ZU5hbWVcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAjc2VhcmNoSW5wdXQ+XG5cbjxtYXQtYXV0b2NvbXBsZXRlXG4gIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5V2l0aFwiXG4gIChjbG9zZWQpPVwiYXV0b2NvbXBsZXRlUGFuZWxDbG9zZWQoKVwiXG4gIGF1dG9BY3RpdmVGaXJzdE9wdGlvblxuICAjYXV0b2NvbXBsZXRlPVwibWF0QXV0b2NvbXBsZXRlXCI+XG4gIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcHJlZGljdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCI+XG4gICAge3sgb3B0aW9uLmRlc2NyaXB0aW9uIH19XG4gIDwvbWF0LW9wdGlvbj5cbiAgPGRpdiBjbGFzcz1cInN0YXRpYy1vcHRpb25zXCI+XG4gICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIntpZDogJ21hbnVhbCcsIG5hbWU6IGlucHV0QWRkcmVzc31cIj5cbiAgICAgIEVudGVyIGFkZHJlc3MgbWFudWFsbHlcbiAgICA8L21hdC1vcHRpb24+XG4gIDwvZGl2PlxuPC9tYXQtYXV0b2NvbXBsZXRlPlxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1hdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2FkZHJlc3MtYXV0b2NvbXBsZXRlL2FkZHJlc3MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9hZGRyZXNzLWF1dG9jb21wbGV0ZS9hZGRyZXNzLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixNQUFNLEVBQ04sU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsV0FBVyxFQUNYLFFBQVEsRUFDUixJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFNBQVMsRUFLVCxPQUFPLEdBQ1IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxTQUFTLEVBQ1Qs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QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE5nQ29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgQWJzdHJhY3RDb250cm9sLFxuICBOZ01vZGVsLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5cbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5cbmltcG9ydCB7IGd1aWQgfSBmcm9tICdAZmlyZXN0aXRjaC9jb21tb24nO1xuXG5pbXBvcnQgeyBNYXBzQVBJTG9hZGVyIH0gZnJvbSAnQGFnbS9jb3JlJztcblxuaW1wb3J0IHsgYmluZENhbGxiYWNrLCBmcm9tRXZlbnQsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkZWJvdW5jZVRpbWUsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgc3dpdGNoTWFwLFxuICB0YWtlVW50aWwsIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5cbmltcG9ydCB7IEZzQWRkcmVzcyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYWRkcmVzcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRnNBZGRyZXNzQ29uZmlnIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9hZGRyZXNzLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQWRkcmVzc0Zvcm1hdCB9IGZyb20gJy4uLy4uL2VudW1zL2FkZHJlc3MtZm9ybWF0LmVudW0nO1xuaW1wb3J0IHsgZ29vZ2xlRGV0YWlsc1RvQWRkcmVzcyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ29vZ2xlLWRldGFpbHMtdG8tYWRkcmVzcyc7XG5pbXBvcnQgeyBjcmVhdGVFbXB0eUFkZHJlc3MgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NyZWF0ZS1lbXB0eS1hZGRyZXNzJztcbmltcG9ydCB7IGFkZHJlc3NJc0VtcHR5IH0gZnJvbSAnLi4vLi4vaGVscGVycy9hZGRyZXNzLWlzLWVtcHR5JztcbmltcG9ydCB7IGV4dHJhY3RVbml0IH0gZnJvbSAnLi4vLi4vaGVscGVycy9leHRyYWN0LXVuaXQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLWFkZHJlc3MtYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZHJlc3MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkcmVzcy1hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCxcbiAgICAgIHVzZUV4aXN0aW5nOiBGc0FkZHJlc3NBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZzQWRkcmVzc0F1dG9jb21wbGV0ZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBNYXRGb3JtRmllbGRDb250cm9sPEZzQWRkcmVzcz4sIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuXG4gIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9ybWF0ID0gQWRkcmVzc0Zvcm1hdC5Ud29MaW5lO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBuYW1lID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc3VnZ2VzdGlvbnMgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNvbmZpZyh2YWx1ZTogRnNBZGRyZXNzQ29uZmlnKSB7XG4gICAgdGhpcy5fY29uZmlnID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuX2NvbmZpZykge1xuICAgICAgdGhpcy5yZXF1aXJlZCA9XG4gICAgICAoICh0aGlzLmNvbmZpZy5uYW1lICYmIHRoaXMuY29uZmlnLm5hbWUucmVxdWlyZWQpIHx8XG4gICAgICAgICh0aGlzLmNvbmZpZy5jb3VudHJ5ICYmIHRoaXMuY29uZmlnLmNvdW50cnkucmVxdWlyZWQpIHx8XG4gICAgICAgICh0aGlzLmNvbmZpZy5yZWdpb24gJiYgdGhpcy5jb25maWcucmVnaW9uLnJlcXVpcmVkKSB8fFxuICAgICAgICAodGhpcy5jb25maWcuY2l0eSAmJiB0aGlzLmNvbmZpZy5jaXR5LnJlcXVpcmVkKSB8fFxuICAgICAgICAodGhpcy5jb25maWcuc3RyZWV0ICYmIHRoaXMuY29uZmlnLnN0cmVldC5yZXF1aXJlZCkgfHxcbiAgICAgICAgKHRoaXMuY29uZmlnLmFkZHJlc3MyICYmIHRoaXMuY29uZmlnLmFkZHJlc3MyLnJlcXVpcmVkKSB8fFxuICAgICAgICAodGhpcy5jb25maWcuYWRkcmVzczMgJiYgdGhpcy5jb25maWcuYWRkcmVzczMucmVxdWlyZWQpIHx8XG4gICAgICAgICh0aGlzLmNvbmZpZy56aXAgJiYgdGhpcy5jb25maWcuemlwLnJlcXVpcmVkKSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjb25maWcoKTogRnNBZGRyZXNzQ29uZmlnIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBhZGRyZXNzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHJlYWRvbmx5IHNlYXJjaEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZChNYXRBdXRvY29tcGxldGUsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyByZWFkb25seSBhdXRvQ29tcGxldGVSZWY6IE1hdEF1dG9jb21wbGV0ZTtcblxuICBASG9zdEJpbmRpbmcoKVxuICBwdWJsaWMgaWQgPSBgZnMtYWRkcmVzcy1hdXRvY29tcGxldGUtJHtGc0FkZHJlc3NBdXRvY29tcGxldGVDb21wb25lbnQubmV4dElkKyt9YDtcblxuICBwdWJsaWMgaW5wdXRBZGRyZXNzOiBzdHJpbmcgfCBGc0FkZHJlc3MgPSB0aGlzLl9kZWZhdWx0SW5wdXRBZGRyZXNzKCk7XG4gIHB1YmxpYyBwcmVkaWN0aW9uczogYW55W10gPSBbXTtcbiAgcHVibGljIGdvb2dsZUF1dG9jb21wbGV0ZVNlcnZpY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGVTZXJ2aWNlID0gbnVsbDtcbiAgcHVibGljIGdvb2dsZVBsYWNlc1NlcnZpY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlID0gbnVsbDtcblxuICAvLyBDb250cm9sIEFjY2Vzc29yXG4gIHB1YmxpYyBvbkNoYW5nZSA9IChkYXRhOiBhbnkpID0+IHt9O1xuICBwdWJsaWMgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgLy8gTWF0ZXJpYWxcbiAgcHVibGljIGVycm9yU3RhdGUgPSBmYWxzZTtcbiAgcHVibGljIGZvY3VzZWQgPSBmYWxzZTtcbiAgcHVibGljIHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIC8vXG5cbiAgcHVibGljIHJlYWRvbmx5IGF1dG9jb21wbGV0ZU5hbWUgPSBgc2VhcmNoLSR7Z3VpZCgneHh4eHh4eHgnKX1gO1xuXG4gIHByaXZhdGUgX2NvbmZpZzogRnNBZGRyZXNzQ29uZmlnID0ge307XG4gIHByaXZhdGUgX2FkZHJlc3M6IEZzQWRkcmVzcyA9IHt9O1xuICBwcml2YXRlIF9zZWFyY2hUZXh0ID0gJyc7XG5cbiAgLy8gTWF0ZXJpYWxcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgLy9cblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgcHJpdmF0ZSBfbWFwc0FQSUxvYWRlcjogTWFwc0FQSUxvYWRlcixcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIF9mbTogRm9jdXNNb25pdG9yLFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX25nTW9kZWw6IE5nTW9kZWwsXG4gICkge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBGc0FkZHJlc3MpIHtcbiAgICB0aGlzLl9hZGRyZXNzID0gdmFsdWU7XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLl9hZGRyZXNzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogRnNBZGRyZXNzIHtcbiAgICByZXR1cm4gdGhpcy5fYWRkcmVzcztcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2Rpc2FibGVkOyB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgcmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICB9XG4gIHNldCByZXF1aXJlZChyZXEpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXEpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBwbGFjZWhvbGRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gIH1cbiAgc2V0IHBsYWNlaG9sZGVyKHBsaCkge1xuICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxoO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmxvYXRpbmcnKVxuICBwdWJsaWMgZ2V0IHNob3VsZExhYmVsRmxvYXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZCB8fCAhKHRoaXMudmFsdWUgJiYgIXRoaXMudmFsdWUuc3RyZWV0KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuc3VnZ2VzdGlvbnMpIHtcbiAgICAgIHJldHVybiAoIXRoaXMuaW5wdXRBZGRyZXNzICYmICF0aGlzLnZhbHVlPy5zdHJlZXQpIHx8ICh0aGlzLmlucHV0QWRkcmVzcyAmJiAhdGhpcy52YWx1ZT8uc3RyZWV0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgaW5wdXRWYWx1ZSA9ICh0eXBlb2YgdGhpcy5pbnB1dEFkZHJlc3MgPT09ICdzdHJpbmcnKSAmJiB0aGlzLmlucHV0QWRkcmVzcy50cmltKCk7XG5cbiAgICAgIHJldHVybiB0aGlzLmFkZHJlc3NJc0VtcHR5ICYmICFpbnB1dFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWRkcmVzc0lzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGFkZHJlc3NJc0VtcHR5KHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdEdvb2dsZU1hcCgpO1xuXG4gICAgdGhpcy5fbGlzdGVuVXNlclR5cGluZygpO1xuICAgIHRoaXMuX2xpc3RlbkF1dG9jb21wbGV0ZVNlbGVjdGlvbigpO1xuICAgIHRoaXMuX3JlZ2lzdGVyRm9jdXNNb25pdG9yKCk7XG5cbiAgICB0aGlzLm5nQ29udHJvbC5jb250cm9sLnNldFZhbGlkYXRvcnMoW3RoaXMudmFsaWRhdGUuYmluZCh0aGlzKV0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IEZzQWRkcmVzcyB8IG51bGwpIHtcbiAgICB0aGlzLl9hZGRyZXNzID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dEFkZHJlc3MgPSAnJztcbiAgfVxuXG4gIHB1YmxpYyBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XG4gICAgLy8gVE9ET1xuICB9XG5cbiAgcHVibGljIG9uQ29udGFpbmVyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT0gJ2lucHV0Jykge1xuICAgICAgdGhpcy5zZWFyY2hFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IChkYXRhOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHVibGljIGRpc3BsYXlXaXRoID0gKHZhbHVlOiBGc0FkZHJlc3MpID0+IHtcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWUuc3RyZWV0O1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuZW1wdHkpIHtcbiAgICAgIHJldHVybiAnICc7XG4gICAgfVxuICB9O1xuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsaWRhdGlvbkVycm9yczogVmFsaWRhdGlvbkVycm9ycyA9IHt9O1xuXG4gICAgY29uc3QgcmVxdWlyZWRGaWVsZCA9IFtdO1xuICAgIGNvbnN0IHBhcnRzID0gWyduYW1lJywgJ3N0cmVldCcsICdjaXR5JywgJ3JlZ2lvbicsICd6aXAnLCAnY291bnRyeSddO1xuXG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgdGhpcy5hZGRyZXNzSXNFbXB0eSkge1xuICAgICAgdmFsaWRhdGlvbkVycm9ycy5yZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFkZHJlc3NJc0VtcHR5KSB7XG4gICAgICBwYXJ0cy5mb3JFYWNoKHBhcnQgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb25maWdbcGFydF0gJiYgdGhpcy5jb25maWdbcGFydF0ucmVxdWlyZWQgJiYgIXRoaXMudmFsdWVbcGFydF0pIHtcbiAgICAgICAgICByZXF1aXJlZEZpZWxkLnB1c2goW3BhcnRdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGlmICgoKHRoaXMuY29uZmlnLmxhdCAmJiB0aGlzLmNvbmZpZy5sYXQucmVxdWlyZWQpIHx8XG4gICAgICAgICh0aGlzLmNvbmZpZy5sbmcgJiYgdGhpcy5jb25maWcubG5nLnJlcXVpcmVkKSkgJiZcbiAgICAgICAgKCF0aGlzLnZhbHVlLmxhdCB8fCAhdGhpcy52YWx1ZS5sYXQpKSB7XG4gICAgICAgIHZhbGlkYXRpb25FcnJvcnMuaW52YWxpZCA9ICdwb3NpdGlvbiBvbiBtYXAnO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVxdWlyZWRGaWVsZC5sZW5ndGgpIHtcbiAgICAgICAgaWYgKHJlcXVpcmVkRmllbGQubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgdmFsaWRhdGlvbkVycm9ycy5pbnZhbGlkID0gYFRoZSAke3JlcXVpcmVkRmllbGRbMF19IGlzIHJlcXVpcmVkYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBsYXN0ID0gcmVxdWlyZWRGaWVsZC5wb3AoKTtcbiAgICAgICAgICB2YWxpZGF0aW9uRXJyb3JzLmludmFsaWQgPSBgVGhlICR7cmVxdWlyZWRGaWVsZC5qb2luKCcsICcpfSBhbmQgJHtsYXN0fSBhcmUgcmVxdWlyZWRgO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRpb25FcnJvcnM7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEFkZHJlc3MgPSB0aGlzLl9kZWZhdWx0SW5wdXRBZGRyZXNzKCk7XG4gICAgdGhpcy52YWx1ZSA9IGNyZWF0ZUVtcHR5QWRkcmVzcygpO1xuICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sLnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMubmdDb250cm9sLnJlc2V0KGNyZWF0ZUVtcHR5QWRkcmVzcygpKTtcbiAgfVxuXG4gIHB1YmxpYyBhdXRvY29tcGxldGVQYW5lbENsb3NlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZGRyZXNzSXNFbXB0eSAmJiAhIXRoaXMuaW5wdXRBZGRyZXNzKSB7XG4gICAgICB0aGlzLmlucHV0QWRkcmVzcyA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJsdXJBdXRvY29tcGxldGVJbnB1dCgpIHtcbiAgICBpZiAodGhpcy5lbXB0eVxuICAgICAgJiYgdHlwZW9mIHRoaXMuaW5wdXRBZGRyZXNzID09PSAnc3RyaW5nJ1xuICAgICAgJiYgdGhpcy5pbnB1dEFkZHJlc3MgIT09ICcnKSB7XG4gICAgICB0aGlzLmlucHV0QWRkcmVzcyA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIC8vIFNlYXJjaCBpbnB1dCBjYW4ndCBiZSBudWxsLiBXZSBpbXBsZW1lbnRlZCByZXF1aXJlZCB2YWxpZGF0aW9uIHRvIHNob3cgYXN0ZXJpc2sgaWYgbmVlZGVkXG4gIC8vIEJ1dCBnZW5lcmFsIHZhbGlkYXRpb24gcGxhY2VkIGluIGFub3RoZXIgbGV2ZWwgYW5kIG5vdCBkZXBlbmRzIG9mIHRoaXMgaW5wdXRcbiAgLy8gVGhpcyBoYWNrIGFsbG93IHVzIHRvIHNob3cgYXN0ZXJpc2sgYnV0IGRpc2FibGUgZXh0cmEgdmFsaWRhdGlvblxuICBwcml2YXRlIF9kZWZhdWx0SW5wdXRBZGRyZXNzKCkge1xuICAgIHJldHVybiAnICc7XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5Vc2VyVHlwaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBmcm9tRXZlbnQodGhpcy5zZWFyY2hFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICAgICAgZmlsdGVyKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50LmNvZGUgIT09ICdFbnRlcic7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgbWFwKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2VhcmNoVGV4dCA9IHZhbHVlO1xuICAgICAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgICB0aGlzLl9hZGRyZXNzLnN0cmVldCA9IHZhbHVlO1xuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5fYWRkcmVzcztcbiAgICAgICAgICAgICAgdGhpcy5hZGRyZXNzQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgZmlsdGVyKCh0ZXh0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0ZXh0RXhpc3RzID0gISF0ZXh0O1xuXG4gICAgICAgICAgICBpZiAoIXRleHRFeGlzdHMpIHtcbiAgICAgICAgICAgICAgdGhpcy5wcmVkaWN0aW9ucyA9IFtdO1xuXG4gICAgICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGV4dEV4aXN0cztcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgIHN3aXRjaE1hcCgodGV4dDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZ2V0UGxhY2VQcmVkaWN0aW9ucyh0ZXh0KTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHt2YWx1ZSwgcHJlZGljdGlvbnN9KSA9PiB7XG4gICAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnByZWRpY3Rpb25zID0gW1xuICAgICAgICAgICAgICAuLi5wcmVkaWN0aW9ucyxcbiAgICAgICAgICAgIF07XG5cbiAgICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH0pXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgICBwcml2YXRlIF9saXN0ZW5BdXRvY29tcGxldGVTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5hdXRvQ29tcGxldGVSZWYub3B0aW9uU2VsZWN0ZWRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgIHJldHVybiBvcHRpb24ub3B0aW9uLnZhbHVlO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKChwbGFjZSkgPT4ge1xuICAgICAgICAgIGlmICghcGxhY2UgfHwgIXRoaXMuZ29vZ2xlUGxhY2VzU2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChwbGFjZSAmJiAhcGxhY2UucGxhY2VfaWQpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih7XG4gICAgICAgICAgICAgIC4uLnRoaXMudmFsdWUsXG4gICAgICAgICAgICAgIHN0cmVldDogcGxhY2UubmFtZSxcbiAgICAgICAgICAgICAgbWFudWFsOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuX2dldFBsYWNlRGV0YWlscyhwbGFjZSk7XG4gICAgICAgIH0pLFxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgbGV0IGFkZHJlc3M6IEZzQWRkcmVzcztcblxuICAgICAgICAgIGlmIChyZXNwb25zZS5yZXN1bHQpIHtcbiAgICAgICAgICAgIGFkZHJlc3MgPSBnb29nbGVEZXRhaWxzVG9BZGRyZXNzKHJlc3BvbnNlLnJlc3VsdCwgdGhpcy5jb25maWcpO1xuICAgICAgICAgICAgYWRkcmVzcy5kZXNjcmlwdGlvbiA9IHJlc3BvbnNlLnBsYWNlLmRlc2NyaXB0aW9uO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhZGRyZXNzID0gcmVzcG9uc2U7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGFkZHJlc3M7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoYWRkcmVzcykgPT4ge1xuICAgICAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNlYXJjaEVsZW1lbnQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IGFkZHJlc3M7XG5cbiAgICAgICAgICAvLyBjb25zdCBtYXRjaFNlY29uZGFyeSA9IHRoaXMuX3NlYXJjaFRleHQudHJpbSgpLm1hdGNoKC8oYXBhcnRtZW50fGJ1aWxkaW5nfGZsb29yfHN1aXRlfHJvb218ZGVwYXJ0bWVudHx1bml0fHBvXFxzKmJveCkuKiQvaSk7XG4gICAgICAgICAgY29uc3QgeyB1bml0IH0gPSBleHRyYWN0VW5pdCh0aGlzLl9zZWFyY2hUZXh0KTtcbiAgICAgICAgICBpZiAodW5pdCkge1xuICAgICAgICAgICAgYWRkcmVzcy5hZGRyZXNzMiA9IHVuaXQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gY29uc3QgbWF0Y2hOdW1iZXIgPSB0aGlzLl9zZWFyY2hUZXh0LnRyaW0oKS5tYXRjaCgvXihcXGQrKS0vKTtcbiAgICAgICAgICAvLyBpZiAobWF0Y2hOdW1iZXIpIHtcbiAgICAgICAgICAvLyAgIGFkZHJlc3MuYWRkcmVzczIgPSBtYXRjaE51bWJlclsxXTtcbiAgICAgICAgICAvLyB9XG5cbiAgICAgICAgICB0aGlzLmFkZHJlc3NDaGFuZ2UuZW1pdChhZGRyZXNzKTtcbiAgICAgICAgICB0aGlzLmlucHV0QWRkcmVzcyA9IGFkZHJlc3M7XG5cbiAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0R29vZ2xlTWFwKCkge1xuICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLl9tYXBzQVBJTG9hZGVyXG4gICAgICAgIC5sb2FkKClcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZ29vZ2xlQXV0b2NvbXBsZXRlU2VydmljZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlU2VydmljZSgpO1xuICAgICAgICAgIHRoaXMuZ29vZ2xlUGxhY2VzU2VydmljZSA9IG5ldyBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZSh0aGlzLnNlYXJjaEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UGxhY2VQcmVkaWN0aW9ucyhhZGRyZXNzOiBzdHJpbmcpIHtcbiAgICBjb25zdCB7IHRleHQgfSA9IGV4dHJhY3RVbml0KGFkZHJlc3MpO1xuICAgIGNvbnN0IHBsYWNlc1JlcXVlc3QgPSB0aGlzLmdvb2dsZUF1dG9jb21wbGV0ZVNlcnZpY2VcbiAgICAgIC5nZXRQbGFjZVByZWRpY3Rpb25zKFxuICAgICAgICB7IGlucHV0OiB0ZXh0IH0sXG4gICAgICAgICgpID0+IHt9XG4gICAgICApIGFzIHVua25vd24gYXMgUHJvbWlzZTx7IHByZWRpY3Rpb25zOiBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlUHJlZGljdGlvbltdfT47XG5cbiAgICByZXR1cm4gcGxhY2VzUmVxdWVzdFxuICAgICAgLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiB0ZXh0LFxuICAgICAgICAgIHByZWRpY3Rpb25zOiByZXN1bHQ/LnByZWRpY3Rpb25zIHx8IFtdLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogdGV4dCxcbiAgICAgICAgICBwcmVkaWN0aW9uczogW10sXG4gICAgICAgIH1cbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9nZXRQbGFjZURldGFpbHMoXG4gICAgcGxhY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZURldGFpbHNSZXF1ZXN0XG4gICk6IE9ic2VydmFibGU8eyByZXN1bHQ6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdCwgcGxhY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZURldGFpbHNSZXF1ZXN0IH0+IHtcbiAgICBjb25zdCBnZXREZXRhaWxzRmFjdG9yeSA9IGJpbmRDYWxsYmFjayhcbiAgICAgIHRoaXMuZ29vZ2xlUGxhY2VzU2VydmljZS5nZXREZXRhaWxzLmJpbmQodGhpcy5nb29nbGVQbGFjZXNTZXJ2aWNlKVxuICAgICkgYXMgYW55O1xuXG4gICAgcmV0dXJuIGdldERldGFpbHNGYWN0b3J5KHBsYWNlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoW3Jlc3VsdCwgc3RhdHVzXSkgPT4ge1xuICAgICAgICAgIGlmIChzdGF0dXMgIT09IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZXNTZXJ2aWNlU3RhdHVzLk9LKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcGxhY2UsXG4gICAgICAgICAgICAgIHJlc3VsdCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlZ2lzdGVyRm9jdXNNb25pdG9yKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZtLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZiwgdHJ1ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMuZGlzYWJsZWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgob3JpZ2luKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9ICEhb3JpZ2luO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgICB9KVxuICB9XG59XG4iLCI8aW5wdXRcbiAgbWF0SW5wdXRcbiAgdHlwZT1cInNlYXJjaFwiXG4gIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gIFsobmdNb2RlbCldPVwiaW5wdXRBZGRyZXNzXCJcbiAgKGJsdXIpPVwiYmx1ckF1dG9jb21wbGV0ZUlucHV0KClcIlxuICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZVwiXG4gIFtuYW1lXT1cImF1dG9jb21wbGV0ZU5hbWVcIlxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAjc2VhcmNoSW5wdXQ+XG5cbjxtYXQtYXV0b2NvbXBsZXRlXG4gIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5V2l0aFwiXG4gIChjbG9zZWQpPVwiYXV0b2NvbXBsZXRlUGFuZWxDbG9zZWQoKVwiXG4gIGF1dG9BY3RpdmVGaXJzdE9wdGlvblxuICAjYXV0b2NvbXBsZXRlPVwibWF0QXV0b2NvbXBsZXRlXCI+XG4gIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcHJlZGljdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCI+XG4gICAge3sgb3B0aW9uLmRlc2NyaXB0aW9uIH19XG4gIDwvbWF0LW9wdGlvbj5cbiAgPGRpdiBjbGFzcz1cInN0YXRpYy1vcHRpb25zXCI+XG4gICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIntpZDogJ21hbnVhbCcsIG5hbWU6IGlucHV0QWRkcmVzc31cIj5cbiAgICAgIEVudGVyIGFkZHJlc3MgbWFudWFsbHlcbiAgICA8L21hdC1vcHRpb24+XG4gIDwvZGl2PlxuPC9tYXQtYXV0b2NvbXBsZXRlPlxuIl19 |
{ | ||
"name": "@firestitch/address", | ||
"version": "12.0.0", | ||
"version": "12.0.1", | ||
"repository": { | ||
@@ -5,0 +5,0 @@ "type": "git", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
985465
8179