barsa-novin-ray-core 2.0.61 → 2.0.63
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/esm2022/lib/abstract-classes/models.mjs +1 -1
- package/esm2022/lib/abstract-classes/report-base.mjs +4 -1
- package/esm2022/lib/abstract-classes/report-view-base.component.mjs +7 -2
- package/esm2022/lib/dynamic-component/base-view-item-props.mjs +6 -2
- package/esm2022/lib/pipes/multiple-groupby.pipe.mjs +3 -2
- package/esm2022/lib/root-portal/root-portal.component.mjs +3 -1
- package/fesm2022/barsa-novin-ray-core.mjs +18 -3
- package/fesm2022/barsa-novin-ray-core.mjs.map +1 -1
- package/lib/abstract-classes/models.d.ts +5 -0
- package/lib/abstract-classes/report-base.d.ts +2 -1
- package/lib/abstract-classes/report-view-base.component.d.ts +4 -2
- package/lib/dynamic-component/base-view-item-props.d.ts +3 -1
- package/package.json +1 -1
|
@@ -181,4 +181,4 @@ export var SelectionMode;
|
|
|
181
181
|
SelectionMode["MULTIPLE"] = "multiple";
|
|
182
182
|
SelectionMode["NONE"] = "none";
|
|
183
183
|
})(SelectionMode || (SelectionMode = {}));
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9hYnN0cmFjdC1jbGFzc2VzL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sdUJBQXVCO0lBQXBDO1FBWUksY0FBUyxHQUFHLElBQUksQ0FBQztJQVdyQixDQUFDO0NBQUE7QUFTRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsdUJBQXVCO0NBU2xFO0FBQ0QsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHNCQUFzQjtDQUVyRTtBQUNELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx1QkFBdUI7Q0FPbEU7QUFDRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsdUJBQXVCO0NBSWhFO0FBQ0QsTUFBTSxPQUFPLG9CQUFxQixTQUFRLHVCQUF1QjtDQVVoRTtBQUNELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSx1QkFBdUI7Q0FLbkU7QUFDRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsdUJBQXVCO0NBQUc7QUFDcEUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHVCQUF1QjtDQUl2RTtBQUNELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx1QkFBdUI7Q0FPakU7QUFNRCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsdUJBQXVCO0NBR3hFO0FBQ0QsTUFBTSxPQUFPLHVCQUF3QixTQUFRLDRCQUE0QjtDQUd4RTtBQUNELE1BQU0sT0FBTyxvQ0FBcUMsU0FBUSw0QkFBNEI7Q0FFckY7QUFDRCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsdUJBQXVCO0NBSXpFO0FBQ0QsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHVCQUF1QjtDQUd0RTtBQUNELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSx1QkFBdUI7Q0FRaEU7QUFDRCxNQUFNLE9BQU8sYUFBYTtDQU16QjtBQUNELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx1QkFBdUI7Q0FNcEU7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LFFBSXhCO0FBaUNELE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDckIsa0NBQWlCLENBQUE7SUFDakIsc0NBQXFCLENBQUE7SUFDckIsOEJBQWEsQ0FBQTtBQUNqQixDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBEYXRlSW5mbyBhcyBEYXRlSW5mb1NlcnZpY2UgfSBmcm9tICcuLi9kYXRlLXNlcnZpY2VzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgICBDb250cm9sRmllbGRDYXB0aW9uOiBzdHJpbmc7XHJcbiAgICBDb250cm9sRmllbGRDYXB0aW9uVHJhbnNsYXRlZDogc3RyaW5nO1xyXG4gICAgQ29udHJvbEZpZWxkRGVmSWQ6IHN0cmluZztcclxuICAgIENvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgICBSZWxhdGVkRmllbGRMaXN0OiBbXTtcclxuICAgIEhpZGU6IGJvb2xlYW47XHJcbiAgICB4dHlwZTogc3RyaW5nO1xyXG4gICAgTGFiZWxQb3NpdGlvbjogc3RyaW5nO1xyXG4gICAgSXNNYW5kYXRvcnk6IGJvb2xlYW47XHJcbiAgICBJc1Zpc2libGU6IGJvb2xlYW47XHJcbiAgICBTaG93TGFiZWwgPSB0cnVlO1xyXG4gICAgSXNSZWFkT25seTogYm9vbGVhbjtcclxuICAgIElzRW5hYmxlZDogYm9vbGVhbjtcclxuICAgIElzQm9sZDogYm9vbGVhbjtcclxuICAgIElzQXV0b21hdGljOiBib29sZWFuO1xyXG4gICAgSnNvbkV4dHJhUHJvcDogYW55IHwgbnVsbDtcclxuICAgIENvbXBvbmVudDogc3RyaW5nO1xyXG4gICAgSW5mbzogQ29udHJvbEluZm9UeXBlcztcclxuICAgIEZpZWxkSWNvbjogc3RyaW5nO1xyXG4gICAgSXNMdHI6IGJvb2xlYW47XHJcbiAgICBEaXNwbGF5VHlwZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUF0dGFjaG1lbnRJbmZvIHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgIElkOiBzdHJpbmc7XHJcbiAgICBJc05ldzogYm9vbGVhbjtcclxuICAgIElzRGVsZXRlZDogYm9vbGVhbjtcclxuICAgIFR5cGU6IHN0cmluZztcclxuICAgIEZpbGVOYW1lPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBTdHJpbmdDb250cm9sSW5mb01vZGVsIGV4dGVuZHMgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwge1xyXG4gICAgTWF4TGVuZ3RoOiBudW1iZXI7XHJcbiAgICBNaW5MZW5ndGg6IG51bWJlcjtcclxuICAgIFJlZ3VsYXJFeHByZXNzaW9uOiBzdHJpbmc7XHJcbiAgICBJc1Bhc3N3b3JkOiBib29sZWFuO1xyXG4gICAgSXNNdWx0aUxpbmU6IGJvb2xlYW47XHJcbiAgICBOdWxsVGV4dDogc3RyaW5nO1xyXG4gICAgQWxsb3dlZFN0cmluZ0NoYXJzOiBzdHJpbmc7XHJcbiAgICBPbmx5QWNjZXB0Q3VycmVudEN1bHR1cmU6IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGNsYXNzIFJpY2hTdHJpbmdDb250cm9sSW5mb01vZGVsIGV4dGVuZHMgU3RyaW5nQ29udHJvbEluZm9Nb2RlbCB7XHJcbiAgICBJc0h0bWxWaWV3ZXI6IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGNsYXNzIE51bWJlckNvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XHJcbiAgICBNaW5WYWx1ZTogbnVtYmVyO1xyXG4gICAgTWF4VmFsdWU6IG51bWJlcjtcclxuICAgIERlY2ltYWxQcmVjaXNpb246IG51bWJlcjtcclxuICAgIFNob3dUaG91c2FuZFNlcGVyYXRvcjogYm9vbGVhbjtcclxuICAgIE51bWJlclR5cGU6IHN0cmluZztcclxuICAgIEN1cnJlbmN5U3ltYm9sOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGNsYXNzIEZpbGVQaWN0dXJlSW5mb01vZGVsIGV4dGVuZHMgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwge1xyXG4gICAgRXh0OiBzdHJpbmc7XHJcbiAgICBGaWxlSWQ6IHN0cmluZztcclxuICAgIElzRGVsZXRlZDogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgY2xhc3MgRmlsZUNvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XHJcbiAgICBDYW5EZWxldGU6IGJvb2xlYW47XHJcbiAgICBDYW5TYXZlOiBib29sZWFuO1xyXG4gICAgQ2FuVmlldzogYm9vbGVhbjtcclxuICAgIElzTXVsdGlTZWxlY3Q6IGJvb2xlYW47XHJcbiAgICBNYXhGaWxlQ291bnQ6IG51bWJlcjtcclxuICAgIE1heEZpbGVTaXplS2I6IG51bWJlcjtcclxuICAgIE9mZmljZU9ubGluZTogYm9vbGVhbjtcclxuICAgIFZhbGlkRXh0ZW5zaW9uczogc3RyaW5nO1xyXG4gICAgVmlld1R5cGU6IHN0cmluZztcclxufVxyXG5leHBvcnQgY2xhc3MgQ29tbWFuZENvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XHJcbiAgICBNZW51TmFtZTogc3RyaW5nO1xyXG4gICAgRGlzYWJsZVdoZW5SZWFkb25seTogYm9vbGVhbjtcclxuICAgIERpc3BsYXlUeXBlOiBzdHJpbmc7XHJcbiAgICBEeW5hbWljQ29tbWFuZDogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBJY29uQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHt9XHJcbmV4cG9ydCBjbGFzcyBQaWN0dXJlRmlsZUNvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XHJcbiAgICBTaXplTW9kZTogbnVtYmVyO1xyXG4gICAgTWF4RmlsZVNpemVLYjogbnVtYmVyO1xyXG4gICAgVmFsaWRFeHRlbnNpb25zOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGNsYXNzIEdhdWdlQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcclxuICAgIElzQXV0b21hdGljOiBib29sZWFuO1xyXG4gICAgTWF4VmFsdWU6IG51bWJlcjtcclxuICAgIE1heFZhbHVlMjogbnVtYmVyO1xyXG4gICAgTWluVmFsdWU6IG51bWJlcjtcclxuICAgIE1pblZhbHVlMjogbnVtYmVyO1xyXG4gICAgVmFsdWU6IG51bWJlcjtcclxufVxyXG5leHBvcnQgdHlwZSBSZWxhdGlvbkxpc3RUeXBlcyA9XHJcbiAgICB8IFJlbGF0aW9uTGlzdENvbnRyb2xJbmZvTW9kZWxcclxuICAgIHwgSGlzdG9yeUNvbnRyb2xJbmZvTW9kZWxcclxuICAgIHwgUmFiZXRlaEFrc2VUYWtpTGlzdGlDb250cm9sSW5mb01vZGVsXHJcbiAgICB8IFNpbmdsZVJlbGF0aW9uQ29udHJvbEluZm9Nb2RlbDtcclxuZXhwb3J0IGNsYXNzIFJlbGF0aW9uTGlzdENvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XHJcbiAgICBSZWxhdGlvblZpZXdUeXBlOiBzdHJpbmc7XHJcbiAgICBVbHZTZXR0aW5nOiBSZXBvcnRNb2RlbDtcclxufVxyXG5leHBvcnQgY2xhc3MgSGlzdG9yeUNvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBSZWxhdGlvbkxpc3RDb250cm9sSW5mb01vZGVsIHtcclxuICAgIEhhc0V4dGVybmFsUGFyYW1ldGVyOiBib29sZWFuO1xyXG4gICAgUGFyYW1OYW1lMTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBSYWJldGVoQWtzZVRha2lMaXN0aUNvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBSZWxhdGlvbkxpc3RDb250cm9sSW5mb01vZGVsIHtcclxuICAgIEF1dG9TYXZlO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBSZWxhdGVkUmVwb3J0Q29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcclxuICAgIEhhc0V4dGVybmFsUGFyYW1ldGVyOiBib29sZWFuO1xyXG4gICAgUGFyYW1OYW1lMTogc3RyaW5nO1xyXG4gICAgVWx2U2V0dGluZzogUmVwb3J0TW9kZWw7XHJcbn1cclxuZXhwb3J0IGNsYXNzIENvZGVFZGl0b3JDb250cm9sSW5mb01vZGVsIGV4dGVuZHMgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwge1xyXG4gICAgRXh0cmFUZXh0OiBzdHJpbmc7XHJcbiAgICBTdWdnZXN0aW9uczogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBFbnVtQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcclxuICAgIElzTXVsdGlTZWxlY3Q6IGJvb2xlYW47XHJcbiAgICBTaG93QXNSYWRpb0J1dHRvbjogYm9vbGVhbjtcclxuICAgIEljb25EaXNwbGF5VHlwZTogc3RyaW5nO1xyXG4gICAgRGF0YVNvdXJjZToge1xyXG4gICAgICAgIFJvd3M6IFJvd0RhdGFPcHRpb25bXTtcclxuICAgIH07XHJcbiAgICBFbXB0eVJvd0RhdGE6IFJvd0RhdGFPcHRpb247XHJcbn1cclxuZXhwb3J0IGNsYXNzIFJvd0RhdGFPcHRpb24ge1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIElzRW1wdHk6IGJvb2xlYW47XHJcbiAgICB0eHQ6IHN0cmluZztcclxuICAgIHR4dF9zYWZlPzogc3RyaW5nO1xyXG4gICAgdXJsOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGNsYXNzIERhdGVUaW1lQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcclxuICAgIENhbGVuZGFyVHlwZTogc3RyaW5nO1xyXG4gICAgRGF0ZUZvcm1hdDogc3RyaW5nO1xyXG4gICAgU2hvd0RhdGUxOiBib29sZWFuO1xyXG4gICAgU2hvd1RpbWUxOiBib29sZWFuO1xyXG4gICAgVGltZUZvcm1hdDogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBCb29sQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcclxuICAgIEZhbHNlQ2FwdGlvbjogc3RyaW5nO1xyXG4gICAgVHJ1ZUNhcHRpb246IHN0cmluZztcclxuICAgIFRydWVJY29uOiBzdHJpbmc7XHJcbiAgICBWaWV3VHlwZTogc3RyaW5nO1xyXG4gICAgRmFsc2VJY29uOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZUNvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XHJcbiAgICBJbm5lckN0cmxyOiBDb250cm9sSW5mb1R5cGVzO1xyXG4gICAgRXhlY3V0YWlvblRpbWU6IHN0cmluZztcclxuICAgIEVkaXRUeXBlOiBzdHJpbmc7XHJcbiAgICBEb250U2hvd1JlY2FsY3VsYXRlQnV0dG9uOiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBTdWJmb3JtQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcclxuICAgIFR5cGVEZWZJZDogYW55O1xyXG4gICAgVHlwZURlZkljb246IHN0cmluZztcclxuICAgIElzQ29tcG9zZWRSZWxhdGlvbjogc3RyaW5nO1xyXG4gICAgRHJvcERvd25SZXBvcnRJZDogc3RyaW5nO1xyXG4gICAgVHlwZVZpZXdJZDogc3RyaW5nO1xyXG4gICAgRm9ybVBhbmVsU2V0dGluZzogRm9ybVNldHRpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEb3dubG9hZEZpbGVJbmZvIHtcclxuICAgIGZpbGVJZDogc3RyaW5nO1xyXG4gICAgZmlsZVVybDogc3RyaW5nO1xyXG4gICAgdmlld0luQnJvd3NlcjogYm9vbGVhbjtcclxuICAgIGNvbnZlcnRUbzogc3RyaW5nO1xyXG4gICAgaXNPZmZpY2VPbmxpbmU6IGJvb2xlYW47XHJcbiAgICBmb3JPY3g6IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEb3dubG9hZEZpbGVJbmZvUmVzdWx0IHtcclxuICAgIGZpbGVuYW1lOiBzdHJpbmc7XHJcbiAgICBjb250ZW50OiBzdHJpbmc7XHJcbiAgICBjb250ZW50VHlwZTogc3RyaW5nO1xyXG4gICAgc3VjY2VlZDogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgY2xhc3MgTGluZWFyTGlzdENvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XHJcbiAgICBEZWZhdWx0RmllbGQ6IHN0cmluZztcclxuICAgIEV4dHJhSnNvblByb3BGaWVsZDogc3RyaW5nO1xyXG4gICAgRmlsbEJlZm9yZURyb3BEb3duOiBib29sZWFuO1xyXG4gICAgSXNHZW5lcmFsSW5mbzogYm9vbGVhbjtcclxuICAgIElzTXVsdGlTZWxlY3Q6IGJvb2xlYW47XHJcbiAgICBSZWxhdGlvbjogTGlzdFJlbGF0aW9uTW9kZWw7XHJcbiAgICBSZWxhdGlvblZpZXdUeXBlOiBzdHJpbmc7XHJcbiAgICBSb3dJY29uOiBzdHJpbmc7XHJcbiAgICBUYXJnZXRUeXBlRGVmSWQ6IHN0cmluZztcclxufVxyXG5leHBvcnQgY2xhc3MgTGlzdFJlbGF0aW9uTW9kZWwge1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55O1xyXG4gICAgQ2hpbGRGZElkOiBzdHJpbmc7XHJcbiAgICBDaGlsZEZkTmFtZTogc3RyaW5nO1xyXG4gICAgSXNBdXRvU2F2ZTogYm9vbGVhbjtcclxuICAgIFBhcmVudE1vSWQ6IHN0cmluZztcclxuICAgIFJlbGF0aW9uVHlwZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBTaW5nbGVSZWxhdGlvbkNvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XHJcbiAgICBDb2x1bW5SZXF1ZXN0RW51bTogc3RyaW5nO1xyXG4gICAgRHJvcERvd25SZXBvcnRJZDogc3RyaW5nO1xyXG4gICAgRmlsbEJlZm9yZURyb3BEb3duOiBib29sZWFuO1xyXG4gICAgSGlkZUNvbWJvOiBib29sZWFuO1xyXG4gICAgUmVsYXRpb25WaWV3VHlwZTogc3RyaW5nO1xyXG4gICAgUGFzc1BhcmVudEZvcm06IGJvb2xlYW47XHJcbiAgICBTaG93TmV3QnV0dG9uOiBib29sZWFuO1xyXG4gICAgU2hvd09rQ2FuY2VsOiBib29sZWFuO1xyXG4gICAgVmlld1JlbGF0ZWRGb3JtVHlwZTogc3RyaW5nO1xyXG4gICAgVGFyZ2V0VHlwZURlZklkOiBzdHJpbmc7XHJcbiAgICBEYXRhU291cmNlOiB7XHJcbiAgICAgICAgUm93czogUm93RGF0YU9wdGlvbltdO1xyXG4gICAgfTtcclxuICAgIFByZXZpZXdGaWVsZENhcHRpb246IHN0cmluZztcclxuICAgIFByZXZpZXdGaWVsZElkOiBzdHJpbmc7XHJcbiAgICBQcmV2aWV3RmllbGROYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbnRyb2xJbmZvVHlwZXMgPVxyXG4gICAgfCBTdWJmb3JtQ29udHJvbEluZm9Nb2RlbFxyXG4gICAgfCBDYWxjdWxhdGVDb250cm9sSW5mb01vZGVsXHJcbiAgICB8IEJvb2xDb250cm9sSW5mb01vZGVsXHJcbiAgICB8IEVudW1Db250cm9sSW5mb01vZGVsXHJcbiAgICB8IEljb25Db250cm9sSW5mb01vZGVsXHJcbiAgICB8IEZpbGVDb250cm9sSW5mb01vZGVsXHJcbiAgICB8IERhdGVUaW1lQ29udHJvbEluZm9Nb2RlbFxyXG4gICAgfCBOdW1iZXJDb250cm9sSW5mb01vZGVsXHJcbiAgICB8IFN0cmluZ0NvbnRyb2xJbmZvTW9kZWxcclxuICAgIHwgUGljdHVyZUZpbGVDb250cm9sSW5mb01vZGVsXHJcbiAgICB8IEdhdWdlQ29udHJvbEluZm9Nb2RlbFxyXG4gICAgfCBDb21tYW5kQ29udHJvbEluZm9Nb2RlbFxyXG4gICAgfCBDb2RlRWRpdG9yQ29udHJvbEluZm9Nb2RlbDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9ybVZpZXdTZXR0aW5nIHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgIExheW91dDk0OiBhbnk7XHJcbiAgICBDb250cm9sSW5mbzogR2VuZXJhbENvbnRyb2xJbmZvTW9kZWxbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1TZXR0aW5nIHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgIERhdGE6IHtcclxuICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgICAgICAgTW86IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICB9O1xyXG4gICAgVmlldzogRm9ybVZpZXdTZXR0aW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgICAkRmllbGREaWN0PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcclxuICAgICRSZXBvcnRJZD86IHN0cmluZztcclxuICAgICRUeXBlPzogc3RyaW5nO1xyXG4gICAgJFN0eWxlSW5kZXg/OiBudW1iZXJbXTtcclxuICAgICRDYXB0aW9uOiBzdHJpbmc7XHJcbiAgICAkSWNvbj86IHN0cmluZztcclxuICAgICRTdGF0ZT86IHN0cmluZztcclxuICAgICRUeXBlRGVmSWQ/OiBzdHJpbmc7XHJcbiAgICAkVHlwZURlZk5hbWU/OiBzdHJpbmc7XHJcbiAgICAkQ2hpbGRyZW4/OiBNZXRhb2JqZWN0RGF0YU1vZGVsW107XHJcbiAgICBJbmhlcml0YW5jZT86IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBJbmhlcml0YW5jZUluZm8/OiB7XHJcbiAgICAgICAgQ2hpbGRGaWVsZE5hbWU6IHN0cmluZztcclxuICAgICAgICBQYXJlbnRGaWVsZE5hbWU6IHN0cmluZztcclxuICAgIH07XHJcbiAgICBJZDogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBkZWNsYXJlIGNsYXNzIENhbGVuZGFyTWV0YW9iamVjdERhdGFNb2RlbCBleHRlbmRzIE1ldGFvYmplY3REYXRhTW9kZWwge1xyXG4gICAgJENvbG9yOiBzdHJpbmc7XHJcbiAgICAkTW9tZW50U3RhcnREYXRlOiBzdHJpbmc7XHJcbiAgICAkTW9tZW50RW5kRGF0ZTogc3RyaW5nO1xyXG4gICAgJFN0YXJ0VGltZXM6IHN0cmluZztcclxuICAgICRFbmRUaW1lczogc3RyaW5nO1xyXG4gICAgJFRpdGxlOiBzdHJpbmc7XHJcbiAgICAkTm90ZXM6IHN0cmluZztcclxuICAgICRTdGFydERhdGVJbmZvPzogRGF0ZUluZm9TZXJ2aWNlO1xyXG4gICAgJEVuZERhdGVJbmZvPzogRGF0ZUluZm9TZXJ2aWNlO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTW9Gb3JSZXBvcnRNb2RlbCB7XHJcbiAgICAkVHlwZT86IHN0cmluZztcclxuICAgIFR5cGVEZWZJZDogc3RyaW5nO1xyXG4gICAgUmVwb3J0SWQ6IHN0cmluZztcclxuICAgIEljb24/OiBzdHJpbmc7XHJcbiAgICBNb0RhdGFMaXN0OiBBcnJheTxNZXRhb2JqZWN0RGF0YU1vZGVsPjtcclxuICAgIERlbGV0ZWRMaXN0OiBBcnJheTx7IElkOiBzdHJpbmc7IFR5cGVEZWZJZDogc3RyaW5nIH0+O1xyXG4gICAgQWRkZWRMaXN0OiBBcnJheTx7IElkOiBzdHJpbmc7IFR5cGVEZWZJZDogc3RyaW5nIH0+O1xyXG4gICAgUGFnaW5nOiBQYWdpbmdTZXR0aW5nO1xyXG4gICAgUmVsYXRpb24/OiB7XHJcbiAgICAgICAgUmVsYXRpb25UeXBlOiBzdHJpbmc7XHJcbiAgICAgICAgUGFyZW50TW9JZDogc3RyaW5nO1xyXG4gICAgICAgIFBhcmVudEZkSWQ6IHN0cmluZztcclxuICAgICAgICBDaGlsZEZkSWQ6IHN0cmluZztcclxuICAgICAgICBQYXJlbnRGZE5hbWU6IHN0cmluZztcclxuICAgICAgICBDaGlsZEZkTmFtZTogc3RyaW5nO1xyXG4gICAgICAgIFBhc3NQYXJlbnRNb0ZpZWxkOiBzdHJpbmc7XHJcbiAgICAgICAgSXNBdXRvU2F2ZTogYm9vbGVhbjtcclxuICAgICAgICBJc0F1dG9TYXZlX1JlbG9hZFBhcmVudEZvcm1zOiBib29sZWFuO1xyXG4gICAgICAgIElzQXV0b1NhdmVfUmVsb2FkUm9vdFBhcmVudExpc3Q6IGJvb2xlYW47XHJcbiAgICB9O1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5EZWxldGVkTGlzdCA9IHRoaXMuQWRkZWRMaXN0ID0gdGhpcy5Nb0RhdGFMaXN0ID0gW107XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGNsYXNzIFJlcG9ydEJhc2VJbmZvIHtcclxuICAgIElkOiBzdHJpbmc7XHJcbiAgICBDYXB0aW9uOiBzdHJpbmc7XHJcbiAgICBGb2xkZXJJZDogc3RyaW5nO1xyXG4gICAgSWNvblVybDogc3RyaW5nO1xyXG4gICAgTmFtZTogc3RyaW5nO1xyXG4gICAgUmVwb3J0SWQ6IHN0cmluZztcclxufVxyXG5leHBvcnQgY2xhc3MgUmVwb3J0RXh0cmFJbmZvIGV4dGVuZHMgUmVwb3J0QmFzZUluZm8ge1xyXG4gICAgVHlwZURlZklkOiBzdHJpbmc7XHJcbiAgICBUeXBlRGVmQ2FwdGlvbjogc3RyaW5nO1xyXG4gICAgUmVwb3J0VHlwZTogc3RyaW5nO1xyXG4gICAgSGlkZVRvb2xiYXI6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNZXRhb2JqZWN0UmVsYXRpb25Nb2RlbCBleHRlbmRzIExpc3RSZWxhdGlvbk1vZGVsIHtcclxuICAgIFBhcmVudEZkSWQ6IHN0cmluZztcclxuICAgIFBhc3NQYXJlbnRNb0ZpZWxkOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZpZWxkSW5mb1R5cGVFbnVtIHtcclxuICAgIEludEluZm8gPSAwLFxyXG4gICAgU3RyaW5nSW5mbyA9IDIsXHJcbiAgICBEYXRlSW5mbyA9IDMsXHJcbiAgICBCb29sSW5mbyA9IDUsXHJcbiAgICBFbnVtSW5mbyA9IDYsXHJcbiAgICBVc2VySW5mbyA9IDcsXHJcbiAgICBDYXRlZ29yeUluZm8gPSA4LFxyXG4gICAgTWV0YU9iamVjdEluZm8gPSA5LFxyXG4gICAgQ29tbWFuZEluZm8gPSAxMCwgLy8gMHgwMDAwMDAwQVxyXG4gICAgUGljdHVyZXNJbmZvID0gMTEsIC8vIDB4MDAwMDAwMEJcclxuICAgIFJlbGF0aW9uSW5mbyA9IDEyLCAvLyAweDAwMDAwMDBDXHJcbiAgICBIaXN0b3J5SW5mbyA9IDEzLCAvLyAweDAwMDAwMDBEXHJcbiAgICBSZWxhdGlvbkluZm9SZXZlcnNlX0Frc0xpc3RpID0gMTQsIC8vIDB4MDAwMDAwMEVcclxuICAgIENyZWF0b3JVc2VySW5mbyA9IDE1LCAvLyAweDAwMDAwMDBGXHJcbiAgICBDcmVhdGlvbkRhdGVJbmZvID0gMTYsIC8vIDB4MDAwMDAwMTBcclxuICAgIExhc3RVcGRhdGVEYXRlSW5mbyA9IDE3LCAvLyAweDAwMDAwMDExXHJcbiAgICBSZW1pbmRlckluZm8gPSAxOCwgLy8gMHgwMDAwMDAxMlxyXG4gICAgUmljaFN0cmluZ0luZm8gPSAxOSwgLy8gMHgwMDAwMDAxM1xyXG4gICAgQ29udmVydENvbW1hbmRJbmZvID0gMjAsIC8vIDB4MDAwMDAwMTRcclxuICAgIFJlbGF0aW9uSW5mb1NpbmdsZVJldmVyc2VfQWtzVGFraUxpc3RpID0gMjEsIC8vIDB4MDAwMDAwMTVcclxuICAgIERpYWxDb21tYW5kSW5mbyA9IDIyLCAvLyAweDAwMDAwMDE2XHJcbiAgICBGaW5kQ29udGFjdENvbW1hbmRJbmZvID0gMjMsIC8vIDB4MDAwMDAwMTdcclxuICAgIFNlcXVlbmNlQ29tbWFuZEluZm8gPSAyNCwgLy8gMHgwMDAwMDAxOFxyXG4gICAgQ3VycmVuY3lJbmZvID0gMjUsIC8vIDB4MDAwMDAwMTlcclxuICAgIFNpbmdsZVBpY3R1cmVJbmZvID0gMjYsIC8vIDB4MDAwMDAwMUFcclxuICAgIFdvcmRSZXBvcnRDb21tYW5kSW5mbyA9IDI3LCAvLyAweDAwMDAwMDFCXHJcbiAgICBIaWVyYXJjaGljYWxJbmZvID0gMjgsIC8vIDB4MDAwMDAwMUNcclxuICAgIFRpbWVTcGFuSW5mbyA9IDI5LCAvLyAweDAwMDAwMDFEXHJcbiAgICBSZXBvcnRJbmZvID0gMzAsIC8vIDB4MDAwMDAwMUVcclxuICAgIEZpbGVJbmZvID0gMzEsIC8vIDB4MDAwMDAwMUZcclxuICAgIFdvcmRGaWxlSW5mbyA9IDMyLCAvLyAweDAwMDAwMDIwXHJcbiAgICBQaWN0dXJlRmlsZUluZm8gPSAzMywgLy8gMHgwMDAwMDAyMVxyXG4gICAgR2F1Z2VJbmZvID0gMzQsIC8vIDB4MDAwMDAwMjJcclxuICAgIENvZGVJbmZvID0gMzUsIC8vIDB4MDAwMDAwMjNcclxuICAgIFdvcmtDZW50ZXJJbmZvID0gMzYsIC8vIDB4MDAwMDAwMjRcclxuICAgIElzRGVsZXRlZEluZm8gPSAzNywgLy8gMHgwMDAwMDAyNVxyXG4gICAgUm93TnVtYmVySW5mbyA9IDM4LCAvLyAweDAwMDAwMDI2XHJcbiAgICBCaW5hcnlJbmZvID0gMzksIC8vIDB4MDAwMDAwMjdcclxuICAgIFJldmVyc2VNZXRhT2JqZWN0SW5mb19Ba3NUYWtpVGFraSA9IDQwLCAvLyAweDAwMDAwMDI4XHJcbiAgICBDb2xvckluZm8gPSA0MSwgLy8gMHgwMDAwMDAyOVxyXG4gICAgSWNvbkluZm8gPSA0MiwgLy8gMHgwMDAwMDAyQVxyXG4gICAgUmVmcmVzaEZpZWxkQ29tbWFuZEluZm8gPSA0MywgLy8gMHgwMDAwMDAyQlxyXG4gICAgUmVmZXJlbmNlRmllbGRJbmZvID0gNDQsIC8vIDB4MDAwMDAwMkNcclxuICAgIFNlYXJjaENvbW1hbmRJbmZvID0gNDUsIC8vIDB4MDAwMDAwMkRcclxuICAgIE9yZGVySW5mbyA9IDQ2IC8vIDB4MDAwMDAwMkVcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENsYXNzTmFtZXNNb2RlbCB7XHJcbiAgICBDb21tYW5kQmFyQ2xhc3M6IHN0cmluZztcclxuICAgIERhdGFDbGFzczogc3RyaW5nO1xyXG4gICAgU2VsZWN0aW9uQ2xhc3M6IHN0cmluZztcclxuICAgIFZpZXdlckNsYXNzOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBFeHRyYU1vZGVsIHtcclxuICAgIEN1c3RvbUNvbW1hbmRzPzogQ3VzdG9tQ29tbWFuZFtdO1xyXG4gICAgRGVmYXVsdENvbW1hbmRzQWNjZXNzPzogRGVmYXVsdENvbW1hbmRzQWNjZXNzO1xyXG4gICAgUGFyZW50VWx2Q29uZmlnPzogYW55O1xyXG4gICAgUmVsYXRpb24/OiBNZXRhb2JqZWN0UmVsYXRpb25Nb2RlbDtcclxuICAgIFJlcG9ydD86IFJlcG9ydEV4dHJhSW5mbztcclxuICAgIEV4dHJhSnNvblByb3BSZXBvcnQ/OiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlUmVwb3J0TW9kZWwge1xyXG4gICAgQ2xhc3NOYW1lczogQ2xhc3NOYW1lc01vZGVsO1xyXG4gICAgRXh0cmE6IEV4dHJhTW9kZWw7XHJcbiAgICBWaWV3OiBWaWV3VHlwZXM7XHJcbiAgICBTZWFyY2hQYW5lbDogYW55O1xyXG4gICAgRGVmYXVsdEl0ZW1Db21wb25lbnQgPSAnUmVwb3J0RGVmYXVsdEl0ZW1Db21wb25lbnQnO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdENvbW1hbmRzQWNjZXNzIHtcclxuICAgIEFkZDogYm9vbGVhbjtcclxuICAgIEFkZFRvTGlzdDogYm9vbGVhbjtcclxuICAgIERlbGV0ZTogYm9vbGVhbjtcclxuICAgIEVkaXQ6IGJvb2xlYW47XHJcbiAgICBFeHBvcnQ6IGJvb2xlYW47XHJcbiAgICBQcmludDogYm9vbGVhbjtcclxuICAgIFJlZnJlc2g6IGJvb2xlYW47XHJcbiAgICBSZW1vdmVGcm9tTGlzdDogYm9vbGVhbjtcclxuICAgIFZpZXc6IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGNsYXNzIEN1c3RvbUNvbW1hbmQge1xyXG4gICAgRGF0YTogYW55O1xyXG4gICAgRGlzYWJsZVdoZW5SZWFkb25seTogYm9vbGVhbjtcclxuICAgIEhpZGVEaXNhYmxlOiBib29sZWFuO1xyXG4gICAgSWNvblVybDogc3RyaW5nO1xyXG4gICAgSXNMYXJnZTogYm9vbGVhbjtcclxuICAgIE15dHlwZTogc3RyaW5nO1xyXG4gICAgT3JkZXI6IG51bWJlcjtcclxuICAgIFNob3dPbkNvbnRleHQ6IGJvb2xlYW47XHJcbiAgICBTaG93T25Ub29sYmFyOiBib29sZWFuO1xyXG4gICAgVGV4dDogc3RyaW5nO1xyXG4gICAgVXNlQWx3YXlzOiBib29sZWFuO1xyXG4gICAgVXNlRm9yTXVsdGk6IGJvb2xlYW47XHJcbiAgICBVc2VGb3JTaW5nbGU6IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGNsYXNzIFJlcG9ydE1vZGVsIGV4dGVuZHMgQmFzZVJlcG9ydE1vZGVsIHtcclxuICAgIERhdGE6IE1vRm9yUmVwb3J0TW9kZWw7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBSZXBvcnRMaXN0TW9kZWwgZXh0ZW5kcyBCYXNlUmVwb3J0TW9kZWwge1xyXG4gICAgVmlldzogR3JpZFZpZXc7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFJlcG9ydEZvcm1Nb2RlbCBleHRlbmRzIEJhc2VSZXBvcnRNb2RlbCB7XHJcbiAgICBWaWV3OiBGb3JtVmlldztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVWaWV3IHtcclxuICAgIENvbmRpdGlvbmFsRm9ybWF0czogW107XHJcbiAgICBQYXJlbnRJZERiTmFtZTogc3RyaW5nO1xyXG4gICAgU2hvd1NlbGVjdGlvbkNoZWNrczogYm9vbGVhbjtcclxuICAgIFRyZWVBdXRvT3BlbkxldmVsczogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRWaWV3IHtcclxuICAgIEFsbG93R3JpZENvbHVtblNvcnQ6IGJvb2xlYW47XHJcbiAgICBBdXRvSW5saW5lRWRpdDogYm9vbGVhbjtcclxuICAgIENvbHVtblJlcXVlc3RFbnVtOiBzdHJpbmc7XHJcbiAgICBDb2x1bW5zOiBBcnJheTxSZXBvcnRWaWV3Q29sdW1uPjtcclxuICAgIENvbmRpdGlvbmFsRm9ybWF0czogW107XHJcbiAgICBEaXNhYmxlUm93UmVsb2FkOiBib29sZWFuO1xyXG4gICAgR3JpZFNldHRpbmc6IEdyaWRTZXR0aW5nO1xyXG4gICAgR3JpZF9GcmVlQ29sdW1uU2l6aW5nOiBib29sZWFuO1xyXG4gICAgR3JpZF9HcmlkTGluZXM6IHN0cmluZztcclxuICAgIEdyaWRfSGlkZUhlYWRlcjogYm9vbGVhbjtcclxuICAgIEdyaWRfU2hvd1Jvd051bWJlcjogYm9vbGVhbjtcclxuICAgIEhhc0NvbmRpdGlvbmFsRm9ybWF0OiBib29sZWFuO1xyXG4gICAgSGFzU3VtbWFyeVJvdzogYm9vbGVhbjtcclxuICAgIEhpZGVJY29uOiBib29sZWFuO1xyXG4gICAgSXNDaGVja0xpc3Q6IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDYWxlbmRhclZpZXcge1xyXG4gICAgQ2FsZW5kYXJGaWVsZHM6IENhbGVuZGFyRmllbGRzO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9ybVZpZXcge1xyXG4gICAgRm9ybVBhbmVsU2V0dGluZzogYW55O1xyXG59XHJcbmV4cG9ydCB0eXBlIFZpZXdUeXBlcyA9IEdyaWRWaWV3IHwgQ2FsZW5kYXJWaWV3IHwgVHJlZVZpZXcgfCBGb3JtVmlldztcclxuXHJcbmV4cG9ydCB0eXBlIFJlcG9ydE1vZGVsVHlwZXMgPSBSZXBvcnRMaXN0TW9kZWwgfCBSZXBvcnRDYWxlbmRhck1vZGVsIHwgUmVwb3J0Rm9ybU1vZGVsIHwgUmVwb3J0VHJlZU1vZGVsO1xyXG5cclxuZXhwb3J0IGNsYXNzIFJlcG9ydENhbGVuZGFyTW9kZWwgZXh0ZW5kcyBCYXNlUmVwb3J0TW9kZWwge1xyXG4gICAgVmlldzogQ2FsZW5kYXJWaWV3O1xyXG59XHJcbmV4cG9ydCBjbGFzcyBSZXBvcnRUcmVlTW9kZWwgZXh0ZW5kcyBCYXNlUmVwb3J0TW9kZWwge1xyXG4gICAgVmlldzogVHJlZVZpZXc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDYWxlbmRhckZpZWxkcyB7XHJcbiAgICBFbmREYXRlOiBzdHJpbmc7XHJcbiAgICBOb3Rlczogc3RyaW5nO1xyXG4gICAgU3RhcnREYXRlOiBzdHJpbmc7XHJcbiAgICBUaXRsZTogc3RyaW5nO1xyXG4gICAgQ29sb3I6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFJlcG9ydFZpZXdDb2x1bW4ge1xyXG4gICAgQWxpYXM6IHN0cmluZztcclxuICAgIENhcHRpb246IHN0cmluZztcclxuICAgIEZpZWxkRGVmSWQ6IHN0cmluZztcclxuICAgIEZpZWxkVHlwZUlkOiBudW1iZXI7XHJcbiAgICBGaWVsZFR5cGU6IHN0cmluZztcclxuICAgIEhhc1N1bW1hcnk6IGJvb2xlYW47XHJcbiAgICBIaWRkZW46IGJvb2xlYW47XHJcbiAgICBJc0x0cjogYm9vbGVhbjtcclxuICAgIElzUHJldmlldzogYm9vbGVhbjtcclxuICAgIE1ldGFGaWVsZFR5cGVJZDogc3RyaW5nO1xyXG4gICAgTmFtZTogc3RyaW5nO1xyXG4gICAgV2lkdGg6IG51bWJlcjtcclxuICAgIFRhZz86IHN0cmluZztcclxuICAgIEljb246IHN0cmluZztcclxuICAgIE9ubHlJbWFnZT86IGJvb2xlYW47XHJcbiAgICBFeHRyYT86IGFueTtcclxuICAgICRXaWR0aDogc3RyaW5nO1xyXG4gICAgJFdpZHRoMj86IHN0cmluZztcclxuICAgICRNZXJnZWRGaWVsZHNUb0NvbHVtbj86IHN0cmluZ1tdO1xyXG4gICAgJENTU0NsYXNzTmFtZT86IHN0cmluZztcclxuICAgICRDdXN0b21Db21wb25lbnQ/OiBFanJheU9sZ287XHJcbiAgICAkVGV4dFdpZHRoPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgR3JpZFNldHRpbmcge1xyXG4gICAgQ29sU2V0dGluZ0xpc3Q6IEFycmF5PENvbFNldHRpbmc+O1xyXG4gICAgU29ydFNldHRpbmdMaXN0OiBBcnJheTxTb3J0U2V0dGluZz47XHJcbiAgICBBdXRvU2l6ZUNvbHVtbnM6IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGNsYXNzIENvbFNldHRpbmcge1xyXG4gICAgTmFtZTogc3RyaW5nO1xyXG4gICAgV2lkdGg6IG51bWJlcjtcclxuICAgIElzSGlkZGVuOiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBjbGFzcyBTb3J0U2V0dGluZyB7XHJcbiAgICBOYW1lOiBzdHJpbmc7XHJcbiAgICBTb3J0RGlyZWN0aW9uOiBzdHJpbmc7XHJcbiAgICBJc0dyb3VwZWQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZXBvcnRGaWVsZCB7XHJcbiAgICBwdWJsaWMga2V5OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdmFsdWU6IHN0cmluZztcclxuICAgIHB1YmxpYyBjYXB0aW9uOiBzdHJpbmc7XHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uLCBwdWJsaWMgaXRlbTogYW55KSB7XHJcbiAgICAgICAgY29uc3QgbmFtZSA9IGNvbHVtbi5OYW1lO1xyXG4gICAgICAgIHRoaXMuY2FwdGlvbiA9IGNvbHVtbi5DYXB0aW9uO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLml0ZW1bbmFtZV07XHJcbiAgICAgICAgaWYgKE51bWJlcihjb2x1bW4uRmllbGRUeXBlSWQpID09PSBGaWVsZEluZm9UeXBlRW51bS5EYXRlSW5mbykge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5pdGVtW25hbWUgKyAnJENhcHRpb24nXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKE51bWJlcihjb2x1bW4uRmllbGRUeXBlSWQpID09PSBGaWVsZEluZm9UeXBlRW51bS5JY29uSW5mbykge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5pdGVtW25hbWVdLlVybDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTG9naW5SZXN1bHQge1xyXG4gICAgZGF0YTogeyBzdGg6IHN0cmluZyB9O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50U2V0dGluZ3NEYXRhTW9kZWwgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgIFBsYWNlSG9sZGVycz86IFBsYWNlSG9sZGVyRGF0YU1vZGVsW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnREYXRhTW9kZWwgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgIFNlbGVjdG9yOiBzdHJpbmc7XHJcbiAgICBTZXR0aW5nczogQ29tcG9uZW50U2V0dGluZ3NEYXRhTW9kZWw7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQbGFjZUhvbGRlckRhdGFNb2RlbCBleHRlbmRzIE1ldGFvYmplY3REYXRhTW9kZWwge1xyXG4gICAgTmFtZTogc3RyaW5nO1xyXG4gICAgVGl0bGU6IHN0cmluZztcclxuICAgIElzUGFnZTogYm9vbGVhbjtcclxuICAgIE9yZGVyTnVtYmVyOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlRGF0YU1vZGVsIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICBUaXRsZTogc3RyaW5nO1xyXG4gICAgUGxhY2VIb2xkZXI6IFBsYWNlSG9sZGVyRGF0YU1vZGVsO1xyXG4gICAgQ29tcG9uZW50OiBDb21wb25lbnREYXRhTW9kZWw7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQYWdlTGlzdFJlcG9ydE1vZGVsIGV4dGVuZHMgTW9Gb3JSZXBvcnRNb2RlbCB7XHJcbiAgICBNb0RhdGFMaXN0OiBBcnJheTxQYWdlRGF0YU1vZGVsPjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIE1vZHVsZUxpc3RSZXBvcnRNb2RlbCBleHRlbmRzIE1vRm9yUmVwb3J0TW9kZWwge1xyXG4gICAgTW9EYXRhTGlzdDogQXJyYXk8TW9kdWxlRGF0YU1vZGVsPjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VEYXRhTW9kZWwgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgIENvbXBvbmVudDogQ29tcG9uZW50RGF0YU1vZGVsO1xyXG4gICAgTW9kdWxlTGlzdDogTW9kdWxlTGlzdFJlcG9ydE1vZGVsO1xyXG4gICAgQ2hpbGRQYWdlTGlzdDogUGFnZUxpc3RSZXBvcnRNb2RlbDtcclxuICAgIFRpdGxlOiBzdHJpbmc7XHJcbiAgICBSb3V0ZTogc3RyaW5nO1xyXG4gICAgSXNEZWZhdWx0Um91dGU6IHN0cmluZztcclxuICAgIElzTG9naW5Sb3V0ZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBvcnRhbERhdGFNb2RlbCBleHRlbmRzIFBhZ2VEYXRhTW9kZWwge1xyXG4gICAgSXNBY3RpdmU6IGJvb2xlYW47XHJcbiAgICBJc1B3YTogYm9vbGVhbjtcclxuICAgIFBvcnRhbFNldHRpbmdzOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBWaXNpYmlsaXR5IHtcclxuICAgIGVuYWJsZTogYm9vbGVhbjtcclxuICAgIHZpc2libGU6IGJvb2xlYW47XHJcbiAgICByZWFkb25seTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJSGVhZGVyTGF5b3V0IHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgIFRpdGxlOiBzdHJpbmc7XHJcbiAgICBTdWJ0aXRsZTogc3RyaW5nO1xyXG4gICAgQXZhdGFyOiBhbnk7XHJcbiAgICBGYWNldExpc3Q6IHsgTW9EYXRhTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdIH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVudUl0ZW0ge1xyXG4gICAgaWNvbjogc3RyaW5nO1xyXG4gICAgdGV4dDogc3RyaW5nO1xyXG4gICAgaXRlbUlkOiBzdHJpbmc7XHJcbiAgICBEYXRhOiBhbnk7XHJcbiAgICBDb21tYW5kOiBhbnk7XHJcbiAgICBoYW5kbGVyOiAoKSA9PiB2b2lkO1xyXG4gICAgSXNCdWlsdGluPzogYm9vbGVhbjtcclxuICAgIG1lbnU/OiB7IGl0ZW1zOiBNZW51SXRlbVtdIH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQYWdpbmdTZXR0aW5nIHtcclxuICAgIEVuZEluZGV4OiBudW1iZXI7XHJcbiAgICBIYXNQYWdpbmc6IGJvb2xlYW47XHJcbiAgICBQYWdlOiBudW1iZXI7XHJcbiAgICBQYWdlU2l6ZTogbnVtYmVyO1xyXG4gICAgUm93Q291bnQ6IG51bWJlcjtcclxuICAgIFN0YXJ0SW5kZXg6IG51bWJlcjtcclxuICAgIFRvdGFsUGFnZXM6IG51bWJlcjtcclxuICAgIFRvdGFsUm93czogbnVtYmVyO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uSW5mb1R5cGUge1xyXG4gICAgTmFtZTogc3RyaW5nO1xyXG4gICAgSGlkZGVuOiBib29sZWFuO1xyXG4gICAgQ2FwdGlvbjogc3RyaW5nO1xyXG4gICAgSXNNYW5kYXRvcnk/OiBib29sZWFuO1xyXG4gICAgV2lkdGg6IG51bWJlcjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFBhbmVsU2V0dGluZ3MgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgIFRpdGxlOiBzdHJpbmc7XHJcbiAgICBSZXBvcnRJZDogc3RyaW5nO1xyXG4gICAgSXNEZWZhdWx0OiBib29sZWFuO1xyXG4gICAgSXNQdWJsaWM6IGJvb2xlYW47XHJcbiAgICBBcHBseUF1dG9tYXRpY2FsbHk6IGJvb2xlYW47XHJcbiAgICBTZWFyY2hNbz86IHN0cmluZztcclxuICAgIEZpZWxkc1NldHRpbmc/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBEZXZpY2VTaXplID0gJ2Rlc2t0b3AnIHwgJ21vYmlsZScgfCAndGFibGV0JztcclxuZXhwb3J0IGNvbnN0IERhdGVSYW5nZXMgPSBbXHJcbiAgICAnRGF0ZVJfTm9uZScsXHJcbiAgICAnRGF0ZVJfU3BlY2lmaWNSYW5nZScsXHJcbiAgICAnRGF0ZVJfVG9kYXknLFxyXG4gICAgJ0RhdGVSX1RoaXNXZWVrJyxcclxuICAgICdEYXRlUl9UaGlzTW9udGgnLFxyXG4gICAgJ0RhdGVSX1RoaXNZZWFyJyxcclxuICAgICdEYXRlUl9EYXlzQmVmb3JlJyxcclxuICAgICdEYXRlUl9QcmV2V2VlaycsXHJcbiAgICAnRGF0ZVJfUHJldk1vbnRoJyxcclxuICAgICdEYXRlUl9QcmV2WWVhcicsXHJcbiAgICAnRGF0ZVJfRGF5c0FmdGVyJyxcclxuICAgICdEYXRlUl9OZXh0V2VlaycsXHJcbiAgICAnRGF0ZVJfTmV4dE1vbnRoJyxcclxuICAgICdEYXRlUl9OZXh0WWVhcidcclxuXTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVWlSZXBvcnRWaWV3QmFzZSB7XHJcbiAgICBVaUNvbXBvbmVudDoge1xyXG4gICAgICAgIENvbXBvbmVudDogYm9vbGVhbjtcclxuICAgICAgICBNb2R1bGU6IHN0cmluZztcclxuICAgICAgICBNb2R1bGVGaWxlTmFtZTogc3RyaW5nO1xyXG4gICAgICAgIE5hbWU6IHN0cmluZztcclxuICAgICAgICBTZWxlY3Rvcjogc3RyaW5nO1xyXG4gICAgICAgIFNldHRpbmdzOiBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZztcclxuICAgIH07XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZyB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgICBUeXBlOiBzdHJpbmc7XHJcbiAgICBJY29uOiBzdHJpbmc7XHJcbiAgICBJc0RlZmF1bHQ6IGJvb2xlYW47XHJcbiAgICBIaWRkZW46IGJvb2xlYW47XHJcbiAgICBFbmFibGVTZWFyY2g6IGJvb2xlYW47XHJcbiAgICBEaXNhYmxlUmVzcG9uc2l2ZT86IGJvb2xlYW47XHJcbiAgICBEaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudT86IGJvb2xlYW47XHJcbiAgICBIb3Jpem9udGFsR3JvdXBCeTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRTZXR0aW5nIHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgIFRpdGxlPzogc3RyaW5nO1xyXG4gICAgeHR5cGU6IHN0cmluZztcclxuICAgIFRleHRWaXNpYmxlPzogYm9vbGVhbjtcclxuICAgIGl0ZW1zOiBMYXlvdXRTZXR0aW5nW107XHJcbiAgICBJc1Jvb3Q/OiBib29sZWFuO1xyXG4gICAgU2VsZWN0ZWRUYWJQYWdlTmFtZT86IHN0cmluZztcclxufVxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSA9ICdzJyB8ICdtJyB8ICdsJyB8ICd4bCc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJlZU5vZGVPYmoge1xyXG4gICAgaXNFeHBhbmQ6IGJvb2xlYW47XHJcbiAgICB2aXNpYmlsaXR5OiBib29sZWFuO1xyXG4gICAgZXhwYW5kOiAoKSA9PiB2b2lkO1xyXG4gICAgY29sbGFwc2U6ICgpID0+IHZvaWQ7XHJcbiAgICBEYXRhOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgY2hpbGRyZW46IFRyZWVOb2RlT2JqW107XHJcbiAgICBpY29uOiBzdHJpbmc7XHJcbiAgICBrZXk6IHN0cmluZztcclxuICAgIGxlYWY6IGJvb2xlYW47XHJcbiAgICB0ZXh0OiBzdHJpbmc7XHJcbiAgICBsZXZlbDogbnVtYmVyO1xyXG4gICAgbG9hZGluZz86IGJvb2xlYW47XHJcbiAgICBoYXNPbmVEZXB0aExldmVsPzogYm9vbGVhbjtcclxuICAgIHBhcmVudE5vZGU6IFRyZWVOb2RlT2JqIHwgbnVsbDtcclxuICAgIGZpcnN0Q2hpbGQ6IFRyZWVOb2RlT2JqIHwgbnVsbDtcclxuICAgIGxhc3RDaGlsZDogVHJlZU5vZGVPYmogfCBudWxsO1xyXG4gICAgcHJldmlvdXNTaWJsaW5nOiBUcmVlTm9kZU9iaiB8IG51bGw7XHJcbiAgICBuZXh0U2libGluZzogVHJlZU5vZGVPYmogfCBudWxsO1xyXG4gICAgYXR0cmlidXRlczogeyBEYXRhOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHwgbnVsbCB9O1xyXG4gICAgaGFzQ2hpbGROb2RlczogKCkgPT4gYm9vbGVhbjtcclxuICAgIG5vRHJvcDogYm9vbGVhbjtcclxuICAgICRDaGlsZHJlbj86IFRyZWVOb2RlT2JqW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uUmVzaXplZEFyZ3Mge1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgd2lkdGg6IG51bWJlcjtcclxufVxyXG5leHBvcnQgdHlwZSBjb2x1bW5zUmVzaXplZEV2ZW50QXJncyA9IHsgY29sdW1uczogQXJyYXk8UmVwb3J0Vmlld0NvbHVtbj47IHJlc2l6ZWQ6IEFycmF5PENvbHVtblJlc2l6ZWRBcmdzPiB9O1xyXG5leHBvcnQgdHlwZSBSZWxhdGlvbkl0ZW1UeXBlID0ge1xyXG4gICAgSWQ6IHN0cmluZztcclxuICAgIFNvdXJjZVR5cGVEZWZJZDogc3RyaW5nO1xyXG4gICAgT2JqZWN0SW5SZWxhdGlvbk5hbWU6IHN0cmluZztcclxuICAgIEdyb3VwQ2FwdGlvbjogc3RyaW5nO1xyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFanJheU9sZ28gZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgIE1vZHVsZTogc3RyaW5nO1xyXG4gICAgTW9kdWxlRmlsZU5hbWU6IHN0cmluZztcclxuICAgIE5hbWU6IHN0cmluZztcclxuICAgIFNlbGVjdG9yOiBzdHJpbmc7XHJcbiAgICBQYXJhbWV0ZXJzPzogTWV0YW9iamVjdERhdGFNb2RlbDtcclxuICAgIFNldHRpbmdzPzogTWV0YW9iamVjdERhdGFNb2RlbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJVXBsb2FkaW5nU3RhdGUge1xyXG4gICAga2V5OiBzdHJpbmc7XHJcbiAgICB1cGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgICBzdGF0ZTogJ1VwbG9hZGluZycgfCAnRXJyb3InIHwgJ0NvbXBsZXRlJyB8ICdTdGFydCc7XHJcbiAgICBwcm9ncmVzczogYW55O1xyXG59XHJcbmV4cG9ydCB0eXBlIEdyb3VwQnlJdGVtID0geyBba2V5OiBzdHJpbmddOiBhbnk7IGlkOiBzdHJpbmc7IGtleTogc3RyaW5nOyB2YWx1ZTogYW55W10gfTtcclxuZXhwb3J0IHR5cGUgTm90aWZ5T3B0aW9ucyA9IHtcclxuICAgIFNvdW5kOiBib29sZWFuOyAvLyBTb3VuZCBvZiBub3RpZmljYXRpb24uIFNldCB0aGlzIGZhbHNlIHRvIGRpc2FibGUgc291bmQuXHJcbiAgICBJbWFnZTogc3RyaW5nIHwgbnVsbDsgLy8gSW1hZ2Ugc291cmNlIHN0cmluZ1xyXG4gICAgVGl0bGU6IHN0cmluZyB8IG51bGw7IC8vIFRpdGxlIG9mIG5vdGlmaWNhdGlvbi4gSWYgeW91IGRvIG5vdCBpbmNsdWRlIHRoZSB0aXRsZSBpbiBvcHRpb25zIGl0IHdpbGwgYXV0b21hdGljYWxseSB0YWtlcyBpdHMgdmFsdWVcclxuICAgIEljb246IGJvb2xlYW47IC8vIEljb24gb2Ygbm90aWZpY2F0aW9uLiBMZWF2ZSBhcyBpcyBmb3IgZGVmYXVsdCBpY29uIG9yIHNldCBjdXN0b20gc3RyaW5nXHJcbiAgICBEZWxheTogbnVtYmVyOyAvLyBIaWRlIG5vdGlmaWNhdGlvbiBhZnRlciB0aGlzIHRpbWUgKGluIG1pbGlzZWNvbmRzKVxyXG4gICAgQ2xvc2FibGU6IGJvb2xlYW47IC8vIE1ha2Ugbm90aWZpY2F0aW9ucyBjbG9zYWJsZVxyXG4gICAgRGVsYXlJbmRpY2F0b3I6IGJvb2xlYW47IC8vIFNob3cgdGltZXIgaW5kaWNhdG9yXHJcbiAgICBDbG9zZU9uQ2xpY2s6IGJvb2xlYW47IC8vIENsb3NlIG5vdGlmaWNhdGlvbnMgYnkgY2xpY2tpbmcgb24gdGhlbVxyXG4gICAgSXNSdGw6IGJvb2xlYW47XHJcbiAgICBQb3NpdGlvbjogc3RyaW5nIHwgb2JqZWN0OyAvLyBBdmFpbGFibGUgb3B0aW9uczogXCJ0b3AgbGVmdFwiLCBcInRvcCByaWdodFwiLCBcImJvdHRvbSBsZWZ0XCIsIFwiYm90dG9tIHJpZ2h0XCIsIFwiY2VudGVyIHRvcFwiLCBcImNlbnRlciBib3R0b21cIlxyXG4gICAgU291bmRQYXRoOiBzdHJpbmc7IC8vIFRoZSBmb2xkZXIgcGF0aCB3aGVyZSBzb3VuZHMgYXJlIGxvY2F0ZWRcclxuICAgIFNpemU6IHN0cmluZzsgLy8gbm9ybWFsLCBtaW5pLCBsYXJnZVxyXG4gICAgQ29udGludWVEZWxheU9uSW5hY3RpdmVUYWI6IGJvb2xlYW47IC8vIENvbnRpbnVlIGRlbGF5IHdoZW4gYnJvd3NlciB0YWIgaXMgaW5hY3RpdmVcclxuICAgIFdpZHRoOiBudW1iZXI7IC8vIFdpZHRoIG9mIG5vdGlmaWNhdGlvbiBib3hcclxuICAgIE1lc3NhZ2VIZWlnaHQ6IG51bWJlcjsgLy8gTm90aWZpY2F0aW9uIG1lc3NhZ2UgbWF4aW11bSBoZWlnaHQuXHJcbiAgICBOb3RpZmljYXRpb25JdGVtPzogTm90aWZpY2F0aW9uSXRlbTtcclxufTtcclxuZXhwb3J0IHR5cGUgU2hhcmVCdXR0b25zQ2hvaWNlRGVmID0ge1xyXG4gICAgZm9ybVBhbmVsQ3RybHI6IGFueTtcclxuICAgIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG4gICAgY2hvaWNlTGlzdDogQ2hvaWNlRGVmW107XHJcbiAgICBhZGQ6IGJvb2xlYW47XHJcbn07XHJcbmV4cG9ydCB0eXBlIENob2ljZURlZiA9IHtcclxuICAgIEFjdGl2aXR5RGVmSWQ6IHN0cmluZztcclxuICAgIEFjdGl2aXR5UnVuSWQ6IHN0cmluZztcclxuICAgIENob2ljZURlZklkOiBzdHJpbmc7XHJcbiAgICBDaG9pY2VOYW1lPzogc3RyaW5nO1xyXG4gICAgVGl0bGU6IHN0cmluZztcclxuICAgIEljb24/OiBzdHJpbmc7XHJcbiAgICBIYXNCYXI/OiBib29sZWFuO1xyXG59O1xyXG5leHBvcnQgdHlwZSBXb3JrZmxvd0V4ZWN1dGVDaG9pY2VTdGF0dXMgPSB7XHJcbiAgICBsb2FkaW5nOiBib29sZWFuO1xyXG4gICAgcmVzdWx0OiBhbnk7XHJcbiAgICBlcnJvcjogYW55O1xyXG4gICAgY2hvaWNlPzogQ2hvaWNlRGVmO1xyXG59O1xyXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25QYXlsb2FkID0ge1xyXG4gICAgbXNnOiBzdHJpbmc7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgaW1hZ2U6IHN0cmluZztcclxuICAgIG1vO1xyXG4gICAgdWlPcHRpb25zOiBOb3RpZnlPcHRpb25zO1xyXG4gICAgb3RoZXJPcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG59O1xyXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25BY3Rpb24gPSB7XHJcbiAgICBUaXRsZTogc3RyaW5nO1xyXG4gICAgSWQ6IHN0cmluZztcclxuICAgIEljb246IHN0cmluZztcclxuICAgIFN0YXR1czogc3RyaW5nIHwgYW55O1xyXG59O1xyXG5leHBvcnQgdHlwZSBOb3RpZmljYXRpb25JdGVtID0gTWV0YW9iamVjdERhdGFNb2RlbCAmIHtcclxuICAgIFRpdGxlOiBzdHJpbmc7XHJcbiAgICBVbnJlYWQ6IGJvb2xlYW47XHJcbiAgICBDb250ZW50OiBzdHJpbmc7XHJcbiAgICAkU2FmZUNvbnRlbnQ/OiBTYWZlSHRtbDtcclxuICAgIFByaW9yaXR5OiBudW1iZXI7XHJcbiAgICBTdWJqZWN0OiBzdHJpbmc7XHJcbiAgICBUYWc6IHN0cmluZztcclxuICAgIEljb246IHN0cmluZztcclxuICAgIEltYWdlOiBzdHJpbmc7XHJcbiAgICBDcmVhdGlvbkRhdGU6IERhdGU7XHJcbiAgICBDcmVhdGlvbkRhdGUkQ2FwdGlvbjogc3RyaW5nO1xyXG4gICAgVWlBY3Rpb25zPzogTm90aWZpY2F0aW9uQWN0aW9uW107XHJcbiAgICAkQ2hvaWNlRGVmU3RhdHVzPzogV29ya2Zsb3dFeGVjdXRlQ2hvaWNlU3RhdHVzO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgRXhOb3RpZmljYXRpb25QYXlsb2FkID0ge1xyXG4gICAgbGFuZzogc3RyaW5nO1xyXG4gICAgaXNSdGw6IGJvb2xlYW47XHJcbiAgICBub3RpZmljYXRpb25JdGVtOiBOb3RpZmljYXRpb25JdGVtO1xyXG59O1xyXG5leHBvcnQgdHlwZSBGb3JtVmlzaWJpbGl0eVN0YXR1cyA9ICdQZW5kaW5nJyB8ICdWaXNpYmxlJztcclxuZXhwb3J0IHR5cGUgQ2FydGFibGVUZW1wbGF0ZUtleSA9IHsgVHlwZURlZklkOiBzdHJpbmc7IFNldHRpbmdzSWQ6IHN0cmluZyB9O1xyXG5leHBvcnQgZW51bSBTb3J0RGlyZWN0aW9uIHtcclxuICAgIE5PTkUgPSAnbm9uZScsXHJcbiAgICBBU0MgPSAnYXNjJyxcclxuICAgIERFU0MgPSAnZGVzYydcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25Tb3J0IHtcclxuICAgIGZpZWxkOiBzdHJpbmcgfCBudWxsO1xyXG4gICAgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uO1xyXG4gICAgaXNOdW1iZXI/OiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoSW5wdXQge1xyXG4gICAgdGV4dDogc3RyaW5nO1xyXG4gICAgY2F0ZWdvcnk6IHN0cmluZyB8IG51bGw7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uR3JvdXAge1xyXG4gICAgZmllbGQ6IHN0cmluZztcclxuICAgIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbjtcclxuICAgIHNob3dBc0NvbHVtbjogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uUGFnZSB7XHJcbiAgICBwYWdlU2l6ZTogbnVtYmVyO1xyXG4gICAgY3VycmVudFBhZ2U6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0aW9uU3RhdGUge1xyXG4gICAgc29ydEJ5OiBDb2xsZWN0aW9uU29ydFtdO1xyXG4gICAgZ3JvdXBCeTogQ29sbGVjdGlvbkdyb3VwW107XHJcbiAgICBwYWdlOiBDb2xsZWN0aW9uUGFnZTtcclxuICAgIHNlYXJjaElucHV0OiBTZWFyY2hJbnB1dDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUYWJsZVN0YXRlIGV4dGVuZHMgQ29sbGVjdGlvblN0YXRlIHtcclxuICAgIGNvbHVtbnM6IHN0cmluZ1tdO1xyXG4gICAgY29sdW1uS2V5czogc3RyaW5nW107XHJcbiAgICBmcmVlemVUb0NvbHVtbjogc3RyaW5nIHwgbnVsbDtcclxufVxyXG5leHBvcnQgZW51bSBTZWxlY3Rpb25Nb2RlIHtcclxuICAgIFNJTkdMRSA9ICdzaW5nbGUnLFxyXG4gICAgTVVMVElQTEUgPSAnbXVsdGlwbGUnLFxyXG4gICAgTk9ORSA9ICdub25lJ1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVVsdk1haW5DdHJsciB7XHJcbiAgICBBZGFwdGVyOiBhbnk7XHJcbiAgICBTZXR0aW5nOiBhbnk7XHJcbiAgICBTeXN0ZW06IGFueTtcclxuICAgIFVsdlBhcmFtczogYW55O1xyXG4gICAgRmVhdHVyZXM6IGFueTtcclxuICAgIFVpT3ZlcnJpZGU6IGFueTtcclxuICAgIFNlYXJjaFBhbmVsQ3RybHI6IGFueTtcclxuICAgIFNlbGVjdGlvbkFkYXB0ZXI6IGFueTtcclxuICAgIERhdGFDdHJscjogVHlwZVVsdkRhdGFDdHJscjtcclxuICAgIENvbW1hbmRCYXJDdHJscjogYW55O1xyXG4gICAgVmlld2VyQWRhcHRlcjogYW55O1xyXG4gICAgUGFyZW50TW86IGFueTtcclxuICAgIEZpZWxkQ3RybHI6IGFueTtcclxuICAgIGlzTWFuZGF0b3J5OiBib29sZWFuOyAvLyBwb3J0YWwgdXNlIGl0LiBjb21wb25lbnQgbWFkYXJla1xyXG4gICAgLy8vIFJlbGF0ZWQgZmllbGQgb2YgVWx2XHJcbiAgICAvLyBQYXJlbnRGaWVsZEluZm9DdHJscjogbnVsbCxcclxuICAgIElzUHJldmlld1NvdXJjZUZpZWxkOiBib29sZWFuO1xyXG4gICAgLy8vIEluZGljYXRlIHdoZXRoZXIgdGhpcyBVbHYgaXMgdXNlZCBhcyByZWxhdGlvbiBmaWVsZCB0aGF0IGlzIFByZXZpZXdTb3VyY2UgZm9yIGEgc3ViZm9ybVxyXG4gICAgU2hvd09rQ2FuY2VsQnV0dG9uczogYm9vbGVhbjtcclxuICAgIF9pc0VuYWJsZTogYm9vbGVhbjtcclxuICAgIF9pc1JlYWRPbmx5OiBib29sZWFuO1xyXG4gICAgX2lzVmlzaWJsZTogYm9vbGVhbjtcclxuICAgIEZvb3R0ZXJCdXR0b25zOiBib29sZWFuO1xyXG4gICAgUmVmcmVzaFJvd3NCeU1vc05vU2VsZWN0aW9uQ2hhbmdlKFxyXG4gICAgICAgIGVkaWRlZE1vczogTWV0YW9iamVjdERhdGFNb2RlbFtdLFxyXG4gICAgICAgIGFkZGVkTW9zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10sXHJcbiAgICAgICAgZGVsZXRlZE1vczogTWV0YW9iamVjdERhdGFNb2RlbFtdXHJcbiAgICApOiB2b2lkO1xyXG4gICAgUmVmcmVzaFJvd3NCeU1vcyhcclxuICAgICAgICBlZGlkZWRNb3M6IE1ldGFvYmplY3REYXRhTW9kZWxbXSxcclxuICAgICAgICBhZGRlZE1vczogTWV0YW9iamVjdERhdGFNb2RlbFtdLFxyXG4gICAgICAgIGRlbGV0ZWRNb3M6IE1ldGFvYmplY3REYXRhTW9kZWxbXVxyXG4gICAgKTogdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUeXBlVWx2RGF0YUN0cmxyIHtcclxuICAgIEdldEVkaXRGb3JtUGFyYW1zKG1vLCBpc1JlYWRPbmx5LCBpc05ldywgaW5oZXJpdGFuY2VDaGlsZFR5cGVEZWYsIGRvUmV0dXJuKTogUmVjb3JkPHN0cmluZywgYW55PjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1Db21wb25lbnRQYXJhbXMge1xyXG4gICAgZm9ybVNldHRpbmc/OiBGb3JtU2V0dGluZztcclxuICAgIG1vSWQ6IHN0cmluZztcclxuICAgIHR5cGVEZWZJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgcmVwb3J0SWQ/OiBzdHJpbmc7XHJcbiAgICB2aWV3SWQ/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICBWaWV3TmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIGluRGlhbG9nPzogYm9vbGVhbjtcclxuICAgIGlzU2ltcGxlPzogYm9vbGVhbjtcclxuICAgIGxvYWRBY3Rpdml0eVZpZXc/OiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQnJ1bGVBY3Rpb25NZXNzYWdlIHtcclxuICAgIE1lc3NhZ2VUeXBlOiBudW1iZXI7XHJcbiAgICBFc2NhcGVDaGFyYWN0ZXJzOiBib29sZWFuO1xyXG4gICAgTWVzc2FnZUV4cHJlc3Npb246IHN0cmluZztcclxuICAgIE1lc3NhZ2VFeHByZXNzaW9uSHRtbDogU2FmZUh0bWw7XHJcbn1cclxuIl19
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9hYnN0cmFjdC1jbGFzc2VzL21vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sdUJBQXVCO0lBQXBDO1FBWUksY0FBUyxHQUFHLElBQUksQ0FBQztJQVdyQixDQUFDO0NBQUE7QUFTRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsdUJBQXVCO0NBU2xFO0FBQ0QsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHNCQUFzQjtDQUVyRTtBQUNELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx1QkFBdUI7Q0FPbEU7QUFDRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsdUJBQXVCO0NBSWhFO0FBQ0QsTUFBTSxPQUFPLG9CQUFxQixTQUFRLHVCQUF1QjtDQVVoRTtBQUNELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSx1QkFBdUI7Q0FLbkU7QUFDRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsdUJBQXVCO0NBQUc7QUFDcEUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHVCQUF1QjtDQUl2RTtBQUNELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx1QkFBdUI7Q0FPakU7QUFNRCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsdUJBQXVCO0NBR3hFO0FBQ0QsTUFBTSxPQUFPLHVCQUF3QixTQUFRLDRCQUE0QjtDQUd4RTtBQUNELE1BQU0sT0FBTyxvQ0FBcUMsU0FBUSw0QkFBNEI7Q0FFckY7QUFDRCxNQUFNLE9BQU8sNkJBQThCLFNBQVEsdUJBQXVCO0NBSXpFO0FBQ0QsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHVCQUF1QjtDQUd0RTtBQUNELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSx1QkFBdUI7Q0FRaEU7QUFDRCxNQUFNLE9BQU8sYUFBYTtDQU16QjtBQUNELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSx1QkFBdUI7Q0FNcEU7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LFFBSXhCO0FBaUNELE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDckIsa0NBQWlCLENBQUE7SUFDakIsc0NBQXFCLENBQUE7SUFDckIsOEJBQWEsQ0FBQTtBQUNqQixDQUFDLEVBSlcsYUFBYSxLQUFiLGFBQWEsUUFJeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgRGF0ZUluZm8gYXMgRGF0ZUluZm9TZXJ2aWNlIH0gZnJvbSAnLi4vZGF0ZS1zZXJ2aWNlcyc7XG5cbmV4cG9ydCBjbGFzcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIENvbnRyb2xGaWVsZENhcHRpb246IHN0cmluZztcbiAgICBDb250cm9sRmllbGRDYXB0aW9uVHJhbnNsYXRlZDogc3RyaW5nO1xuICAgIENvbnRyb2xGaWVsZERlZklkOiBzdHJpbmc7XG4gICAgQ29udHJvbE5hbWU6IHN0cmluZztcbiAgICBSZWxhdGVkRmllbGRMaXN0OiBbXTtcbiAgICBIaWRlOiBib29sZWFuO1xuICAgIHh0eXBlOiBzdHJpbmc7XG4gICAgTGFiZWxQb3NpdGlvbjogc3RyaW5nO1xuICAgIElzTWFuZGF0b3J5OiBib29sZWFuO1xuICAgIElzVmlzaWJsZTogYm9vbGVhbjtcbiAgICBTaG93TGFiZWwgPSB0cnVlO1xuICAgIElzUmVhZE9ubHk6IGJvb2xlYW47XG4gICAgSXNFbmFibGVkOiBib29sZWFuO1xuICAgIElzQm9sZDogYm9vbGVhbjtcbiAgICBJc0F1dG9tYXRpYzogYm9vbGVhbjtcbiAgICBKc29uRXh0cmFQcm9wOiBhbnkgfCBudWxsO1xuICAgIENvbXBvbmVudDogc3RyaW5nO1xuICAgIEluZm86IENvbnRyb2xJbmZvVHlwZXM7XG4gICAgRmllbGRJY29uOiBzdHJpbmc7XG4gICAgSXNMdHI6IGJvb2xlYW47XG4gICAgRGlzcGxheVR5cGU6IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZUF0dGFjaG1lbnRJbmZvIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgSWQ6IHN0cmluZztcbiAgICBJc05ldzogYm9vbGVhbjtcbiAgICBJc0RlbGV0ZWQ6IGJvb2xlYW47XG4gICAgVHlwZTogc3RyaW5nO1xuICAgIEZpbGVOYW1lPzogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIFN0cmluZ0NvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XG4gICAgTWF4TGVuZ3RoOiBudW1iZXI7XG4gICAgTWluTGVuZ3RoOiBudW1iZXI7XG4gICAgUmVndWxhckV4cHJlc3Npb246IHN0cmluZztcbiAgICBJc1Bhc3N3b3JkOiBib29sZWFuO1xuICAgIElzTXVsdGlMaW5lOiBib29sZWFuO1xuICAgIE51bGxUZXh0OiBzdHJpbmc7XG4gICAgQWxsb3dlZFN0cmluZ0NoYXJzOiBzdHJpbmc7XG4gICAgT25seUFjY2VwdEN1cnJlbnRDdWx0dXJlOiBib29sZWFuO1xufVxuZXhwb3J0IGNsYXNzIFJpY2hTdHJpbmdDb250cm9sSW5mb01vZGVsIGV4dGVuZHMgU3RyaW5nQ29udHJvbEluZm9Nb2RlbCB7XG4gICAgSXNIdG1sVmlld2VyOiBib29sZWFuO1xufVxuZXhwb3J0IGNsYXNzIE51bWJlckNvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XG4gICAgTWluVmFsdWU6IG51bWJlcjtcbiAgICBNYXhWYWx1ZTogbnVtYmVyO1xuICAgIERlY2ltYWxQcmVjaXNpb246IG51bWJlcjtcbiAgICBTaG93VGhvdXNhbmRTZXBlcmF0b3I6IGJvb2xlYW47XG4gICAgTnVtYmVyVHlwZTogc3RyaW5nO1xuICAgIEN1cnJlbmN5U3ltYm9sOiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgRmlsZVBpY3R1cmVJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XG4gICAgRXh0OiBzdHJpbmc7XG4gICAgRmlsZUlkOiBzdHJpbmc7XG4gICAgSXNEZWxldGVkOiBib29sZWFuO1xufVxuZXhwb3J0IGNsYXNzIEZpbGVDb250cm9sSW5mb01vZGVsIGV4dGVuZHMgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwge1xuICAgIENhbkRlbGV0ZTogYm9vbGVhbjtcbiAgICBDYW5TYXZlOiBib29sZWFuO1xuICAgIENhblZpZXc6IGJvb2xlYW47XG4gICAgSXNNdWx0aVNlbGVjdDogYm9vbGVhbjtcbiAgICBNYXhGaWxlQ291bnQ6IG51bWJlcjtcbiAgICBNYXhGaWxlU2l6ZUtiOiBudW1iZXI7XG4gICAgT2ZmaWNlT25saW5lOiBib29sZWFuO1xuICAgIFZhbGlkRXh0ZW5zaW9uczogc3RyaW5nO1xuICAgIFZpZXdUeXBlOiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgQ29tbWFuZENvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XG4gICAgTWVudU5hbWU6IHN0cmluZztcbiAgICBEaXNhYmxlV2hlblJlYWRvbmx5OiBib29sZWFuO1xuICAgIERpc3BsYXlUeXBlOiBzdHJpbmc7XG4gICAgRHluYW1pY0NvbW1hbmQ6IHN0cmluZztcbn1cbmV4cG9ydCBjbGFzcyBJY29uQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHt9XG5leHBvcnQgY2xhc3MgUGljdHVyZUZpbGVDb250cm9sSW5mb01vZGVsIGV4dGVuZHMgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwge1xuICAgIFNpemVNb2RlOiBudW1iZXI7XG4gICAgTWF4RmlsZVNpemVLYjogbnVtYmVyO1xuICAgIFZhbGlkRXh0ZW5zaW9uczogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIEdhdWdlQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcbiAgICBJc0F1dG9tYXRpYzogYm9vbGVhbjtcbiAgICBNYXhWYWx1ZTogbnVtYmVyO1xuICAgIE1heFZhbHVlMjogbnVtYmVyO1xuICAgIE1pblZhbHVlOiBudW1iZXI7XG4gICAgTWluVmFsdWUyOiBudW1iZXI7XG4gICAgVmFsdWU6IG51bWJlcjtcbn1cbmV4cG9ydCB0eXBlIFJlbGF0aW9uTGlzdFR5cGVzID1cbiAgICB8IFJlbGF0aW9uTGlzdENvbnRyb2xJbmZvTW9kZWxcbiAgICB8IEhpc3RvcnlDb250cm9sSW5mb01vZGVsXG4gICAgfCBSYWJldGVoQWtzZVRha2lMaXN0aUNvbnRyb2xJbmZvTW9kZWxcbiAgICB8IFNpbmdsZVJlbGF0aW9uQ29udHJvbEluZm9Nb2RlbDtcbmV4cG9ydCBjbGFzcyBSZWxhdGlvbkxpc3RDb250cm9sSW5mb01vZGVsIGV4dGVuZHMgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwge1xuICAgIFJlbGF0aW9uVmlld1R5cGU6IHN0cmluZztcbiAgICBVbHZTZXR0aW5nOiBSZXBvcnRNb2RlbDtcbn1cbmV4cG9ydCBjbGFzcyBIaXN0b3J5Q29udHJvbEluZm9Nb2RlbCBleHRlbmRzIFJlbGF0aW9uTGlzdENvbnRyb2xJbmZvTW9kZWwge1xuICAgIEhhc0V4dGVybmFsUGFyYW1ldGVyOiBib29sZWFuO1xuICAgIFBhcmFtTmFtZTE6IHN0cmluZztcbn1cbmV4cG9ydCBjbGFzcyBSYWJldGVoQWtzZVRha2lMaXN0aUNvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBSZWxhdGlvbkxpc3RDb250cm9sSW5mb01vZGVsIHtcbiAgICBBdXRvU2F2ZTtcbn1cbmV4cG9ydCBjbGFzcyBSZWxhdGVkUmVwb3J0Q29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcbiAgICBIYXNFeHRlcm5hbFBhcmFtZXRlcjogYm9vbGVhbjtcbiAgICBQYXJhbU5hbWUxOiBzdHJpbmc7XG4gICAgVWx2U2V0dGluZzogUmVwb3J0TW9kZWw7XG59XG5leHBvcnQgY2xhc3MgQ29kZUVkaXRvckNvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XG4gICAgRXh0cmFUZXh0OiBzdHJpbmc7XG4gICAgU3VnZ2VzdGlvbnM6IHN0cmluZztcbn1cbmV4cG9ydCBjbGFzcyBFbnVtQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcbiAgICBJc011bHRpU2VsZWN0OiBib29sZWFuO1xuICAgIFNob3dBc1JhZGlvQnV0dG9uOiBib29sZWFuO1xuICAgIEljb25EaXNwbGF5VHlwZTogc3RyaW5nO1xuICAgIERhdGFTb3VyY2U6IHtcbiAgICAgICAgUm93czogUm93RGF0YU9wdGlvbltdO1xuICAgIH07XG4gICAgRW1wdHlSb3dEYXRhOiBSb3dEYXRhT3B0aW9uO1xufVxuZXhwb3J0IGNsYXNzIFJvd0RhdGFPcHRpb24ge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgSXNFbXB0eTogYm9vbGVhbjtcbiAgICB0eHQ6IHN0cmluZztcbiAgICB0eHRfc2FmZT86IHN0cmluZztcbiAgICB1cmw6IHN0cmluZztcbn1cbmV4cG9ydCBjbGFzcyBEYXRlVGltZUNvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XG4gICAgQ2FsZW5kYXJUeXBlOiBzdHJpbmc7XG4gICAgRGF0ZUZvcm1hdDogc3RyaW5nO1xuICAgIFNob3dEYXRlMTogYm9vbGVhbjtcbiAgICBTaG93VGltZTE6IGJvb2xlYW47XG4gICAgVGltZUZvcm1hdDogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIEJvb2xDb250cm9sSW5mb01vZGVsIGV4dGVuZHMgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwge1xuICAgIEZhbHNlQ2FwdGlvbjogc3RyaW5nO1xuICAgIFRydWVDYXB0aW9uOiBzdHJpbmc7XG4gICAgVHJ1ZUljb246IHN0cmluZztcbiAgICBWaWV3VHlwZTogc3RyaW5nO1xuICAgIEZhbHNlSWNvbjogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIENhbGN1bGF0ZUNvbnRyb2xJbmZvTW9kZWwgZXh0ZW5kcyBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbCB7XG4gICAgSW5uZXJDdHJscjogQ29udHJvbEluZm9UeXBlcztcbiAgICBFeGVjdXRhaW9uVGltZTogc3RyaW5nO1xuICAgIEVkaXRUeXBlOiBzdHJpbmc7XG4gICAgRG9udFNob3dSZWNhbGN1bGF0ZUJ1dHRvbjogYm9vbGVhbjtcbn1cbmV4cG9ydCBjbGFzcyBTdWJmb3JtQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcbiAgICBUeXBlRGVmSWQ6IGFueTtcbiAgICBUeXBlRGVmSWNvbjogc3RyaW5nO1xuICAgIElzQ29tcG9zZWRSZWxhdGlvbjogc3RyaW5nO1xuICAgIERyb3BEb3duUmVwb3J0SWQ6IHN0cmluZztcbiAgICBUeXBlVmlld0lkOiBzdHJpbmc7XG4gICAgRm9ybVBhbmVsU2V0dGluZzogRm9ybVNldHRpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIERvd25sb2FkRmlsZUluZm8ge1xuICAgIGZpbGVJZDogc3RyaW5nO1xuICAgIGZpbGVVcmw6IHN0cmluZztcbiAgICB2aWV3SW5Ccm93c2VyOiBib29sZWFuO1xuICAgIGNvbnZlcnRUbzogc3RyaW5nO1xuICAgIGlzT2ZmaWNlT25saW5lOiBib29sZWFuO1xuICAgIGZvck9jeDogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRG93bmxvYWRGaWxlSW5mb1Jlc3VsdCB7XG4gICAgZmlsZW5hbWU6IHN0cmluZztcbiAgICBjb250ZW50OiBzdHJpbmc7XG4gICAgY29udGVudFR5cGU6IHN0cmluZztcbiAgICBzdWNjZWVkOiBib29sZWFuO1xufVxuZXhwb3J0IGNsYXNzIExpbmVhckxpc3RDb250cm9sSW5mb01vZGVsIGV4dGVuZHMgR2VuZXJhbENvbnRyb2xJbmZvTW9kZWwge1xuICAgIERlZmF1bHRGaWVsZDogc3RyaW5nO1xuICAgIEV4dHJhSnNvblByb3BGaWVsZDogc3RyaW5nO1xuICAgIEZpbGxCZWZvcmVEcm9wRG93bjogYm9vbGVhbjtcbiAgICBJc0dlbmVyYWxJbmZvOiBib29sZWFuO1xuICAgIElzTXVsdGlTZWxlY3Q6IGJvb2xlYW47XG4gICAgUmVsYXRpb246IExpc3RSZWxhdGlvbk1vZGVsO1xuICAgIFJlbGF0aW9uVmlld1R5cGU6IHN0cmluZztcbiAgICBSb3dJY29uOiBzdHJpbmc7XG4gICAgVGFyZ2V0VHlwZURlZklkOiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgTGlzdFJlbGF0aW9uTW9kZWwge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICBDaGlsZEZkSWQ6IHN0cmluZztcbiAgICBDaGlsZEZkTmFtZTogc3RyaW5nO1xuICAgIElzQXV0b1NhdmU6IGJvb2xlYW47XG4gICAgUGFyZW50TW9JZDogc3RyaW5nO1xuICAgIFJlbGF0aW9uVHlwZTogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIFNpbmdsZVJlbGF0aW9uQ29udHJvbEluZm9Nb2RlbCBleHRlbmRzIEdlbmVyYWxDb250cm9sSW5mb01vZGVsIHtcbiAgICBDb2x1bW5SZXF1ZXN0RW51bTogc3RyaW5nO1xuICAgIERyb3BEb3duUmVwb3J0SWQ6IHN0cmluZztcbiAgICBGaWxsQmVmb3JlRHJvcERvd246IGJvb2xlYW47XG4gICAgSGlkZUNvbWJvOiBib29sZWFuO1xuICAgIFJlbGF0aW9uVmlld1R5cGU6IHN0cmluZztcbiAgICBQYXNzUGFyZW50Rm9ybTogYm9vbGVhbjtcbiAgICBTaG93TmV3QnV0dG9uOiBib29sZWFuO1xuICAgIFNob3dPa0NhbmNlbDogYm9vbGVhbjtcbiAgICBWaWV3UmVsYXRlZEZvcm1UeXBlOiBzdHJpbmc7XG4gICAgVGFyZ2V0VHlwZURlZklkOiBzdHJpbmc7XG4gICAgRGF0YVNvdXJjZToge1xuICAgICAgICBSb3dzOiBSb3dEYXRhT3B0aW9uW107XG4gICAgfTtcbiAgICBQcmV2aWV3RmllbGRDYXB0aW9uOiBzdHJpbmc7XG4gICAgUHJldmlld0ZpZWxkSWQ6IHN0cmluZztcbiAgICBQcmV2aWV3RmllbGROYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIENvbnRyb2xJbmZvVHlwZXMgPVxuICAgIHwgU3ViZm9ybUNvbnRyb2xJbmZvTW9kZWxcbiAgICB8IENhbGN1bGF0ZUNvbnRyb2xJbmZvTW9kZWxcbiAgICB8IEJvb2xDb250cm9sSW5mb01vZGVsXG4gICAgfCBFbnVtQ29udHJvbEluZm9Nb2RlbFxuICAgIHwgSWNvbkNvbnRyb2xJbmZvTW9kZWxcbiAgICB8IEZpbGVDb250cm9sSW5mb01vZGVsXG4gICAgfCBEYXRlVGltZUNvbnRyb2xJbmZvTW9kZWxcbiAgICB8IE51bWJlckNvbnRyb2xJbmZvTW9kZWxcbiAgICB8IFN0cmluZ0NvbnRyb2xJbmZvTW9kZWxcbiAgICB8IFBpY3R1cmVGaWxlQ29udHJvbEluZm9Nb2RlbFxuICAgIHwgR2F1Z2VDb250cm9sSW5mb01vZGVsXG4gICAgfCBDb21tYW5kQ29udHJvbEluZm9Nb2RlbFxuICAgIHwgQ29kZUVkaXRvckNvbnRyb2xJbmZvTW9kZWw7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybVZpZXdTZXR0aW5nIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgTGF5b3V0OTQ6IGFueTtcbiAgICBDb250cm9sSW5mbzogR2VuZXJhbENvbnRyb2xJbmZvTW9kZWxbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybVNldHRpbmcge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICBEYXRhOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgTW86IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgfTtcbiAgICBWaWV3OiBGb3JtVmlld1NldHRpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgJEZpZWxkRGljdD86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gICAgJFJlcG9ydElkPzogc3RyaW5nO1xuICAgICRUeXBlPzogc3RyaW5nO1xuICAgICRTdHlsZUluZGV4PzogbnVtYmVyW107XG4gICAgJENhcHRpb246IHN0cmluZztcbiAgICAkSWNvbj86IHN0cmluZztcbiAgICAkU3RhdGU/OiBzdHJpbmc7XG4gICAgJFR5cGVEZWZJZD86IHN0cmluZztcbiAgICAkVHlwZURlZk5hbWU/OiBzdHJpbmc7XG4gICAgJENoaWxkcmVuPzogTWV0YW9iamVjdERhdGFNb2RlbFtdO1xuICAgIEluaGVyaXRhbmNlPzogTWV0YW9iamVjdERhdGFNb2RlbDtcbiAgICBJbmhlcml0YW5jZUluZm8/OiB7XG4gICAgICAgIENoaWxkRmllbGROYW1lOiBzdHJpbmc7XG4gICAgICAgIFBhcmVudEZpZWxkTmFtZTogc3RyaW5nO1xuICAgIH07XG4gICAgSWQ6IHN0cmluZztcbn1cbmV4cG9ydCBkZWNsYXJlIGNsYXNzIENhbGVuZGFyTWV0YW9iamVjdERhdGFNb2RlbCBleHRlbmRzIE1ldGFvYmplY3REYXRhTW9kZWwge1xuICAgICRDb2xvcjogc3RyaW5nO1xuICAgICRNb21lbnRTdGFydERhdGU6IHN0cmluZztcbiAgICAkTW9tZW50RW5kRGF0ZTogc3RyaW5nO1xuICAgICRTdGFydFRpbWVzOiBzdHJpbmc7XG4gICAgJEVuZFRpbWVzOiBzdHJpbmc7XG4gICAgJFRpdGxlOiBzdHJpbmc7XG4gICAgJE5vdGVzOiBzdHJpbmc7XG4gICAgJFN0YXJ0RGF0ZUluZm8/OiBEYXRlSW5mb1NlcnZpY2U7XG4gICAgJEVuZERhdGVJbmZvPzogRGF0ZUluZm9TZXJ2aWNlO1xufVxuXG5leHBvcnQgY2xhc3MgTW9Gb3JSZXBvcnRNb2RlbCB7XG4gICAgJFR5cGU/OiBzdHJpbmc7XG4gICAgVHlwZURlZklkOiBzdHJpbmc7XG4gICAgUmVwb3J0SWQ6IHN0cmluZztcbiAgICBJY29uPzogc3RyaW5nO1xuICAgIE1vRGF0YUxpc3Q6IEFycmF5PE1ldGFvYmplY3REYXRhTW9kZWw+O1xuICAgIERlbGV0ZWRMaXN0OiBBcnJheTx7IElkOiBzdHJpbmc7IFR5cGVEZWZJZDogc3RyaW5nIH0+O1xuICAgIEFkZGVkTGlzdDogQXJyYXk8eyBJZDogc3RyaW5nOyBUeXBlRGVmSWQ6IHN0cmluZyB9PjtcbiAgICBQYWdpbmc6IFBhZ2luZ1NldHRpbmc7XG4gICAgUmVsYXRpb24/OiB7XG4gICAgICAgIFJlbGF0aW9uVHlwZTogc3RyaW5nO1xuICAgICAgICBQYXJlbnRNb0lkOiBzdHJpbmc7XG4gICAgICAgIFBhcmVudEZkSWQ6IHN0cmluZztcbiAgICAgICAgQ2hpbGRGZElkOiBzdHJpbmc7XG4gICAgICAgIFBhcmVudEZkTmFtZTogc3RyaW5nO1xuICAgICAgICBDaGlsZEZkTmFtZTogc3RyaW5nO1xuICAgICAgICBQYXNzUGFyZW50TW9GaWVsZDogc3RyaW5nO1xuICAgICAgICBJc0F1dG9TYXZlOiBib29sZWFuO1xuICAgICAgICBJc0F1dG9TYXZlX1JlbG9hZFBhcmVudEZvcm1zOiBib29sZWFuO1xuICAgICAgICBJc0F1dG9TYXZlX1JlbG9hZFJvb3RQYXJlbnRMaXN0OiBib29sZWFuO1xuICAgIH07XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuRGVsZXRlZExpc3QgPSB0aGlzLkFkZGVkTGlzdCA9IHRoaXMuTW9EYXRhTGlzdCA9IFtdO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBSZXBvcnRCYXNlSW5mbyB7XG4gICAgSWQ6IHN0cmluZztcbiAgICBDYXB0aW9uOiBzdHJpbmc7XG4gICAgRm9sZGVySWQ6IHN0cmluZztcbiAgICBJY29uVXJsOiBzdHJpbmc7XG4gICAgTmFtZTogc3RyaW5nO1xuICAgIFJlcG9ydElkOiBzdHJpbmc7XG59XG5leHBvcnQgY2xhc3MgUmVwb3J0RXh0cmFJbmZvIGV4dGVuZHMgUmVwb3J0QmFzZUluZm8ge1xuICAgIFR5cGVEZWZJZDogc3RyaW5nO1xuICAgIFR5cGVEZWZDYXB0aW9uOiBzdHJpbmc7XG4gICAgUmVwb3J0VHlwZTogc3RyaW5nO1xuICAgIEhpZGVUb29sYmFyOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgTWV0YW9iamVjdFJlbGF0aW9uTW9kZWwgZXh0ZW5kcyBMaXN0UmVsYXRpb25Nb2RlbCB7XG4gICAgUGFyZW50RmRJZDogc3RyaW5nO1xuICAgIFBhc3NQYXJlbnRNb0ZpZWxkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIEZpZWxkSW5mb1R5cGVFbnVtIHtcbiAgICBJbnRJbmZvID0gMCxcbiAgICBTdHJpbmdJbmZvID0gMixcbiAgICBEYXRlSW5mbyA9IDMsXG4gICAgQm9vbEluZm8gPSA1LFxuICAgIEVudW1JbmZvID0gNixcbiAgICBVc2VySW5mbyA9IDcsXG4gICAgQ2F0ZWdvcnlJbmZvID0gOCxcbiAgICBNZXRhT2JqZWN0SW5mbyA9IDksXG4gICAgQ29tbWFuZEluZm8gPSAxMCwgLy8gMHgwMDAwMDAwQVxuICAgIFBpY3R1cmVzSW5mbyA9IDExLCAvLyAweDAwMDAwMDBCXG4gICAgUmVsYXRpb25JbmZvID0gMTIsIC8vIDB4MDAwMDAwMENcbiAgICBIaXN0b3J5SW5mbyA9IDEzLCAvLyAweDAwMDAwMDBEXG4gICAgUmVsYXRpb25JbmZvUmV2ZXJzZV9Ba3NMaXN0aSA9IDE0LCAvLyAweDAwMDAwMDBFXG4gICAgQ3JlYXRvclVzZXJJbmZvID0gMTUsIC8vIDB4MDAwMDAwMEZcbiAgICBDcmVhdGlvbkRhdGVJbmZvID0gMTYsIC8vIDB4MDAwMDAwMTBcbiAgICBMYXN0VXBkYXRlRGF0ZUluZm8gPSAxNywgLy8gMHgwMDAwMDAxMVxuICAgIFJlbWluZGVySW5mbyA9IDE4LCAvLyAweDAwMDAwMDEyXG4gICAgUmljaFN0cmluZ0luZm8gPSAxOSwgLy8gMHgwMDAwMDAxM1xuICAgIENvbnZlcnRDb21tYW5kSW5mbyA9IDIwLCAvLyAweDAwMDAwMDE0XG4gICAgUmVsYXRpb25JbmZvU2luZ2xlUmV2ZXJzZV9Ba3NUYWtpTGlzdGkgPSAyMSwgLy8gMHgwMDAwMDAxNVxuICAgIERpYWxDb21tYW5kSW5mbyA9IDIyLCAvLyAweDAwMDAwMDE2XG4gICAgRmluZENvbnRhY3RDb21tYW5kSW5mbyA9IDIzLCAvLyAweDAwMDAwMDE3XG4gICAgU2VxdWVuY2VDb21tYW5kSW5mbyA9IDI0LCAvLyAweDAwMDAwMDE4XG4gICAgQ3VycmVuY3lJbmZvID0gMjUsIC8vIDB4MDAwMDAwMTlcbiAgICBTaW5nbGVQaWN0dXJlSW5mbyA9IDI2LCAvLyAweDAwMDAwMDFBXG4gICAgV29yZFJlcG9ydENvbW1hbmRJbmZvID0gMjcsIC8vIDB4MDAwMDAwMUJcbiAgICBIaWVyYXJjaGljYWxJbmZvID0gMjgsIC8vIDB4MDAwMDAwMUNcbiAgICBUaW1lU3BhbkluZm8gPSAyOSwgLy8gMHgwMDAwMDAxRFxuICAgIFJlcG9ydEluZm8gPSAzMCwgLy8gMHgwMDAwMDAxRVxuICAgIEZpbGVJbmZvID0gMzEsIC8vIDB4MDAwMDAwMUZcbiAgICBXb3JkRmlsZUluZm8gPSAzMiwgLy8gMHgwMDAwMDAyMFxuICAgIFBpY3R1cmVGaWxlSW5mbyA9IDMzLCAvLyAweDAwMDAwMDIxXG4gICAgR2F1Z2VJbmZvID0gMzQsIC8vIDB4MDAwMDAwMjJcbiAgICBDb2RlSW5mbyA9IDM1LCAvLyAweDAwMDAwMDIzXG4gICAgV29ya0NlbnRlckluZm8gPSAzNiwgLy8gMHgwMDAwMDAyNFxuICAgIElzRGVsZXRlZEluZm8gPSAzNywgLy8gMHgwMDAwMDAyNVxuICAgIFJvd051bWJlckluZm8gPSAzOCwgLy8gMHgwMDAwMDAyNlxuICAgIEJpbmFyeUluZm8gPSAzOSwgLy8gMHgwMDAwMDAyN1xuICAgIFJldmVyc2VNZXRhT2JqZWN0SW5mb19Ba3NUYWtpVGFraSA9IDQwLCAvLyAweDAwMDAwMDI4XG4gICAgQ29sb3JJbmZvID0gNDEsIC8vIDB4MDAwMDAwMjlcbiAgICBJY29uSW5mbyA9IDQyLCAvLyAweDAwMDAwMDJBXG4gICAgUmVmcmVzaEZpZWxkQ29tbWFuZEluZm8gPSA0MywgLy8gMHgwMDAwMDAyQlxuICAgIFJlZmVyZW5jZUZpZWxkSW5mbyA9IDQ0LCAvLyAweDAwMDAwMDJDXG4gICAgU2VhcmNoQ29tbWFuZEluZm8gPSA0NSwgLy8gMHgwMDAwMDAyRFxuICAgIE9yZGVySW5mbyA9IDQ2IC8vIDB4MDAwMDAwMkVcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2xhc3NOYW1lc01vZGVsIHtcbiAgICBDb21tYW5kQmFyQ2xhc3M6IHN0cmluZztcbiAgICBEYXRhQ2xhc3M6IHN0cmluZztcbiAgICBTZWxlY3Rpb25DbGFzczogc3RyaW5nO1xuICAgIFZpZXdlckNsYXNzOiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIEV4dHJhTW9kZWwge1xuICAgIEN1c3RvbUNvbW1hbmRzPzogQ3VzdG9tQ29tbWFuZFtdO1xuICAgIERlZmF1bHRDb21tYW5kc0FjY2Vzcz86IERlZmF1bHRDb21tYW5kc0FjY2VzcztcbiAgICBQYXJlbnRVbHZDb25maWc/OiBhbnk7XG4gICAgUmVsYXRpb24/OiBNZXRhb2JqZWN0UmVsYXRpb25Nb2RlbDtcbiAgICBSZXBvcnQ/OiBSZXBvcnRFeHRyYUluZm87XG4gICAgRXh0cmFKc29uUHJvcFJlcG9ydD86IGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIEJhc2VSZXBvcnRNb2RlbCB7XG4gICAgQ2xhc3NOYW1lczogQ2xhc3NOYW1lc01vZGVsO1xuICAgIEV4dHJhOiBFeHRyYU1vZGVsO1xuICAgIFZpZXc6IFZpZXdUeXBlcztcbiAgICBTZWFyY2hQYW5lbDogYW55O1xuICAgIERlZmF1bHRJdGVtQ29tcG9uZW50ID0gJ1JlcG9ydERlZmF1bHRJdGVtQ29tcG9uZW50Jztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdENvbW1hbmRzQWNjZXNzIHtcbiAgICBBZGQ6IGJvb2xlYW47XG4gICAgQWRkVG9MaXN0OiBib29sZWFuO1xuICAgIERlbGV0ZTogYm9vbGVhbjtcbiAgICBFZGl0OiBib29sZWFuO1xuICAgIEV4cG9ydDogYm9vbGVhbjtcbiAgICBQcmludDogYm9vbGVhbjtcbiAgICBSZWZyZXNoOiBib29sZWFuO1xuICAgIFJlbW92ZUZyb21MaXN0OiBib29sZWFuO1xuICAgIFZpZXc6IGJvb2xlYW47XG59XG5leHBvcnQgY2xhc3MgQ3VzdG9tQ29tbWFuZCB7XG4gICAgRGF0YTogYW55O1xuICAgIERpc2FibGVXaGVuUmVhZG9ubHk6IGJvb2xlYW47XG4gICAgSGlkZURpc2FibGU6IGJvb2xlYW47XG4gICAgSWNvblVybDogc3RyaW5nO1xuICAgIElzTGFyZ2U6IGJvb2xlYW47XG4gICAgTXl0eXBlOiBzdHJpbmc7XG4gICAgT3JkZXI6IG51bWJlcjtcbiAgICBTaG93T25Db250ZXh0OiBib29sZWFuO1xuICAgIFNob3dPblRvb2xiYXI6IGJvb2xlYW47XG4gICAgVGV4dDogc3RyaW5nO1xuICAgIFVzZUFsd2F5czogYm9vbGVhbjtcbiAgICBVc2VGb3JNdWx0aTogYm9vbGVhbjtcbiAgICBVc2VGb3JTaW5nbGU6IGJvb2xlYW47XG59XG5leHBvcnQgY2xhc3MgUmVwb3J0TW9kZWwgZXh0ZW5kcyBCYXNlUmVwb3J0TW9kZWwge1xuICAgIERhdGE6IE1vRm9yUmVwb3J0TW9kZWw7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFJlcG9ydExpc3RNb2RlbCBleHRlbmRzIEJhc2VSZXBvcnRNb2RlbCB7XG4gICAgVmlldzogR3JpZFZpZXc7XG59XG5leHBvcnQgY2xhc3MgUmVwb3J0Rm9ybU1vZGVsIGV4dGVuZHMgQmFzZVJlcG9ydE1vZGVsIHtcbiAgICBWaWV3OiBGb3JtVmlldztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVHJlZVZpZXcge1xuICAgIENvbmRpdGlvbmFsRm9ybWF0czogW107XG4gICAgUGFyZW50SWREYk5hbWU6IHN0cmluZztcbiAgICBTaG93U2VsZWN0aW9uQ2hlY2tzOiBib29sZWFuO1xuICAgIFRyZWVBdXRvT3BlbkxldmVsczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRWaWV3IHtcbiAgICBBbGxvd0dyaWRDb2x1bW5Tb3J0OiBib29sZWFuO1xuICAgIEF1dG9JbmxpbmVFZGl0OiBib29sZWFuO1xuICAgIENvbHVtblJlcXVlc3RFbnVtOiBzdHJpbmc7XG4gICAgQ29sdW1uczogQXJyYXk8UmVwb3J0Vmlld0NvbHVtbj47XG4gICAgQ29uZGl0aW9uYWxGb3JtYXRzOiBbXTtcbiAgICBEaXNhYmxlUm93UmVsb2FkOiBib29sZWFuO1xuICAgIEdyaWRTZXR0aW5nOiBHcmlkU2V0dGluZztcbiAgICBHcmlkX0ZyZWVDb2x1bW5TaXppbmc6IGJvb2xlYW47XG4gICAgR3JpZF9HcmlkTGluZXM6IHN0cmluZztcbiAgICBHcmlkX0hpZGVIZWFkZXI6IGJvb2xlYW47XG4gICAgR3JpZF9TaG93Um93TnVtYmVyOiBib29sZWFuO1xuICAgIEhhc0NvbmRpdGlvbmFsRm9ybWF0OiBib29sZWFuO1xuICAgIEhhc1N1bW1hcnlSb3c6IGJvb2xlYW47XG4gICAgSGlkZUljb246IGJvb2xlYW47XG4gICAgSXNDaGVja0xpc3Q6IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyVmlldyB7XG4gICAgQ2FsZW5kYXJGaWVsZHM6IENhbGVuZGFyRmllbGRzO1xufVxuZXhwb3J0IGludGVyZmFjZSBGb3JtVmlldyB7XG4gICAgRm9ybVBhbmVsU2V0dGluZzogYW55O1xufVxuZXhwb3J0IHR5cGUgVmlld1R5cGVzID0gR3JpZFZpZXcgfCBDYWxlbmRhclZpZXcgfCBUcmVlVmlldyB8IEZvcm1WaWV3O1xuXG5leHBvcnQgdHlwZSBSZXBvcnRNb2RlbFR5cGVzID0gUmVwb3J0TGlzdE1vZGVsIHwgUmVwb3J0Q2FsZW5kYXJNb2RlbCB8IFJlcG9ydEZvcm1Nb2RlbCB8IFJlcG9ydFRyZWVNb2RlbDtcblxuZXhwb3J0IGNsYXNzIFJlcG9ydENhbGVuZGFyTW9kZWwgZXh0ZW5kcyBCYXNlUmVwb3J0TW9kZWwge1xuICAgIFZpZXc6IENhbGVuZGFyVmlldztcbn1cbmV4cG9ydCBjbGFzcyBSZXBvcnRUcmVlTW9kZWwgZXh0ZW5kcyBCYXNlUmVwb3J0TW9kZWwge1xuICAgIFZpZXc6IFRyZWVWaWV3O1xufVxuZXhwb3J0IGludGVyZmFjZSBDYWxlbmRhckZpZWxkcyB7XG4gICAgRW5kRGF0ZTogc3RyaW5nO1xuICAgIE5vdGVzOiBzdHJpbmc7XG4gICAgU3RhcnREYXRlOiBzdHJpbmc7XG4gICAgVGl0bGU6IHN0cmluZztcbiAgICBDb2xvcjogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgUmVwb3J0Vmlld0NvbHVtbiB7XG4gICAgQWxpYXM6IHN0cmluZztcbiAgICBDYXB0aW9uOiBzdHJpbmc7XG4gICAgRmllbGREZWZJZDogc3RyaW5nO1xuICAgIEZpZWxkVHlwZUlkOiBudW1iZXI7XG4gICAgRmllbGRUeXBlOiBzdHJpbmc7XG4gICAgSGFzU3VtbWFyeTogYm9vbGVhbjtcbiAgICBIaWRkZW46IGJvb2xlYW47XG4gICAgSXNMdHI6IGJvb2xlYW47XG4gICAgSXNQcmV2aWV3OiBib29sZWFuO1xuICAgIE1ldGFGaWVsZFR5cGVJZDogc3RyaW5nO1xuICAgIE5hbWU6IHN0cmluZztcbiAgICBXaWR0aDogbnVtYmVyO1xuICAgIFRhZz86IHN0cmluZztcbiAgICBJY29uOiBzdHJpbmc7XG4gICAgT25seUltYWdlPzogYm9vbGVhbjtcbiAgICBFeHRyYT86IGFueTtcbiAgICAkV2lkdGg6IHN0cmluZztcbiAgICAkV2lkdGgyPzogc3RyaW5nO1xuICAgICRNZXJnZWRGaWVsZHNUb0NvbHVtbj86IHN0cmluZ1tdO1xuICAgICRDU1NDbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgJEN1c3RvbUNvbXBvbmVudD86IEVqcmF5T2xnbztcbiAgICAkVGV4dFdpZHRoPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgR3JpZFNldHRpbmcge1xuICAgIENvbFNldHRpbmdMaXN0OiBBcnJheTxDb2xTZXR0aW5nPjtcbiAgICBTb3J0U2V0dGluZ0xpc3Q6IEFycmF5PFNvcnRTZXR0aW5nPjtcbiAgICBBdXRvU2l6ZUNvbHVtbnM6IGJvb2xlYW47XG59XG5leHBvcnQgY2xhc3MgQ29sU2V0dGluZyB7XG4gICAgTmFtZTogc3RyaW5nO1xuICAgIFdpZHRoOiBudW1iZXI7XG4gICAgSXNIaWRkZW46IGJvb2xlYW47XG59XG5leHBvcnQgY2xhc3MgU29ydFNldHRpbmcge1xuICAgIE5hbWU6IHN0cmluZztcbiAgICBTb3J0RGlyZWN0aW9uOiBzdHJpbmc7XG4gICAgSXNHcm91cGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUmVwb3J0RmllbGQge1xuICAgIHB1YmxpYyBrZXk6IHN0cmluZztcbiAgICBwdWJsaWMgdmFsdWU6IHN0cmluZztcbiAgICBwdWJsaWMgY2FwdGlvbjogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW4sIHB1YmxpYyBpdGVtOiBhbnkpIHtcbiAgICAgICAgY29uc3QgbmFtZSA9IGNvbHVtbi5OYW1lO1xuICAgICAgICB0aGlzLmNhcHRpb24gPSBjb2x1bW4uQ2FwdGlvbjtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuaXRlbVtuYW1lXTtcbiAgICAgICAgaWYgKE51bWJlcihjb2x1bW4uRmllbGRUeXBlSWQpID09PSBGaWVsZEluZm9UeXBlRW51bS5EYXRlSW5mbykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuaXRlbVtuYW1lICsgJyRDYXB0aW9uJ107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE51bWJlcihjb2x1bW4uRmllbGRUeXBlSWQpID09PSBGaWVsZEluZm9UeXBlRW51bS5JY29uSW5mbykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuaXRlbVtuYW1lXS5Vcmw7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9naW5SZXN1bHQge1xuICAgIGRhdGE6IHsgc3RoOiBzdHJpbmcgfTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50U2V0dGluZ3NEYXRhTW9kZWwgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICBQbGFjZUhvbGRlcnM/OiBQbGFjZUhvbGRlckRhdGFNb2RlbFtdO1xufVxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnREYXRhTW9kZWwgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICBTZWxlY3Rvcjogc3RyaW5nO1xuICAgIFNldHRpbmdzOiBDb21wb25lbnRTZXR0aW5nc0RhdGFNb2RlbDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUGxhY2VIb2xkZXJEYXRhTW9kZWwgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICBOYW1lOiBzdHJpbmc7XG4gICAgVGl0bGU6IHN0cmluZztcbiAgICBJc1BhZ2U6IGJvb2xlYW47XG4gICAgT3JkZXJOdW1iZXI6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVEYXRhTW9kZWwgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICBUaXRsZTogc3RyaW5nO1xuICAgIFBsYWNlSG9sZGVyOiBQbGFjZUhvbGRlckRhdGFNb2RlbDtcbiAgICBDb21wb25lbnQ6IENvbXBvbmVudERhdGFNb2RlbDtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUGFnZUxpc3RSZXBvcnRNb2RlbCBleHRlbmRzIE1vRm9yUmVwb3J0TW9kZWwge1xuICAgIE1vRGF0YUxpc3Q6IEFycmF5PFBhZ2VEYXRhTW9kZWw+O1xufVxuZXhwb3J0IGludGVyZmFjZSBNb2R1bGVMaXN0UmVwb3J0TW9kZWwgZXh0ZW5kcyBNb0ZvclJlcG9ydE1vZGVsIHtcbiAgICBNb0RhdGFMaXN0OiBBcnJheTxNb2R1bGVEYXRhTW9kZWw+O1xufVxuZXhwb3J0IGludGVyZmFjZSBQYWdlRGF0YU1vZGVsIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgQ29tcG9uZW50OiBDb21wb25lbnREYXRhTW9kZWw7XG4gICAgTW9kdWxlTGlzdDogTW9kdWxlTGlzdFJlcG9ydE1vZGVsO1xuICAgIENoaWxkUGFnZUxpc3Q6IFBhZ2VMaXN0UmVwb3J0TW9kZWw7XG4gICAgVGl0bGU6IHN0cmluZztcbiAgICBSb3V0ZTogc3RyaW5nO1xuICAgIElzRGVmYXVsdFJvdXRlOiBzdHJpbmc7XG4gICAgSXNMb2dpblJvdXRlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9ydGFsRGF0YU1vZGVsIGV4dGVuZHMgUGFnZURhdGFNb2RlbCB7XG4gICAgSXNBY3RpdmU6IGJvb2xlYW47XG4gICAgSXNQd2E6IGJvb2xlYW47XG4gICAgUG9ydGFsU2V0dGluZ3M6IE1ldGFvYmplY3REYXRhTW9kZWw7XG59XG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwVmlzaWJpbGl0eSB7XG4gICAgZW5hYmxlOiBib29sZWFuO1xuICAgIHZpc2libGU6IGJvb2xlYW47XG4gICAgcmVhZG9ubHk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUhlYWRlckxheW91dCB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIFRpdGxlOiBzdHJpbmc7XG4gICAgU3VidGl0bGU6IHN0cmluZztcbiAgICBBdmF0YXI6IGFueTtcbiAgICBGYWNldExpc3Q6IHsgTW9EYXRhTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVudUl0ZW0ge1xuICAgIGljb246IHN0cmluZztcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgaXRlbUlkOiBzdHJpbmc7XG4gICAgRGF0YTogYW55O1xuICAgIENvbW1hbmQ6IGFueTtcbiAgICBoYW5kbGVyOiAoKSA9PiB2b2lkO1xuICAgIElzQnVpbHRpbj86IGJvb2xlYW47XG4gICAgbWVudT86IHsgaXRlbXM6IE1lbnVJdGVtW10gfTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUGFnaW5nU2V0dGluZyB7XG4gICAgRW5kSW5kZXg6IG51bWJlcjtcbiAgICBIYXNQYWdpbmc6IGJvb2xlYW47XG4gICAgUGFnZTogbnVtYmVyO1xuICAgIFBhZ2VTaXplOiBudW1iZXI7XG4gICAgUm93Q291bnQ6IG51bWJlcjtcbiAgICBTdGFydEluZGV4OiBudW1iZXI7XG4gICAgVG90YWxQYWdlczogbnVtYmVyO1xuICAgIFRvdGFsUm93czogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5JbmZvVHlwZSB7XG4gICAgTmFtZTogc3RyaW5nO1xuICAgIEhpZGRlbjogYm9vbGVhbjtcbiAgICBDYXB0aW9uOiBzdHJpbmc7XG4gICAgSXNNYW5kYXRvcnk/OiBib29sZWFuO1xuICAgIFdpZHRoOiBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFBhbmVsU2V0dGluZ3MgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICBUaXRsZTogc3RyaW5nO1xuICAgIFJlcG9ydElkOiBzdHJpbmc7XG4gICAgSXNEZWZhdWx0OiBib29sZWFuO1xuICAgIElzUHVibGljOiBib29sZWFuO1xuICAgIEFwcGx5QXV0b21hdGljYWxseTogYm9vbGVhbjtcbiAgICBTZWFyY2hNbz86IHN0cmluZztcbiAgICBGaWVsZHNTZXR0aW5nPzogc3RyaW5nO1xufVxuZXhwb3J0IGRlY2xhcmUgdHlwZSBEZXZpY2VTaXplID0gJ2Rlc2t0b3AnIHwgJ21vYmlsZScgfCAndGFibGV0JztcbmV4cG9ydCBjb25zdCBEYXRlUmFuZ2VzID0gW1xuICAgICdEYXRlUl9Ob25lJyxcbiAgICAnRGF0ZVJfU3BlY2lmaWNSYW5nZScsXG4gICAgJ0RhdGVSX1RvZGF5JyxcbiAgICAnRGF0ZVJfVGhpc1dlZWsnLFxuICAgICdEYXRlUl9UaGlzTW9udGgnLFxuICAgICdEYXRlUl9UaGlzWWVhcicsXG4gICAgJ0RhdGVSX0RheXNCZWZvcmUnLFxuICAgICdEYXRlUl9QcmV2V2VlaycsXG4gICAgJ0RhdGVSX1ByZXZNb250aCcsXG4gICAgJ0RhdGVSX1ByZXZZZWFyJyxcbiAgICAnRGF0ZVJfRGF5c0FmdGVyJyxcbiAgICAnRGF0ZVJfTmV4dFdlZWsnLFxuICAgICdEYXRlUl9OZXh0TW9udGgnLFxuICAgICdEYXRlUl9OZXh0WWVhcidcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgVWlSZXBvcnRWaWV3QmFzZSB7XG4gICAgVWlDb21wb25lbnQ6IHtcbiAgICAgICAgQ29tcG9uZW50OiBib29sZWFuO1xuICAgICAgICBNb2R1bGU6IHN0cmluZztcbiAgICAgICAgTW9kdWxlRmlsZU5hbWU6IHN0cmluZztcbiAgICAgICAgTmFtZTogc3RyaW5nO1xuICAgICAgICBTZWxlY3Rvcjogc3RyaW5nO1xuICAgICAgICBTZXR0aW5nczogVWlSZXBvcnRWaWV3QmFzZVNldHRpbmc7XG4gICAgfTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVWlSZXBvcnRWaWV3QmFzZVNldHRpbmcge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICBUeXBlOiBzdHJpbmc7XG4gICAgSWNvbjogc3RyaW5nO1xuICAgIElzRGVmYXVsdDogYm9vbGVhbjtcbiAgICBIaWRkZW46IGJvb2xlYW47XG4gICAgRW5hYmxlU2VhcmNoOiBib29sZWFuO1xuICAgIERpc2FibGVSZXNwb25zaXZlPzogYm9vbGVhbjtcbiAgICBEaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudT86IGJvb2xlYW47XG4gICAgSG9yaXpvbnRhbEdyb3VwQnk6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF5b3V0U2V0dGluZyB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIFRpdGxlPzogc3RyaW5nO1xuICAgIHh0eXBlOiBzdHJpbmc7XG4gICAgVGV4dFZpc2libGU/OiBib29sZWFuO1xuICAgIGl0ZW1zOiBMYXlvdXRTZXR0aW5nW107XG4gICAgSXNSb290PzogYm9vbGVhbjtcbiAgICBTZWxlY3RlZFRhYlBhZ2VOYW1lPzogc3RyaW5nO1xufVxuZXhwb3J0IGRlY2xhcmUgdHlwZSBBYmJyZXZhdGlvbkRldmljZVNpemUgPSAncycgfCAnbScgfCAnbCcgfCAneGwnO1xuZXhwb3J0IGludGVyZmFjZSBUcmVlTm9kZU9iaiB7XG4gICAgaXNFeHBhbmQ6IGJvb2xlYW47XG4gICAgdmlzaWJpbGl0eTogYm9vbGVhbjtcbiAgICBleHBhbmQ6ICgpID0+IHZvaWQ7XG4gICAgY29sbGFwc2U6ICgpID0+IHZvaWQ7XG4gICAgRGF0YTogTWV0YW9iamVjdERhdGFNb2RlbDtcbiAgICBjaGlsZHJlbjogVHJlZU5vZGVPYmpbXTtcbiAgICBpY29uOiBzdHJpbmc7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgbGVhZjogYm9vbGVhbjtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgbGV2ZWw6IG51bWJlcjtcbiAgICBsb2FkaW5nPzogYm9vbGVhbjtcbiAgICBoYXNPbmVEZXB0aExldmVsPzogYm9vbGVhbjtcbiAgICBwYXJlbnROb2RlOiBUcmVlTm9kZU9iaiB8IG51bGw7XG4gICAgZmlyc3RDaGlsZDogVHJlZU5vZGVPYmogfCBudWxsO1xuICAgIGxhc3RDaGlsZDogVHJlZU5vZGVPYmogfCBudWxsO1xuICAgIHByZXZpb3VzU2libGluZzogVHJlZU5vZGVPYmogfCBudWxsO1xuICAgIG5leHRTaWJsaW5nOiBUcmVlTm9kZU9iaiB8IG51bGw7XG4gICAgYXR0cmlidXRlczogeyBEYXRhOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHwgbnVsbCB9O1xuICAgIGhhc0NoaWxkTm9kZXM6ICgpID0+IGJvb2xlYW47XG4gICAgbm9Ecm9wOiBib29sZWFuO1xuICAgICRDaGlsZHJlbj86IFRyZWVOb2RlT2JqW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uUmVzaXplZEFyZ3Mge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB3aWR0aDogbnVtYmVyO1xufVxuZXhwb3J0IHR5cGUgY29sdW1uc1Jlc2l6ZWRFdmVudEFyZ3MgPSB7IGNvbHVtbnM6IEFycmF5PFJlcG9ydFZpZXdDb2x1bW4+OyByZXNpemVkOiBBcnJheTxDb2x1bW5SZXNpemVkQXJncz4gfTtcbmV4cG9ydCB0eXBlIFJlbGF0aW9uSXRlbVR5cGUgPSB7XG4gICAgSWQ6IHN0cmluZztcbiAgICBTb3VyY2VUeXBlRGVmSWQ6IHN0cmluZztcbiAgICBPYmplY3RJblJlbGF0aW9uTmFtZTogc3RyaW5nO1xuICAgIEdyb3VwQ2FwdGlvbjogc3RyaW5nO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBFanJheU9sZ28gZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICBNb2R1bGU6IHN0cmluZztcbiAgICBNb2R1bGVGaWxlTmFtZTogc3RyaW5nO1xuICAgIE5hbWU6IHN0cmluZztcbiAgICBTZWxlY3Rvcjogc3RyaW5nO1xuICAgIFBhcmFtZXRlcnM/OiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIFNldHRpbmdzPzogTWV0YW9iamVjdERhdGFNb2RlbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVXBsb2FkaW5nU3RhdGUge1xuICAgIGtleTogc3RyaW5nO1xuICAgIHVwbG9hZGluZzogYm9vbGVhbjtcbiAgICBzdGF0ZTogJ1VwbG9hZGluZycgfCAnRXJyb3InIHwgJ0NvbXBsZXRlJyB8ICdTdGFydCc7XG4gICAgcHJvZ3Jlc3M6IGFueTtcbn1cbmV4cG9ydCB0eXBlIEdyb3VwQnlJdGVtID0geyBba2V5OiBzdHJpbmddOiBhbnk7IGlkOiBzdHJpbmc7IGtleTogc3RyaW5nOyB2YWx1ZTogYW55W10gfTtcbmV4cG9ydCB0eXBlIE5vdGlmeU9wdGlvbnMgPSB7XG4gICAgU291bmQ6IGJvb2xlYW47IC8vIFNvdW5kIG9mIG5vdGlmaWNhdGlvbi4gU2V0IHRoaXMgZmFsc2UgdG8gZGlzYWJsZSBzb3VuZC5cbiAgICBJbWFnZTogc3RyaW5nIHwgbnVsbDsgLy8gSW1hZ2Ugc291cmNlIHN0cmluZ1xuICAgIFRpdGxlOiBzdHJpbmcgfCBudWxsOyAvLyBUaXRsZSBvZiBub3RpZmljYXRpb24uIElmIHlvdSBkbyBub3QgaW5jbHVkZSB0aGUgdGl0bGUgaW4gb3B0aW9ucyBpdCB3aWxsIGF1dG9tYXRpY2FsbHkgdGFrZXMgaXRzIHZhbHVlXG4gICAgSWNvbjogYm9vbGVhbjsgLy8gSWNvbiBvZiBub3RpZmljYXRpb24uIExlYXZlIGFzIGlzIGZvciBkZWZhdWx0IGljb24gb3Igc2V0IGN1c3RvbSBzdHJpbmdcbiAgICBEZWxheTogbnVtYmVyOyAvLyBIaWRlIG5vdGlmaWNhdGlvbiBhZnRlciB0aGlzIHRpbWUgKGluIG1pbGlzZWNvbmRzKVxuICAgIENsb3NhYmxlOiBib29sZWFuOyAvLyBNYWtlIG5vdGlmaWNhdGlvbnMgY2xvc2FibGVcbiAgICBEZWxheUluZGljYXRvcjogYm9vbGVhbjsgLy8gU2hvdyB0aW1lciBpbmRpY2F0b3JcbiAgICBDbG9zZU9uQ2xpY2s6IGJvb2xlYW47IC8vIENsb3NlIG5vdGlmaWNhdGlvbnMgYnkgY2xpY2tpbmcgb24gdGhlbVxuICAgIElzUnRsOiBib29sZWFuO1xuICAgIFBvc2l0aW9uOiBzdHJpbmcgfCBvYmplY3Q7IC8vIEF2YWlsYWJsZSBvcHRpb25zOiBcInRvcCBsZWZ0XCIsIFwidG9wIHJpZ2h0XCIsIFwiYm90dG9tIGxlZnRcIiwgXCJib3R0b20gcmlnaHRcIiwgXCJjZW50ZXIgdG9wXCIsIFwiY2VudGVyIGJvdHRvbVwiXG4gICAgU291bmRQYXRoOiBzdHJpbmc7IC8vIFRoZSBmb2xkZXIgcGF0aCB3aGVyZSBzb3VuZHMgYXJlIGxvY2F0ZWRcbiAgICBTaXplOiBzdHJpbmc7IC8vIG5vcm1hbCwgbWluaSwgbGFyZ2VcbiAgICBDb250aW51ZURlbGF5T25JbmFjdGl2ZVRhYjogYm9vbGVhbjsgLy8gQ29udGludWUgZGVsYXkgd2hlbiBicm93c2VyIHRhYiBpcyBpbmFjdGl2ZVxuICAgIFdpZHRoOiBudW1iZXI7IC8vIFdpZHRoIG9mIG5vdGlmaWNhdGlvbiBib3hcbiAgICBNZXNzYWdlSGVpZ2h0OiBudW1iZXI7IC8vIE5vdGlmaWNhdGlvbiBtZXNzYWdlIG1heGltdW0gaGVpZ2h0LlxuICAgIE5vdGlmaWNhdGlvbkl0ZW0/OiBOb3RpZmljYXRpb25JdGVtO1xufTtcbmV4cG9ydCB0eXBlIFNoYXJlQnV0dG9uc0Nob2ljZURlZiA9IHtcbiAgICBmb3JtUGFuZWxDdHJscjogYW55O1xuICAgIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIGNob2ljZUxpc3Q6IENob2ljZURlZltdO1xuICAgIGFkZDogYm9vbGVhbjtcbn07XG5leHBvcnQgdHlwZSBDaG9pY2VEZWYgPSB7XG4gICAgQWN0aXZpdHlEZWZJZDogc3RyaW5nO1xuICAgIEFjdGl2aXR5UnVuSWQ6IHN0cmluZztcbiAgICBDaG9pY2VEZWZJZDogc3RyaW5nO1xuICAgIENob2ljZU5hbWU/OiBzdHJpbmc7XG4gICAgVGl0bGU6IHN0cmluZztcbiAgICBJY29uPzogc3RyaW5nO1xuICAgIEhhc0Jhcj86IGJvb2xlYW47XG59O1xuZXhwb3J0IHR5cGUgV29ya2Zsb3dFeGVjdXRlQ2hvaWNlU3RhdHVzID0ge1xuICAgIGxvYWRpbmc6IGJvb2xlYW47XG4gICAgcmVzdWx0OiBhbnk7XG4gICAgZXJyb3I6IGFueTtcbiAgICBjaG9pY2U/OiBDaG9pY2VEZWY7XG59O1xuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uUGF5bG9hZCA9IHtcbiAgICBtc2c6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBpbWFnZTogc3RyaW5nO1xuICAgIG1vO1xuICAgIHVpT3B0aW9uczogTm90aWZ5T3B0aW9ucztcbiAgICBvdGhlck9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIGFueT47XG59O1xuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uQWN0aW9uID0ge1xuICAgIFRpdGxlOiBzdHJpbmc7XG4gICAgSWQ6IHN0cmluZztcbiAgICBJY29uOiBzdHJpbmc7XG4gICAgU3RhdHVzOiBzdHJpbmcgfCBhbnk7XG59O1xuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uSXRlbSA9IE1ldGFvYmplY3REYXRhTW9kZWwgJiB7XG4gICAgVGl0bGU6IHN0cmluZztcbiAgICBVbnJlYWQ6IGJvb2xlYW47XG4gICAgQ29udGVudDogc3RyaW5nO1xuICAgICRTYWZlQ29udGVudD86IFNhZmVIdG1sO1xuICAgIFByaW9yaXR5OiBudW1iZXI7XG4gICAgU3ViamVjdDogc3RyaW5nO1xuICAgIFRhZzogc3RyaW5nO1xuICAgIEljb246IHN0cmluZztcbiAgICBJbWFnZTogc3RyaW5nO1xuICAgIENyZWF0aW9uRGF0ZTogRGF0ZTtcbiAgICBDcmVhdGlvbkRhdGUkQ2FwdGlvbjogc3RyaW5nO1xuICAgIFVpQWN0aW9ucz86IE5vdGlmaWNhdGlvbkFjdGlvbltdO1xuICAgICRDaG9pY2VEZWZTdGF0dXM/OiBXb3JrZmxvd0V4ZWN1dGVDaG9pY2VTdGF0dXM7XG59O1xuXG5leHBvcnQgdHlwZSBFeE5vdGlmaWNhdGlvblBheWxvYWQgPSB7XG4gICAgbGFuZzogc3RyaW5nO1xuICAgIGlzUnRsOiBib29sZWFuO1xuICAgIG5vdGlmaWNhdGlvbkl0ZW06IE5vdGlmaWNhdGlvbkl0ZW07XG59O1xuZXhwb3J0IHR5cGUgRm9ybVZpc2liaWxpdHlTdGF0dXMgPSAnUGVuZGluZycgfCAnVmlzaWJsZSc7XG5leHBvcnQgdHlwZSBDYXJ0YWJsZVRlbXBsYXRlS2V5ID0geyBUeXBlRGVmSWQ6IHN0cmluZzsgU2V0dGluZ3NJZDogc3RyaW5nIH07XG5leHBvcnQgZW51bSBTb3J0RGlyZWN0aW9uIHtcbiAgICBOT05FID0gJ25vbmUnLFxuICAgIEFTQyA9ICdhc2MnLFxuICAgIERFU0MgPSAnZGVzYydcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29sbGVjdGlvblNvcnQge1xuICAgIGZpZWxkOiBzdHJpbmcgfCBudWxsO1xuICAgIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbjtcbiAgICBpc051bWJlcj86IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaElucHV0IHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgY2F0ZWdvcnk6IHN0cmluZyB8IG51bGw7XG59XG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25Hcm91cCB7XG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb247XG4gICAgc2hvd0FzQ29sdW1uOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25QYWdlIHtcbiAgICBwYWdlU2l6ZTogbnVtYmVyO1xuICAgIGN1cnJlbnRQYWdlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sbGVjdGlvblN0YXRlIHtcbiAgICBzb3J0Qnk6IENvbGxlY3Rpb25Tb3J0W107XG4gICAgZ3JvdXBCeTogQ29sbGVjdGlvbkdyb3VwW107XG4gICAgcGFnZTogQ29sbGVjdGlvblBhZ2U7XG4gICAgc2VhcmNoSW5wdXQ6IFNlYXJjaElucHV0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU3RhdGUgZXh0ZW5kcyBDb2xsZWN0aW9uU3RhdGUge1xuICAgIGNvbHVtbnM6IHN0cmluZ1tdO1xuICAgIGNvbHVtbktleXM6IHN0cmluZ1tdO1xuICAgIGZyZWV6ZVRvQ29sdW1uOiBzdHJpbmcgfCBudWxsO1xufVxuZXhwb3J0IGVudW0gU2VsZWN0aW9uTW9kZSB7XG4gICAgU0lOR0xFID0gJ3NpbmdsZScsXG4gICAgTVVMVElQTEUgPSAnbXVsdGlwbGUnLFxuICAgIE5PTkUgPSAnbm9uZSdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVVsdk1haW5DdHJsciB7XG4gICAgQWRhcHRlcjogYW55O1xuICAgIFNldHRpbmc6IGFueTtcbiAgICBTeXN0ZW06IGFueTtcbiAgICBVbHZQYXJhbXM6IGFueTtcbiAgICBGZWF0dXJlczogYW55O1xuICAgIFVpT3ZlcnJpZGU6IGFueTtcbiAgICBTZWFyY2hQYW5lbEN0cmxyOiBhbnk7XG4gICAgU2VsZWN0aW9uQWRhcHRlcjogYW55O1xuICAgIERhdGFDdHJscjogVHlwZVVsdkRhdGFDdHJscjtcbiAgICBDb21tYW5kQmFyQ3RybHI6IGFueTtcbiAgICBWaWV3ZXJBZGFwdGVyOiBhbnk7XG4gICAgUGFyZW50TW86IGFueTtcbiAgICBGaWVsZEN0cmxyOiBhbnk7XG4gICAgaXNNYW5kYXRvcnk6IGJvb2xlYW47IC8vIHBvcnRhbCB1c2UgaXQuIGNvbXBvbmVudCBtYWRhcmVrXG4gICAgLy8vIFJlbGF0ZWQgZmllbGQgb2YgVWx2XG4gICAgLy8gUGFyZW50RmllbGRJbmZvQ3RybHI6IG51bGwsXG4gICAgSXNQcmV2aWV3U291cmNlRmllbGQ6IGJvb2xlYW47XG4gICAgLy8vIEluZGljYXRlIHdoZXRoZXIgdGhpcyBVbHYgaXMgdXNlZCBhcyByZWxhdGlvbiBmaWVsZCB0aGF0IGlzIFByZXZpZXdTb3VyY2UgZm9yIGEgc3ViZm9ybVxuICAgIFNob3dPa0NhbmNlbEJ1dHRvbnM6IGJvb2xlYW47XG4gICAgX2lzRW5hYmxlOiBib29sZWFuO1xuICAgIF9pc1JlYWRPbmx5OiBib29sZWFuO1xuICAgIF9pc1Zpc2libGU6IGJvb2xlYW47XG4gICAgRm9vdHRlckJ1dHRvbnM6IGJvb2xlYW47XG4gICAgUmVmcmVzaFJvd3NCeU1vc05vU2VsZWN0aW9uQ2hhbmdlKFxuICAgICAgICBlZGlkZWRNb3M6IE1ldGFvYmplY3REYXRhTW9kZWxbXSxcbiAgICAgICAgYWRkZWRNb3M6IE1ldGFvYmplY3REYXRhTW9kZWxbXSxcbiAgICAgICAgZGVsZXRlZE1vczogTWV0YW9iamVjdERhdGFNb2RlbFtdXG4gICAgKTogdm9pZDtcbiAgICBSZWZyZXNoUm93c0J5TW9zKFxuICAgICAgICBlZGlkZWRNb3M6IE1ldGFvYmplY3REYXRhTW9kZWxbXSxcbiAgICAgICAgYWRkZWRNb3M6IE1ldGFvYmplY3REYXRhTW9kZWxbXSxcbiAgICAgICAgZGVsZXRlZE1vczogTWV0YW9iamVjdERhdGFNb2RlbFtdXG4gICAgKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlVWx2RGF0YUN0cmxyIHtcbiAgICBHZXRFZGl0Rm9ybVBhcmFtcyhtbywgaXNSZWFkT25seSwgaXNOZXcsIGluaGVyaXRhbmNlQ2hpbGRUeXBlRGVmLCBkb1JldHVybik6IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5leHBvcnQgaW50ZXJmYWNlIEZvcm1Db21wb25lbnRQYXJhbXMge1xuICAgIGZvcm1TZXR0aW5nPzogRm9ybVNldHRpbmc7XG4gICAgbW9JZDogc3RyaW5nO1xuICAgIHR5cGVEZWZJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHJlcG9ydElkPzogc3RyaW5nO1xuICAgIHZpZXdJZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBWaWV3TmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBpbkRpYWxvZz86IGJvb2xlYW47XG4gICAgaXNTaW1wbGU/OiBib29sZWFuO1xuICAgIGxvYWRBY3Rpdml0eVZpZXc/OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBCcnVsZUFjdGlvbk1lc3NhZ2Uge1xuICAgIE1lc3NhZ2VUeXBlOiBudW1iZXI7XG4gICAgRXNjYXBlQ2hhcmFjdGVyczogYm9vbGVhbjtcbiAgICBNZXNzYWdlRXhwcmVzc2lvbjogc3RyaW5nO1xuICAgIE1lc3NhZ2VFeHByZXNzaW9uSHRtbDogU2FmZUh0bWw7XG59XG5leHBvcnQgdHlwZSBDb2x1bW5TdW1tYXJ5VHlwZSA9IHtcbiAgICBtb0FycjogTWV0YW9iamVjdERhdGFNb2RlbFtdO1xuICAgIGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbjtcbiAgICBzdW1tYXJ5Rm46ICh2YWwpID0+IHZvaWQ7XG59O1xuIl19
|
|
@@ -111,6 +111,9 @@ export class ReportBaseComponent extends BaseComponent {
|
|
|
111
111
|
const gridSettings = getResetGridSettings(allColumns, this.context);
|
|
112
112
|
this.updateGridSetting(gridSettings, false, true);
|
|
113
113
|
}
|
|
114
|
+
_columnSummary(e) {
|
|
115
|
+
this.context.fireEvent('columnSummary', this.context, e.moArr, e.column, e.summaryFn);
|
|
116
|
+
}
|
|
114
117
|
_gridSettingChanged(setting) {
|
|
115
118
|
this.gridSettingSource.next(setting);
|
|
116
119
|
}
|
|
@@ -247,4 +250,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
247
250
|
}], pageSizeChange: [{
|
|
248
251
|
type: Output
|
|
249
252
|
}] } });
|
|
250
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvcmVwb3J0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILEtBQUssRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFJTix1QkFBdUIsRUFDMUIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3RGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUF3QnZDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBd0RsRCxZQUFzQixjQUE2QixFQUFZLGVBQStCO1FBQzFGLEtBQUssRUFBRSxDQUFDO1FBRFUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBWSxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFqRHBGLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3hDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV0RCx1QkFBa0IsR0FBRztZQUNqQixjQUFjLEVBQUUsRUFBRTtZQUNsQixlQUFlLEVBQUUsS0FBSztZQUN0QixlQUFlLEVBQUUsRUFBRTtZQUNuQixNQUFNLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFLRixpQkFBWSxHQUF5RSxJQUFJLENBQUM7UUE4QmhGLDBCQUFxQixH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biAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE91dHB1dCxcbiAgICBPbkluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHBsdWNrLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2V0QWxsQ29sdW1uc1NvcnRlZCwgZ2V0UmVzZXRHcmlkU2V0dGluZ3MsIGdldFVuaXF1ZUlkIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBvcnRhbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wb3J0YWwuc2VydmljZSc7XG5pbXBvcnQgeyBVbHZNYWluU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Vsdm1haW4uc2VydmljZSc7XG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4vYmFyc2EtYXBpJztcbmltcG9ydCB7XG4gICAgTWV0YW9iamVjdERhdGFNb2RlbCxcbiAgICBHcmlkU2V0dGluZyxcbiAgICBDb2xTZXR0aW5nLFxuICAgIFJlcG9ydFZpZXdDb2x1bW4sXG4gICAgU29ydFNldHRpbmcsXG4gICAgTWVudUl0ZW0sXG4gICAgUGFnaW5nU2V0dGluZyxcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXG4gICAgY29sdW1uc1Jlc2l6ZWRFdmVudEFyZ3MsXG4gICAgRm9ybVNldHRpbmdcbn0gZnJvbSAnLi9tb2RlbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydFNldHRpbmcge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICBJZDogc3RyaW5nO1xuICAgIEV4dHJhOiBhbnk7XG59XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JucmMtcmVwb3J0LWJhc2UnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSZXBvcnRCYXNlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBjb250ZXh0OiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgU2V0dGluZzogUmVwb3J0U2V0dGluZztcbiAgICB9O1xuICAgIEBJbnB1dCgpIGN1cnJlbnRQYWdlOiBudW1iZXI7XG5cbiAgICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSBwYWdlU2l6ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgZGVmYXVsdEdyaWRTZXR0aW5nID0ge1xuICAgICAgICBDb2xTZXR0aW5nTGlzdDogW10sXG4gICAgICAgIEF1dG9TaXplQ29sdW1uczogZmFsc2UsXG4gICAgICAgIFNvcnRTZXR0aW5nTGlzdDogW10sXG4gICAgICAgIEhpZGRlbjogdHJ1ZVxuICAgIH07XG4gICAgaXRlbVNlbGVjdG9yOiBzdHJpbmc7XG4gICAgYWxsQ29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdO1xuICAgIGlkOiBzdHJpbmc7XG5cbiAgICBzb3J0U2V0dGluZ3M6IHsgSXNHcm91cGVkOiBib29sZWFuOyBOYW1lOiBzdHJpbmc7IFNvcnREaXJlY3Rpb246IHN0cmluZyB9W10gfCBudWxsID0gbnVsbDtcbiAgICBwYXJhbWV0ZXJzOiBhbnk7XG4gICAgZmllbGRzOiBhbnk7XG5cbiAgICB2aXNpYmxlQ29sdW1ucyQ6IE9ic2VydmFibGU8UmVwb3J0Vmlld0NvbHVtbltdPjtcbiAgICBzZWFyY2hUZXJtJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIG1vRGF0YUxpc3QkOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWxbXT47XG4gICAgZ3JpZFNldHRpbmckOiBPYnNlcnZhYmxlPEdyaWRTZXR0aW5nPjtcbiAgICBncm91cGJ5JDogT2JzZXJ2YWJsZTxTb3J0U2V0dGluZ1tdPjtcbiAgICBhbGxDaGVja2VkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBwYWdpbmdTZXR0aW5nJDogT2JzZXJ2YWJsZTxQYWdpbmdTZXR0aW5nIHwgbnVsbD47XG4gICAgZGV2aWNlU2l6ZSQ6IE9ic2VydmFibGU8QWJicmV2YXRpb25EZXZpY2VTaXplPjtcbiAgICBtYXNrJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICB0aXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBpbkRpYWxvZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaXNNdWx0aVNlbGVjdCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgZnVsbHNjcmVlbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgbWVudUl0ZW1zJDogT2JzZXJ2YWJsZTxNZW51SXRlbVtdPjtcbiAgICB0b29sYmFyQnV0dG9ucyQ6IE9ic2VydmFibGU8YW55W10+O1xuICAgIHRvb2xiYXJFbmFibGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGhpZGVUb29sYmFyJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBoaWRlU2VhcmNocGFuZWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHNlbGVjdGVkTW8kOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWwgfCB1bmRlZmluZWQ+O1xuICAgIGNvbmRpdGlvbmFsRm9ybWF0cyQ6IE9ic2VydmFibGU8YW55W10+O1xuICAgIG5ld0lubGluZUVkaXRNbyQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGw+O1xuICAgIGNhcnRhYmxlVGVtcGxhdGVzJDogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IEZvcm1TZXR0aW5nIH0gfCBudWxsPjtcbiAgICBjYXJ0YWJsZUNoaWxkc01vJDogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IE1ldGFvYmplY3REYXRhTW9kZWwgfSB8IG51bGw+O1xuICAgIHNlbGVjdGVkQ291bnQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gICAgZ3JpZEZyZWVDb2x1bW5TaXppbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgcHJvdGVjdGVkIF92aXNpYmxlQ29sdW1uc1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVwb3J0Vmlld0NvbHVtbltdPihbXSk7XG4gICAgcHJvdGVjdGVkIHNlYXJjaFRlcm1Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAgIHByb3RlY3RlZCBncmlkU2V0dGluZ1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8R3JpZFNldHRpbmc+KHRoaXMuZGVmYXVsdEdyaWRTZXR0aW5nKTtcbiAgICBwcm90ZWN0ZWQgZ3JvdXBieVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U29ydFNldHRpbmdbXT4oW10pO1xuICAgIHByaXZhdGUgX2FsbENoZWNrZWRTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSwgcHJvdGVjdGVkIF91bHZNYWluU2VydmljZTogVWx2TWFpblNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy52aXNpYmxlQ29sdW1ucyQgPSB0aGlzLl92aXNpYmxlQ29sdW1uc1NvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgICAgICAgdGhpcy5zZWFyY2hUZXJtJCA9IHRoaXMuc2VhcmNoVGVybVNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgICAgICAgdGhpcy5ncmlkU2V0dGluZyQgPSB0aGlzLmdyaWRTZXR0aW5nU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLmdyb3VwYnkkID0gdGhpcy5ncm91cGJ5U291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLmFsbENoZWNrZWQkID0gdGhpcy5fYWxsQ2hlY2tlZFNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgICAgICAgdGhpcy5maWVsZHMgPSB7fTtcbiAgICAgICAgdGhpcy50b29sYmFyQnV0dG9ucyQgPSB0aGlzLl91bHZNYWluU2VydmljZS50b29sYmFyQnV0dG9ucyQ7XG4gICAgfVxuICAgIGdldCBtb0RhdGFMaXN0KCk6IE1ldGFvYmplY3REYXRhTW9kZWxbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl91bHZNYWluU2VydmljZS5tb0RhdGFMaXN0U291cmNlLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMucmVuZGVyZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmNvbnRleHQucmVuZGVyZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmluRGlhbG9nJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmluRGlhbG9nJDtcbiAgICAgICAgdGhpcy5pc011bHRpU2VsZWN0JCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmlzTXVsdGlTZWxlY3QkO1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW4kID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuZnVsbHNjcmVlbiQ7XG4gICAgICAgIHRoaXMuaGlkZVNlYXJjaHBhbmVsJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmhpZGVTZWFyY2hwYW5lbCQ7XG4gICAgICAgIHRoaXMuZGV2aWNlU2l6ZSQgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkO1xuICAgICAgICB0aGlzLmhpZGVUb29sYmFyJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmhpZGVUb29sYmFyJDtcbiAgICAgICAgdGhpcy5uZXdJbmxpbmVFZGl0TW8kID0gdGhpcy5fdWx2TWFpblNlcnZpY2UubmV3SW5saW5lRWRpdE1vJDtcbiAgICAgICAgdGhpcy5jb25kaXRpb25hbEZvcm1hdHMkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuY29uZGl0aW9uYWxGb3JtYXRzJDtcbiAgICAgICAgdGhpcy5jYXJ0YWJsZVRlbXBsYXRlcyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5jYXJ0YWJsZVRlbXBsYXRlcyQ7XG4gICAgICAgIHRoaXMuY2FydGFibGVDaGlsZHNNbyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5jYXJ0YWJsZUNoaWxkc01vJDtcbiAgICAgICAgdGhpcy50aXRsZSQgPSB0aGlzLl91bHZNYWluU2VydmljZS50aXRsZSQucGlwZShwbHVjaygndGV4dCcpKTtcbiAgICAgICAgdGhpcy5tZW51SXRlbXMkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UubWVudUl0ZW1zJDtcbiAgICAgICAgdGhpcy5wYWdpbmdTZXR0aW5nJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnBhZ2luZ1NldHRpbmckO1xuICAgICAgICB0aGlzLnRvb2xiYXJFbmFibGUkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuZW5hYmxlJDtcbiAgICAgICAgdGhpcy5ncmlkRnJlZUNvbHVtblNpemluZyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5ncmlkRnJlZUNvbHVtblNpemluZyQ7XG4gICAgICAgIHRoaXMubWFzayQgPSB0aGlzLl91bHZNYWluU2VydmljZS52aXdlck1hc2skLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTW8kID0gdGhpcy5fdWx2TWFpblNlcnZpY2UubW9EYXRhTGlzdCQucGlwZShtYXAoKGl0ZW1zKSA9PiBpdGVtcy5maW5kKChjKSA9PiBjLiRJc0NoZWNrZWQpKSk7XG4gICAgICAgIHRoaXMubW9EYXRhTGlzdCQgPSB0aGlzLl91bHZNYWluU2VydmljZS5tb0RhdGFMaXN0JC5waXBlKHRhcCgoaXRlbXMpID0+IHRoaXMuX3NldEFsbENoZWNrZWQoaXRlbXMpKSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudCQgPSB0aGlzLl91bHZNYWluU2VydmljZS5zZWxlY3RlZENvdW50JDtcblxuICAgICAgICB0aGlzLmNvbnRleHQub24oe1xuICAgICAgICAgICAgc2NvcGU6IHRoaXMsXG4gICAgICAgICAgICBNb0RhdGFMaXN0Q2hhbmdlZDogdGhpcy5fbW9EYXRhTGlzdENoYW5nZWQsXG4gICAgICAgICAgICBHcmlkU2V0dGluZ0NoYW5nZWQ6IHRoaXMuX2dyaWRTZXR0aW5nQ2hhbmdlZFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gaW4gZ2hlaXJlIGZhYWwgYm9vZCBjaG9uIG1vc2hrZWwgZWlqYWQgbWlrYXJkXG4gICAgICAgIC8vIHZhIGRhciB1bHYgZXZlbnQgYmFpYWQgcmFpc2Ugc2hhdmFkXG4gICAgICAgIC8vIGtlIGRhdGEgYW1hZGUgc2hvZGUgdmEgdWx2bWFpbnNlcnZpY2UgYW4gcmEgYmVnaXJhZC5nb3phcmVzaCBtb3J0YWJldFxuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QodGhpcy5jb250ZXh0Lm1vRGF0YUxpc3QpO1xuXG4gICAgICAgIGxldCBncmlkU2V0dGluZyA9IHRoaXMuZGVmYXVsdEdyaWRTZXR0aW5nO1xuICAgICAgICBpZiAodGhpcy5jb250ZXh0LkdldEdyaWRTZXR0aW5nKSB7XG4gICAgICAgICAgICBncmlkU2V0dGluZyA9IHRoaXMuY29udGV4dC5HZXRHcmlkU2V0dGluZygpIHx8IHRoaXMuZGVmYXVsdEdyaWRTZXR0aW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0VmlzaWJsZUNvbHVtbnMoKTtcblxuICAgICAgICBncmlkU2V0dGluZy5Tb3J0U2V0dGluZ0xpc3QgfHw9IFtdO1xuICAgICAgICB0aGlzLmFsbENvbHVtbnMgPSB0aGlzLmNvbnRleHQuYWxsQ29sdW1ucyB8fCBbXTtcbiAgICAgICAgdGhpcy51cGRhdGVHcmlkU2V0dGluZyhncmlkU2V0dGluZywgZmFsc2UsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQsXG4gICAgICAgICAgICAnU2V0dGluZy5DbGFzc05hbWVzLkN1c3RvbVVpLlBhcmFtZXRlcnMnLFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmlkID0gZ2V0VW5pcXVlSWQoNCk7XG5cbiAgICAgICAgdGhpcy5pdGVtU2VsZWN0b3IgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmNvbnRleHQsICdTZXR0aW5nLkNsYXNzTmFtZXMuQ3VzdG9tVWlSb3cuU2VsZWN0b3InKTtcblxuICAgICAgICB0aGlzLnBhcmFtZXRlcnMgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmNvbnRleHQsICdTZXR0aW5nLkNsYXNzTmFtZXMuQ3VzdG9tVWkuUGFyYW1ldGVycycpO1xuICAgICAgICBjb25zdCBmaWVsZFNldHRpbmdzID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5wYXJhbWV0ZXJzLCAnRmllbGRTZXR0aW5ncy5Nb0RhdGFMaXN0JywgW10pO1xuXG4gICAgICAgIGZpZWxkU2V0dGluZ3MuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWVsZHNbYy5Db21wb25lbnRQYXJhbWV0ZXIuJENhcHRpb25dID0gYy4kQ2FwdGlvbjtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmNvbnRleHQuUmVmcmVzaEFsbENtZFVpKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuICAgICAgICB0aGlzLmRldmljZVNpemUkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgdGFwKChkZXZpY2VTaXplKSA9PiB0aGlzLl9kZXZpY2VTaXplQ2hhbmdlZChkZXZpY2VTaXplKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS53aW5kb3dSZXNpemUkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fd2luZG93UmVzaXplZCgpKTtcbiAgICAgICAgdGhpcy5jb250ZXh0Py5maXJlRXZlbnQoJ2FmdGVycmVuZGVyJywgdGhpcyk7XG4gICAgfVxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLmNvbnRleHQudW4oJ01vRGF0YUxpc3RDaGFuZ2VkJywgdGhpcy5fbW9EYXRhTGlzdENoYW5nZWQpO1xuICAgICAgICB0aGlzLmNvbnRleHQudW4oJ0dyaWRTZXR0aW5nQ2hhbmdlZCcsIHRoaXMuX2dyaWRTZXR0aW5nQ2hhbmdlZCk7XG4gICAgfVxuICAgIG9uUmVzZXRHcmlkU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGFsbENvbHVtbnMgPSB0aGlzLmFsbENvbHVtbnMubWFwKChjKSA9PiAoe1xuICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgIEhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICBXaWR0aDogMCxcbiAgICAgICAgICAgICRXaWR0aDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgJFdpZHRoMjogdW5kZWZpbmVkXG4gICAgICAgIH0pKTtcbiAgICAgICAgY29uc3QgZ3JpZFNldHRpbmdzID0gZ2V0UmVzZXRHcmlkU2V0dGluZ3MoYWxsQ29sdW1ucywgdGhpcy5jb250ZXh0KTtcbiAgICAgICAgdGhpcy51cGRhdGVHcmlkU2V0dGluZyhncmlkU2V0dGluZ3MsIGZhbHNlLCB0cnVlKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9ncmlkU2V0dGluZ0NoYW5nZWQoc2V0dGluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmdyaWRTZXR0aW5nU291cmNlLm5leHQoc2V0dGluZyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfbW9EYXRhTGlzdENoYW5nZWQobW9EYXRhTGlzdCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QobW9EYXRhTGlzdCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0QWxsQ2hlY2tlZChpdGVtczogTWV0YW9iamVjdERhdGFNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FsbENoZWNrZWRTb3VyY2UubmV4dChpdGVtcy5sZW5ndGggPiAwICYmICFpdGVtcy5zb21lKChjKSA9PiAhYy4kSXNDaGVja2VkKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVDb2x1bW5zUmVzaXplZChlOiBjb2x1bW5zUmVzaXplZEV2ZW50QXJncyk6IHZvaWQge1xuICAgICAgICBjb25zdCBncmlkU2V0dGluZzogR3JpZFNldHRpbmcgPSB0aGlzLmdyaWRTZXR0aW5nU291cmNlLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IHsgY29sdW1ucywgcmVzaXplZCB9ID0gZTtcbiAgICAgICAgY29uc3QgY29sTGlzdDogQ29sU2V0dGluZ1tdID0gZ3JpZFNldHRpbmcuQ29sU2V0dGluZ0xpc3Q7XG4gICAgICAgIHJlc2l6ZWQuZm9yRWFjaCgoY29sdW1uMSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzaXplZENvbHVtbiA9IGNvbHVtbnMuZmluZCgoYykgPT4gYy5OYW1lID09PSBjb2x1bW4xLm5hbWUpO1xuICAgICAgICAgICAgaWYgKCFjb2xMaXN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgY29sdW1uID0gY29sTGlzdC5maW5kKChjKSA9PiBjLk5hbWUgPT09IHJlc2l6ZWRDb2x1bW4/Lk5hbWUpO1xuICAgICAgICAgICAgaWYgKGNvbHVtbikge1xuICAgICAgICAgICAgICAgIGNvbHVtbi5XaWR0aCA9IGNvbHVtbjEud2lkdGg7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlc2l6ZWRDb2x1bW4pIHtcbiAgICAgICAgICAgICAgICBjb2xMaXN0LnB1c2goeyBJc0hpZGRlbjogcmVzaXplZENvbHVtbi5IaWRkZW4sIE5hbWU6IHJlc2l6ZWRDb2x1bW4uTmFtZSwgV2lkdGg6IGNvbHVtbjEud2lkdGggfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9yYWlzZUV2ZW50VXNlclNldHRpbmdDaGFuZ2VkKGdyaWRTZXR0aW5nKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRWaXNpYmxlQ29sdW1ucygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IEdldEFsbENvbHVtbnNTb3J0ZWQodGhpcy5jb250ZXh0KTtcbiAgICAgICAgdGhpcy5fdmlzaWJsZUNvbHVtbnNTb3VyY2UubmV4dChjb2x1bW5zLmZpbHRlcigoYykgPT4gIWMuSGlkZGVuKSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBhcHBseUdyb3VwYnkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNvcnRMaXN0OiBTb3J0U2V0dGluZ1tdID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQsXG4gICAgICAgICAgICAnU2V0dGluZy5WaWV3LkdyaWRTZXR0aW5nLlNvcnRTZXR0aW5nTGlzdCcsXG4gICAgICAgICAgICBbXVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmdyb3VwYnlTb3VyY2UubmV4dChzb3J0TGlzdC5maWx0ZXIoKGMpID0+IGMuSXNHcm91cGVkKSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcmFpc2VSb3dDbGljayhpbmRleCwgbW8pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0Py5maXJlRXZlbnQoJ3Jvd2RibGNsaWNrJywgdGhpcy5jb250ZXh0LCBpbmRleCwgbW8pO1xuICAgIH1cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIHByb3RlY3RlZCBfZGV2aWNlU2l6ZUNoYW5nZWQoXzogc3RyaW5nKTogdm9pZCB7fVxuICAgIHByb3RlY3RlZCBfd2luZG93UmVzaXplZCgpOiB2b2lkIHt9XG5cbiAgICBwcm90ZWN0ZWQgX29wZW5NbyhtbywgaSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yYWlzZVJvd0NsaWNrKGksIG1vKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlR3JpZFNldHRpbmcoc2V0dGluZywgaXNTb3J0ID0gZmFsc2UsIHJhaXNlRXZlbnQgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGlmICghc2V0dGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGV4dC5TZXR0aW5nLlZpZXcuR3JpZFNldHRpbmcgPSBzZXR0aW5nO1xuICAgICAgICB0aGlzLmdyaWRTZXR0aW5nU291cmNlLm5leHQoc2V0dGluZyk7XG4gICAgICAgIHRoaXMuYXBwbHlHcm91cGJ5KCk7XG4gICAgICAgIGlmIChpc1NvcnQpIHtcbiAgICAgICAgICAgIHNldHRpbmcuRXZlbnQgPSAnU29ydENoYW5nZSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXR0aW5nLkV2ZW50ID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZGV2aWNlU2l6ZUNoYW5nZWQodGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplKTtcbiAgICAgICAgaWYgKHJhaXNlRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JhaXNlRXZlbnRVc2VyU2V0dGluZ0NoYW5nZWQoc2V0dGluZyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9yYWlzZUV2ZW50VXNlclNldHRpbmdDaGFuZ2VkKGdyaWRTZXR0aW5nOiBHcmlkU2V0dGluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdVc2VyU2V0dGluZ0NoYW5nZScsIHRoaXMuY29udGV4dCwgZ3JpZFNldHRpbmcpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3VsdkNvbW1hbmRDbGlja2VkKG1vLCBpbmRleCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW1vdmVDaGVja2VkQWxsKCk7XG4gICAgICAgIHRoaXMuX3NlbGVjdChtbywgaW5kZXgpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2NoZWNrZWRBbGwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1vRGF0YUxpc3QgPSB0aGlzLm1vRGF0YUxpc3Q7XG4gICAgICAgIG1vRGF0YUxpc3QuZm9yRWFjaCgobW8pID0+IChtby4kSXNDaGVja2VkID0gdHJ1ZSkpO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QoKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgncm93U2VsZWN0QWxsJywgdGhpcy5jb250ZXh0KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9yZW1vdmVDaGVja2VkQWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXNlbGN0QWxsKCk7XG4gICAgICAgIC8vIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ3Jvd0Rlc2VsZWN0QWxsJywgdGhpcy5jb250ZXh0KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2Rlc2VsY3RBbGwoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1vRGF0YUxpc3QgPSB0aGlzLm1vRGF0YUxpc3Q7XG4gICAgICAgIG1vRGF0YUxpc3QuZm9yRWFjaCgobW8pID0+IChtby4kSXNDaGVja2VkID0gZmFsc2UpKTtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucmVTZXRNb0RhdGFMaXN0KCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZGVzZWxlY3QobW8sIGluZGV4KTogTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgICAgIG1vLiRJc0NoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucmVTZXRNb0RhdGFMaXN0KCk7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ3Jvd2Rlc2VsZWN0JywgdGhpcy5jb250ZXh0LCBpbmRleCwgbW8pO1xuICAgICAgICByZXR1cm4gbW87XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9zZWxlY3QobW8sIGluZGV4KTogTWV0YW9iamVjdERhdGFNb2RlbCB7XG4gICAgICAgIC8vICAgIHRoaXMuX2Rlc2VsY3RBbGwoKTtcbiAgICAgICAgbW8uJElzQ2hlY2tlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlU2V0TW9EYXRhTGlzdCgpO1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdyb3dzZWxlY3QnLCB0aGlzLmNvbnRleHQsIGluZGV4LCBtbyk7XG4gICAgICAgIHJldHVybiBtbztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2RvQ2hlY2tlZEFsbChjaGVja2VkKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGVja2VkKSB7XG4gICAgICAgICAgICB0aGlzLl9jaGVja2VkQWxsKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9yZW1vdmVDaGVja2VkQWxsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2dldFNlbGVjdGVkKCk6IE1ldGFvYmplY3REYXRhTW9kZWwgfCBudWxsIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRNbyA9IHRoaXMubW9EYXRhTGlzdC5maW5kKChtbykgPT4gbW8uJElzQ2hlY2tlZCk7XG4gICAgICAgIGlmICghc2VsZWN0ZWRNbykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZWN0ZWRNby5qc29uID0gc2VsZWN0ZWRNbztcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkTW87XG4gICAgfVxuICAgIHByb3RlY3RlZCByZWZyZXNoQ29udGV4dE1vRGF0YUxpc3QobW9EYXRhTGlzdCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdSZWZyZXNoQ29udGV4dE1vRGF0YUxpc3QnLCBtb0RhdGFMaXN0KTtcbiAgICB9XG59XG4iXX0=
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvcmVwb3J0LWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILEtBQUssRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFJTix1QkFBdUIsRUFDMUIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3RGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7QUF5QnZDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxhQUFhO0lBd0RsRCxZQUFzQixjQUE2QixFQUFZLGVBQStCO1FBQzFGLEtBQUssRUFBRSxDQUFDO1FBRFUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBWSxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFqRHBGLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3hDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV0RCx1QkFBa0IsR0FBRztZQUNqQixjQUFjLEVBQUUsRUFBRTtZQUNsQixlQUFlLEVBQUUsS0FBSztZQUN0QixlQUFlLEVBQUUsRUFBRTtZQUNuQixNQUFNLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFLRixpQkFBWSxHQUF5RSxJQUFJLENBQUM7UUE4QmhGLDBCQUFxQixH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ZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOytHQUVZLE9BQU87c0JBQWYsS0FBSztnQkFJRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgSW5wdXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPdXRwdXQsXG4gICAgT25Jbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgT25EZXN0cm95LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwLCBwbHVjaywgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEdldEFsbENvbHVtbnNTb3J0ZWQsIGdldFJlc2V0R3JpZFNldHRpbmdzLCBnZXRVbmlxdWVJZCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcG9ydGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgVWx2TWFpblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91bHZtYWluLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFyc2FBcGkgfSBmcm9tICcuL2JhcnNhLWFwaSc7XG5pbXBvcnQge1xuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgR3JpZFNldHRpbmcsXG4gICAgQ29sU2V0dGluZyxcbiAgICBSZXBvcnRWaWV3Q29sdW1uLFxuICAgIFNvcnRTZXR0aW5nLFxuICAgIE1lbnVJdGVtLFxuICAgIFBhZ2luZ1NldHRpbmcsXG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxuICAgIGNvbHVtbnNSZXNpemVkRXZlbnRBcmdzLFxuICAgIEZvcm1TZXR0aW5nLFxuICAgIENvbHVtblN1bW1hcnlUeXBlXG59IGZyb20gJy4vbW9kZWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRTZXR0aW5nIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgSWQ6IHN0cmluZztcbiAgICBFeHRyYTogYW55O1xufVxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdibnJjLXJlcG9ydC1iYXNlJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUmVwb3J0QmFzZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgY29udGV4dDoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIFNldHRpbmc6IFJlcG9ydFNldHRpbmc7XG4gICAgfTtcbiAgICBASW5wdXQoKSBjdXJyZW50UGFnZTogbnVtYmVyO1xuXG4gICAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgICBAT3V0cHV0KCkgcGFnZVNpemVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICAgIGRlZmF1bHRHcmlkU2V0dGluZyA9IHtcbiAgICAgICAgQ29sU2V0dGluZ0xpc3Q6IFtdLFxuICAgICAgICBBdXRvU2l6ZUNvbHVtbnM6IGZhbHNlLFxuICAgICAgICBTb3J0U2V0dGluZ0xpc3Q6IFtdLFxuICAgICAgICBIaWRkZW46IHRydWVcbiAgICB9O1xuICAgIGl0ZW1TZWxlY3Rvcjogc3RyaW5nO1xuICAgIGFsbENvbHVtbnM6IFJlcG9ydFZpZXdDb2x1bW5bXTtcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgc29ydFNldHRpbmdzOiB7IElzR3JvdXBlZDogYm9vbGVhbjsgTmFtZTogc3RyaW5nOyBTb3J0RGlyZWN0aW9uOiBzdHJpbmcgfVtdIHwgbnVsbCA9IG51bGw7XG4gICAgcGFyYW1ldGVyczogYW55O1xuICAgIGZpZWxkczogYW55O1xuXG4gICAgdmlzaWJsZUNvbHVtbnMkOiBPYnNlcnZhYmxlPFJlcG9ydFZpZXdDb2x1bW5bXT47XG4gICAgc2VhcmNoVGVybSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBtb0RhdGFMaXN0JDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsW10+O1xuICAgIGdyaWRTZXR0aW5nJDogT2JzZXJ2YWJsZTxHcmlkU2V0dGluZz47XG4gICAgZ3JvdXBieSQ6IE9ic2VydmFibGU8U29ydFNldHRpbmdbXT47XG4gICAgYWxsQ2hlY2tlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcGFnaW5nU2V0dGluZyQ6IE9ic2VydmFibGU8UGFnaW5nU2V0dGluZyB8IG51bGw+O1xuICAgIGRldmljZVNpemUkOiBPYnNlcnZhYmxlPEFiYnJldmF0aW9uRGV2aWNlU2l6ZT47XG4gICAgbWFzayQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgdGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgaW5EaWFsb2ckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGlzTXVsdGlTZWxlY3QkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGZ1bGxzY3JlZW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIG1lbnVJdGVtcyQ6IE9ic2VydmFibGU8TWVudUl0ZW1bXT47XG4gICAgdG9vbGJhckJ1dHRvbnMkOiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgICB0b29sYmFyRW5hYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBoaWRlVG9vbGJhciQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaGlkZVNlYXJjaHBhbmVsJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBzZWxlY3RlZE1vJDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsIHwgdW5kZWZpbmVkPjtcbiAgICBjb25kaXRpb25hbEZvcm1hdHMkOiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgICBuZXdJbmxpbmVFZGl0TW8kOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWwgfCBudWxsPjtcbiAgICBjYXJ0YWJsZVRlbXBsYXRlcyQ6IE9ic2VydmFibGU8eyBba2V5OiBzdHJpbmddOiBGb3JtU2V0dGluZyB9IHwgbnVsbD47XG4gICAgY2FydGFibGVDaGlsZHNNbyQ6IE9ic2VydmFibGU8eyBba2V5OiBzdHJpbmddOiBNZXRhb2JqZWN0RGF0YU1vZGVsIH0gfCBudWxsPjtcbiAgICBzZWxlY3RlZENvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAgIGdyaWRGcmVlQ29sdW1uU2l6aW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIHByb3RlY3RlZCBfdmlzaWJsZUNvbHVtbnNTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlcG9ydFZpZXdDb2x1bW5bXT4oW10pO1xuICAgIHByb3RlY3RlZCBzZWFyY2hUZXJtU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgICBwcm90ZWN0ZWQgZ3JpZFNldHRpbmdTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEdyaWRTZXR0aW5nPih0aGlzLmRlZmF1bHRHcmlkU2V0dGluZyk7XG4gICAgcHJvdGVjdGVkIGdyb3VwYnlTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNvcnRTZXR0aW5nW10+KFtdKTtcbiAgICBwcml2YXRlIF9hbGxDaGVja2VkU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsIHByb3RlY3RlZCBfdWx2TWFpblNlcnZpY2U6IFVsdk1haW5TZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMudmlzaWJsZUNvbHVtbnMkID0gdGhpcy5fdmlzaWJsZUNvbHVtbnNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMuc2VhcmNoVGVybSQgPSB0aGlzLnNlYXJjaFRlcm1Tb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMuZ3JpZFNldHRpbmckID0gdGhpcy5ncmlkU2V0dGluZ1NvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgICAgICAgdGhpcy5ncm91cGJ5JCA9IHRoaXMuZ3JvdXBieVNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgICAgICAgdGhpcy5hbGxDaGVja2VkJCA9IHRoaXMuX2FsbENoZWNrZWRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMuZmllbGRzID0ge307XG4gICAgICAgIHRoaXMudG9vbGJhckJ1dHRvbnMkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UudG9vbGJhckJ1dHRvbnMkO1xuICAgIH1cbiAgICBnZXQgbW9EYXRhTGlzdCgpOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdWx2TWFpblNlcnZpY2UubW9EYXRhTGlzdFNvdXJjZS5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnJlbmRlcmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb250ZXh0LnJlbmRlcmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pbkRpYWxvZyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5pbkRpYWxvZyQ7XG4gICAgICAgIHRoaXMuaXNNdWx0aVNlbGVjdCQgPSB0aGlzLl91bHZNYWluU2VydmljZS5pc011bHRpU2VsZWN0JDtcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmZ1bGxzY3JlZW4kO1xuICAgICAgICB0aGlzLmhpZGVTZWFyY2hwYW5lbCQgPSB0aGlzLl91bHZNYWluU2VydmljZS5oaWRlU2VhcmNocGFuZWwkO1xuICAgICAgICB0aGlzLmRldmljZVNpemUkID0gdGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJDtcbiAgICAgICAgdGhpcy5oaWRlVG9vbGJhciQgPSB0aGlzLl91bHZNYWluU2VydmljZS5oaWRlVG9vbGJhciQ7XG4gICAgICAgIHRoaXMubmV3SW5saW5lRWRpdE1vJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLm5ld0lubGluZUVkaXRNbyQ7XG4gICAgICAgIHRoaXMuY29uZGl0aW9uYWxGb3JtYXRzJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmNvbmRpdGlvbmFsRm9ybWF0cyQ7XG4gICAgICAgIHRoaXMuY2FydGFibGVUZW1wbGF0ZXMkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuY2FydGFibGVUZW1wbGF0ZXMkO1xuICAgICAgICB0aGlzLmNhcnRhYmxlQ2hpbGRzTW8kID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuY2FydGFibGVDaGlsZHNNbyQ7XG4gICAgICAgIHRoaXMudGl0bGUkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UudGl0bGUkLnBpcGUocGx1Y2soJ3RleHQnKSk7XG4gICAgICAgIHRoaXMubWVudUl0ZW1zJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLm1lbnVJdGVtcyQ7XG4gICAgICAgIHRoaXMucGFnaW5nU2V0dGluZyQgPSB0aGlzLl91bHZNYWluU2VydmljZS5wYWdpbmdTZXR0aW5nJDtcbiAgICAgICAgdGhpcy50b29sYmFyRW5hYmxlJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLmVuYWJsZSQ7XG4gICAgICAgIHRoaXMuZ3JpZEZyZWVDb2x1bW5TaXppbmckID0gdGhpcy5fdWx2TWFpblNlcnZpY2UuZ3JpZEZyZWVDb2x1bW5TaXppbmckO1xuICAgICAgICB0aGlzLm1hc2skID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uudml3ZXJNYXNrJC5waXBlKGRlYm91bmNlVGltZSgyMDApKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vJCA9IHRoaXMuX3Vsdk1haW5TZXJ2aWNlLm1vRGF0YUxpc3QkLnBpcGUobWFwKChpdGVtcykgPT4gaXRlbXMuZmluZCgoYykgPT4gYy4kSXNDaGVja2VkKSkpO1xuICAgICAgICB0aGlzLm1vRGF0YUxpc3QkID0gdGhpcy5fdWx2TWFpblNlcnZpY2UubW9EYXRhTGlzdCQucGlwZSh0YXAoKGl0ZW1zKSA9PiB0aGlzLl9zZXRBbGxDaGVja2VkKGl0ZW1zKSkpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnQkID0gdGhpcy5fdWx2TWFpblNlcnZpY2Uuc2VsZWN0ZWRDb3VudCQ7XG5cbiAgICAgICAgdGhpcy5jb250ZXh0Lm9uKHtcbiAgICAgICAgICAgIHNjb3BlOiB0aGlzLFxuICAgICAgICAgICAgTW9EYXRhTGlzdENoYW5nZWQ6IHRoaXMuX21vRGF0YUxpc3RDaGFuZ2VkLFxuICAgICAgICAgICAgR3JpZFNldHRpbmdDaGFuZ2VkOiB0aGlzLl9ncmlkU2V0dGluZ0NoYW5nZWRcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGluIGdoZWlyZSBmYWFsIGJvb2QgY2hvbiBtb3Noa2VsIGVpamFkIG1pa2FyZFxuICAgICAgICAvLyB2YSBkYXIgdWx2IGV2ZW50IGJhaWFkIHJhaXNlIHNoYXZhZFxuICAgICAgICAvLyBrZSBkYXRhIGFtYWRlIHNob2RlIHZhIHVsdm1haW5zZXJ2aWNlIGFuIHJhIGJlZ2lyYWQuZ296YXJlc2ggbW9ydGFiZXRcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucmVTZXRNb0RhdGFMaXN0KHRoaXMuY29udGV4dC5tb0RhdGFMaXN0KTtcblxuICAgICAgICBsZXQgZ3JpZFNldHRpbmcgPSB0aGlzLmRlZmF1bHRHcmlkU2V0dGluZztcbiAgICAgICAgaWYgKHRoaXMuY29udGV4dC5HZXRHcmlkU2V0dGluZykge1xuICAgICAgICAgICAgZ3JpZFNldHRpbmcgPSB0aGlzLmNvbnRleHQuR2V0R3JpZFNldHRpbmcoKSB8fCB0aGlzLmRlZmF1bHRHcmlkU2V0dGluZztcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3NldFZpc2libGVDb2x1bW5zKCk7XG5cbiAgICAgICAgZ3JpZFNldHRpbmcuU29ydFNldHRpbmdMaXN0IHx8PSBbXTtcbiAgICAgICAgdGhpcy5hbGxDb2x1bW5zID0gdGhpcy5jb250ZXh0LmFsbENvbHVtbnMgfHwgW107XG4gICAgICAgIHRoaXMudXBkYXRlR3JpZFNldHRpbmcoZ3JpZFNldHRpbmcsIGZhbHNlLCBmYWxzZSk7XG4gICAgICAgIHRoaXMucGFyYW1ldGVycyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKFxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LFxuICAgICAgICAgICAgJ1NldHRpbmcuQ2xhc3NOYW1lcy5DdXN0b21VaS5QYXJhbWV0ZXJzJyxcbiAgICAgICAgICAgIG51bGxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5pZCA9IGdldFVuaXF1ZUlkKDQpO1xuXG4gICAgICAgIHRoaXMuaXRlbVNlbGVjdG9yID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnU2V0dGluZy5DbGFzc05hbWVzLkN1c3RvbVVpUm93LlNlbGVjdG9yJyk7XG5cbiAgICAgICAgdGhpcy5wYXJhbWV0ZXJzID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnU2V0dGluZy5DbGFzc05hbWVzLkN1c3RvbVVpLlBhcmFtZXRlcnMnKTtcbiAgICAgICAgY29uc3QgZmllbGRTZXR0aW5ncyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMucGFyYW1ldGVycywgJ0ZpZWxkU2V0dGluZ3MuTW9EYXRhTGlzdCcsIFtdKTtcblxuICAgICAgICBmaWVsZFNldHRpbmdzLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmllbGRzW2MuQ29tcG9uZW50UGFyYW1ldGVyLiRDYXB0aW9uXSA9IGMuJENhcHRpb247XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5jb250ZXh0LlJlZnJlc2hBbGxDbWRVaSgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICAgICAgdGhpcy5kZXZpY2VTaXplJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxuICAgICAgICAgICAgICAgIHRhcCgoZGV2aWNlU2l6ZSkgPT4gdGhpcy5fZGV2aWNlU2l6ZUNoYW5nZWQoZGV2aWNlU2l6ZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2Uud2luZG93UmVzaXplJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3dpbmRvd1Jlc2l6ZWQoKSk7XG4gICAgICAgIHRoaXMuY29udGV4dD8uZmlyZUV2ZW50KCdhZnRlcnJlbmRlcicsIHRoaXMpO1xuICAgIH1cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LnVuKCdNb0RhdGFMaXN0Q2hhbmdlZCcsIHRoaXMuX21vRGF0YUxpc3RDaGFuZ2VkKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LnVuKCdHcmlkU2V0dGluZ0NoYW5nZWQnLCB0aGlzLl9ncmlkU2V0dGluZ0NoYW5nZWQpO1xuICAgIH1cbiAgICBvblJlc2V0R3JpZFNldHRpbmdzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBhbGxDb2x1bW5zID0gdGhpcy5hbGxDb2x1bW5zLm1hcCgoYykgPT4gKHtcbiAgICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgICBIaWRkZW46IGZhbHNlLFxuICAgICAgICAgICAgV2lkdGg6IDAsXG4gICAgICAgICAgICAkV2lkdGg6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICRXaWR0aDI6IHVuZGVmaW5lZFxuICAgICAgICB9KSk7XG4gICAgICAgIGNvbnN0IGdyaWRTZXR0aW5ncyA9IGdldFJlc2V0R3JpZFNldHRpbmdzKGFsbENvbHVtbnMsIHRoaXMuY29udGV4dCk7XG4gICAgICAgIHRoaXMudXBkYXRlR3JpZFNldHRpbmcoZ3JpZFNldHRpbmdzLCBmYWxzZSwgdHJ1ZSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfY29sdW1uU3VtbWFyeShlOiBDb2x1bW5TdW1tYXJ5VHlwZSk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdjb2x1bW5TdW1tYXJ5JywgdGhpcy5jb250ZXh0LCBlLm1vQXJyLCBlLmNvbHVtbiwgZS5zdW1tYXJ5Rm4pO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2dyaWRTZXR0aW5nQ2hhbmdlZChzZXR0aW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3JpZFNldHRpbmdTb3VyY2UubmV4dChzZXR0aW5nKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9tb0RhdGFMaXN0Q2hhbmdlZChtb0RhdGFMaXN0KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlU2V0TW9EYXRhTGlzdChtb0RhdGFMaXN0KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRBbGxDaGVja2VkKGl0ZW1zOiBNZXRhb2JqZWN0RGF0YU1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWxsQ2hlY2tlZFNvdXJjZS5uZXh0KGl0ZW1zLmxlbmd0aCA+IDAgJiYgIWl0ZW1zLnNvbWUoKGMpID0+ICFjLiRJc0NoZWNrZWQpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2hhbmRsZUNvbHVtbnNSZXNpemVkKGU6IGNvbHVtbnNSZXNpemVkRXZlbnRBcmdzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGdyaWRTZXR0aW5nOiBHcmlkU2V0dGluZyA9IHRoaXMuZ3JpZFNldHRpbmdTb3VyY2UuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgeyBjb2x1bW5zLCByZXNpemVkIH0gPSBlO1xuICAgICAgICBjb25zdCBjb2xMaXN0OiBDb2xTZXR0aW5nW10gPSBncmlkU2V0dGluZy5Db2xTZXR0aW5nTGlzdDtcbiAgICAgICAgcmVzaXplZC5mb3JFYWNoKChjb2x1bW4xKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXNpemVkQ29sdW1uID0gY29sdW1ucy5maW5kKChjKSA9PiBjLk5hbWUgPT09IGNvbHVtbjEubmFtZSk7XG4gICAgICAgICAgICBpZiAoIWNvbExpc3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjb2x1bW4gPSBjb2xMaXN0LmZpbmQoKGMpID0+IGMuTmFtZSA9PT0gcmVzaXplZENvbHVtbj8uTmFtZSk7XG4gICAgICAgICAgICBpZiAoY29sdW1uKSB7XG4gICAgICAgICAgICAgICAgY29sdW1uLldpZHRoID0gY29sdW1uMS53aWR0aDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzaXplZENvbHVtbikge1xuICAgICAgICAgICAgICAgIGNvbExpc3QucHVzaCh7IElzSGlkZGVuOiByZXNpemVkQ29sdW1uLkhpZGRlbiwgTmFtZTogcmVzaXplZENvbHVtbi5OYW1lLCBXaWR0aDogY29sdW1uMS53aWR0aCB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3JhaXNlRXZlbnRVc2VyU2V0dGluZ0NoYW5nZWQoZ3JpZFNldHRpbmcpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldFZpc2libGVDb2x1bW5zKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gR2V0QWxsQ29sdW1uc1NvcnRlZCh0aGlzLmNvbnRleHQpO1xuICAgICAgICB0aGlzLl92aXNpYmxlQ29sdW1uc1NvdXJjZS5uZXh0KGNvbHVtbnMuZmlsdGVyKChjKSA9PiAhYy5IaWRkZW4pKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIGFwcGx5R3JvdXBieSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc29ydExpc3Q6IFNvcnRTZXR0aW5nW10gPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCxcbiAgICAgICAgICAgICdTZXR0aW5nLlZpZXcuR3JpZFNldHRpbmcuU29ydFNldHRpbmdMaXN0JyxcbiAgICAgICAgICAgIFtdXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZ3JvdXBieVNvdXJjZS5uZXh0KHNvcnRMaXN0LmZpbHRlcigoYykgPT4gYy5Jc0dyb3VwZWQpKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9yYWlzZVJvd0NsaWNrKGluZGV4LCBtbyk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQ/LmZpcmVFdmVudCgncm93ZGJsY2xpY2snLCB0aGlzLmNvbnRleHQsIGluZGV4LCBtbyk7XG4gICAgfVxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgcHJvdGVjdGVkIF9kZXZpY2VTaXplQ2hhbmdlZChfOiBzdHJpbmcpOiB2b2lkIHt9XG4gICAgcHJvdGVjdGVkIF93aW5kb3dSZXNpemVkKCk6IHZvaWQge31cblxuICAgIHByb3RlY3RlZCBfb3Blbk1vKG1vLCBpKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JhaXNlUm93Q2xpY2soaSwgbW8pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGVHcmlkU2V0dGluZyhzZXR0aW5nLCBpc1NvcnQgPSBmYWxzZSwgcmFpc2VFdmVudCA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFzZXR0aW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZXh0LlNldHRpbmcuVmlldy5HcmlkU2V0dGluZyA9IHNldHRpbmc7XG4gICAgICAgIHRoaXMuZ3JpZFNldHRpbmdTb3VyY2UubmV4dChzZXR0aW5nKTtcbiAgICAgICAgdGhpcy5hcHBseUdyb3VwYnkoKTtcbiAgICAgICAgaWYgKGlzU29ydCkge1xuICAgICAgICAgICAgc2V0dGluZy5FdmVudCA9ICdTb3J0Q2hhbmdlJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldHRpbmcuRXZlbnQgPSAnJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9kZXZpY2VTaXplQ2hhbmdlZCh0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUpO1xuICAgICAgICBpZiAocmFpc2VFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5fcmFpc2VFdmVudFVzZXJTZXR0aW5nQ2hhbmdlZChzZXR0aW5nKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3JhaXNlRXZlbnRVc2VyU2V0dGluZ0NoYW5nZWQoZ3JpZFNldHRpbmc6IEdyaWRTZXR0aW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1VzZXJTZXR0aW5nQ2hhbmdlJywgdGhpcy5jb250ZXh0LCBncmlkU2V0dGluZyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfdWx2Q29tbWFuZENsaWNrZWQobW8sIGluZGV4KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZUNoZWNrZWRBbGwoKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0KG1vLCBpbmRleCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfY2hlY2tlZEFsbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbW9EYXRhTGlzdCA9IHRoaXMubW9EYXRhTGlzdDtcbiAgICAgICAgbW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4gKG1vLiRJc0NoZWNrZWQgPSB0cnVlKSk7XG4gICAgICAgIHRoaXMuX3Vsdk1haW5TZXJ2aWNlLnJlU2V0TW9EYXRhTGlzdCgpO1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdyb3dTZWxlY3RBbGwnLCB0aGlzLmNvbnRleHQpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3JlbW92ZUNoZWNrZWRBbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rlc2VsY3RBbGwoKTtcbiAgICAgICAgLy8gdGhpcy5jb250ZXh0LmZpcmVFdmVudCgncm93RGVzZWxlY3RBbGwnLCB0aGlzLmNvbnRleHQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfZGVzZWxjdEFsbCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbW9EYXRhTGlzdCA9IHRoaXMubW9EYXRhTGlzdDtcbiAgICAgICAgbW9EYXRhTGlzdC5mb3JFYWNoKChtbykgPT4gKG1vLiRJc0NoZWNrZWQgPSBmYWxzZSkpO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9kZXNlbGVjdChtbywgaW5kZXgpOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICAgICAgbW8uJElzQ2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl91bHZNYWluU2VydmljZS5yZVNldE1vRGF0YUxpc3QoKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgncm93ZGVzZWxlY3QnLCB0aGlzLmNvbnRleHQsIGluZGV4LCBtbyk7XG4gICAgICAgIHJldHVybiBtbztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3NlbGVjdChtbywgaW5kZXgpOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICAgICAgLy8gICAgdGhpcy5fZGVzZWxjdEFsbCgpO1xuICAgICAgICBtby4kSXNDaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5fdWx2TWFpblNlcnZpY2UucmVTZXRNb0RhdGFMaXN0KCk7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ3Jvd3NlbGVjdCcsIHRoaXMuY29udGV4dCwgaW5kZXgsIG1vKTtcbiAgICAgICAgcmV0dXJuIG1vO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfZG9DaGVja2VkQWxsKGNoZWNrZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2NoZWNrZWRBbGwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbW92ZUNoZWNrZWRBbGwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBfZ2V0U2VsZWN0ZWQoKTogTWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGwge1xuICAgICAgICBjb25zdCBzZWxlY3RlZE1vID0gdGhpcy5tb0RhdGFMaXN0LmZpbmQoKG1vKSA9PiBtby4kSXNDaGVja2VkKTtcbiAgICAgICAgaWYgKCFzZWxlY3RlZE1vKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RlZE1vLmpzb24gPSBzZWxlY3RlZE1vO1xuICAgICAgICByZXR1cm4gc2VsZWN0ZWRNbztcbiAgICB9XG4gICAgcHJvdGVjdGVkIHJlZnJlc2hDb250ZXh0TW9EYXRhTGlzdChtb0RhdGFMaXN0KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ1JlZnJlc2hDb250ZXh0TW9EYXRhTGlzdCcsIG1vRGF0YUxpc3QpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -18,6 +18,7 @@ export class ReportViewBaseComponent extends BaseComponent {
|
|
|
18
18
|
this._portalService = _portalService;
|
|
19
19
|
this._uploadService = _uploadService;
|
|
20
20
|
this.rowActivable = true;
|
|
21
|
+
this.columnSummary = new EventEmitter();
|
|
21
22
|
this.escapeKey = new EventEmitter();
|
|
22
23
|
this.resetWorkflowState = new EventEmitter();
|
|
23
24
|
this.deselectAll = new EventEmitter();
|
|
@@ -215,7 +216,7 @@ export class ReportViewBaseComponent extends BaseComponent {
|
|
|
215
216
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
216
217
|
_containerWidthChanged(_) { }
|
|
217
218
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ReportViewBaseComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.FindColumnByDbNamePipe }, { token: i2.UlvMainService }, { token: i2.PortalService }, { token: i2.UploadService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
218
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: ReportViewBaseComponent, selector: "bnrc-report-view-base", inputs: { contextView: "contextView", viewSetting: "viewSetting", allColumns: "allColumns", isCheckList: "isCheckList", simpleInlineEdit: "simpleInlineEdit", hideToolbar: "hideToolbar", toolbarButtons: "toolbarButtons", allChecked: "allChecked", moDataList: "moDataList", UlvMainCtrlr: "UlvMainCtrlr", access: "access", groupby: "groupby", selectedCount: "selectedCount", conditionalFormats: "conditionalFormats", parentHeight: "parentHeight", deviceName: "deviceName", deviceSize: "deviceSize", contextMenuItems: "contextMenuItems", columns: "columns", allowInlineEdit: "allowInlineEdit", secondaryColumns: "secondaryColumns", popin: "popin", customFieldInfo: "customFieldInfo", hasSummary: "hasSummary", hasSelected: "hasSelected", hideIcon: "hideIcon", columnsCount: "columnsCount", hideOpenIcon: "hideOpenIcon", openOnClick: "openOnClick", typeDefId: "typeDefId", reportId: "reportId", listEditViewId: "listEditViewId", typeViewId: "typeViewId", extraRelation: "extraRelation", relationList: "relationList", disableResponsive: "disableResponsive", rowItem: "rowItem", mobileOrTablet: "mobileOrTablet", inDialog: "inDialog", isMultiSelect: "isMultiSelect", fullscreen: "fullscreen", hideSearchpanel: "hideSearchpanel", newInlineEditMo: "newInlineEditMo", selectedMo: "selectedMo", inlineEditMode: "inlineEditMode", onlyInlineEdit: "onlyInlineEdit", rowHoverable: "rowHoverable", tlbButtons: "tlbButtons", formSetting: "formSetting", disableOverflowContextMenu: "disableOverflowContextMenu", rowActivable: "rowActivable", contentDensity: "contentDensity", rtl: "rtl", showOkCancelButtons: "showOkCancelButtons", title: "title", hasInlineDeleteButton: "hasInlineDeleteButton", hasInlineEditButton: "hasInlineEditButton", contextSetting: "contextSetting", gridFreeColumnSizing: "gridFreeColumnSizing", navigationArrow: "navigationArrow", cartableTemplates: "cartableTemplates", cartableChildsMo: "cartableChildsMo", pagingSetting: "pagingSetting", containerWidth: "containerWidth" }, outputs: { escapeKey: "escapeKey", resetWorkflowState: "resetWorkflowState", deselectAll: "deselectAll", editFormPanelCancel: "editFormPanelCancel", editFormPanelSave: "editFormPanelSave", selectNextInlineRecord: "selectNextInlineRecord", editFormPanelValueChange: "editFormPanelValueChange", ulvCommandClick: "ulvCommandClick", sortAscending: "sortAscending", workflowShareButtons: "workflowShareButtons", sortDescending: "sortDescending", filter: "filter", executeToolbarButton: "executeToolbarButton", resetGridSettings: "resetGridSettings", rowCheck: "rowCheck", rowClick: "rowClick", cartableFormClosed: "cartableFormClosed", createNewMo: "createNewMo", updateMo: "updateMo", expandClick: "expandClick", trackBySelectedFn: "trackBySelectedFn", allCheckbox: "allCheckbox", mandatory: "mandatory", columnResized: "columnResized", hasDetailsInRow: "hasDetailsInRow" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
219
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: ReportViewBaseComponent, selector: "bnrc-report-view-base", inputs: { contextView: "contextView", viewSetting: "viewSetting", allColumns: "allColumns", isCheckList: "isCheckList", simpleInlineEdit: "simpleInlineEdit", hideToolbar: "hideToolbar", toolbarButtons: "toolbarButtons", allChecked: "allChecked", moDataList: "moDataList", UlvMainCtrlr: "UlvMainCtrlr", access: "access", groupby: "groupby", selectedCount: "selectedCount", conditionalFormats: "conditionalFormats", parentHeight: "parentHeight", deviceName: "deviceName", deviceSize: "deviceSize", contextMenuItems: "contextMenuItems", columns: "columns", allowInlineEdit: "allowInlineEdit", secondaryColumns: "secondaryColumns", popin: "popin", customFieldInfo: "customFieldInfo", hasSummary: "hasSummary", hasSelected: "hasSelected", hideIcon: "hideIcon", columnsCount: "columnsCount", hideOpenIcon: "hideOpenIcon", openOnClick: "openOnClick", typeDefId: "typeDefId", reportId: "reportId", listEditViewId: "listEditViewId", typeViewId: "typeViewId", extraRelation: "extraRelation", relationList: "relationList", disableResponsive: "disableResponsive", rowItem: "rowItem", mobileOrTablet: "mobileOrTablet", inDialog: "inDialog", isMultiSelect: "isMultiSelect", fullscreen: "fullscreen", hideSearchpanel: "hideSearchpanel", newInlineEditMo: "newInlineEditMo", selectedMo: "selectedMo", inlineEditMode: "inlineEditMode", onlyInlineEdit: "onlyInlineEdit", rowHoverable: "rowHoverable", groupSummary: "groupSummary", tlbButtons: "tlbButtons", formSetting: "formSetting", disableOverflowContextMenu: "disableOverflowContextMenu", rowActivable: "rowActivable", contentDensity: "contentDensity", rtl: "rtl", showOkCancelButtons: "showOkCancelButtons", title: "title", hasInlineDeleteButton: "hasInlineDeleteButton", hasInlineEditButton: "hasInlineEditButton", contextSetting: "contextSetting", gridFreeColumnSizing: "gridFreeColumnSizing", navigationArrow: "navigationArrow", cartableTemplates: "cartableTemplates", cartableChildsMo: "cartableChildsMo", pagingSetting: "pagingSetting", containerWidth: "containerWidth" }, outputs: { columnSummary: "columnSummary", escapeKey: "escapeKey", resetWorkflowState: "resetWorkflowState", deselectAll: "deselectAll", editFormPanelCancel: "editFormPanelCancel", editFormPanelSave: "editFormPanelSave", selectNextInlineRecord: "selectNextInlineRecord", editFormPanelValueChange: "editFormPanelValueChange", ulvCommandClick: "ulvCommandClick", sortAscending: "sortAscending", workflowShareButtons: "workflowShareButtons", sortDescending: "sortDescending", filter: "filter", executeToolbarButton: "executeToolbarButton", resetGridSettings: "resetGridSettings", rowCheck: "rowCheck", rowClick: "rowClick", cartableFormClosed: "cartableFormClosed", createNewMo: "createNewMo", updateMo: "updateMo", expandClick: "expandClick", trackBySelectedFn: "trackBySelectedFn", allCheckbox: "allCheckbox", mandatory: "mandatory", columnResized: "columnResized", hasDetailsInRow: "hasDetailsInRow" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
219
220
|
}
|
|
220
221
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ReportViewBaseComponent, decorators: [{
|
|
221
222
|
type: Component,
|
|
@@ -320,6 +321,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
320
321
|
type: Input
|
|
321
322
|
}], rowHoverable: [{
|
|
322
323
|
type: Input
|
|
324
|
+
}], groupSummary: [{
|
|
325
|
+
type: Input
|
|
323
326
|
}], tlbButtons: [{
|
|
324
327
|
type: Input
|
|
325
328
|
}], formSetting: [{
|
|
@@ -352,6 +355,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
352
355
|
type: Input
|
|
353
356
|
}], pagingSetting: [{
|
|
354
357
|
type: Input
|
|
358
|
+
}], columnSummary: [{
|
|
359
|
+
type: Output
|
|
355
360
|
}], escapeKey: [{
|
|
356
361
|
type: Output
|
|
357
362
|
}], resetWorkflowState: [{
|
|
@@ -405,4 +410,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
|
|
|
405
410
|
}], containerWidth: [{
|
|
406
411
|
type: Input
|
|
407
412
|
}] } });
|
|
408
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXctYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvcmVwb3J0LXZpZXctYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUlULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQXdCakQsTUFBTSxPQUFPLHVCQUEyRCxTQUFRLGFBQWE7SUF5RnpGLElBQWEsY0FBYyxDQUFDLEdBQVc7UUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUM7UUFDM0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFXRCxZQUNjLEdBQWUsRUFDZixJQUF1QixFQUN2QixVQUFxQixFQUNyQixtQkFBMkMsRUFDM0MsZUFBK0IsRUFDL0IsY0FBNkIsRUFDakIsY0FBOEI7UUFFcEQsS0FBSyxFQUFFLENBQUM7UUFSRSxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDdkIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXdCO1FBQzNDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUNqQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUEzRC9DLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBYW5CLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUNwRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FB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QUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDTSxjQUFjO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbmRDb2x1bW5CeURiTmFtZVBpcGUgfSBmcm9tICcuLi9waXBlcyc7XG5pbXBvcnQgeyBQb3J0YWxTZXJ2aWNlLCBVbHZNYWluU2VydmljZSwgVXBsb2FkU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxuICAgIGNvbHVtbnNSZXNpemVkRXZlbnRBcmdzLFxuICAgIERlZmF1bHRDb21tYW5kc0FjY2VzcyxcbiAgICBEZXZpY2VTaXplLFxuICAgIEZvcm1TZXR0aW5nLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgUmVsYXRpb25JdGVtVHlwZSxcbiAgICBSZXBvcnRWaWV3Q29sdW1uLFxuICAgIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nLFxuICAgIFNoYXJlQnV0dG9uc0Nob2ljZURlZixcbiAgICBUeXBlVWx2TWFpbkN0cmxyLFxuICAgIFBhZ2luZ1NldHRpbmcsXG4gICAgTWVudUl0ZW1cbn0gZnJvbSAnLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JucmMtcmVwb3J0LXZpZXctYmFzZScsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50PFQgZXh0ZW5kcyBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZz4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBjb250ZXh0VmlldzogYW55O1xuICAgIEBJbnB1dCgpIHZpZXdTZXR0aW5nOiBUO1xuICAgIEBJbnB1dCgpIGFsbENvbHVtbnM6IGFueTtcbiAgICBASW5wdXQoKSBpc0NoZWNrTGlzdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzaW1wbGVJbmxpbmVFZGl0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVUb29sYmFyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHRvb2xiYXJCdXR0b25zOiBNZW51SXRlbVtdO1xuICAgIEBJbnB1dCgpIGFsbENoZWNrZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbW9EYXRhTGlzdDogYW55O1xuICAgIEBJbnB1dCgpIFVsdk1haW5DdHJscjogVHlwZVVsdk1haW5DdHJscjtcbiAgICBASW5wdXQoKSBhY2Nlc3M6IERlZmF1bHRDb21tYW5kc0FjY2VzcztcbiAgICBASW5wdXQoKSBncm91cGJ5OiBhbnk7XG4gICAgQElucHV0KCkgc2VsZWN0ZWRDb3VudDogYW55O1xuICAgIEBJbnB1dCgpIGNvbmRpdGlvbmFsRm9ybWF0czogYW55O1xuICAgIEBJbnB1dCgpIHBhcmVudEhlaWdodDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGRldmljZU5hbWU6IERldmljZVNpemU7XG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xuICAgIEBJbnB1dCgpIGNvbnRleHRNZW51SXRlbXM6IGFueVtdO1xuICAgIEBJbnB1dCgpIGNvbHVtbnM6IGFueTtcbiAgICBASW5wdXQoKSBhbGxvd0lubGluZUVkaXQ6IGFueTtcbiAgICBASW5wdXQoKSBzZWNvbmRhcnlDb2x1bW5zOiBhbnk7XG4gICAgQElucHV0KCkgcG9waW46IGJvb2xlYW47XG4gICAgQElucHV0KCkgY3VzdG9tRmllbGRJbmZvOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHwgYW55O1xuICAgIEBJbnB1dCgpIGhhc1N1bW1hcnk6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGFzU2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGlkZUljb246IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29sdW1uc0NvdW50OiBhbnk7XG4gICAgQElucHV0KCkgaGlkZU9wZW5JY29uOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG9wZW5PbkNsaWNrOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHR5cGVEZWZJZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHJlcG9ydElkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGlzdEVkaXRWaWV3SWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSB0eXBlVmlld0lkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZXh0cmFSZWxhdGlvbjogYW55O1xuICAgIEBJbnB1dCgpIHJlbGF0aW9uTGlzdDogQXJyYXk8UmVsYXRpb25JdGVtVHlwZT47XG4gICAgQElucHV0KCkgZGlzYWJsZVJlc3BvbnNpdmU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcm93SXRlbTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBASW5wdXQoKSBtb2JpbGVPclRhYmxldDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpbkRpYWxvZzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc011bHRpU2VsZWN0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGZ1bGxzY3JlZW46IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGlkZVNlYXJjaHBhbmVsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG5ld0lubGluZUVkaXRNbzogTWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGw7XG4gICAgQElucHV0KCkgc2VsZWN0ZWRNbzogTWV0YW9iamVjdERhdGFNb2RlbDtcbiAgICBASW5wdXQoKSBpbmxpbmVFZGl0TW9kZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBvbmx5SW5saW5lRWRpdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSByb3dIb3ZlcmFibGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgdGxiQnV0dG9uczogYW55W107XG4gICAgQElucHV0KCkgZm9ybVNldHRpbmc6IEZvcm1TZXR0aW5nO1xuICAgIEBJbnB1dCgpIGRpc2FibGVPdmVyZmxvd0NvbnRleHRNZW51OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHJvd0FjdGl2YWJsZSA9IHRydWU7XG4gICAgQElucHV0KCkgY29udGVudERlbnNpdHk6IENvbnRlbnREZW5zaXR5O1xuICAgIEBJbnB1dCgpIHJ0bDtcbiAgICBASW5wdXQoKSBzaG93T2tDYW5jZWxCdXR0b25zO1xuICAgIEBJbnB1dCgpIHRpdGxlO1xuICAgIEBJbnB1dCgpIGhhc0lubGluZURlbGV0ZUJ1dHRvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBoYXNJbmxpbmVFZGl0QnV0dG9uOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGNvbnRleHRTZXR0aW5nO1xuICAgIEBJbnB1dCgpIGdyaWRGcmVlQ29sdW1uU2l6aW5nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG5hdmlnYXRpb25BcnJvdzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGNhcnRhYmxlVGVtcGxhdGVzOiB7IFtrZXk6IHN0cmluZ106IEZvcm1TZXR0aW5nIH07XG4gICAgQElucHV0KCkgY2FydGFibGVDaGlsZHNNbzogeyBba2V5OiBzdHJpbmddOiBNZXRhb2JqZWN0RGF0YU1vZGVsIH07XG4gICAgQElucHV0KCkgcGFnaW5nU2V0dGluZzogUGFnaW5nU2V0dGluZztcbiAgICBAT3V0cHV0KCkgZXNjYXBlS2V5ID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xuICAgIEBPdXRwdXQoKSByZXNldFdvcmtmbG93U3RhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIGRlc2VsZWN0QWxsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBlZGl0Rm9ybVBhbmVsQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xuICAgIEBPdXRwdXQoKSBlZGl0Rm9ybVBhbmVsU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcbiAgICBAT3V0cHV0KCkgc2VsZWN0TmV4dElubGluZVJlY29yZCA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcbiAgICBAT3V0cHV0KCkgZWRpdEZvcm1QYW5lbFZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsOyBmaWVsZERiTmFtZT86IHN0cmluZyB9PigpO1xuICAgIEBPdXRwdXQoKSB1bHZDb21tYW5kQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgc29ydEFzY2VuZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSB3b3JrZmxvd1NoYXJlQnV0dG9ucyA9IG5ldyBFdmVudEVtaXR0ZXI8U2hhcmVCdXR0b25zQ2hvaWNlRGVmPigpO1xuICAgIEBPdXRwdXQoKSBzb3J0RGVzY2VuZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBmaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgZXhlY3V0ZVRvb2xiYXJCdXR0b24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbUlkOiBzdHJpbmc7IG9wdGlvbnM/OiBhbnkgfT4oKTtcbiAgICBAT3V0cHV0KCkgcmVzZXRHcmlkU2V0dGluZ3MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIHJvd0NoZWNrID0gbmV3IEV2ZW50RW1pdHRlcjx7IG1vOyBpbmRleDsgY2F1c2U/IH0+KCk7XG4gICAgQE91dHB1dCgpIHJvd0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx7IG1vOyBpbmRleCB9PigpO1xuICAgIEBPdXRwdXQoKSBjYXJ0YWJsZUZvcm1DbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbW87IGluZGV4IH0+KCk7XG4gICAgQE91dHB1dCgpIGNyZWF0ZU5ld01vID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSB1cGRhdGVNbyA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcbiAgICBAT3V0cHV0KCkgZXhwYW5kQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XG4gICAgQE91dHB1dCgpIHRyYWNrQnlTZWxlY3RlZEZuID0gbmV3IEV2ZW50RW1pdHRlcjx7IGluZGV4OyByZWNvcmQgfT4oKTtcbiAgICBAT3V0cHV0KCkgYWxsQ2hlY2tib3ggPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIG1hbmRhdG9yeSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KCkgY29sdW1uUmVzaXplZCA9IG5ldyBFdmVudEVtaXR0ZXI8Y29sdW1uc1Jlc2l6ZWRFdmVudEFyZ3M+KCk7XG4gICAgQE91dHB1dCgpIGhhc0RldGFpbHNJblJvdyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBASW5wdXQoKSBzZXQgY29udGFpbmVyV2lkdGgodmFsOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyV2lkdGggPSB2YWw7XG4gICAgICAgIHRoaXMuX2NvbnRhaW5lcldpZHRoQ2hhbmdlZCh2YWwpO1xuICAgIH1cbiAgICByZXNpemVkQnlVc2VyOiBib29sZWFuO1xuICAgIGVsV2lkdGg6IG51bWJlcjtcbiAgICBjYW5WaWV3ID0gZmFsc2U7XG4gICAgZml0V2lkdGg6IGJvb2xlYW47XG4gICAgZmlyc3RTZWxlY3RlZE1ldGFvYmplY3Q6IE1ldGFvYmplY3REYXRhTW9kZWw7XG4gICAgY29udGV4dE1lbnVXaWR0aCA9IDA7XG4gICAgZmllbGREaWN0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIGFjdGlvbkxpc3Q6IGFueVtdO1xuICAgIHByaXZhdGUgX3NpbmdsZUNsaWNrZWQ6IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIF9jb250YWluZXJXaWR0aCA9IDA7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJvdGVjdGVkIF9maW5kQ29sdW1uQnlEYk5hbWU6IEZpbmRDb2x1bW5CeURiTmFtZVBpcGUsXG4gICAgICAgIHByb3RlY3RlZCBfdWx2TWFpblNlcnZpY2U6IFVsdk1haW5TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfdXBsb2FkU2VydmljZT86IFVwbG9hZFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG4gICAgZ2V0IHNob3dWaWV3QnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYW5WaWV3ICYmICF0aGlzLmlubGluZUVkaXRNb2RlICYmICF0aGlzLmhpZGVPcGVuSWNvbjtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLmFjY2Vzcy5WaWV3ICYmICF0aGlzLnNob3dPa0NhbmNlbEJ1dHRvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuY2FuVmlldyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hY3Rpb25MaXN0ID0gdGhpcy5fY3JlYXRlQWN0aW9uQnV0dG9ucygpO1xuICAgICAgICB0aGlzLmVsV2lkdGggPSB0aGlzLl9lbC5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICB0aGlzLmZpdFdpZHRoID0gdGhpcy52aWV3U2V0dGluZz8uRml0V2lkdGggPT09IHRydWUgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkRGljdCA9IHt9O1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5zLmZvckVhY2goKGMpID0+IChmaWVsZERpY3RbYy5DYXB0aW9uXSA9IGMuTmFtZSkpO1xuICAgICAgICAgICAgdGhpcy5maWVsZERpY3QgPSBmaWVsZERpY3Q7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBfY3JlYXRlQWN0aW9uQnV0dG9ucygpOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IGJ1dHRvbnM6IGFueVtdID0gW107XG4gICAgICAgIGlmICh0aGlzLmhhc0lubGluZUVkaXRCdXR0b24pIHtcbiAgICAgICAgICAgIGJ1dHRvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgZ2x5cGg6ICdlZGl0JyxcbiAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByb2xlOiAncHJlc2VudGF0aW9uJyxcbiAgICAgICAgICAgICAgICBjbG9zZU9uQ2xpY2s6IHRydWUsXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogKGU6IHsgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7IGluZGV4OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IG1vLCBpbmRleCB9ID0gZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblJvd0NoZWNrKHsgbW8sIGluZGV4IH0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlZGl0QnRuID0gdGhpcy50b29sYmFyQnV0dG9ucy5maW5kKCh0YikgPT4gdGI/Lml0ZW1JZCA9PT0gJ0VkaXQnKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVkaXRCdG4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIChlZGl0QnRuIGFzIGFueSkuaGFuZGxlcihlZGl0QnRuKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmhhc0lubGluZURlbGV0ZUJ1dHRvbikge1xuICAgICAgICAgICAgYnV0dG9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICBnbHlwaDogJ2RlbGV0ZScsXG4gICAgICAgICAgICAgICAgbmF2aWdhdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgcm9sZTogJ3ByZXNlbnRhdGlvbicsXG4gICAgICAgICAgICAgICAgY2xvc2VPbkNsaWNrOiB0cnVlLFxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IChlOiB7IG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsOyBpbmRleDogbnVtYmVyIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBtbywgaW5kZXggfSA9IGU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Sb3dDaGVjayh7IG1vLCBpbmRleCB9KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVsZXRlQnRuID0gdGhpcy50b29sYmFyQnV0dG9ucy5maW5kKCh0YikgPT4gdGI/Lml0ZW1JZCA9PT0gJ0RlbGV0ZScpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGVsZXRlQnRuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlQnRuIGFzIGFueSkuaGFuZGxlcihkZWxldGVCdG4pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2hvd1ZpZXdCdXR0b24pIHtcbiAgICAgICAgICAgIGJ1dHRvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgZ2x5cGg6IHRoaXMubmF2aWdhdGlvbkFycm93LFxuICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IHRydWUsXG4gICAgICAgICAgICAgICAgcm9sZTogJ3ByZXNlbnRhdGlvbicsXG4gICAgICAgICAgICAgICAgY2xvc2VPbkNsaWNrOiB0cnVlLFxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IChlOiB7IG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsOyBpbmRleDogbnVtYmVyIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBtbywgaW5kZXggfSA9IGU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25Sb3dDbGljayh7IG1vLCBpbmRleCB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYnV0dG9ucztcbiAgICB9XG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcbiAgICAgICAgbGV0IGRldGVjdENoYW5nZXMgPSBmYWxzZTtcbiAgICAgICAgT2JqZWN0LmtleXMoY2hhbmdlcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWNoYW5nZXNba2V5XS5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IGNoYW5nZXNba2V5XS5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgICAgICAgZGV0ZWN0Q2hhbmdlcyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGV0ZWN0Q2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25EZXNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXNlbGVjdEFsbC5lbWl0KCk7XG4gICAgfVxuICAgIG9uUm93Q2hlY2soeyBtbywgaW5kZXggfSk6IHZvaWQge1xuICAgICAgICAvLyB0aGlzLl9zaW5nbGVDbGlja2VkID0gdHJ1ZTtcbiAgICAgICAgLy8gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vICAgaWYgKHRoaXMuX3NpbmdsZUNsaWNrZWQpIHtcbiAgICAgICAgLy8gICAgIHRoaXMucm93Q2hlY2suZW1pdCh7IG1vLCBpbmRleCB9KTtcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vIH0sIDMwKTtcbiAgICAgICAgLy8gdGhpcy5yb3dDaGVjay5lbWl0KHsgbW8sIGluZGV4LCBjYXVzZSB9KTtcbiAgICAgICAgdGhpcy5yb3dDaGVjay5lbWl0KHsgbW8sIGluZGV4IH0pO1xuICAgIH1cbiAgICBvbldvcmtmbG93U2hhcmVCdXR0b25zKGU6IFNoYXJlQnV0dG9uc0Nob2ljZURlZik6IHZvaWQge1xuICAgICAgICB0aGlzLndvcmtmbG93U2hhcmVCdXR0b25zLmVtaXQoZSk7XG4gICAgfVxuICAgIG9uT2xnb0V2ZW50cyhlOiB7IHRpdGxlOiBzdHJpbmc7IGRhdGE/OiBhbnkgfSk6IHZvaWQge1xuICAgICAgICB0aGlzW2UudGl0bGVdLmVtaXQoZS5kYXRhKTtcbiAgICB9XG4gICAgb25Sb3dDbGljayh7IG1vLCBpbmRleCB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NpbmdsZUNsaWNrZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yb3dDbGljay5lbWl0KHsgbW8sIGluZGV4IH0pO1xuICAgIH1cbiAgICBvbkNhcnRhYmxlRm9ybUNsb3NlZCh7IG1vLCBpbmRleCB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2FydGFibGVGb3JtQ2xvc2VkLmVtaXQoeyBtbywgaW5kZXggfSk7XG4gICAgfVxuICAgIG9uRXhwYW5kQ2xpY2sobW86IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5leHBhbmRDbGljay5lbWl0KG1vKTtcbiAgICB9XG4gICAgb25BbGxDaGVja2JveChjaGVja2VkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWxsQ2hlY2tib3guZW1pdChjaGVja2VkKTtcbiAgICB9XG4gICAgb25DbGVhckNoZWNrYm94KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFsbENoZWNrYm94LmVtaXQoZmFsc2UpO1xuICAgIH1cbiAgICBvblNlbGVjdE5leHRJbmxpbmVSZWNvcmQobW8pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3ROZXh0SW5saW5lUmVjb3JkLmVtaXQobW8pO1xuICAgIH1cbiAgICBvbkVkaXRGb3JtUGFuZWxTYXZlKG1vKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdEZvcm1QYW5lbFNhdmUuZW1pdChtbyk7XG4gICAgfVxuICAgIG9uRWRpdEZvcm1QYW5lbENhbmNlbChtbzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRGb3JtUGFuZWxDYW5jZWwuZW1pdChtbyk7XG4gICAgfVxuICAgIG9uRXNjYXBlS2V5KG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZXNjYXBlS2V5LmVtaXQobW8pO1xuICAgIH1cbiAgICBvbkVkaXRGb3JtUGFuZWxWYWx1ZUNoYW5nZShlOiB7IG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsOyBmaWVsZERiTmFtZT86IHN0cmluZyB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdEZvcm1QYW5lbFZhbHVlQ2hhbmdlLmVtaXQoZSk7XG4gICAgfVxuICAgIG9uVWx2Q29tbWFuZCh7IG1vLCBpbmRleCB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMudWx2Q29tbWFuZENsaWNrLmVtaXQoeyBtbywgaW5kZXggfSk7XG4gICAgfVxuICAgIG9uU29ydEFzY2VuZGluZyhjb2x1bW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zb3J0QXNjZW5kaW5nLmVtaXQoY29sdW1uKTtcbiAgICB9XG4gICAgb25Tb3J0RGVzY2VuZGluZyhjb2x1bW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zb3J0RGVzY2VuZGluZy5lbWl0KGNvbHVtbik7XG4gICAgfVxuICAgIG9uRmlsdGVyKGNvbHVtbik6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlci5lbWl0KGNvbHVtbik7XG4gICAgfVxuICAgIG9uRHluYW1pY0NvbXBvbmVudEV2ZW50cyhlOiB7IHRpdGxlOiBzdHJpbmc7IGRhdGE/OiBhbnkgfSwgbW86IE1ldGFvYmplY3REYXRhTW9kZWwsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoIChlLnRpdGxlKSB7XG4gICAgICAgICAgICBjYXNlICdyb3dDaGVjayc6XG4gICAgICAgICAgICAgICAgdGhpcy5vblJvd0NoZWNrKHsgbW8sIGluZGV4IH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAncm93Q2xpY2snOlxuICAgICAgICAgICAgICAgIHRoaXMub25Sb3dDbGljayh7IG1vLCBpbmRleCB9KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3VsdkNvbW1hbmQnOlxuICAgICAgICAgICAgICAgIHRoaXMub25VbHZDb21tYW5kKHsgbW8sIGluZGV4IH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuICAgIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICAgIF90cmFja0J5U2VsZWN0ZWRGbihpbmRleCwgcmVjb3JkKTogdm9pZCB7XG4gICAgICAgIHRoaXMudHJhY2tCeVNlbGVjdGVkRm4/LmVtaXQoeyBpbmRleCwgcmVjb3JkIH0pO1xuICAgIH1cbiAgICBfdHJhY2tCeUNvbHVtbihpbmRleDogbnVtYmVyLCBjb2x1bW46IFJlcG9ydFZpZXdDb2x1bW4pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7Y29sdW1uLk5hbWV9JHtpbmRleH1gO1xuICAgIH1cbiAgICBfdHJhY2tCeVJvdyhpbmRleDogbnVtYmVyLCByb3c6IE1ldGFvYmplY3REYXRhTW9kZWwpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7cm93LiRHcm91cCA/IHJvdy4kR3JvdXAgOiByb3cuSWR9JHtpbmRleH1gO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHJvdGVjdGVkIF9jb250YWluZXJXaWR0aENoYW5nZWQoXzogbnVtYmVyKTogdm9pZCB7fVxufVxuIl19
|
|
413
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LXZpZXctYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvcmVwb3J0LXZpZXctYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUlULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQXlCakQsTUFBTSxPQUFPLHVCQUEyRCxTQUFRLGFBQWE7SUEyRnpGLElBQWEsY0FBYyxDQUFDLEdBQVc7UUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUM7UUFDM0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFXRCxZQUNjLEdBQWUsRUFDZixJQUF1QixFQUN2QixVQUFxQixFQUNyQixtQkFBMkMsRUFDM0MsZUFBK0IsRUFDL0IsY0FBNkIsRUFDakIsY0FBOEI7UUFFcEQsS0FBSyxFQUFFLENBQUM7UUFSRSxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDdkIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXdCO1FBQzNDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUNqQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUE1RC9DLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBYW5CLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDdEQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FB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QkFBakMsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDTSxjQUFjO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbmRDb2x1bW5CeURiTmFtZVBpcGUgfSBmcm9tICcuLi9waXBlcyc7XG5pbXBvcnQgeyBQb3J0YWxTZXJ2aWNlLCBVbHZNYWluU2VydmljZSwgVXBsb2FkU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gICAgQWJicmV2YXRpb25EZXZpY2VTaXplLFxuICAgIGNvbHVtbnNSZXNpemVkRXZlbnRBcmdzLFxuICAgIERlZmF1bHRDb21tYW5kc0FjY2VzcyxcbiAgICBEZXZpY2VTaXplLFxuICAgIEZvcm1TZXR0aW5nLFxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgUmVsYXRpb25JdGVtVHlwZSxcbiAgICBSZXBvcnRWaWV3Q29sdW1uLFxuICAgIFVpUmVwb3J0Vmlld0Jhc2VTZXR0aW5nLFxuICAgIFNoYXJlQnV0dG9uc0Nob2ljZURlZixcbiAgICBUeXBlVWx2TWFpbkN0cmxyLFxuICAgIFBhZ2luZ1NldHRpbmcsXG4gICAgTWVudUl0ZW0sXG4gICAgQ29sdW1uU3VtbWFyeVR5cGVcbn0gZnJvbSAnLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JucmMtcmVwb3J0LXZpZXctYmFzZScsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydFZpZXdCYXNlQ29tcG9uZW50PFQgZXh0ZW5kcyBVaVJlcG9ydFZpZXdCYXNlU2V0dGluZz4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBjb250ZXh0VmlldzogYW55O1xuICAgIEBJbnB1dCgpIHZpZXdTZXR0aW5nOiBUO1xuICAgIEBJbnB1dCgpIGFsbENvbHVtbnM6IGFueTtcbiAgICBASW5wdXQoKSBpc0NoZWNrTGlzdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBzaW1wbGVJbmxpbmVFZGl0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGhpZGVUb29sYmFyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHRvb2xiYXJCdXR0b25zOiBNZW51SXRlbVtdO1xuICAgIEBJbnB1dCgpIGFsbENoZWNrZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbW9EYXRhTGlzdDogYW55O1xuICAgIEBJbnB1dCgpIFVsdk1haW5DdHJscjogVHlwZVVsdk1haW5DdHJscjtcbiAgICBASW5wdXQoKSBhY2Nlc3M6IERlZmF1bHRDb21tYW5kc0FjY2VzcztcbiAgICBASW5wdXQoKSBncm91cGJ5OiBhbnk7XG4gICAgQElucHV0KCkgc2VsZWN0ZWRDb3VudDogYW55O1xuICAgIEBJbnB1dCgpIGNvbmRpdGlvbmFsRm9ybWF0czogYW55O1xuICAgIEBJbnB1dCgpIHBhcmVudEhlaWdodDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGRldmljZU5hbWU6IERldmljZVNpemU7XG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xuICAgIEBJbnB1dCgpIGNvbnRleHRNZW51SXRlbXM6IGFueVtdO1xuICAgIEBJbnB1dCgpIGNvbHVtbnM6IGFueTtcbiAgICBASW5wdXQoKSBhbGxvd0lubGluZUVkaXQ6IGFueTtcbiAgICBASW5wdXQoKSBzZWNvbmRhcnlDb2x1bW5zOiBhbnk7XG4gICAgQElucHV0KCkgcG9waW46IGJvb2xlYW47XG4gICAgQElucHV0KCkgY3VzdG9tRmllbGRJbmZvOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHwgYW55O1xuICAgIEBJbnB1dCgpIGhhc1N1bW1hcnk6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGFzU2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGlkZUljb246IGJvb2xlYW47XG4gICAgQElucHV0KCkgY29sdW1uc0NvdW50OiBhbnk7XG4gICAgQElucHV0KCkgaGlkZU9wZW5JY29uOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG9wZW5PbkNsaWNrOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHR5cGVEZWZJZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHJlcG9ydElkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGlzdEVkaXRWaWV3SWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSB0eXBlVmlld0lkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZXh0cmFSZWxhdGlvbjogYW55O1xuICAgIEBJbnB1dCgpIHJlbGF0aW9uTGlzdDogQXJyYXk8UmVsYXRpb25JdGVtVHlwZT47XG4gICAgQElucHV0KCkgZGlzYWJsZVJlc3BvbnNpdmU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcm93SXRlbTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBASW5wdXQoKSBtb2JpbGVPclRhYmxldDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpbkRpYWxvZzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc011bHRpU2VsZWN0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGZ1bGxzY3JlZW46IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGlkZVNlYXJjaHBhbmVsOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIG5ld0lubGluZUVkaXRNbzogTWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGw7XG4gICAgQElucHV0KCkgc2VsZWN0ZWRNbzogTWV0YW9iamVjdERhdGFNb2RlbDtcbiAgICBASW5wdXQoKSBpbmxpbmVFZGl0TW9kZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBvbmx5SW5saW5lRWRpdDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSByb3dIb3ZlcmFibGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZ3JvdXBTdW1tYXJ5OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHRsYkJ1dHRvbnM6IGFueVtdO1xuICAgIEBJbnB1dCgpIGZvcm1TZXR0aW5nOiBGb3JtU2V0dGluZztcbiAgICBASW5wdXQoKSBkaXNhYmxlT3ZlcmZsb3dDb250ZXh0TWVudTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSByb3dBY3RpdmFibGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eTtcbiAgICBASW5wdXQoKSBydGw7XG4gICAgQElucHV0KCkgc2hvd09rQ2FuY2VsQnV0dG9ucztcbiAgICBASW5wdXQoKSB0aXRsZTtcbiAgICBASW5wdXQoKSBoYXNJbmxpbmVEZWxldGVCdXR0b246IGJvb2xlYW47XG4gICAgQElucHV0KCkgaGFzSW5saW5lRWRpdEJ1dHRvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBjb250ZXh0U2V0dGluZztcbiAgICBASW5wdXQoKSBncmlkRnJlZUNvbHVtblNpemluZzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBuYXZpZ2F0aW9uQXJyb3c6IHN0cmluZztcbiAgICBASW5wdXQoKSBjYXJ0YWJsZVRlbXBsYXRlczogeyBba2V5OiBzdHJpbmddOiBGb3JtU2V0dGluZyB9O1xuICAgIEBJbnB1dCgpIGNhcnRhYmxlQ2hpbGRzTW86IHsgW2tleTogc3RyaW5nXTogTWV0YW9iamVjdERhdGFNb2RlbCB9O1xuICAgIEBJbnB1dCgpIHBhZ2luZ1NldHRpbmc6IFBhZ2luZ1NldHRpbmc7XG4gICAgQE91dHB1dCgpIGNvbHVtblN1bW1hcnkgPSBuZXcgRXZlbnRFbWl0dGVyPENvbHVtblN1bW1hcnlUeXBlPigpO1xuICAgIEBPdXRwdXQoKSBlc2NhcGVLZXkgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XG4gICAgQE91dHB1dCgpIHJlc2V0V29ya2Zsb3dTdGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgZGVzZWxlY3RBbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIGVkaXRGb3JtUGFuZWxDYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFvYmplY3REYXRhTW9kZWw+KCk7XG4gICAgQE91dHB1dCgpIGVkaXRGb3JtUGFuZWxTYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xuICAgIEBPdXRwdXQoKSBzZWxlY3ROZXh0SW5saW5lUmVjb3JkID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xuICAgIEBPdXRwdXQoKSBlZGl0Rm9ybVBhbmVsVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7IGZpZWxkRGJOYW1lPzogc3RyaW5nIH0+KCk7XG4gICAgQE91dHB1dCgpIHVsdkNvbW1hbmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBzb3J0QXNjZW5kaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHdvcmtmbG93U2hhcmVCdXR0b25zID0gbmV3IEV2ZW50RW1pdHRlcjxTaGFyZUJ1dHRvbnNDaG9pY2VEZWY+KCk7XG4gICAgQE91dHB1dCgpIHNvcnREZXNjZW5kaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIGZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBPdXRwdXQoKSBleGVjdXRlVG9vbGJhckJ1dHRvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpdGVtSWQ6IHN0cmluZzsgb3B0aW9ucz86IGFueSB9PigpO1xuICAgIEBPdXRwdXQoKSByZXNldEdyaWRTZXR0aW5ncyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgcm93Q2hlY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbW87IGluZGV4OyBjYXVzZT8gfT4oKTtcbiAgICBAT3V0cHV0KCkgcm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgbW87IGluZGV4IH0+KCk7XG4gICAgQE91dHB1dCgpIGNhcnRhYmxlRm9ybUNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBtbzsgaW5kZXggfT4oKTtcbiAgICBAT3V0cHV0KCkgY3JlYXRlTmV3TW8gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIHVwZGF0ZU1vID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhb2JqZWN0RGF0YU1vZGVsPigpO1xuICAgIEBPdXRwdXQoKSBleHBhbmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcbiAgICBAT3V0cHV0KCkgdHJhY2tCeVNlbGVjdGVkRm4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgaW5kZXg7IHJlY29yZCB9PigpO1xuICAgIEBPdXRwdXQoKSBhbGxDaGVja2JveCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KCkgbWFuZGF0b3J5ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgIEBPdXRwdXQoKSBjb2x1bW5SZXNpemVkID0gbmV3IEV2ZW50RW1pdHRlcjxjb2x1bW5zUmVzaXplZEV2ZW50QXJncz4oKTtcbiAgICBAT3V0cHV0KCkgaGFzRGV0YWlsc0luUm93ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgIEBJbnB1dCgpIHNldCBjb250YWluZXJXaWR0aCh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9jb250YWluZXJXaWR0aCA9IHZhbDtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyV2lkdGhDaGFuZ2VkKHZhbCk7XG4gICAgfVxuICAgIHJlc2l6ZWRCeVVzZXI6IGJvb2xlYW47XG4gICAgZWxXaWR0aDogbnVtYmVyO1xuICAgIGNhblZpZXcgPSBmYWxzZTtcbiAgICBmaXRXaWR0aDogYm9vbGVhbjtcbiAgICBmaXJzdFNlbGVjdGVkTWV0YW9iamVjdDogTWV0YW9iamVjdERhdGFNb2RlbDtcbiAgICBjb250ZXh0TWVudVdpZHRoID0gMDtcbiAgICBmaWVsZERpY3Q6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgYWN0aW9uTGlzdDogYW55W107XG4gICAgcHJpdmF0ZSBfc2luZ2xlQ2xpY2tlZDogYm9vbGVhbjtcbiAgICBwcm90ZWN0ZWQgX2NvbnRhaW5lcldpZHRoID0gMDtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIF9lbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX3JlbmRlcmVyMjogUmVuZGVyZXIyLFxuICAgICAgICBwcm90ZWN0ZWQgX2ZpbmRDb2x1bW5CeURiTmFtZTogRmluZENvbHVtbkJ5RGJOYW1lUGlwZSxcbiAgICAgICAgcHJvdGVjdGVkIF91bHZNYWluU2VydmljZTogVWx2TWFpblNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF91cGxvYWRTZXJ2aWNlPzogVXBsb2FkU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbiAgICBnZXQgc2hvd1ZpZXdCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhblZpZXcgJiYgIXRoaXMuaW5saW5lRWRpdE1vZGUgJiYgIXRoaXMuaGlkZU9wZW5JY29uO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKHRoaXMuYWNjZXNzLlZpZXcgJiYgIXRoaXMuc2hvd09rQ2FuY2VsQnV0dG9ucykge1xuICAgICAgICAgICAgdGhpcy5jYW5WaWV3ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFjdGlvbkxpc3QgPSB0aGlzLl9jcmVhdGVBY3Rpb25CdXR0b25zKCk7XG4gICAgICAgIHRoaXMuZWxXaWR0aCA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIHRoaXMuZml0V2lkdGggPSB0aGlzLnZpZXdTZXR0aW5nPy5GaXRXaWR0aCA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuY29sdW1ucykge1xuICAgICAgICAgICAgY29uc3QgZmllbGREaWN0ID0ge307XG4gICAgICAgICAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaCgoYykgPT4gKGZpZWxkRGljdFtjLkNhcHRpb25dID0gYy5OYW1lKSk7XG4gICAgICAgICAgICB0aGlzLmZpZWxkRGljdCA9IGZpZWxkRGljdDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIF9jcmVhdGVBY3Rpb25CdXR0b25zKCk6IGFueVtdIHtcbiAgICAgICAgY29uc3QgYnV0dG9uczogYW55W10gPSBbXTtcbiAgICAgICAgaWYgKHRoaXMuaGFzSW5saW5lRWRpdEJ1dHRvbikge1xuICAgICAgICAgICAgYnV0dG9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICBnbHlwaDogJ2VkaXQnLFxuICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IGZhbHNlLFxuICAgICAgICAgICAgICAgIHJvbGU6ICdwcmVzZW50YXRpb24nLFxuICAgICAgICAgICAgICAgIGNsb3NlT25DbGljazogdHJ1ZSxcbiAgICAgICAgICAgICAgICBoYW5kbGVyOiAoZTogeyBtbzogTWV0YW9iamVjdERhdGFNb2RlbDsgaW5kZXg6IG51bWJlciB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgbW8sIGluZGV4IH0gPSBlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uUm93Q2hlY2soeyBtbywgaW5kZXggfSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVkaXRCdG4gPSB0aGlzLnRvb2xiYXJCdXR0b25zLmZpbmQoKHRiKSA9PiB0Yj8uaXRlbUlkID09PSAnRWRpdCcpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZWRpdEJ0bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgKGVkaXRCdG4gYXMgYW55KS5oYW5kbGVyKGVkaXRCdG4pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaGFzSW5saW5lRGVsZXRlQnV0dG9uKSB7XG4gICAgICAgICAgICBidXR0b25zLnB1c2goe1xuICAgICAgICAgICAgICAgIGdseXBoOiAnZGVsZXRlJyxcbiAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICByb2xlOiAncHJlc2VudGF0aW9uJyxcbiAgICAgICAgICAgICAgICBjbG9zZU9uQ2xpY2s6IHRydWUsXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogKGU6IHsgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7IGluZGV4OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IG1vLCBpbmRleCB9ID0gZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblJvd0NoZWNrKHsgbW8sIGluZGV4IH0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZWxldGVCdG4gPSB0aGlzLnRvb2xiYXJCdXR0b25zLmZpbmQoKHRiKSA9PiB0Yj8uaXRlbUlkID09PSAnRGVsZXRlJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZWxldGVCdG4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIChkZWxldGVCdG4gYXMgYW55KS5oYW5kbGVyKGRlbGV0ZUJ0bik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zaG93Vmlld0J1dHRvbikge1xuICAgICAgICAgICAgYnV0dG9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICBnbHlwaDogdGhpcy5uYXZpZ2F0aW9uQXJyb3csXG4gICAgICAgICAgICAgICAgbmF2aWdhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgICByb2xlOiAncHJlc2VudGF0aW9uJyxcbiAgICAgICAgICAgICAgICBjbG9zZU9uQ2xpY2s6IHRydWUsXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogKGU6IHsgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7IGluZGV4OiBudW1iZXIgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IG1vLCBpbmRleCB9ID0gZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblJvd0NsaWNrKHsgbW8sIGluZGV4IH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBidXR0b25zO1xuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgICBsZXQgZGV0ZWN0Q2hhbmdlcyA9IGZhbHNlO1xuICAgICAgICBPYmplY3Qua2V5cyhjaGFuZ2VzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgIGlmICghY2hhbmdlc1trZXldLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgdGhpc1trZXldID0gY2hhbmdlc1trZXldLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICBkZXRlY3RDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkZXRlY3RDaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkRlc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc2VsZWN0QWxsLmVtaXQoKTtcbiAgICB9XG4gICAgb25Sb3dDaGVjayh7IG1vLCBpbmRleCB9KTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMuX3NpbmdsZUNsaWNrZWQgPSB0cnVlO1xuICAgICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgLy8gICBpZiAodGhpcy5fc2luZ2xlQ2xpY2tlZCkge1xuICAgICAgICAvLyAgICAgdGhpcy5yb3dDaGVjay5lbWl0KHsgbW8sIGluZGV4IH0pO1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gfSwgMzApO1xuICAgICAgICAvLyB0aGlzLnJvd0NoZWNrLmVtaXQoeyBtbywgaW5kZXgsIGNhdXNlIH0pO1xuICAgICAgICB0aGlzLnJvd0NoZWNrLmVtaXQoeyBtbywgaW5kZXggfSk7XG4gICAgfVxuICAgIG9uV29ya2Zsb3dTaGFyZUJ1dHRvbnMoZTogU2hhcmVCdXR0b25zQ2hvaWNlRGVmKTogdm9pZCB7XG4gICAgICAgIHRoaXMud29ya2Zsb3dTaGFyZUJ1dHRvbnMuZW1pdChlKTtcbiAgICB9XG4gICAgb25PbGdvRXZlbnRzKGU6IHsgdGl0bGU6IHN0cmluZzsgZGF0YT86IGFueSB9KTogdm9pZCB7XG4gICAgICAgIHRoaXNbZS50aXRsZV0uZW1pdChlLmRhdGEpO1xuICAgIH1cbiAgICBvblJvd0NsaWNrKHsgbW8sIGluZGV4IH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2luZ2xlQ2xpY2tlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJvd0NsaWNrLmVtaXQoeyBtbywgaW5kZXggfSk7XG4gICAgfVxuICAgIG9uQ2FydGFibGVGb3JtQ2xvc2VkKHsgbW8sIGluZGV4IH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYXJ0YWJsZUZvcm1DbG9zZWQuZW1pdCh7IG1vLCBpbmRleCB9KTtcbiAgICB9XG4gICAgb25FeHBhbmRDbGljayhtbzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV4cGFuZENsaWNrLmVtaXQobW8pO1xuICAgIH1cbiAgICBvbkFsbENoZWNrYm94KGNoZWNrZWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hbGxDaGVja2JveC5lbWl0KGNoZWNrZWQpO1xuICAgIH1cbiAgICBvbkNsZWFyQ2hlY2tib3goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWxsQ2hlY2tib3guZW1pdChmYWxzZSk7XG4gICAgfVxuICAgIG9uU2VsZWN0TmV4dElubGluZVJlY29yZChtbyk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdE5leHRJbmxpbmVSZWNvcmQuZW1pdChtbyk7XG4gICAgfVxuICAgIG9uRWRpdEZvcm1QYW5lbFNhdmUobW8pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0Rm9ybVBhbmVsU2F2ZS5lbWl0KG1vKTtcbiAgICB9XG4gICAgb25FZGl0Rm9ybVBhbmVsQ2FuY2VsKG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdEZvcm1QYW5lbENhbmNlbC5lbWl0KG1vKTtcbiAgICB9XG4gICAgb25Fc2NhcGVLZXkobW86IE1ldGFvYmplY3REYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lc2NhcGVLZXkuZW1pdChtbyk7XG4gICAgfVxuICAgIG9uRWRpdEZvcm1QYW5lbFZhbHVlQ2hhbmdlKGU6IHsgbW86IE1ldGFvYmplY3REYXRhTW9kZWw7IGZpZWxkRGJOYW1lPzogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0Rm9ybVBhbmVsVmFsdWVDaGFuZ2UuZW1pdChlKTtcbiAgICB9XG4gICAgb25VbHZDb21tYW5kKHsgbW8sIGluZGV4IH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy51bHZDb21tYW5kQ2xpY2suZW1pdCh7IG1vLCBpbmRleCB9KTtcbiAgICB9XG4gICAgb25Tb3J0QXNjZW5kaW5nKGNvbHVtbik6IHZvaWQge1xuICAgICAgICB0aGlzLnNvcnRBc2NlbmRpbmcuZW1pdChjb2x1bW4pO1xuICAgIH1cbiAgICBvblNvcnREZXNjZW5kaW5nKGNvbHVtbik6IHZvaWQge1xuICAgICAgICB0aGlzLnNvcnREZXNjZW5kaW5nLmVtaXQoY29sdW1uKTtcbiAgICB9XG4gICAgb25GaWx0ZXIoY29sdW1uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyLmVtaXQoY29sdW1uKTtcbiAgICB9XG4gICAgb25EeW5hbWljQ29tcG9uZW50RXZlbnRzKGU6IHsgdGl0bGU6IHN0cmluZzsgZGF0YT86IGFueSB9LCBtbzogTWV0YW9iamVjdERhdGFNb2RlbCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKGUudGl0bGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3Jvd0NoZWNrJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uUm93Q2hlY2soeyBtbywgaW5kZXggfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdyb3dDbGljayc6XG4gICAgICAgICAgICAgICAgdGhpcy5vblJvd0NsaWNrKHsgbW8sIGluZGV4IH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndWx2Q29tbWFuZCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vblVsdkNvbW1hbmQoeyBtbywgaW5kZXggfSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgX3RyYWNrQnlTZWxlY3RlZEZuKGluZGV4LCByZWNvcmQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50cmFja0J5U2VsZWN0ZWRGbj8uZW1pdCh7IGluZGV4LCByZWNvcmQgfSk7XG4gICAgfVxuICAgIF90cmFja0J5Q29sdW1uKGluZGV4OiBudW1iZXIsIGNvbHVtbjogUmVwb3J0Vmlld0NvbHVtbik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtjb2x1bW4uTmFtZX0ke2luZGV4fWA7XG4gICAgfVxuICAgIF90cmFja0J5Um93KGluZGV4OiBudW1iZXIsIHJvdzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHtyb3cuJEdyb3VwID8gcm93LiRHcm91cCA6IHJvdy5JZH0ke2luZGV4fWA7XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBwcm90ZWN0ZWQgX2NvbnRhaW5lcldpZHRoQ2hhbmdlZChfOiBudW1iZXIpOiB2b2lkIHt9XG59XG4iXX0=
|