@sarasanalytics-com/design-system 0.0.146 → 0.0.148

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.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9pbnRlcmZhY2VzL2hlYWRlci1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhZmVIdG1sIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuaW1wb3J0IHsgQ2hpcEludGVyZmFjZSB9IGZyb20gXCIuL2NoaXAtaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7IEljb25JbnRlcmZhY2UgfSBmcm9tIFwiLi9pY29uLWludGVyZmFjZVwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBIZWFkZXJDaGlwQ29uZmlnIGV4dGVuZHMgQ2hpcEludGVyZmFjZSB7IH1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVySWNvbiBleHRlbmRzIEljb25JbnRlcmZhY2UgeyB9XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlckluZm9JdGVtIHtcclxuICAgIHRleHQ6IHN0cmluZztcclxuICAgIGljb24/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVyQ29uZmlnIHtcclxuICAgIHRleHQ/OiBzdHJpbmc7XHJcbiAgICBpY29uPzogSGVhZGVySWNvbjtcclxuICAgIGh0bWw/OiBzdHJpbmcgfCBTYWZlSHRtbDtcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9pbnRlcmZhY2VzL2hlYWRlci1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhZmVIdG1sIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcclxuaW1wb3J0IHsgQ2hpcEludGVyZmFjZSB9IGZyb20gXCIuL2NoaXAtaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7IEljb25JbnRlcmZhY2UgfSBmcm9tIFwiLi9pY29uLWludGVyZmFjZVwiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBIZWFkZXJDaGlwQ29uZmlnIGV4dGVuZHMgQ2hpcEludGVyZmFjZSB7IH1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVySWNvbiBleHRlbmRzIEljb25JbnRlcmZhY2UgeyBcclxuICAgIHRvb2x0aXA/OiBzdHJpbmc7XHJcbiAgICB0b29sdGlwUG9zaXRpb24/OiAnYWJvdmUnIHwgJ2JlbG93JyB8ICdsZWZ0JyB8ICdyaWdodCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVySW5mb0l0ZW0ge1xyXG4gICAgdGV4dDogc3RyaW5nO1xyXG4gICAgaWNvbj86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBIZWFkZXJDb25maWcge1xyXG4gICAgdGV4dD86IHN0cmluZztcclxuICAgIGljb24/OiBIZWFkZXJJY29uO1xyXG4gICAgaHRtbD86IHN0cmluZyB8IFNhZmVIdG1sO1xyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9pbnRlcmZhY2VzL3NlbGVjdC1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1seUZpZWxkUHJvcHMgfSBmcm9tIFwiQG5neC1mb3JtbHkvY29yZVwiXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0U3ViSW50ZXJmYWNlIHtcclxuICAgIGxhYmVsOiBzdHJpbmcsXHJcbiAgICBzdXBwb3J0VGV4dDogc3RyaW5nLFxyXG4gICAgZHJvcEljb246IHN0cmluZyxcclxuICAgIGRyb3BJY29uUG9zaXRpb246IHN0cmluZyxcclxuICAgIG11bHRpcGxlOiBib29sZWFuLFxyXG4gICAgaWNvblBhdGg6IHN0cmluZyxcclxuICAgIHR5cGU6IHN0cmluZyxcclxuICAgIHRleHQ/OiBzdHJpbmcsXHJcbiAgICBzdGF0ZTogc3RyaW5nLFxyXG4gICAgZmlsbGluZzogc3RyaW5nLFxyXG4gICAgaWNvblBvc2l0aW9uOiBzdHJpbmcsXHJcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nLFxyXG4gICAgdG9vbHRpcDpzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RJbnRlcmZhY2UgZXh0ZW5kcyBGb3JtbHlGaWVsZFByb3BzIHtcclxuICAgIG9wdGlvbnM6IGFueSxcclxuICAgIGRpc2FibGVkOiBib29sZWFuLFxyXG4gICAgcGFyYW1zOiBTZWxlY3RTdWJJbnRlcmZhY2VcclxufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9pbnRlcmZhY2VzL3NlbGVjdC1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1seUZpZWxkUHJvcHMgfSBmcm9tIFwiQG5neC1mb3JtbHkvY29yZVwiXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0U3ViSW50ZXJmYWNlIHtcclxuICAgIGxhYmVsOiBzdHJpbmcsXHJcbiAgICBzdXBwb3J0VGV4dDogc3RyaW5nLFxyXG4gICAgZHJvcEljb246IHN0cmluZyxcclxuICAgIGRyb3BJY29uUG9zaXRpb246IHN0cmluZyxcclxuICAgIG11bHRpcGxlOiBib29sZWFuLFxyXG4gICAgaWNvblBhdGg6IHN0cmluZyxcclxuICAgIHR5cGU6IHN0cmluZyxcclxuICAgIHRleHQ/OiBzdHJpbmcsXHJcbiAgICBzdGF0ZTogc3RyaW5nLFxyXG4gICAgZmlsbGluZzogc3RyaW5nLFxyXG4gICAgaWNvblBvc2l0aW9uOiBzdHJpbmcsXHJcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nLFxyXG4gICAgdG9vbHRpcDogc3RyaW5nLFxyXG4gICAgc2hvd1Rvb2x0aXBzPzogYm9vbGVhbixcclxuICAgIHNob3dDaGVja2JveGVzPzogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdEludGVyZmFjZSBleHRlbmRzIEZvcm1seUZpZWxkUHJvcHMge1xyXG4gICAgb3B0aW9uczogYW55LFxyXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW4sXHJcbiAgICBwYXJhbXM6IFNlbGVjdFN1YkludGVyZmFjZVxyXG59Il19
@@ -167,4 +167,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
167
167
  }], gridReady: [{
168
168
  type: Output
169
169
  }] } });
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFZckUsTUFBTSxPQUFPLGlCQUFpQjtJQVA5QjtRQVNXLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFDMUIsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFXO1lBQy9CLFFBQVEsRUFBRSxJQUFJO1lBQ2QsTUFBTSxFQUFFLElBQUk7WUFDWixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDO1FBRUYsK0JBQStCO1FBQ3RCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLCtCQUEwQixHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekQsZUFBVSxHQUFXLEdBQUcsQ0FBQztRQUV4QixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFekQseUNBQXlDO1FBQ3pDLGVBQVUsR0FBUTtZQUNoQixXQUFXLEVBQUUsV0FBVztZQUN4QixFQUFFLEVB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bEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFnR3JpZE1vZHVsZSB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XHJcbmltcG9ydCB7IEdyaWRDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1jZWxsL2dyaWQtY2VsbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xEZWYsIEdyaWRBcGksIEdyaWRSZWFkeUV2ZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xyXG5pbXBvcnQgeyBHcmlkSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ncmlkLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJ1dHRvbkludGVyZmFjZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYnV0dG9uLWludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhLWRhdGEtZ3JpZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBZ0dyaWRNb2R1bGUsIEdyaWRDZWxsQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1ncmlkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZGF0YS1ncmlkLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRhR3JpZENvbXBvbmVudCB7XHJcbiAgcHVibGljIHN0YXRpYyBncmlkQXBpSW5zdGFuY2U6IEdyaWRBcGk7XHJcbiAgQElucHV0KCkgY29sdW1uRGVmczogQ29sRGVmW10gPSBbXTtcclxuICBASW5wdXQoKSByb3dEYXRhOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRDb2xEZWY6IENvbERlZiA9IHtcclxuICAgIHNvcnRhYmxlOiB0cnVlLFxyXG4gICAgZmlsdGVyOiB0cnVlLFxyXG4gICAgcmVzaXphYmxlOiB0cnVlXHJcbiAgfTtcclxuXHJcbiAgLy8gUGFnaW5hdGlvbiBpbnB1dHMgKG9wdGlvbmFsKVxyXG4gIEBJbnB1dCgpIHBhZ2luYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBwYWdpbmF0aW9uUGFnZVNpemU6IG51bWJlciA9IDEwO1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRpb25QYWdlU2l6ZVNlbGVjdG9yOiBudW1iZXJbXSA9IFsxMCwgMjUsIDUwLCAxMDBdO1xyXG4gIEBJbnB1dCgpIGdyaWRIZWlnaHQ6IG51bWJlciA9IDQyMDtcclxuICBASW5wdXQoKSBkYXRhc291cmNlOiBhbnk7XHJcbiAgQE91dHB1dCgpIGdyaWRSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8R3JpZFJlYWR5RXZlbnQ+KCk7XHJcblxyXG4gIC8vIExvY2FsZSBvdmVycmlkZXMgZm9yIHBhZ2luYXRpb24gbGFiZWxzXHJcbiAgbG9jYWxlVGV4dDogYW55ID0ge1xyXG4gICAgJ1BhZ2UgU2l6ZSc6ICdTaG93IHJvd3MnLFxyXG4gICAgdG86ICcgLSAnLFxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgZ3JpZEFwaSE6IEdyaWRBcGk7XHJcblxyXG4gIC8vIE1ldGhvZCB0byBkZXRlcm1pbmUgd2hpY2ggcm93IGRhdGEgdG8gdXNlXHJcbiAgZ2V0RWZmZWN0aXZlUm93RGF0YSgpOiBhbnlbXSB8IHVuZGVmaW5lZCB7XHJcbiAgICAvLyBJZiBkYXRhc291cmNlIGlzIHByb3ZpZGVkLCByb3dEYXRhIG11c3QgYmUgdW5kZWZpbmVkXHJcbiAgICByZXR1cm4gdGhpcy5kYXRhc291cmNlID8gdW5kZWZpbmVkIDogdGhpcy5yb3dEYXRhO1xyXG4gIH1cclxuXHJcbiAgb25HcmlkUmVhZHkocGFyYW1zOiBHcmlkUmVhZHlFdmVudCkge1xyXG4gICAgdGhpcy5ncmlkQXBpID0gcGFyYW1zLmFwaTtcclxuICAgIERhdGFHcmlkQ29tcG9uZW50LmdyaWRBcGlJbnN0YW5jZSA9IHBhcmFtcy5hcGk7XHJcbiAgICB0aGlzLmdyaWRBcGkuc2l6ZUNvbHVtbnNUb0ZpdCgpO1xyXG5cclxuICAgIC8vIFNldHVwIHNlcnZlci1zaWRlIHJvdyBtb2RlbCBpZiBlbmFibGVkXHJcbiAgICAgIGlmICh0aGlzLmRhdGFzb3VyY2UpIHtcclxuICAgICAgICB0aGlzLmdyaWRBcGkuc2V0R3JpZE9wdGlvblxyXG4gICAgICAgID8gdGhpcy5ncmlkQXBpLnNldEdyaWRPcHRpb24oJ2RhdGFzb3VyY2UnLCB0aGlzLmRhdGFzb3VyY2UpXHJcbiAgICAgICAgOiB0aGlzLmdyaWRBcGkuc2V0RGF0YXNvdXJjZSh0aGlzLmRhdGFzb3VyY2UpO1xyXG4gICAgICB9ICBcclxuICAgIHRoaXMuZ3JpZFJlYWR5LmVtaXQocGFyYW1zKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyB1cGRhdGVDZWxsQ29udGVudChcclxuICAgIGdyaWRBcGk6IEdyaWRBcGksXHJcbiAgICByb3dJbmRleDogbnVtYmVyLFxyXG4gICAgZmllbGQ6IHN0cmluZyxcclxuICAgIG5ld1BhcmFtczogUGFydGlhbDxHcmlkSW50ZXJmYWNlPlxyXG4gICkge1xyXG4gICAgY29uc3Qgcm93Tm9kZSA9IGdyaWRBcGkuZ2V0RGlzcGxheWVkUm93QXRJbmRleChyb3dJbmRleCk7XHJcbiAgXHJcbiAgICBpZiAoIXJvd05vZGUpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihgUm93IGF0IGluZGV4ICR7cm93SW5kZXh9IG5vdCBmb3VuZC5gKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgY29uc3QgcGFyYW1LZXkgPSBgJHtmaWVsZH1fY2VsbFBhcmFtc2A7XHJcbiAgXHJcbiAgICBjb25zdCBleGlzdGluZ1BhcmFtczogUGFydGlhbDxHcmlkSW50ZXJmYWNlPiA9XHJcbiAgICAgIHJvd05vZGUuZGF0YVtwYXJhbUtleV0gfHwge307XHJcbiAgXHJcbiAgICBjb25zdCB1cGRhdGVkUGFyYW1zOiBQYXJ0aWFsPEdyaWRJbnRlcmZhY2U+ID0ge1xyXG4gICAgICAuLi5leGlzdGluZ1BhcmFtcyxcclxuICAgICAgLi4ubmV3UGFyYW1zLFxyXG4gICAgfTtcclxuICBcclxuICAgIHJvd05vZGUuZGF0YVtwYXJhbUtleV0gPSB1cGRhdGVkUGFyYW1zO1xyXG4gIFxyXG4gICAgZ3JpZEFwaS5hcHBseVRyYW5zYWN0aW9uKHsgdXBkYXRlOiBbcm93Tm9kZS5kYXRhXSB9KTtcclxuICAgIGdyaWRBcGkucmVmcmVzaENlbGxzKHsgcm93Tm9kZXM6IFtyb3dOb2RlXSwgY29sdW1uczogW2ZpZWxkXSwgZm9yY2U6IHRydWUgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhIGNlbGwgd2l0aCBjaGlwc1xyXG4gIHN0YXRpYyBjcmVhdGVDaGlwc0NlbGwoY2hpcHM6IGFueVtdLCBjb25maWc6IFBhcnRpYWw8R3JpZEludGVyZmFjZT4gPSB7fSk6IEdyaWRJbnRlcmZhY2Uge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2VsbFR5cGU6ICdjaGlwcycsXHJcbiAgICAgIHZpZXdDaGlwOiB0cnVlLFxyXG4gICAgICB2aWV3VGV4dDogZmFsc2UsXHJcbiAgICAgIHZpZXdMZWFkaW5nSWNvbjogZmFsc2UsXHJcbiAgICAgIHZpZXdUcmFpbGluZ0ljb246IGZhbHNlLFxyXG4gICAgICB2aWV3QnV0dG9uOiBmYWxzZSxcclxuICAgICAgdmlld0F2YXRhcjogZmFsc2UsXHJcbiAgICAgIGNoaXBDb25maWc6IGNoaXBzLm1hcChjaGlwID0+ICh7XHJcbiAgICAgICAgaWQ6IGNoaXAuaWQgfHwgJycsXHJcbiAgICAgICAgdGV4dDogY2hpcC50ZXh0IHx8ICcnLFxyXG4gICAgICAgIHR5cGU6IGNoaXAudHlwZSB8fCAnZGVmYXVsdCcsXHJcbiAgICAgICAgc3RhdGU6IGNoaXAuc3RhdGUgfHwgJ2RlZmF1bHQnLFxyXG4gICAgICAgIC4uLmNoaXBcclxuICAgICAgfSkpLFxyXG4gICAgICAuLi5jb25maWdcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhIHRleHQgY2VsbFxyXG4gIHN0YXRpYyBjcmVhdGVUZXh0Q2VsbCh0ZXh0OiBzdHJpbmcsIGNvbmZpZzogUGFydGlhbDxHcmlkSW50ZXJmYWNlPiA9IHt9KTogR3JpZEludGVyZmFjZSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjZWxsVHlwZTogJ3RleHQnLFxyXG4gICAgICB2aWV3VGV4dDogdHJ1ZSxcclxuICAgICAgdmlld0NoaXA6IGZhbHNlLFxyXG4gICAgICB2aWV3TGVhZGluZ0ljb246IGZhbHNlLFxyXG4gICAgICB2aWV3VHJhaWxpbmdJY29uOiBmYWxzZSxcclxuICAgICAgdmlld0J1dHRvbjogZmFsc2UsXHJcbiAgICAgIHZpZXdBdmF0YXI6IGZhbHNlLFxyXG4gICAgICB0ZXh0LFxyXG4gICAgICAuLi5jb25maWdcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhbiBhdmF0YXIgY2VsbFxyXG4gIHN0YXRpYyBjcmVhdGVBdmF0YXJDZWxsKGNvbmZpZzoge1xyXG4gICAgdGV4dDogc3RyaW5nO1xyXG4gICAgc3ViVGV4dD86IHN0cmluZztcclxuICAgIGF2YXRhckNvbmZpZzoge1xyXG4gICAgICBzaXplOiAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnO1xyXG4gICAgICBpbWFnZVBhdGg6IHN0cmluZztcclxuICAgICAgYWx0VGV4dDogc3RyaW5nO1xyXG4gICAgfTtcclxuICB9KTogR3JpZEludGVyZmFjZSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjZWxsVHlwZTogJ2F2YXRhcicsXHJcbiAgICAgIHZpZXdUZXh0OiB0cnVlLFxyXG4gICAgICB2aWV3Q2hpcDogZmFsc2UsXHJcbiAgICAgIHZpZXdMZWFkaW5nSWNvbjogZmFsc2UsXHJcbiAgICAgIHZpZXdUcmFpbGluZ0ljb246IGZhbHNlLFxyXG4gICAgICB2aWV3QnV0dG9uOiBmYWxzZSxcclxuICAgICAgdmlld0F2YXRhcjogdHJ1ZSxcclxuICAgICAgdGV4dDogY29uZmlnLnRleHQsXHJcbiAgICAgIHN1YlRleHQ6IGNvbmZpZy5zdWJUZXh0LFxyXG4gICAgICBhdmF0YXJDb25maWc6IHtcclxuICAgICAgICBpZDogY29uZmlnLnRleHQsXHJcbiAgICAgICAgc2l6ZTogY29uZmlnLmF2YXRhckNvbmZpZy5zaXplLFxyXG4gICAgICAgIGltYWdlUGF0aDogY29uZmlnLmF2YXRhckNvbmZpZy5pbWFnZVBhdGgsXHJcbiAgICAgICAgYWx0VGV4dDogY29uZmlnLmF2YXRhckNvbmZpZy5hbHRUZXh0XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvLyBIZWxwZXIgbWV0aG9kIHRvIGNyZWF0ZSBhbiBhY3Rpb25zIGNlbGxcclxuICBzdGF0aWMgY3JlYXRlQWN0aW9uc0NlbGwoY29uZmlnOiB7IGFjdGlvbnM6IEFycmF5PHsgbGFiZWw6IHN0cmluZywgb25DbGljazogKCkgPT4gdm9pZCwgaWNvbjogc3RyaW5nLCBjbGFzcz86IHN0cmluZyB9PiB9KTogR3JpZEludGVyZmFjZSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjZWxsVHlwZTogJ2FjdGlvbnMnLFxyXG4gICAgICB2aWV3VGV4dDogZmFsc2UsXHJcbiAgICAgIHZpZXdDaGlwOiBmYWxzZSxcclxuICAgICAgdmlld0xlYWRpbmdJY29uOiBmYWxzZSxcclxuICAgICAgdmlld1RyYWlsaW5nSWNvbjogZmFsc2UsXHJcbiAgICAgIHZpZXdCdXR0b246IHRydWUsXHJcbiAgICAgIHZpZXdBdmF0YXI6IGZhbHNlLFxyXG4gICAgICBhY3Rpb25zOiBjb25maWcuYWN0aW9ucyxcclxuICAgICAgYnV0dG9uQ29uZmlnOiB7XHJcbiAgICAgICAgaWQ6ICdhY3Rpb25zLWJ1dHRvbicsXHJcbiAgICAgICAgdGV4dDogJycsXHJcbiAgICAgICAgdHlwZTogJ3RyYW5zcGFyZW50JyxcclxuICAgICAgICBzdGF0ZTogJ2RlZmF1bHQnLFxyXG4gICAgICAgIHNpemU6ICdzbWFsbCcsXHJcbiAgICAgICAgaW1hZ2VQYXRoOiAnL2Fzc2V0cy9mcmFtZUljb24uc3ZnJyxcclxuICAgICAgICBpY29uUG9zaXRpb246ICdib3RoJyxcclxuICAgICAgICBvbkNsaWNrOiAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNvbmZpZy5hY3Rpb25zKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBY3Rpb25zIGF2YWlsYWJsZTonLCBjb25maWcuYWN0aW9ucyk7XHJcbiAgICAgICAgICAgIGNvbmZpZy5hY3Rpb25zLmZvckVhY2goYWN0aW9uID0+IHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgQWN0aW9uICR7YWN0aW9uLmxhYmVsfSBhdmFpbGFibGVgKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuICBcclxufVxyXG4iLCI8YWctZ3JpZC1hbmd1bGFyXHJcbiAgY2xhc3M9XCJhZy10aGVtZS1hbHBpbmUgc2EtZ3JpZC10aGVtZVwiXHJcbiAgW2NvbHVtbkRlZnNdPVwiY29sdW1uRGVmc1wiXHJcbiAgW3Jvd0RhdGFdPVwiZ2V0RWZmZWN0aXZlUm93RGF0YSgpXCJcclxuICBbZGVmYXVsdENvbERlZl09XCJkZWZhdWx0Q29sRGVmXCJcclxuICAoZ3JpZFJlYWR5KT1cIm9uR3JpZFJlYWR5KCRldmVudClcIlxyXG4gIFtkb21MYXlvdXRdPVwiZ3JpZEhlaWdodCA/ICdub3JtYWwnIDogJ2F1dG9IZWlnaHQnXCJcclxuICBbc3R5bGUuaGVpZ2h0LnB4XT1cImdyaWRIZWlnaHRcIlxyXG4gIFtwYWdpbmF0aW9uXT1cInBhZ2luYXRpb25cIlxyXG4gIFtwYWdpbmF0aW9uUGFnZVNpemVdPVwicGFnaW5hdGlvblBhZ2VTaXplXCJcclxuICBbcGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3JdPVwicGFnaW5hdGlvblBhZ2VTaXplU2VsZWN0b3JcIlxyXG4gIFtsb2NhbGVUZXh0XT1cImxvY2FsZVRleHRcIlxyXG4gIFtyb3dNb2RlbFR5cGVdPVwiZGF0YXNvdXJjZSA/ICdpbmZpbml0ZScgOiAnY2xpZW50U2lkZSdcIlxyXG4+PC9hZy1ncmlkLWFuZ3VsYXI+XHJcbiJdfQ==
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFZckUsTUFBTSxPQUFPLGlCQUFpQjtJQVA5QjtRQVNXLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFDMUIsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUNwQixrQkFBYSxHQUFXO1lBQy9CLFFBQVEsRUFBRSxJQUFJO1lBQ2QsTUFBTSxFQUFFLElBQUk7WUFDWixTQUFTLEVBQUUsSUFBSTtTQUNoQixDQUFDO1FBRUYsK0JBQStCO1FBQ3RCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBQ2hDLCtCQUEwQixHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekQsZUFBVSxHQUFXLEdBQUcsQ0FBQztRQUV4QixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFFOUQseUNBQXlDO1FBQ3pDLGVBQVUsR0FBUTtZQUNoQixXQUFXLEVBQUUsV0FBVztZQUN4QixFQUFFLEVB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bEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFnR3JpZE1vZHVsZSB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XHJcbmltcG9ydCB7IEdyaWRDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vZ3JpZC1jZWxsL2dyaWQtY2VsbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xEZWYsIEdyaWRBcGksIEdyaWRSZWFkeUV2ZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xyXG5pbXBvcnQgeyBHcmlkSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9ncmlkLWludGVyZmFjZSc7XHJcbmltcG9ydCB7IEJ1dHRvbkludGVyZmFjZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvYnV0dG9uLWludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhLWRhdGEtZ3JpZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBBZ0dyaWRNb2R1bGUsIEdyaWRDZWxsQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1ncmlkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZGF0YS1ncmlkLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRhR3JpZENvbXBvbmVudCB7XHJcbiAgcHVibGljIHN0YXRpYyBncmlkQXBpSW5zdGFuY2U6IEdyaWRBcGk7XHJcbiAgQElucHV0KCkgY29sdW1uRGVmczogQ29sRGVmW10gPSBbXTtcclxuICBASW5wdXQoKSByb3dEYXRhOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRDb2xEZWY6IENvbERlZiA9IHtcclxuICAgIHNvcnRhYmxlOiB0cnVlLFxyXG4gICAgZmlsdGVyOiB0cnVlLFxyXG4gICAgcmVzaXphYmxlOiB0cnVlXHJcbiAgfTtcclxuXHJcbiAgLy8gUGFnaW5hdGlvbiBpbnB1dHMgKG9wdGlvbmFsKVxyXG4gIEBJbnB1dCgpIHBhZ2luYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBwYWdpbmF0aW9uUGFnZVNpemU6IG51bWJlciA9IDEwO1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRpb25QYWdlU2l6ZVNlbGVjdG9yOiBudW1iZXJbXSA9IFsxMCwgMjUsIDUwLCAxMDBdO1xyXG4gIEBJbnB1dCgpIGdyaWRIZWlnaHQ6IG51bWJlciA9IDQyMDtcclxuICBASW5wdXQoKSBkYXRhc291cmNlOiBhbnk7XHJcbiAgQE91dHB1dCgpIGdyaWRSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8R3JpZFJlYWR5RXZlbnQ8YW55Pj4oKTtcclxuXHJcbiAgLy8gTG9jYWxlIG92ZXJyaWRlcyBmb3IgcGFnaW5hdGlvbiBsYWJlbHNcclxuICBsb2NhbGVUZXh0OiBhbnkgPSB7XHJcbiAgICAnUGFnZSBTaXplJzogJ1Nob3cgcm93cycsXHJcbiAgICB0bzogJyAtICcsXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBncmlkQXBpITogR3JpZEFwaTtcclxuXHJcbiAgLy8gTWV0aG9kIHRvIGRldGVybWluZSB3aGljaCByb3cgZGF0YSB0byB1c2VcclxuICBnZXRFZmZlY3RpdmVSb3dEYXRhKCk6IGFueVtdIHwgdW5kZWZpbmVkIHtcclxuICAgIC8vIElmIGRhdGFzb3VyY2UgaXMgcHJvdmlkZWQsIHJvd0RhdGEgbXVzdCBiZSB1bmRlZmluZWRcclxuICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2UgPyB1bmRlZmluZWQgOiB0aGlzLnJvd0RhdGE7XHJcbiAgfVxyXG5cclxuICBvbkdyaWRSZWFkeShwYXJhbXM6IEdyaWRSZWFkeUV2ZW50PGFueT4pIHtcclxuICAgIHRoaXMuZ3JpZEFwaSA9IHBhcmFtcy5hcGk7XHJcbiAgICBEYXRhR3JpZENvbXBvbmVudC5ncmlkQXBpSW5zdGFuY2UgPSBwYXJhbXMuYXBpO1xyXG4gICAgdGhpcy5ncmlkQXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcclxuXHJcbiAgICAvLyBTZXR1cCBzZXJ2ZXItc2lkZSByb3cgbW9kZWwgaWYgZW5hYmxlZFxyXG4gICAgICBpZiAodGhpcy5kYXRhc291cmNlKSB7XHJcbiAgICAgICAgdGhpcy5ncmlkQXBpLnNldEdyaWRPcHRpb25cclxuICAgICAgICA/IHRoaXMuZ3JpZEFwaS5zZXRHcmlkT3B0aW9uKCdkYXRhc291cmNlJywgdGhpcy5kYXRhc291cmNlKVxyXG4gICAgICAgIDogdGhpcy5ncmlkQXBpLnNldERhdGFzb3VyY2UodGhpcy5kYXRhc291cmNlKTtcclxuICAgICAgfSAgXHJcbiAgICB0aGlzLmdyaWRSZWFkeS5lbWl0KHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgdXBkYXRlQ2VsbENvbnRlbnQoXHJcbiAgICBncmlkQXBpOiBHcmlkQXBpLFxyXG4gICAgcm93SW5kZXg6IG51bWJlcixcclxuICAgIGZpZWxkOiBzdHJpbmcsXHJcbiAgICBuZXdQYXJhbXM6IFBhcnRpYWw8R3JpZEludGVyZmFjZT5cclxuICApIHtcclxuICAgIGNvbnN0IHJvd05vZGUgPSBncmlkQXBpLmdldERpc3BsYXllZFJvd0F0SW5kZXgocm93SW5kZXgpO1xyXG4gIFxyXG4gICAgaWYgKCFyb3dOb2RlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoYFJvdyBhdCBpbmRleCAke3Jvd0luZGV4fSBub3QgZm91bmQuYCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICBcclxuICAgIGNvbnN0IHBhcmFtS2V5ID0gYCR7ZmllbGR9X2NlbGxQYXJhbXNgO1xyXG4gIFxyXG4gICAgY29uc3QgZXhpc3RpbmdQYXJhbXM6IFBhcnRpYWw8R3JpZEludGVyZmFjZT4gPVxyXG4gICAgICByb3dOb2RlLmRhdGFbcGFyYW1LZXldIHx8IHt9O1xyXG4gIFxyXG4gICAgY29uc3QgdXBkYXRlZFBhcmFtczogUGFydGlhbDxHcmlkSW50ZXJmYWNlPiA9IHtcclxuICAgICAgLi4uZXhpc3RpbmdQYXJhbXMsXHJcbiAgICAgIC4uLm5ld1BhcmFtcyxcclxuICAgIH07XHJcbiAgXHJcbiAgICByb3dOb2RlLmRhdGFbcGFyYW1LZXldID0gdXBkYXRlZFBhcmFtcztcclxuICBcclxuICAgIGdyaWRBcGkuYXBwbHlUcmFuc2FjdGlvbih7IHVwZGF0ZTogW3Jvd05vZGUuZGF0YV0gfSk7XHJcbiAgICBncmlkQXBpLnJlZnJlc2hDZWxscyh7IHJvd05vZGVzOiBbcm93Tm9kZV0sIGNvbHVtbnM6IFtmaWVsZF0sIGZvcmNlOiB0cnVlIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gSGVscGVyIG1ldGhvZCB0byBjcmVhdGUgYSBjZWxsIHdpdGggY2hpcHNcclxuICBzdGF0aWMgY3JlYXRlQ2hpcHNDZWxsKGNoaXBzOiBhbnlbXSwgY29uZmlnOiBQYXJ0aWFsPEdyaWRJbnRlcmZhY2U+ID0ge30pOiBHcmlkSW50ZXJmYWNlIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNlbGxUeXBlOiAnY2hpcHMnLFxyXG4gICAgICB2aWV3Q2hpcDogdHJ1ZSxcclxuICAgICAgdmlld1RleHQ6IGZhbHNlLFxyXG4gICAgICB2aWV3TGVhZGluZ0ljb246IGZhbHNlLFxyXG4gICAgICB2aWV3VHJhaWxpbmdJY29uOiBmYWxzZSxcclxuICAgICAgdmlld0J1dHRvbjogZmFsc2UsXHJcbiAgICAgIHZpZXdBdmF0YXI6IGZhbHNlLFxyXG4gICAgICBjaGlwQ29uZmlnOiBjaGlwcy5tYXAoY2hpcCA9PiAoe1xyXG4gICAgICAgIGlkOiBjaGlwLmlkIHx8ICcnLFxyXG4gICAgICAgIHRleHQ6IGNoaXAudGV4dCB8fCAnJyxcclxuICAgICAgICB0eXBlOiBjaGlwLnR5cGUgfHwgJ2RlZmF1bHQnLFxyXG4gICAgICAgIHN0YXRlOiBjaGlwLnN0YXRlIHx8ICdkZWZhdWx0JyxcclxuICAgICAgICAuLi5jaGlwXHJcbiAgICAgIH0pKSxcclxuICAgICAgLi4uY29uZmlnXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLy8gSGVscGVyIG1ldGhvZCB0byBjcmVhdGUgYSB0ZXh0IGNlbGxcclxuICBzdGF0aWMgY3JlYXRlVGV4dENlbGwodGV4dDogc3RyaW5nLCBjb25maWc6IFBhcnRpYWw8R3JpZEludGVyZmFjZT4gPSB7fSk6IEdyaWRJbnRlcmZhY2Uge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2VsbFR5cGU6ICd0ZXh0JyxcclxuICAgICAgdmlld1RleHQ6IHRydWUsXHJcbiAgICAgIHZpZXdDaGlwOiBmYWxzZSxcclxuICAgICAgdmlld0xlYWRpbmdJY29uOiBmYWxzZSxcclxuICAgICAgdmlld1RyYWlsaW5nSWNvbjogZmFsc2UsXHJcbiAgICAgIHZpZXdCdXR0b246IGZhbHNlLFxyXG4gICAgICB2aWV3QXZhdGFyOiBmYWxzZSxcclxuICAgICAgdGV4dCxcclxuICAgICAgLi4uY29uZmlnXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLy8gSGVscGVyIG1ldGhvZCB0byBjcmVhdGUgYW4gYXZhdGFyIGNlbGxcclxuICBzdGF0aWMgY3JlYXRlQXZhdGFyQ2VsbChjb25maWc6IHtcclxuICAgIHRleHQ6IHN0cmluZztcclxuICAgIHN1YlRleHQ/OiBzdHJpbmc7XHJcbiAgICBhdmF0YXJDb25maWc6IHtcclxuICAgICAgc2l6ZTogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJztcclxuICAgICAgaW1hZ2VQYXRoOiBzdHJpbmc7XHJcbiAgICAgIGFsdFRleHQ6IHN0cmluZztcclxuICAgIH07XHJcbiAgfSk6IEdyaWRJbnRlcmZhY2Uge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2VsbFR5cGU6ICdhdmF0YXInLFxyXG4gICAgICB2aWV3VGV4dDogdHJ1ZSxcclxuICAgICAgdmlld0NoaXA6IGZhbHNlLFxyXG4gICAgICB2aWV3TGVhZGluZ0ljb246IGZhbHNlLFxyXG4gICAgICB2aWV3VHJhaWxpbmdJY29uOiBmYWxzZSxcclxuICAgICAgdmlld0J1dHRvbjogZmFsc2UsXHJcbiAgICAgIHZpZXdBdmF0YXI6IHRydWUsXHJcbiAgICAgIHRleHQ6IGNvbmZpZy50ZXh0LFxyXG4gICAgICBzdWJUZXh0OiBjb25maWcuc3ViVGV4dCxcclxuICAgICAgYXZhdGFyQ29uZmlnOiB7XHJcbiAgICAgICAgaWQ6IGNvbmZpZy50ZXh0LFxyXG4gICAgICAgIHNpemU6IGNvbmZpZy5hdmF0YXJDb25maWcuc2l6ZSxcclxuICAgICAgICBpbWFnZVBhdGg6IGNvbmZpZy5hdmF0YXJDb25maWcuaW1hZ2VQYXRoLFxyXG4gICAgICAgIGFsdFRleHQ6IGNvbmZpZy5hdmF0YXJDb25maWcuYWx0VGV4dFxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLy8gSGVscGVyIG1ldGhvZCB0byBjcmVhdGUgYW4gYWN0aW9ucyBjZWxsXHJcbiAgc3RhdGljIGNyZWF0ZUFjdGlvbnNDZWxsKGNvbmZpZzogeyBhY3Rpb25zOiBBcnJheTx7IGxhYmVsOiBzdHJpbmcsIG9uQ2xpY2s6ICgpID0+IHZvaWQsIGljb246IHN0cmluZywgY2xhc3M/OiBzdHJpbmcgfT4gfSk6IEdyaWRJbnRlcmZhY2Uge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2VsbFR5cGU6ICdhY3Rpb25zJyxcclxuICAgICAgdmlld1RleHQ6IGZhbHNlLFxyXG4gICAgICB2aWV3Q2hpcDogZmFsc2UsXHJcbiAgICAgIHZpZXdMZWFkaW5nSWNvbjogZmFsc2UsXHJcbiAgICAgIHZpZXdUcmFpbGluZ0ljb246IGZhbHNlLFxyXG4gICAgICB2aWV3QnV0dG9uOiB0cnVlLFxyXG4gICAgICB2aWV3QXZhdGFyOiBmYWxzZSxcclxuICAgICAgYWN0aW9uczogY29uZmlnLmFjdGlvbnMsXHJcbiAgICAgIGJ1dHRvbkNvbmZpZzoge1xyXG4gICAgICAgIGlkOiAnYWN0aW9ucy1idXR0b24nLFxyXG4gICAgICAgIHRleHQ6ICcnLFxyXG4gICAgICAgIHR5cGU6ICd0cmFuc3BhcmVudCcsXHJcbiAgICAgICAgc3RhdGU6ICdkZWZhdWx0JyxcclxuICAgICAgICBzaXplOiAnc21hbGwnLFxyXG4gICAgICAgIGltYWdlUGF0aDogJy9hc3NldHMvZnJhbWVJY29uLnN2ZycsXHJcbiAgICAgICAgaWNvblBvc2l0aW9uOiAnYm90aCcsXHJcbiAgICAgICAgb25DbGljazogKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChjb25maWcuYWN0aW9ucykge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnQWN0aW9ucyBhdmFpbGFibGU6JywgY29uZmlnLmFjdGlvbnMpO1xyXG4gICAgICAgICAgICBjb25maWcuYWN0aW9ucy5mb3JFYWNoKGFjdGlvbiA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coYEFjdGlvbiAke2FjdGlvbi5sYWJlbH0gYXZhaWxhYmxlYCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcbiAgXHJcbn1cclxuIiwiPGFnLWdyaWQtYW5ndWxhclxyXG4gIGNsYXNzPVwiYWctdGhlbWUtYWxwaW5lIHNhLWdyaWQtdGhlbWVcIlxyXG4gIFtjb2x1bW5EZWZzXT1cImNvbHVtbkRlZnNcIlxyXG4gIFtyb3dEYXRhXT1cImdldEVmZmVjdGl2ZVJvd0RhdGEoKVwiXHJcbiAgW2RlZmF1bHRDb2xEZWZdPVwiZGVmYXVsdENvbERlZlwiXHJcbiAgKGdyaWRSZWFkeSk9XCJvbkdyaWRSZWFkeSgkZXZlbnQpXCJcclxuICBbZG9tTGF5b3V0XT1cImdyaWRIZWlnaHQgPyAnbm9ybWFsJyA6ICdhdXRvSGVpZ2h0J1wiXHJcbiAgW3N0eWxlLmhlaWdodC5weF09XCJncmlkSGVpZ2h0XCJcclxuICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcclxuICBbcGFnaW5hdGlvblBhZ2VTaXplXT1cInBhZ2luYXRpb25QYWdlU2l6ZVwiXHJcbiAgW3BhZ2luYXRpb25QYWdlU2l6ZVNlbGVjdG9yXT1cInBhZ2luYXRpb25QYWdlU2l6ZVNlbGVjdG9yXCJcclxuICBbbG9jYWxlVGV4dF09XCJsb2NhbGVUZXh0XCJcclxuICBbcm93TW9kZWxUeXBlXT1cImRhdGFzb3VyY2UgPyAnaW5maW5pdGUnIDogJ2NsaWVudFNpZGUnXCJcclxuPjwvYWctZ3JpZC1hbmd1bGFyPlxyXG4iXX0=
@@ -2,8 +2,10 @@ import { CommonModule } from '@angular/common';
2
2
  import { Component, ViewChild, Input, Output, EventEmitter } from '@angular/core';
3
3
  import { IconComponent } from '../icon/icon.component';
4
4
  import { HttpClientModule } from '@angular/common/http';
5
+ import { MatTooltipModule } from '@angular/material/tooltip';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/material/tooltip";
7
9
  export class FilterComponent {
8
10
  set filterValues(value) {
9
11
  if (value) {
@@ -207,11 +209,11 @@ export class FilterComponent {
207
209
  window.scrollTo({ top: 0, behavior: 'smooth' });
208
210
  }
209
211
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: FilterComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
210
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: FilterComponent, isStandalone: true, selector: "sa-filter", inputs: { config: "config", filterValues: "filterValues" }, outputs: { onClickEvent: "onClickEvent", filterSelected: "filterSelected", filterRemoved: "filterRemoved", dropdownToggled: "dropdownToggled" }, viewQueries: [{ propertyName: "filterByContent", first: true, predicate: ["filterByContent"], descendants: true }], ngImport: i0, template: "<div class=\"container\">\r\n\r\n <div class=\"filter-container\">\r\n <!-- Main Filter By Dropdown -->\r\n <div class=\"dropdown filter-by-dropdown\">\r\n <button class=\"dropdown-btn filter-by-btn\" [ngClass]=\"{\r\n 'filled-btn': config?.filterButtonStyle === 'filled',\r\n 'outlined-btn': config?.filterButtonStyle === 'outlined'\r\n }\" (click)=\"toggleDropdown($event)\">\r\n <span>{{config?.filterLabel}}</span>\r\n <sa-icon class=\"flex\" [icon]=\"'downChevronOutlined'\" [size]=\"'20'\"></sa-icon>\r\n </button>\r\n\r\n <div class=\"dropdown-content filter-by-content\" #filterByContent (touchstart)=\"onTouchStart($event)\"\r\n (touchend)=\"onTouchEnd()\">\r\n <div class=\"filter-section\">\r\n <!-- Dynamic Filter Items -->\r\n <div *ngFor=\"let item of config?.filterItems\" class=\"filter-item\">\r\n <div class=\"filter-header\" [id]=\"item.text+'Header'\" (click)=\"toggleSubmenu(item.text,$event)\">\r\n <span class=\"filter-label\">{{item.text}}</span>\r\n <sa-icon *ngIf=\"item?.subMenu?.length\" [icon]=\"'rightChevronOutlined'\"\r\n [size]=\"'16'\"></sa-icon>\r\n </div>\r\n <ng-container *ngIf=\"item?.subMenu?.length\">\r\n <div class=\"filter-submenu\" [id]=\"item.text+'Submenu'\">\r\n <div *ngFor=\"let option of item.subMenu\" class=\"filter-option\"\r\n [attr.data-value]=\"option.value\"\r\n [ngClass]=\"{'selected': isFilterOptionSelected(item.id, option.value)}\"\r\n (click)=\"selectFilter($event)\">\r\n <span>{{option.label}}</span>\r\n <div class=\"info-icon\" *ngIf=\"option.icon\">\r\n <sa-icon class=\"flex\" [icon]=\"option.icon.icon\"\r\n [iconPath]=\"option.icon.iconPath\" [iconUrl]=\"option.icon.iconUrl\"\r\n [size]=\"option.icon.size\" [customClass]=\"option.icon.customClass\"></sa-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".filter-container{display:flex;gap:1rem;align-items:flex-start;flex-wrap:wrap}.dropdown{position:relative;display:flex}.dropdown-btn{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:14px;border-radius:6px;cursor:pointer;transition:all .2s ease-in-out}.filled-btn{background-color:#7f56d9;color:#fff;border:none;border-radius:4px}.outlined-btn{border-radius:4px;border:1px solid var(--Grey-100, #EAECF0);background:var(--Structural-White, #FFF)}.outlined-btn:hover{background-color:#f9fafb}.filter-by-btn{padding:0 12px;height:36px;cursor:pointer;display:flex;align-items:center;flex:1 0 0;font-size:.875rem;font-weight:500;transition:all .2s ease;min-width:120px;justify-content:space-between}.filter-by-btn span{font-family:var(--font-family, Roboto);font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}.filter-by-btn:active{transform:translateY(0)}.filter-by-content{position:absolute;top:100%;left:0;min-width:-webkit-fill-available;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s ease;z-index:1000;border-radius:4px;border:1px solid var(--Grey-100, #EAECF0);background:var(--Structural-White, #FFF);box-shadow:0 1px 2px #0000004d}.dropdown.active .filter-by-content{opacity:1;visibility:visible;transform:translateY(0)}.filter-section{padding:0rem}.filter-item{border-bottom:1px solid #f3f4f6;position:relative}.filter-item:last-child{border-bottom:none}.filter-header{padding:.75rem .6rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .2s ease}.filter-header:hover{background:var(--Primary-50, #F4EBFF)}.filter-label{font-weight:500;color:#374151;font-size:.875rem}.filter-arrow{transition:transform .2s ease;color:#9ca3af}.filter-item.active{background:var(--Primary-50, #F4EBFF)}.filter-submenu{position:absolute;top:0;left:100%;background:#fff;border:1px solid #e5e7eb;min-width:169px;opacity:0;visibility:hidden;transform:translate(-10px);transition:all .2s ease;z-index:1001}.filter-submenu.show-left{left:auto;right:100%;transform:translate(10px);margin-left:0;margin-right:.5rem}.filter-item.active .filter-submenu{opacity:1;visibility:visible;transform:translate(0)}.filter-item.active .filter-submenu.show-left{transform:translate(0)}.filter-option{padding:.5rem;gap:4px;display:flex;align-items:center;cursor:pointer;transition:all .2s ease;align-self:stretch}.filter-option:hover,.filter-option.selected{background:var(--Primary-50, #F4EBFF)}.filter-option span{font-size:.875rem;color:#374151;margin-right:5px}.info-icon{opacity:.6;transition:opacity .2s ease;margin-top:5px}.info-icon:hover{opacity:1}.info-icon svg{width:14px;height:14px;color:#9ca3af}.add-user-btn{background:#7c3aed;color:#fff;border:none;padding:.75rem 1rem;border-radius:.5rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;transition:all .2s ease}.selected-filters{background:#fff;padding:1.5rem;border-radius:.75rem;border:1px solid #e5e7eb;box-shadow:0 2px 8px #0000000d}@keyframes fadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (max-width: 768px){.container{padding:1rem}.filter-container{flex-direction:column;align-items:stretch}.filter-by-content{position:fixed;top:auto;left:1rem;right:1rem;bottom:1rem;min-width:auto;max-height:70vh;overflow-y:auto}.filter-by-btn,.add-user-btn{width:100%;justify-content:center}.filter-submenu{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;max-width:90vw;max-height:60vh;overflow-y:auto}.filter-submenu.show-left{left:50%;right:auto;transform:translate(-50%,-50%);margin:0}.filter-item.active .filter-submenu,.filter-item.active .filter-submenu.show-left{transform:translate(-50%,-50%)}}.dropdown.filter-by-dropdown.active{border-radius:4px;border:1px solid var(--Primary-500, #7F56D9);background:var(--Structural-White, #FFF)}.filter-by-content{-webkit-overflow-scrolling:touch}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: HttpClientModule }] }); }
212
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: FilterComponent, isStandalone: true, selector: "sa-filter", inputs: { config: "config", filterValues: "filterValues" }, outputs: { onClickEvent: "onClickEvent", filterSelected: "filterSelected", filterRemoved: "filterRemoved", dropdownToggled: "dropdownToggled" }, viewQueries: [{ propertyName: "filterByContent", first: true, predicate: ["filterByContent"], descendants: true }], ngImport: i0, template: "<div class=\"container\">\r\n\r\n <div class=\"filter-container\">\r\n <!-- Main Filter By Dropdown -->\r\n <div class=\"dropdown filter-by-dropdown\">\r\n <button class=\"dropdown-btn filter-by-btn\" [ngClass]=\"{\r\n 'filled-btn': config?.filterButtonStyle === 'filled',\r\n 'outlined-btn': config?.filterButtonStyle === 'outlined'\r\n }\" (click)=\"toggleDropdown($event)\">\r\n <span>{{config?.filterLabel}}</span>\r\n <sa-icon class=\"flex\" [icon]=\"'downChevronOutlined'\" [size]=\"'20'\"></sa-icon>\r\n </button>\r\n\r\n <div class=\"dropdown-content filter-by-content\" #filterByContent (touchstart)=\"onTouchStart($event)\"\r\n (touchend)=\"onTouchEnd()\">\r\n <div class=\"filter-section\">\r\n <!-- Dynamic Filter Items -->\r\n <div *ngFor=\"let item of config?.filterItems\" class=\"filter-item\">\r\n <div class=\"filter-header\" [id]=\"item.text+'Header'\" (click)=\"toggleSubmenu(item.text,$event)\">\r\n <span class=\"filter-label\">{{item.text}}</span>\r\n <sa-icon *ngIf=\"item?.subMenu?.length\" [icon]=\"'rightChevronOutlined'\"\r\n [size]=\"'16'\" \r\n [matTooltip]=\"item?.tooltip || ''\" \r\n matTooltipClass=\"custom-tooltip\" \r\n class=\"tooltip-icon d-flex\"\r\n [matTooltipDisabled]=\"!item?.tooltip\"></sa-icon>\r\n </div>\r\n <ng-container *ngIf=\"item?.subMenu?.length\">\r\n <div class=\"filter-submenu\" [id]=\"item.text+'Submenu'\">\r\n <div *ngFor=\"let option of item.subMenu\" class=\"filter-option\"\r\n [attr.data-value]=\"option.value\"\r\n [ngClass]=\"{'selected': isFilterOptionSelected(item.id, option.value)}\"\r\n (click)=\"selectFilter($event)\">\r\n <span>{{option.label}}</span>\r\n <div class=\"info-icon\" *ngIf=\"option.icon\">\r\n <sa-icon class=\"flex\" [icon]=\"option.icon.icon\"\r\n [iconPath]=\"option.icon.iconPath\" [iconUrl]=\"option.icon.iconUrl\"\r\n [size]=\"option.icon.size\" [customClass]=\"option.icon.customClass\"\r\n [matTooltip]=\"option.description || option.tooltip || option.icon.tooltip || ''\" \r\n matTooltipClass=\"custom-tooltip\" \r\n class=\"tooltip-icon d-flex\"\r\n [matTooltipDisabled]=\"!(option.description || option.tooltip || option.icon.tooltip)\"></sa-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".filter-container{display:flex;gap:1rem;align-items:flex-start;flex-wrap:wrap}.dropdown{position:relative;display:flex}.dropdown-btn{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:14px;border-radius:6px;cursor:pointer;transition:all .2s ease-in-out}.filled-btn{background-color:#7f56d9;color:#fff;border:none;border-radius:4px}.outlined-btn{border-radius:4px;border:1px solid var(--Grey-100, #EAECF0);background:var(--Structural-White, #FFF)}.outlined-btn:hover{background-color:#f9fafb}.filter-by-btn{padding:0 12px;height:36px;cursor:pointer;display:flex;align-items:center;flex:1 0 0;font-size:.875rem;font-weight:500;transition:all .2s ease;min-width:120px;justify-content:space-between}.filter-by-btn span{font-family:var(--font-family, Roboto);font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}.filter-by-btn:active{transform:translateY(0)}.filter-by-content{position:absolute;top:100%;left:0;min-width:-webkit-fill-available;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s ease;z-index:1000;border-radius:4px;border:1px solid var(--Grey-100, #EAECF0);background:var(--Structural-White, #FFF);box-shadow:0 1px 2px #0000004d}.dropdown.active .filter-by-content{opacity:1;visibility:visible;transform:translateY(0)}.filter-section{padding:0rem}.filter-item{border-bottom:1px solid #f3f4f6;position:relative}.filter-item:last-child{border-bottom:none}.filter-header{padding:.75rem .6rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .2s ease}.filter-header:hover{background:var(--Primary-50, #F4EBFF)}.filter-label{font-weight:500;color:#374151;font-size:.875rem}.filter-arrow{transition:transform .2s ease;color:#9ca3af}.filter-item.active{background:var(--Primary-50, #F4EBFF)}.filter-submenu{position:absolute;top:0;left:100%;background:#fff;border:1px solid #e5e7eb;min-width:169px;opacity:0;visibility:hidden;transform:translate(-10px);transition:all .2s ease;z-index:1001}.filter-submenu.show-left{left:auto;right:100%;transform:translate(10px);margin-left:0;margin-right:.5rem}.filter-item.active .filter-submenu{opacity:1;visibility:visible;transform:translate(0)}.filter-item.active .filter-submenu.show-left{transform:translate(0)}.filter-option{padding:.5rem;gap:4px;display:flex;align-items:center;cursor:pointer;transition:all .2s ease;align-self:stretch}.filter-option:hover,.filter-option.selected{background:var(--Primary-50, #F4EBFF)}.filter-option span{font-size:.875rem;color:#374151;margin-right:5px}.info-icon{opacity:.6;transition:opacity .2s ease;margin-top:5px}.info-icon:hover{opacity:1}.info-icon svg{width:14px;height:14px;color:#9ca3af}.add-user-btn{background:#7c3aed;color:#fff;border:none;padding:.75rem 1rem;border-radius:.5rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;transition:all .2s ease}.selected-filters{background:#fff;padding:1.5rem;border-radius:.75rem;border:1px solid #e5e7eb;box-shadow:0 2px 8px #0000000d}@keyframes fadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (max-width: 768px){.container{padding:1rem}.filter-container{flex-direction:column;align-items:stretch}.filter-by-content{position:fixed;top:auto;left:1rem;right:1rem;bottom:1rem;min-width:auto;max-height:70vh;overflow-y:auto}.filter-by-btn,.add-user-btn{width:100%;justify-content:center}.filter-submenu{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;max-width:90vw;max-height:60vh;overflow-y:auto}.filter-submenu.show-left{left:50%;right:auto;transform:translate(-50%,-50%);margin:0}.filter-item.active .filter-submenu,.filter-item.active .filter-submenu.show-left{transform:translate(-50%,-50%)}}.dropdown.filter-by-dropdown.active{border-radius:4px;border:1px solid var(--Primary-500, #7F56D9);background:var(--Structural-White, #FFF)}.filter-by-content{-webkit-overflow-scrolling:touch}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "sa-icon", inputs: ["img", "icon", "size", "color", "iconPath", "iconUrl", "customClass", "href", "hrefTarget", "iconPosition"], outputs: ["onClickEvent"] }, { kind: "ngmodule", type: HttpClientModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
211
213
  }
212
214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: FilterComponent, decorators: [{
213
215
  type: Component,
214
- args: [{ selector: 'sa-filter', standalone: true, imports: [CommonModule, IconComponent, HttpClientModule], template: "<div class=\"container\">\r\n\r\n <div class=\"filter-container\">\r\n <!-- Main Filter By Dropdown -->\r\n <div class=\"dropdown filter-by-dropdown\">\r\n <button class=\"dropdown-btn filter-by-btn\" [ngClass]=\"{\r\n 'filled-btn': config?.filterButtonStyle === 'filled',\r\n 'outlined-btn': config?.filterButtonStyle === 'outlined'\r\n }\" (click)=\"toggleDropdown($event)\">\r\n <span>{{config?.filterLabel}}</span>\r\n <sa-icon class=\"flex\" [icon]=\"'downChevronOutlined'\" [size]=\"'20'\"></sa-icon>\r\n </button>\r\n\r\n <div class=\"dropdown-content filter-by-content\" #filterByContent (touchstart)=\"onTouchStart($event)\"\r\n (touchend)=\"onTouchEnd()\">\r\n <div class=\"filter-section\">\r\n <!-- Dynamic Filter Items -->\r\n <div *ngFor=\"let item of config?.filterItems\" class=\"filter-item\">\r\n <div class=\"filter-header\" [id]=\"item.text+'Header'\" (click)=\"toggleSubmenu(item.text,$event)\">\r\n <span class=\"filter-label\">{{item.text}}</span>\r\n <sa-icon *ngIf=\"item?.subMenu?.length\" [icon]=\"'rightChevronOutlined'\"\r\n [size]=\"'16'\"></sa-icon>\r\n </div>\r\n <ng-container *ngIf=\"item?.subMenu?.length\">\r\n <div class=\"filter-submenu\" [id]=\"item.text+'Submenu'\">\r\n <div *ngFor=\"let option of item.subMenu\" class=\"filter-option\"\r\n [attr.data-value]=\"option.value\"\r\n [ngClass]=\"{'selected': isFilterOptionSelected(item.id, option.value)}\"\r\n (click)=\"selectFilter($event)\">\r\n <span>{{option.label}}</span>\r\n <div class=\"info-icon\" *ngIf=\"option.icon\">\r\n <sa-icon class=\"flex\" [icon]=\"option.icon.icon\"\r\n [iconPath]=\"option.icon.iconPath\" [iconUrl]=\"option.icon.iconUrl\"\r\n [size]=\"option.icon.size\" [customClass]=\"option.icon.customClass\"></sa-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".filter-container{display:flex;gap:1rem;align-items:flex-start;flex-wrap:wrap}.dropdown{position:relative;display:flex}.dropdown-btn{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:14px;border-radius:6px;cursor:pointer;transition:all .2s ease-in-out}.filled-btn{background-color:#7f56d9;color:#fff;border:none;border-radius:4px}.outlined-btn{border-radius:4px;border:1px solid var(--Grey-100, #EAECF0);background:var(--Structural-White, #FFF)}.outlined-btn:hover{background-color:#f9fafb}.filter-by-btn{padding:0 12px;height:36px;cursor:pointer;display:flex;align-items:center;flex:1 0 0;font-size:.875rem;font-weight:500;transition:all .2s ease;min-width:120px;justify-content:space-between}.filter-by-btn span{font-family:var(--font-family, Roboto);font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}.filter-by-btn:active{transform:translateY(0)}.filter-by-content{position:absolute;top:100%;left:0;min-width:-webkit-fill-available;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s ease;z-index:1000;border-radius:4px;border:1px solid var(--Grey-100, #EAECF0);background:var(--Structural-White, #FFF);box-shadow:0 1px 2px #0000004d}.dropdown.active .filter-by-content{opacity:1;visibility:visible;transform:translateY(0)}.filter-section{padding:0rem}.filter-item{border-bottom:1px solid #f3f4f6;position:relative}.filter-item:last-child{border-bottom:none}.filter-header{padding:.75rem .6rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .2s ease}.filter-header:hover{background:var(--Primary-50, #F4EBFF)}.filter-label{font-weight:500;color:#374151;font-size:.875rem}.filter-arrow{transition:transform .2s ease;color:#9ca3af}.filter-item.active{background:var(--Primary-50, #F4EBFF)}.filter-submenu{position:absolute;top:0;left:100%;background:#fff;border:1px solid #e5e7eb;min-width:169px;opacity:0;visibility:hidden;transform:translate(-10px);transition:all .2s ease;z-index:1001}.filter-submenu.show-left{left:auto;right:100%;transform:translate(10px);margin-left:0;margin-right:.5rem}.filter-item.active .filter-submenu{opacity:1;visibility:visible;transform:translate(0)}.filter-item.active .filter-submenu.show-left{transform:translate(0)}.filter-option{padding:.5rem;gap:4px;display:flex;align-items:center;cursor:pointer;transition:all .2s ease;align-self:stretch}.filter-option:hover,.filter-option.selected{background:var(--Primary-50, #F4EBFF)}.filter-option span{font-size:.875rem;color:#374151;margin-right:5px}.info-icon{opacity:.6;transition:opacity .2s ease;margin-top:5px}.info-icon:hover{opacity:1}.info-icon svg{width:14px;height:14px;color:#9ca3af}.add-user-btn{background:#7c3aed;color:#fff;border:none;padding:.75rem 1rem;border-radius:.5rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;transition:all .2s ease}.selected-filters{background:#fff;padding:1.5rem;border-radius:.75rem;border:1px solid #e5e7eb;box-shadow:0 2px 8px #0000000d}@keyframes fadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (max-width: 768px){.container{padding:1rem}.filter-container{flex-direction:column;align-items:stretch}.filter-by-content{position:fixed;top:auto;left:1rem;right:1rem;bottom:1rem;min-width:auto;max-height:70vh;overflow-y:auto}.filter-by-btn,.add-user-btn{width:100%;justify-content:center}.filter-submenu{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;max-width:90vw;max-height:60vh;overflow-y:auto}.filter-submenu.show-left{left:50%;right:auto;transform:translate(-50%,-50%);margin:0}.filter-item.active .filter-submenu,.filter-item.active .filter-submenu.show-left{transform:translate(-50%,-50%)}}.dropdown.filter-by-dropdown.active{border-radius:4px;border:1px solid var(--Primary-500, #7F56D9);background:var(--Structural-White, #FFF)}.filter-by-content{-webkit-overflow-scrolling:touch}\n"] }]
216
+ args: [{ selector: 'sa-filter', standalone: true, imports: [CommonModule, IconComponent, HttpClientModule, MatTooltipModule], template: "<div class=\"container\">\r\n\r\n <div class=\"filter-container\">\r\n <!-- Main Filter By Dropdown -->\r\n <div class=\"dropdown filter-by-dropdown\">\r\n <button class=\"dropdown-btn filter-by-btn\" [ngClass]=\"{\r\n 'filled-btn': config?.filterButtonStyle === 'filled',\r\n 'outlined-btn': config?.filterButtonStyle === 'outlined'\r\n }\" (click)=\"toggleDropdown($event)\">\r\n <span>{{config?.filterLabel}}</span>\r\n <sa-icon class=\"flex\" [icon]=\"'downChevronOutlined'\" [size]=\"'20'\"></sa-icon>\r\n </button>\r\n\r\n <div class=\"dropdown-content filter-by-content\" #filterByContent (touchstart)=\"onTouchStart($event)\"\r\n (touchend)=\"onTouchEnd()\">\r\n <div class=\"filter-section\">\r\n <!-- Dynamic Filter Items -->\r\n <div *ngFor=\"let item of config?.filterItems\" class=\"filter-item\">\r\n <div class=\"filter-header\" [id]=\"item.text+'Header'\" (click)=\"toggleSubmenu(item.text,$event)\">\r\n <span class=\"filter-label\">{{item.text}}</span>\r\n <sa-icon *ngIf=\"item?.subMenu?.length\" [icon]=\"'rightChevronOutlined'\"\r\n [size]=\"'16'\" \r\n [matTooltip]=\"item?.tooltip || ''\" \r\n matTooltipClass=\"custom-tooltip\" \r\n class=\"tooltip-icon d-flex\"\r\n [matTooltipDisabled]=\"!item?.tooltip\"></sa-icon>\r\n </div>\r\n <ng-container *ngIf=\"item?.subMenu?.length\">\r\n <div class=\"filter-submenu\" [id]=\"item.text+'Submenu'\">\r\n <div *ngFor=\"let option of item.subMenu\" class=\"filter-option\"\r\n [attr.data-value]=\"option.value\"\r\n [ngClass]=\"{'selected': isFilterOptionSelected(item.id, option.value)}\"\r\n (click)=\"selectFilter($event)\">\r\n <span>{{option.label}}</span>\r\n <div class=\"info-icon\" *ngIf=\"option.icon\">\r\n <sa-icon class=\"flex\" [icon]=\"option.icon.icon\"\r\n [iconPath]=\"option.icon.iconPath\" [iconUrl]=\"option.icon.iconUrl\"\r\n [size]=\"option.icon.size\" [customClass]=\"option.icon.customClass\"\r\n [matTooltip]=\"option.description || option.tooltip || option.icon.tooltip || ''\" \r\n matTooltipClass=\"custom-tooltip\" \r\n class=\"tooltip-icon d-flex\"\r\n [matTooltipDisabled]=\"!(option.description || option.tooltip || option.icon.tooltip)\"></sa-icon>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".filter-container{display:flex;gap:1rem;align-items:flex-start;flex-wrap:wrap}.dropdown{position:relative;display:flex}.dropdown-btn{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:14px;border-radius:6px;cursor:pointer;transition:all .2s ease-in-out}.filled-btn{background-color:#7f56d9;color:#fff;border:none;border-radius:4px}.outlined-btn{border-radius:4px;border:1px solid var(--Grey-100, #EAECF0);background:var(--Structural-White, #FFF)}.outlined-btn:hover{background-color:#f9fafb}.filter-by-btn{padding:0 12px;height:36px;cursor:pointer;display:flex;align-items:center;flex:1 0 0;font-size:.875rem;font-weight:500;transition:all .2s ease;min-width:120px;justify-content:space-between}.filter-by-btn span{font-family:var(--font-family, Roboto);font-size:14px;font-style:normal;font-weight:400;line-height:20px;letter-spacing:.25px}.filter-by-btn:active{transform:translateY(0)}.filter-by-content{position:absolute;top:100%;left:0;min-width:-webkit-fill-available;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s ease;z-index:1000;border-radius:4px;border:1px solid var(--Grey-100, #EAECF0);background:var(--Structural-White, #FFF);box-shadow:0 1px 2px #0000004d}.dropdown.active .filter-by-content{opacity:1;visibility:visible;transform:translateY(0)}.filter-section{padding:0rem}.filter-item{border-bottom:1px solid #f3f4f6;position:relative}.filter-item:last-child{border-bottom:none}.filter-header{padding:.75rem .6rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .2s ease}.filter-header:hover{background:var(--Primary-50, #F4EBFF)}.filter-label{font-weight:500;color:#374151;font-size:.875rem}.filter-arrow{transition:transform .2s ease;color:#9ca3af}.filter-item.active{background:var(--Primary-50, #F4EBFF)}.filter-submenu{position:absolute;top:0;left:100%;background:#fff;border:1px solid #e5e7eb;min-width:169px;opacity:0;visibility:hidden;transform:translate(-10px);transition:all .2s ease;z-index:1001}.filter-submenu.show-left{left:auto;right:100%;transform:translate(10px);margin-left:0;margin-right:.5rem}.filter-item.active .filter-submenu{opacity:1;visibility:visible;transform:translate(0)}.filter-item.active .filter-submenu.show-left{transform:translate(0)}.filter-option{padding:.5rem;gap:4px;display:flex;align-items:center;cursor:pointer;transition:all .2s ease;align-self:stretch}.filter-option:hover,.filter-option.selected{background:var(--Primary-50, #F4EBFF)}.filter-option span{font-size:.875rem;color:#374151;margin-right:5px}.info-icon{opacity:.6;transition:opacity .2s ease;margin-top:5px}.info-icon:hover{opacity:1}.info-icon svg{width:14px;height:14px;color:#9ca3af}.add-user-btn{background:#7c3aed;color:#fff;border:none;padding:.75rem 1rem;border-radius:.5rem;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;transition:all .2s ease}.selected-filters{background:#fff;padding:1.5rem;border-radius:.75rem;border:1px solid #e5e7eb;box-shadow:0 2px 8px #0000000d}@keyframes fadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (max-width: 768px){.container{padding:1rem}.filter-container{flex-direction:column;align-items:stretch}.filter-by-content{position:fixed;top:auto;left:1rem;right:1rem;bottom:1rem;min-width:auto;max-height:70vh;overflow-y:auto}.filter-by-btn,.add-user-btn{width:100%;justify-content:center}.filter-submenu{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;max-width:90vw;max-height:60vh;overflow-y:auto}.filter-submenu.show-left{left:50%;right:auto;transform:translate(-50%,-50%);margin:0}.filter-item.active .filter-submenu,.filter-item.active .filter-submenu.show-left{transform:translate(-50%,-50%)}}.dropdown.filter-by-dropdown.active{border-radius:4px;border:1px solid var(--Primary-500, #7F56D9);background:var(--Structural-White, #FFF)}.filter-by-content{-webkit-overflow-scrolling:touch}\n"] }]
215
217
  }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { config: [{
216
218
  type: Input
217
219
  }], filterValues: [{
@@ -229,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
229
231
  }], dropdownToggled: [{
230
232
  type: Output
231
233
  }] } });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQWlDLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQVN4RCxNQUFNLE9BQU8sZUFBZTtJQVExQixJQUEyQixZQUFZLENBQUMsS0FBbUI7UUFDekQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBZ0JELFlBQW9CLFFBQW1CLEVBQVUsV0FBdUI7UUFBcEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBMUIvRCxXQUFNLEdBQWlCO1lBQzlCLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLGlCQUFpQixFQUFFLFVBQVU7WUFDN0IsV0FBVyxFQUFFLEVBQUU7U0FDaEIsQ0FBQztRQVVRLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQW9CLENBQUM7UUFDcEQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUMxRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBQ3ZELG9CQUFlLEdB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QVMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0UsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFRCxpQkFBaUI7UUFDZixNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDOzhHQTlPVSxlQUFlO2tHQUFmLGVBQWUsc1lDWjVCLHFxRkEyQ00sZzZIRG5DTSxZQUFZLDhWQUFFLGFBQWEsb01BQUUsZ0JBQWdCOzsyRkFJNUMsZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQzt1R0FNL0MsTUFBTTtzQkFBZCxLQUFLO2dCQU1xQixZQUFZO3NCQUF0QyxLQUFLO3VCQUFDLGNBQWM7Z0JBTVMsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBRWxCLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhLWZpbHRlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uQ29tcG9uZW50LCBIdHRwQ2xpZW50TW9kdWxlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXIuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBjb25maWc6IEZpbHRlckNvbmZpZyA9IHtcclxuICAgIGZpbHRlckxhYmVsOiAnRmlsdGVyIGJ5JyxcclxuICAgIGZpbHRlckJ1dHRvblN0eWxlOiAnb3V0bGluZWQnLFxyXG4gICAgZmlsdGVySXRlbXM6IFtdXHJcbiAgfTtcclxuICBcclxuICBASW5wdXQoJ2ZpbHRlclZhbHVlcycpIHNldCBmaWx0ZXJWYWx1ZXModmFsdWU6IEZpbHRlckNvbmZpZykge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCdmaWx0ZXJCeUNvbnRlbnQnKSBmaWx0ZXJCeUNvbnRlbnQhOiBFbGVtZW50UmVmO1xyXG4gIFxyXG4gIEBPdXRwdXQoKSBvbkNsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlckNsaWNrRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZpbHRlclNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWx0ZXJTZWxlY3Rpb25FdmVudD4oKTtcclxuICBAT3V0cHV0KCkgZmlsdGVyUmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsdGVyUmVtb3ZhbEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBkcm9wZG93blRvZ2dsZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIHRvdWNoU3RhcnRZID0gMDtcclxuICB0b3VjaEVuZFkgPSAwO1xyXG4gIGRyb3Bkb3duQWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHNlbGVjdGVkRmlsdGVyczogUmVjb3JkPHN0cmluZywgRmlsdGVyU2VsZWN0aW9uPiA9IHt9O1xyXG4gIHN1Ym1lbnVBY3RpdmU6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdjbGljaycsIChlOiBFdmVudCkgPT4gdGhpcy5oYW5kbGVHbG9iYWxDbGljayhlKSk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2tleWRvd24nLCAoZTogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgICBpZiAoZS5rZXkgPT09ICdFc2NhcGUnKSB0aGlzLmNsb3NlQWxsKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAncmVzaXplJywgKCkgPT4gdGhpcy5oYW5kbGVSZXNpemUoKSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVEcm9wZG93bihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgY29uc3QgZHJvcGRvd24gPSB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duJyk7XHJcbiAgICBkcm9wZG93bi5jbGFzc0xpc3QudG9nZ2xlKCdhY3RpdmUnKTtcclxuICAgIHRoaXMuZHJvcGRvd25BY3RpdmUgPSBkcm9wZG93bi5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpO1xyXG4gICAgdGhpcy5kcm9wZG93blRvZ2dsZWQuZW1pdCh0aGlzLmRyb3Bkb3duQWN0aXZlKTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZVN1Ym1lbnUoZWxlbWVudDogYW55LCBldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRIZWFkZXIgPSAoZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCk7XHJcbiAgICBjb25zdCBjdXJyZW50SXRlbSA9IGN1cnJlbnRIZWFkZXIuY2xvc2VzdCgnLmZpbHRlci1pdGVtJyk7XHJcblxyXG4gICAgLy8gQ2xvc2UgYWxsIG90aGVyIGZpbHRlciBpdGVtc1xyXG4gICAgY29uc3QgYWxsSXRlbXMgPSB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmZpbHRlci1pdGVtJyk7XHJcbiAgICBhbGxJdGVtcy5mb3JFYWNoKChpdGVtOiBIVE1MRWxlbWVudCkgPT4ge1xyXG4gICAgICBpZiAoaXRlbSAhPT0gY3VycmVudEl0ZW0pIHtcclxuICAgICAgICBpdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBUb2dnbGUgdGhlIGN1cnJlbnQgaXRlbVxyXG4gICAgY3VycmVudEl0ZW0uY2xhc3NMaXN0LnRvZ2dsZSgnYWN0aXZlJyk7XHJcblxyXG4gICAgLy8gSWYgaXQncyBub3cgYWN0aXZlLCBwb3NpdGlvbiBpdHMgc3VibWVudVxyXG4gICAgaWYgKGN1cnJlbnRJdGVtLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJykpIHtcclxuICAgICAgY29uc3Qgc3VibWVudSA9IGN1cnJlbnRJdGVtLnF1ZXJ5U2VsZWN0b3IoJy5maWx0ZXItc3VibWVudScpO1xyXG4gICAgICB0aGlzLnBvc2l0aW9uU3VibWVudShzdWJtZW51IGFzIEhUTUxFbGVtZW50KTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8gTGVnYWN5IGV2ZW50XHJcbiAgICB0aGlzLm9uQ2xpY2tFdmVudC5lbWl0KHsgXHJcbiAgICAgIGV2ZW50OiAnY2xpY2snLCBcclxuICAgICAgdHlwZTogJ01lbnUnLCBcclxuICAgICAgaXRlbTogZWxlbWVudCxcclxuICAgICAgZmlsdGVyVHlwZTogZWxlbWVudCxcclxuICAgICAgaXNBY3RpdmU6IGN1cnJlbnRJdGVtLmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJylcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIFRvZ2dsZSBhY3RpdmUgc3RhdGVcclxuICAgIGNvbnN0IGlzQWN0aXZlID0gdGhpcy5zdWJtZW51QWN0aXZlW2VsZW1lbnRdO1xyXG4gICAgdGhpcy5zdWJtZW51QWN0aXZlID0ge307IC8vIGNsb3NlIGFsbFxyXG4gICAgaWYgKCFpc0FjdGl2ZSkge1xyXG4gICAgICB0aGlzLnN1Ym1lbnVBY3RpdmVbZWxlbWVudF0gPSB0cnVlOyAvLyBvcGVuIGN1cnJlbnRcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdEZpbHRlcihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgIGNvbnN0IG9wdGlvbiA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBjb25zdCB2YWx1ZSA9IG9wdGlvbi5kYXRhc2V0Wyd2YWx1ZSddIHx8ICcnO1xyXG4gICAgY29uc3QgdGV4dCA9IG9wdGlvbi5xdWVyeVNlbGVjdG9yKCdzcGFuJyk/LnRleHRDb250ZW50IHx8ICcnO1xyXG5cclxuICAgIC8vIEZpbmQgcGFyZW50IHN1Ym1lbnUgYW5kIGl0cyBmaWx0ZXIgdHlwZVxyXG4gICAgY29uc3Qgc3VibWVudSA9IG9wdGlvbi5jbG9zZXN0KCcuZmlsdGVyLXN1Ym1lbnUnKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICghc3VibWVudSB8fCAhc3VibWVudS5pZC5lbmRzV2l0aCgnU3VibWVudScpKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgZmlsdGVyVHlwZSA9IHN1Ym1lbnUuaWQucmVwbGFjZSgnU3VibWVudScsICcnKTtcclxuXHJcbiAgICAvLyBDaGVjayBpZiB0aGlzIGZpbHRlciBpcyBhbHJlYWR5IHNlbGVjdGVkICh0b2dnbGUgZnVuY3Rpb25hbGl0eSlcclxuICAgIGNvbnN0IGlzQ3VycmVudGx5U2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkRmlsdGVyc1tmaWx0ZXJUeXBlXSAmJiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzW2ZpbHRlclR5cGVdLnZhbHVlID09PSB2YWx1ZTtcclxuXHJcbiAgICBpZiAoaXNDdXJyZW50bHlTZWxlY3RlZCkge1xyXG4gICAgICAvLyBSZW1vdmUgdGhlIGZpbHRlciBpZiBpdCdzIGFscmVhZHkgc2VsZWN0ZWRcclxuICAgICAgdGhpcy5yZW1vdmVGaWx0ZXIoZmlsdGVyVHlwZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEZXNlbGVjdCBhbGwgb3B0aW9ucyBpbiB0aGlzIHN1Ym1lbnVcclxuICAgIHN1Ym1lbnUucXVlcnlTZWxlY3RvckFsbCgnLmZpbHRlci1vcHRpb24nKS5mb3JFYWNoKChlbDogSFRNTEVsZW1lbnQpID0+IGVsLmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJykpO1xyXG5cclxuICAgIC8vIFNlbGVjdCB0aGUgY2xpY2tlZCBvcHRpb25cclxuICAgIG9wdGlvbi5jbGFzc0xpc3QuYWRkKCdzZWxlY3RlZCcpO1xyXG5cclxuICAgIC8vIFN0b3JlIHNlbGVjdGVkIGZpbHRlclxyXG4gICAgY29uc3Qgc2VsZWN0aW9uOiBGaWx0ZXJTZWxlY3Rpb24gPSB7IHZhbHVlLCB0ZXh0LCBmaWx0ZXJUeXBlIH07XHJcbiAgICB0aGlzLnNlbGVjdGVkRmlsdGVyc1tmaWx0ZXJUeXBlXSA9IHNlbGVjdGlvbjtcclxuXHJcbiAgICAvLyBFbWl0IGVuaGFuY2VkIGV2ZW50c1xyXG4gICAgdGhpcy5maWx0ZXJTZWxlY3RlZC5lbWl0KHtcclxuICAgICAgZmlsdGVyVHlwZSxcclxuICAgICAgc2VsZWN0aW9uLFxyXG4gICAgICBhbGxTZWxlY3Rpb25zOiB7IC4uLnRoaXMuc2VsZWN0ZWRGaWx0ZXJzIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIExlZ2FjeSBldmVudFxyXG4gICAgdGhpcy5vbkNsaWNrRXZlbnQuZW1pdCh7IFxyXG4gICAgICBldmVudDogJ2NsaWNrJywgXHJcbiAgICAgIHR5cGU6ICdTdWIgTWVudScsIFxyXG4gICAgICBpdGVtOiB2YWx1ZSxcclxuICAgICAgZmlsdGVyVHlwZSxcclxuICAgICAgc2VsZWN0aW9uXHJcbiAgICB9KTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2VBbGwoKSwgMTAwKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUZpbHRlcih0eXBlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHJlbW92ZWRTZWxlY3Rpb24gPSB0aGlzLnNlbGVjdGVkRmlsdGVyc1t0eXBlXTtcclxuICAgIGRlbGV0ZSB0aGlzLnNlbGVjdGVkRmlsdGVyc1t0eXBlXTtcclxuICAgIFxyXG4gICAgY29uc3Qgc3VibWVudSA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAjJHt0eXBlfVN1Ym1lbnVgKTtcclxuICAgIGlmIChzdWJtZW51KSB7XHJcbiAgICAgIHN1Ym1lbnUucXVlcnlTZWxlY3RvckFsbCgnLmZpbHRlci1vcHRpb24nKS5mb3JFYWNoKChvcHQ6IEhUTUxFbGVtZW50KSA9PiBvcHQuY2xhc3NMaXN0LnJlbW92ZSgnc2VsZWN0ZWQnKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRW1pdCByZW1vdmFsIGV2ZW50XHJcbiAgICB0aGlzLmZpbHRlclJlbW92ZWQuZW1pdCh7XHJcbiAgICAgIGZpbHRlclR5cGU6IHR5cGUsXHJcbiAgICAgIHJlbW92ZWRTZWxlY3Rpb24sXHJcbiAgICAgIHJlbWFpbmluZ1NlbGVjdGlvbnM6IHsgLi4udGhpcy5zZWxlY3RlZEZpbHRlcnMgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBIZWxwZXIgbWV0aG9kIHRvIGNoZWNrIGlmIGEgZmlsdGVyIG9wdGlvbiBpcyBzZWxlY3RlZFxyXG4gIGlzRmlsdGVyT3B0aW9uU2VsZWN0ZWQoZmlsdGVyVHlwZTogc3RyaW5nLCBvcHRpb25WYWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEZpbHRlcnNbZmlsdGVyVHlwZV0gJiYgXHJcbiAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnNbZmlsdGVyVHlwZV0udmFsdWUgPT09IG9wdGlvblZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLy8gUHVibGljIG1ldGhvZCB0byBnZXQgY3VycmVudCBzZWxlY3Rpb25zXHJcbiAgZ2V0U2VsZWN0ZWRGaWx0ZXJzKCk6IFJlY29yZDxzdHJpbmcsIEZpbHRlclNlbGVjdGlvbj4ge1xyXG4gICAgcmV0dXJuIHsgLi4udGhpcy5zZWxlY3RlZEZpbHRlcnMgfTtcclxuICB9XHJcblxyXG4gIC8vIFB1YmxpYyBtZXRob2QgdG8gY2xlYXIgYWxsIGZpbHRlcnNcclxuICBjbGVhckFsbEZpbHRlcnMoKTogdm9pZCB7XHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLnNlbGVjdGVkRmlsdGVycykuZm9yRWFjaCh0eXBlID0+IHtcclxuICAgICAgdGhpcy5yZW1vdmVGaWx0ZXIodHlwZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIFB1YmxpYyBtZXRob2QgdG8gc2V0IGZpbHRlcnMgcHJvZ3JhbW1hdGljYWxseVxyXG4gIHNldEZpbHRlcnMoZmlsdGVyczogUmVjb3JkPHN0cmluZywgRmlsdGVyU2VsZWN0aW9uPik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMgPSB7IC4uLmZpbHRlcnMgfTtcclxuICAgIC8vIFVwZGF0ZSBVSSB0byByZWZsZWN0IHNlbGVjdGlvbnNcclxuICAgIE9iamVjdC5lbnRyaWVzKGZpbHRlcnMpLmZvckVhY2goKFt0eXBlLCBzZWxlY3Rpb25dKSA9PiB7XHJcbiAgICAgIGNvbnN0IHN1Ym1lbnUgPSB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgIyR7dHlwZX1TdWJtZW51YCk7XHJcbiAgICAgIGlmIChzdWJtZW51KSB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gc3VibWVudS5xdWVyeVNlbGVjdG9yKGBbZGF0YS12YWx1ZT1cIiR7c2VsZWN0aW9uLnZhbHVlfVwiXWApO1xyXG4gICAgICAgIGlmIChvcHRpb24pIHtcclxuICAgICAgICAgIG9wdGlvbi5jbGFzc0xpc3QuYWRkKCdzZWxlY3RlZCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZUFsbCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRyb3Bkb3duID0gdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5kcm9wZG93bicpO1xyXG4gICAgZHJvcGRvd24uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7XHJcbiAgICB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmZpbHRlci1pdGVtJykuZm9yRWFjaCgoaXRlbTogSFRNTEVsZW1lbnQpID0+IGl0ZW0uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJykpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlR2xvYmFsQ2xpY2soZTogRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKCF0YXJnZXQuY2xvc2VzdCgnLmRyb3Bkb3duJykpIHtcclxuICAgICAgdGhpcy5jbG9zZUFsbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9zaXRpb25TdWJtZW51KHN1Ym1lbnU6IEhUTUxFbGVtZW50KTogdm9pZCB7XHJcbiAgICBpZiAoIXN1Ym1lbnUpIHJldHVybjtcclxuICAgIHN1Ym1lbnUuY2xhc3NMaXN0LnJlbW92ZSgnc2hvdy1sZWZ0Jyk7XHJcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gNzY4KSByZXR1cm47XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgcmVjdCA9IHN1Ym1lbnUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIGlmIChyZWN0LmxlZnQgKyBzdWJtZW51Lm9mZnNldFdpZHRoID4gd2luZG93LmlubmVyV2lkdGggLSAyMCkge1xyXG4gICAgICAgIHN1Ym1lbnUuY2xhc3NMaXN0LmFkZCgnc2hvdy1sZWZ0Jyk7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVJlc2l6ZSgpOiB2b2lkIHtcclxuICAgIGNsZWFyVGltZW91dCgodGhpcyBhcyBhbnkpLl9yZXNpemVUaW1lb3V0KTtcclxuICAgICh0aGlzIGFzIGFueSkuX3Jlc2l6ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2VBbGwoKSwgMjUwKTtcclxuICB9XHJcblxyXG4gIG9uVG91Y2hTdGFydChlOiBUb3VjaEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLnRvdWNoU3RhcnRZID0gZS5jaGFuZ2VkVG91Y2hlc1swXS5zY3JlZW5ZO1xyXG4gIH1cclxuXHJcbiAgb25Ub3VjaEVuZCgpOiB2b2lkIHtcclxuICAgIHRoaXMudG91Y2hFbmRZID0gZXZlbnQgaW5zdGFuY2VvZiBUb3VjaEV2ZW50ID8gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uc2NyZWVuWSA6IDA7XHJcbiAgICB0aGlzLmhhbmRsZVN3aXBlR2VzdHVyZSgpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU3dpcGVHZXN0dXJlKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc3dpcGVUaHJlc2hvbGQgPSA1MDtcclxuICAgIGNvbnN0IHN3aXBlRGlzdGFuY2UgPSB0aGlzLnRvdWNoU3RhcnRZIC0gdGhpcy50b3VjaEVuZFk7XHJcbiAgICBpZiAoc3dpcGVEaXN0YW5jZSA8IC1zd2lwZVRocmVzaG9sZCAmJiB0aGlzLmZpbHRlckJ5Q29udGVudC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9PT0gMCkge1xyXG4gICAgICBjb25zdCBkcm9wZG93biA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24nKTtcclxuICAgICAgZHJvcGRvd24uY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzbW9vdGhTY3JvbGxUb1RvcCgpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8vIEVuaGFuY2VkIGludGVyZmFjZXNcclxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJDb25maWcge1xyXG4gIGZpbHRlckxhYmVsOiBzdHJpbmc7XHJcbiAgZmlsdGVyQnV0dG9uU3R5bGU/OiAnZmlsbGVkJyB8ICdvdXRsaW5lZCc7XHJcbiAgZmlsdGVySXRlbXM6IEZpbHRlckNhdGVnb3J5W107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyQ2F0ZWdvcnkge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdGV4dDogc3RyaW5nO1xyXG4gIHN1Yk1lbnU/OiBGaWx0ZXJPcHRpb25bXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJPcHRpb24ge1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICB0b29sdGlwPzogc3RyaW5nO1xyXG4gIGljb24/OiB7XHJcbiAgICBpY29uOiBzdHJpbmc7XHJcbiAgICBzaXplOiBzdHJpbmc7XHJcbiAgICBpY29uUGF0aD86IHN0cmluZztcclxuICAgIGljb25Vcmw/OiBzdHJpbmc7XHJcbiAgICBjdXN0b21DbGFzcz86IHN0cmluZztcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlclNlbGVjdGlvbiB7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgZmlsdGVyVHlwZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckNsaWNrRXZlbnQge1xyXG4gIGV2ZW50OiBzdHJpbmc7XHJcbiAgdHlwZTogJ01lbnUnIHwgJ1N1YiBNZW51JztcclxuICBpdGVtOiBhbnk7XHJcbiAgZmlsdGVyVHlwZT86IHN0cmluZztcclxuICBzZWxlY3Rpb24/OiBGaWx0ZXJTZWxlY3Rpb247XHJcbiAgaXNBY3RpdmU/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlclNlbGVjdGlvbkV2ZW50IHtcclxuICBmaWx0ZXJUeXBlOiBzdHJpbmc7XHJcbiAgc2VsZWN0aW9uOiBGaWx0ZXJTZWxlY3Rpb247XHJcbiAgYWxsU2VsZWN0aW9uczogUmVjb3JkPHN0cmluZywgRmlsdGVyU2VsZWN0aW9uPjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJSZW1vdmFsRXZlbnQge1xyXG4gIGZpbHRlclR5cGU6IHN0cmluZztcclxuICByZW1vdmVkU2VsZWN0aW9uPzogRmlsdGVyU2VsZWN0aW9uO1xyXG4gIHJlbWFpbmluZ1NlbGVjdGlvbnM6IFJlY29yZDxzdHJpbmcsIEZpbHRlclNlbGVjdGlvbj47XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY29udGFpbmVyXCI+XHJcbiAgICAgICAgPCEtLSBNYWluIEZpbHRlciBCeSBEcm9wZG93biAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24gZmlsdGVyLWJ5LWRyb3Bkb3duXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJkcm9wZG93bi1idG4gZmlsdGVyLWJ5LWJ0blwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICdmaWxsZWQtYnRuJzogY29uZmlnPy5maWx0ZXJCdXR0b25TdHlsZSA9PT0gJ2ZpbGxlZCcsXHJcbiAgICAgICAgICAgICAgICAnb3V0bGluZWQtYnRuJzogY29uZmlnPy5maWx0ZXJCdXR0b25TdHlsZSA9PT0gJ291dGxpbmVkJ1xyXG4gICAgICAgICAgICB9XCIgKGNsaWNrKT1cInRvZ2dsZURyb3Bkb3duKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7Y29uZmlnPy5maWx0ZXJMYWJlbH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNhLWljb24gY2xhc3M9XCJmbGV4XCIgW2ljb25dPVwiJ2Rvd25DaGV2cm9uT3V0bGluZWQnXCIgW3NpemVdPVwiJzIwJ1wiPjwvc2EtaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tY29udGVudCBmaWx0ZXItYnktY29udGVudFwiICNmaWx0ZXJCeUNvbnRlbnQgKHRvdWNoc3RhcnQpPVwib25Ub3VjaFN0YXJ0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHRvdWNoZW5kKT1cIm9uVG91Y2hFbmQoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBEeW5hbWljIEZpbHRlciBJdGVtcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbmZpZz8uZmlsdGVySXRlbXNcIiBjbGFzcz1cImZpbHRlci1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItaGVhZGVyXCIgW2lkXT1cIml0ZW0udGV4dCsnSGVhZGVyJ1wiIChjbGljayk9XCJ0b2dnbGVTdWJtZW51KGl0ZW0udGV4dCwkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbHRlci1sYWJlbFwiPnt7aXRlbS50ZXh0fX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2EtaWNvbiAqbmdJZj1cIml0ZW0/LnN1Yk1lbnU/Lmxlbmd0aFwiIFtpY29uXT1cIidyaWdodENoZXZyb25PdXRsaW5lZCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaXplXT1cIicxNidcIj48L3NhLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbT8uc3ViTWVudT8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXN1Ym1lbnVcIiBbaWRdPVwiaXRlbS50ZXh0KydTdWJtZW51J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBpdGVtLnN1Yk1lbnVcIiBjbGFzcz1cImZpbHRlci1vcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQnOiBpc0ZpbHRlck9wdGlvblNlbGVjdGVkKGl0ZW0uaWQsIG9wdGlvbi52YWx1ZSl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEZpbHRlcigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7b3B0aW9uLmxhYmVsfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWljb25cIiAqbmdJZj1cIm9wdGlvbi5pY29uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2EtaWNvbiBjbGFzcz1cImZsZXhcIiBbaWNvbl09XCJvcHRpb24uaWNvbi5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvblBhdGhdPVwib3B0aW9uLmljb24uaWNvblBhdGhcIiBbaWNvblVybF09XCJvcHRpb24uaWNvbi5pY29uVXJsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCJvcHRpb24uaWNvbi5zaXplXCIgW2N1c3RvbUNsYXNzXT1cIm9wdGlvbi5pY29uLmN1c3RvbUNsYXNzXCI+PC9zYS1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudC1saWJyYXJ5L3NyYy9saWIvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnQtbGlicmFyeS9zcmMvbGliL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQWlDLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFTN0QsTUFBTSxPQUFPLGVBQWU7SUFRMUIsSUFBMkIsWUFBWSxDQUFDLEtBQW1CO1FBQ3pELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQWdCRCxZQUFvQixRQUFtQixFQUFVLFdBQXVCO1FBQXBELGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQTFCL0QsV0FBTSxHQUFpQjtZQUM5QixXQUFXLEVBQUUsV0FBVztZQUN4QixpQkFBaUIsRUFBRSxVQUFVO1lBQzdCLFdBQVcsRUFBRSxFQUFFO1NBQ2hCLENBQUM7UUFVUSxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQ3BELG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFDMUQs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QUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNFLFFBQVEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0E5T1UsZUFBZTtrR0FBZixlQUFlLHNZQ2I1Qiw0MkdBbURNLGc2SEQxQ00sWUFBWSw4VkFBRSxhQUFhLG9NQUFFLGdCQUFnQiw4QkFBRSxnQkFBZ0I7OzJGQUk5RCxlQUFlO2tCQVAzQixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDO3VHQU1qRSxNQUFNO3NCQUFkLEtBQUs7Z0JBTXFCLFlBQVk7c0JBQXRDLEtBQUs7dUJBQUMsY0FBYztnQkFNUyxlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFFbEIsWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi9pY29uL2ljb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzYS1maWx0ZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbkNvbXBvbmVudCwgSHR0cENsaWVudE1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgY29uZmlnOiBGaWx0ZXJDb25maWcgPSB7XHJcbiAgICBmaWx0ZXJMYWJlbDogJ0ZpbHRlciBieScsXHJcbiAgICBmaWx0ZXJCdXR0b25TdHlsZTogJ291dGxpbmVkJyxcclxuICAgIGZpbHRlckl0ZW1zOiBbXVxyXG4gIH07XHJcbiAgXHJcbiAgQElucHV0KCdmaWx0ZXJWYWx1ZXMnKSBzZXQgZmlsdGVyVmFsdWVzKHZhbHVlOiBGaWx0ZXJDb25maWcpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLmNvbmZpZyA9IHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgnZmlsdGVyQnlDb250ZW50JykgZmlsdGVyQnlDb250ZW50ITogRWxlbWVudFJlZjtcclxuICBcclxuICBAT3V0cHV0KCkgb25DbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxGaWx0ZXJDbGlja0V2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBmaWx0ZXJTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsdGVyU2VsZWN0aW9uRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGZpbHRlclJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbHRlclJlbW92YWxFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgZHJvcGRvd25Ub2dnbGVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICB0b3VjaFN0YXJ0WSA9IDA7XHJcbiAgdG91Y2hFbmRZID0gMDtcclxuICBkcm9wZG93bkFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBzZWxlY3RlZEZpbHRlcnM6IFJlY29yZDxzdHJpbmcsIEZpbHRlclNlbGVjdGlvbj4gPSB7fTtcclxuICBzdWJtZW51QWN0aXZlOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHRoaXMuaGFuZGxlR2xvYmFsQ2xpY2soZSkpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdrZXlkb3duJywgKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcclxuICAgICAgaWYgKGUua2V5ID09PSAnRXNjYXBlJykgdGhpcy5jbG9zZUFsbCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ3Jlc2l6ZScsICgpID0+IHRoaXMuaGFuZGxlUmVzaXplKCkpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlRHJvcGRvd24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGNvbnN0IGRyb3Bkb3duID0gdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5kcm9wZG93bicpO1xyXG4gICAgZHJvcGRvd24uY2xhc3NMaXN0LnRvZ2dsZSgnYWN0aXZlJyk7XHJcbiAgICB0aGlzLmRyb3Bkb3duQWN0aXZlID0gZHJvcGRvd24uY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKTtcclxuICAgIHRoaXMuZHJvcGRvd25Ub2dnbGVkLmVtaXQodGhpcy5kcm9wZG93bkFjdGl2ZSk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVTdWJtZW51KGVsZW1lbnQ6IGFueSwgZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBjb25zdCBjdXJyZW50SGVhZGVyID0gKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xyXG4gICAgY29uc3QgY3VycmVudEl0ZW0gPSBjdXJyZW50SGVhZGVyLmNsb3Nlc3QoJy5maWx0ZXItaXRlbScpO1xyXG5cclxuICAgIC8vIENsb3NlIGFsbCBvdGhlciBmaWx0ZXIgaXRlbXNcclxuICAgIGNvbnN0IGFsbEl0ZW1zID0gdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5maWx0ZXItaXRlbScpO1xyXG4gICAgYWxsSXRlbXMuZm9yRWFjaCgoaXRlbTogSFRNTEVsZW1lbnQpID0+IHtcclxuICAgICAgaWYgKGl0ZW0gIT09IGN1cnJlbnRJdGVtKSB7XHJcbiAgICAgICAgaXRlbS5jbGFzc0xpc3QucmVtb3ZlKCdhY3RpdmUnKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gVG9nZ2xlIHRoZSBjdXJyZW50IGl0ZW1cclxuICAgIGN1cnJlbnRJdGVtLmNsYXNzTGlzdC50b2dnbGUoJ2FjdGl2ZScpO1xyXG5cclxuICAgIC8vIElmIGl0J3Mgbm93IGFjdGl2ZSwgcG9zaXRpb24gaXRzIHN1Ym1lbnVcclxuICAgIGlmIChjdXJyZW50SXRlbS5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpKSB7XHJcbiAgICAgIGNvbnN0IHN1Ym1lbnUgPSBjdXJyZW50SXRlbS5xdWVyeVNlbGVjdG9yKCcuZmlsdGVyLXN1Ym1lbnUnKTtcclxuICAgICAgdGhpcy5wb3NpdGlvblN1Ym1lbnUoc3VibWVudSBhcyBIVE1MRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIExlZ2FjeSBldmVudFxyXG4gICAgdGhpcy5vbkNsaWNrRXZlbnQuZW1pdCh7IFxyXG4gICAgICBldmVudDogJ2NsaWNrJywgXHJcbiAgICAgIHR5cGU6ICdNZW51JywgXHJcbiAgICAgIGl0ZW06IGVsZW1lbnQsXHJcbiAgICAgIGZpbHRlclR5cGU6IGVsZW1lbnQsXHJcbiAgICAgIGlzQWN0aXZlOiBjdXJyZW50SXRlbS5jbGFzc0xpc3QuY29udGFpbnMoJ2FjdGl2ZScpXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBUb2dnbGUgYWN0aXZlIHN0YXRlXHJcbiAgICBjb25zdCBpc0FjdGl2ZSA9IHRoaXMuc3VibWVudUFjdGl2ZVtlbGVtZW50XTtcclxuICAgIHRoaXMuc3VibWVudUFjdGl2ZSA9IHt9OyAvLyBjbG9zZSBhbGxcclxuICAgIGlmICghaXNBY3RpdmUpIHtcclxuICAgICAgdGhpcy5zdWJtZW51QWN0aXZlW2VsZW1lbnRdID0gdHJ1ZTsgLy8gb3BlbiBjdXJyZW50XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RGaWx0ZXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICBjb25zdCBvcHRpb24gPSBldmVudC5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgY29uc3QgdmFsdWUgPSBvcHRpb24uZGF0YXNldFsndmFsdWUnXSB8fCAnJztcclxuICAgIGNvbnN0IHRleHQgPSBvcHRpb24ucXVlcnlTZWxlY3Rvcignc3BhbicpPy50ZXh0Q29udGVudCB8fCAnJztcclxuXHJcbiAgICAvLyBGaW5kIHBhcmVudCBzdWJtZW51IGFuZCBpdHMgZmlsdGVyIHR5cGVcclxuICAgIGNvbnN0IHN1Ym1lbnUgPSBvcHRpb24uY2xvc2VzdCgnLmZpbHRlci1zdWJtZW51JykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXN1Ym1lbnUgfHwgIXN1Ym1lbnUuaWQuZW5kc1dpdGgoJ1N1Ym1lbnUnKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGZpbHRlclR5cGUgPSBzdWJtZW51LmlkLnJlcGxhY2UoJ1N1Ym1lbnUnLCAnJyk7XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgdGhpcyBmaWx0ZXIgaXMgYWxyZWFkeSBzZWxlY3RlZCAodG9nZ2xlIGZ1bmN0aW9uYWxpdHkpXHJcbiAgICBjb25zdCBpc0N1cnJlbnRseVNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZEZpbHRlcnNbZmlsdGVyVHlwZV0gJiYgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVyc1tmaWx0ZXJUeXBlXS52YWx1ZSA9PT0gdmFsdWU7XHJcblxyXG4gICAgaWYgKGlzQ3VycmVudGx5U2VsZWN0ZWQpIHtcclxuICAgICAgLy8gUmVtb3ZlIHRoZSBmaWx0ZXIgaWYgaXQncyBhbHJlYWR5IHNlbGVjdGVkXHJcbiAgICAgIHRoaXMucmVtb3ZlRmlsdGVyKGZpbHRlclR5cGUpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRGVzZWxlY3QgYWxsIG9wdGlvbnMgaW4gdGhpcyBzdWJtZW51XHJcbiAgICBzdWJtZW51LnF1ZXJ5U2VsZWN0b3JBbGwoJy5maWx0ZXItb3B0aW9uJykuZm9yRWFjaCgoZWw6IEhUTUxFbGVtZW50KSA9PiBlbC5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3RlZCcpKTtcclxuXHJcbiAgICAvLyBTZWxlY3QgdGhlIGNsaWNrZWQgb3B0aW9uXHJcbiAgICBvcHRpb24uY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTtcclxuXHJcbiAgICAvLyBTdG9yZSBzZWxlY3RlZCBmaWx0ZXJcclxuICAgIGNvbnN0IHNlbGVjdGlvbjogRmlsdGVyU2VsZWN0aW9uID0geyB2YWx1ZSwgdGV4dCwgZmlsdGVyVHlwZSB9O1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnNbZmlsdGVyVHlwZV0gPSBzZWxlY3Rpb247XHJcblxyXG4gICAgLy8gRW1pdCBlbmhhbmNlZCBldmVudHNcclxuICAgIHRoaXMuZmlsdGVyU2VsZWN0ZWQuZW1pdCh7XHJcbiAgICAgIGZpbHRlclR5cGUsXHJcbiAgICAgIHNlbGVjdGlvbixcclxuICAgICAgYWxsU2VsZWN0aW9uczogeyAuLi50aGlzLnNlbGVjdGVkRmlsdGVycyB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBMZWdhY3kgZXZlbnRcclxuICAgIHRoaXMub25DbGlja0V2ZW50LmVtaXQoeyBcclxuICAgICAgZXZlbnQ6ICdjbGljaycsIFxyXG4gICAgICB0eXBlOiAnU3ViIE1lbnUnLCBcclxuICAgICAgaXRlbTogdmFsdWUsXHJcbiAgICAgIGZpbHRlclR5cGUsXHJcbiAgICAgIHNlbGVjdGlvblxyXG4gICAgfSk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsb3NlQWxsKCksIDEwMCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVGaWx0ZXIodHlwZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCByZW1vdmVkU2VsZWN0aW9uID0gdGhpcy5zZWxlY3RlZEZpbHRlcnNbdHlwZV07XHJcbiAgICBkZWxldGUgdGhpcy5zZWxlY3RlZEZpbHRlcnNbdHlwZV07XHJcbiAgICBcclxuICAgIGNvbnN0IHN1Ym1lbnUgPSB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgIyR7dHlwZX1TdWJtZW51YCk7XHJcbiAgICBpZiAoc3VibWVudSkge1xyXG4gICAgICBzdWJtZW51LnF1ZXJ5U2VsZWN0b3JBbGwoJy5maWx0ZXItb3B0aW9uJykuZm9yRWFjaCgob3B0OiBIVE1MRWxlbWVudCkgPT4gb3B0LmNsYXNzTGlzdC5yZW1vdmUoJ3NlbGVjdGVkJykpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEVtaXQgcmVtb3ZhbCBldmVudFxyXG4gICAgdGhpcy5maWx0ZXJSZW1vdmVkLmVtaXQoe1xyXG4gICAgICBmaWx0ZXJUeXBlOiB0eXBlLFxyXG4gICAgICByZW1vdmVkU2VsZWN0aW9uLFxyXG4gICAgICByZW1haW5pbmdTZWxlY3Rpb25zOiB7IC4uLnRoaXMuc2VsZWN0ZWRGaWx0ZXJzIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gSGVscGVyIG1ldGhvZCB0byBjaGVjayBpZiBhIGZpbHRlciBvcHRpb24gaXMgc2VsZWN0ZWRcclxuICBpc0ZpbHRlck9wdGlvblNlbGVjdGVkKGZpbHRlclR5cGU6IHN0cmluZywgb3B0aW9uVmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzW2ZpbHRlclR5cGVdICYmIFxyXG4gICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzW2ZpbHRlclR5cGVdLnZhbHVlID09PSBvcHRpb25WYWx1ZTtcclxuICB9XHJcblxyXG4gIC8vIFB1YmxpYyBtZXRob2QgdG8gZ2V0IGN1cnJlbnQgc2VsZWN0aW9uc1xyXG4gIGdldFNlbGVjdGVkRmlsdGVycygpOiBSZWNvcmQ8c3RyaW5nLCBGaWx0ZXJTZWxlY3Rpb24+IHtcclxuICAgIHJldHVybiB7IC4uLnRoaXMuc2VsZWN0ZWRGaWx0ZXJzIH07XHJcbiAgfVxyXG5cclxuICAvLyBQdWJsaWMgbWV0aG9kIHRvIGNsZWFyIGFsbCBmaWx0ZXJzXHJcbiAgY2xlYXJBbGxGaWx0ZXJzKCk6IHZvaWQge1xyXG4gICAgT2JqZWN0LmtleXModGhpcy5zZWxlY3RlZEZpbHRlcnMpLmZvckVhY2godHlwZSA9PiB7XHJcbiAgICAgIHRoaXMucmVtb3ZlRmlsdGVyKHR5cGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBQdWJsaWMgbWV0aG9kIHRvIHNldCBmaWx0ZXJzIHByb2dyYW1tYXRpY2FsbHlcclxuICBzZXRGaWx0ZXJzKGZpbHRlcnM6IFJlY29yZDxzdHJpbmcsIEZpbHRlclNlbGVjdGlvbj4pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzID0geyAuLi5maWx0ZXJzIH07XHJcbiAgICAvLyBVcGRhdGUgVUkgdG8gcmVmbGVjdCBzZWxlY3Rpb25zXHJcbiAgICBPYmplY3QuZW50cmllcyhmaWx0ZXJzKS5mb3JFYWNoKChbdHlwZSwgc2VsZWN0aW9uXSkgPT4ge1xyXG4gICAgICBjb25zdCBzdWJtZW51ID0gdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3R5cGV9U3VibWVudWApO1xyXG4gICAgICBpZiAoc3VibWVudSkge1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbiA9IHN1Ym1lbnUucXVlcnlTZWxlY3RvcihgW2RhdGEtdmFsdWU9XCIke3NlbGVjdGlvbi52YWx1ZX1cIl1gKTtcclxuICAgICAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgICAgICBvcHRpb24uY2xhc3NMaXN0LmFkZCgnc2VsZWN0ZWQnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VBbGwoKTogdm9pZCB7XHJcbiAgICBjb25zdCBkcm9wZG93biA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24nKTtcclxuICAgIGRyb3Bkb3duLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpO1xyXG4gICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5maWx0ZXItaXRlbScpLmZvckVhY2goKGl0ZW06IEhUTUxFbGVtZW50KSA9PiBpdGVtLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUdsb2JhbENsaWNrKGU6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBlLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICghdGFyZ2V0LmNsb3Nlc3QoJy5kcm9wZG93bicpKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VBbGwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHBvc2l0aW9uU3VibWVudShzdWJtZW51OiBIVE1MRWxlbWVudCk6IHZvaWQge1xyXG4gICAgaWYgKCFzdWJtZW51KSByZXR1cm47XHJcbiAgICBzdWJtZW51LmNsYXNzTGlzdC5yZW1vdmUoJ3Nob3ctbGVmdCcpO1xyXG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDc2OCkgcmV0dXJuO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlY3QgPSBzdWJtZW51LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBpZiAocmVjdC5sZWZ0ICsgc3VibWVudS5vZmZzZXRXaWR0aCA+IHdpbmRvdy5pbm5lcldpZHRoIC0gMjApIHtcclxuICAgICAgICBzdWJtZW51LmNsYXNzTGlzdC5hZGQoJ3Nob3ctbGVmdCcpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVSZXNpemUoKTogdm9pZCB7XHJcbiAgICBjbGVhclRpbWVvdXQoKHRoaXMgYXMgYW55KS5fcmVzaXplVGltZW91dCk7XHJcbiAgICAodGhpcyBhcyBhbnkpLl9yZXNpemVUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmNsb3NlQWxsKCksIDI1MCk7XHJcbiAgfVxyXG5cclxuICBvblRvdWNoU3RhcnQoZTogVG91Y2hFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy50b3VjaFN0YXJ0WSA9IGUuY2hhbmdlZFRvdWNoZXNbMF0uc2NyZWVuWTtcclxuICB9XHJcblxyXG4gIG9uVG91Y2hFbmQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRvdWNoRW5kWSA9IGV2ZW50IGluc3RhbmNlb2YgVG91Y2hFdmVudCA/IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLnNjcmVlblkgOiAwO1xyXG4gICAgdGhpcy5oYW5kbGVTd2lwZUdlc3R1cmUoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVN3aXBlR2VzdHVyZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN3aXBlVGhyZXNob2xkID0gNTA7XHJcbiAgICBjb25zdCBzd2lwZURpc3RhbmNlID0gdGhpcy50b3VjaFN0YXJ0WSAtIHRoaXMudG91Y2hFbmRZO1xyXG4gICAgaWYgKHN3aXBlRGlzdGFuY2UgPCAtc3dpcGVUaHJlc2hvbGQgJiYgdGhpcy5maWx0ZXJCeUNvbnRlbnQubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPT09IDApIHtcclxuICAgICAgY29uc3QgZHJvcGRvd24gPSB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duJyk7XHJcbiAgICAgIGRyb3Bkb3duLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc21vb3RoU2Nyb2xsVG9Ub3AoKTogdm9pZCB7XHJcbiAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcclxuICB9XHJcblxyXG59XHJcblxyXG4vLyBFbmhhbmNlZCBpbnRlcmZhY2VzXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyQ29uZmlnIHtcclxuICBmaWx0ZXJMYWJlbDogc3RyaW5nO1xyXG4gIGZpbHRlckJ1dHRvblN0eWxlPzogJ2ZpbGxlZCcgfCAnb3V0bGluZWQnO1xyXG4gIGZpbHRlckl0ZW1zOiBGaWx0ZXJDYXRlZ29yeVtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckNhdGVnb3J5IHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHRleHQ6IHN0cmluZztcclxuICBzdWJNZW51PzogRmlsdGVyT3B0aW9uW107XHJcbiAgdG9vbHRpcD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJPcHRpb24ge1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICB0b29sdGlwPzogc3RyaW5nO1xyXG4gIGljb24/OiB7XHJcbiAgICBpY29uOiBzdHJpbmc7XHJcbiAgICBzaXplOiBzdHJpbmc7XHJcbiAgICBpY29uUGF0aD86IHN0cmluZztcclxuICAgIGljb25Vcmw/OiBzdHJpbmc7XHJcbiAgICBjdXN0b21DbGFzcz86IHN0cmluZztcclxuICAgIHRvb2x0aXA/OiBzdHJpbmc7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJTZWxlY3Rpb24ge1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgdGV4dDogc3RyaW5nO1xyXG4gIGZpbHRlclR5cGU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJDbGlja0V2ZW50IHtcclxuICBldmVudDogc3RyaW5nO1xyXG4gIHR5cGU6ICdNZW51JyB8ICdTdWIgTWVudSc7XHJcbiAgaXRlbTogYW55O1xyXG4gIGZpbHRlclR5cGU/OiBzdHJpbmc7XHJcbiAgc2VsZWN0aW9uPzogRmlsdGVyU2VsZWN0aW9uO1xyXG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJTZWxlY3Rpb25FdmVudCB7XHJcbiAgZmlsdGVyVHlwZTogc3RyaW5nO1xyXG4gIHNlbGVjdGlvbjogRmlsdGVyU2VsZWN0aW9uO1xyXG4gIGFsbFNlbGVjdGlvbnM6IFJlY29yZDxzdHJpbmcsIEZpbHRlclNlbGVjdGlvbj47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyUmVtb3ZhbEV2ZW50IHtcclxuICBmaWx0ZXJUeXBlOiBzdHJpbmc7XHJcbiAgcmVtb3ZlZFNlbGVjdGlvbj86IEZpbHRlclNlbGVjdGlvbjtcclxuICByZW1haW5pbmdTZWxlY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBGaWx0ZXJTZWxlY3Rpb24+O1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDwhLS0gTWFpbiBGaWx0ZXIgQnkgRHJvcGRvd24gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duIGZpbHRlci1ieS1kcm9wZG93blwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZHJvcGRvd24tYnRuIGZpbHRlci1ieS1idG5cIiBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAnZmlsbGVkLWJ0bic6IGNvbmZpZz8uZmlsdGVyQnV0dG9uU3R5bGUgPT09ICdmaWxsZWQnLFxyXG4gICAgICAgICAgICAgICAgJ291dGxpbmVkLWJ0bic6IGNvbmZpZz8uZmlsdGVyQnV0dG9uU3R5bGUgPT09ICdvdXRsaW5lZCdcclxuICAgICAgICAgICAgfVwiIChjbGljayk9XCJ0b2dnbGVEcm9wZG93bigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57e2NvbmZpZz8uZmlsdGVyTGFiZWx9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzYS1pY29uIGNsYXNzPVwiZmxleFwiIFtpY29uXT1cIidkb3duQ2hldnJvbk91dGxpbmVkJ1wiIFtzaXplXT1cIicyMCdcIj48L3NhLWljb24+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWNvbnRlbnQgZmlsdGVyLWJ5LWNvbnRlbnRcIiAjZmlsdGVyQnlDb250ZW50ICh0b3VjaHN0YXJ0KT1cIm9uVG91Y2hTdGFydCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICh0b3VjaGVuZCk9XCJvblRvdWNoRW5kKClcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gRHluYW1pYyBGaWx0ZXIgSXRlbXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb25maWc/LmZpbHRlckl0ZW1zXCIgY2xhc3M9XCJmaWx0ZXItaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWhlYWRlclwiIFtpZF09XCJpdGVtLnRleHQrJ0hlYWRlcidcIiAoY2xpY2spPVwidG9nZ2xlU3VibWVudShpdGVtLnRleHQsJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWx0ZXItbGFiZWxcIj57e2l0ZW0udGV4dH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNhLWljb24gKm5nSWY9XCJpdGVtPy5zdWJNZW51Py5sZW5ndGhcIiBbaWNvbl09XCIncmlnaHRDaGV2cm9uT3V0bGluZWQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2l6ZV09XCInMTYnXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiaXRlbT8udG9vbHRpcCB8fCAnJ1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cImN1c3RvbS10b29sdGlwXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0b29sdGlwLWljb24gZC1mbGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cIiFpdGVtPy50b29sdGlwXCI+PC9zYS1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0/LnN1Yk1lbnU/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbHRlci1zdWJtZW51XCIgW2lkXT1cIml0ZW0udGV4dCsnU3VibWVudSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgaXRlbS5zdWJNZW51XCIgY2xhc3M9XCJmaWx0ZXItb3B0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS12YWx1ZV09XCJvcHRpb24udmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJzogaXNGaWx0ZXJPcHRpb25TZWxlY3RlZChpdGVtLmlkLCBvcHRpb24udmFsdWUpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RGaWx0ZXIoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e29wdGlvbi5sYWJlbH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby1pY29uXCIgKm5nSWY9XCJvcHRpb24uaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNhLWljb24gY2xhc3M9XCJmbGV4XCIgW2ljb25dPVwib3B0aW9uLmljb24uaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25QYXRoXT1cIm9wdGlvbi5pY29uLmljb25QYXRoXCIgW2ljb25VcmxdPVwib3B0aW9uLmljb24uaWNvblVybFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NpemVdPVwib3B0aW9uLmljb24uc2l6ZVwiIFtjdXN0b21DbGFzc109XCJvcHRpb24uaWNvbi5jdXN0b21DbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwib3B0aW9uLmRlc2NyaXB0aW9uIHx8IG9wdGlvbi50b29sdGlwIHx8IG9wdGlvbi5pY29uLnRvb2x0aXAgfHwgJydcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJjdXN0b20tdG9vbHRpcFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidG9vbHRpcC1pY29uIGQtZmxleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBEaXNhYmxlZF09XCIhKG9wdGlvbi5kZXNjcmlwdGlvbiB8fCBvcHRpb24udG9vbHRpcCB8fCBvcHRpb24uaWNvbi50b29sdGlwKVwiPjwvc2EtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19