ngx-histaff-alpha 4.7.5 → 4.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/app/libraries/core-common-param-kit/core-common-param-kit/core-common-param-kit.component.mjs +1 -1
- package/esm2022/lib/app/libraries/core-compare-db-pipeline/core-compare-db-pipeline.component.mjs +38 -6
- package/fesm2022/ngx-histaff-alpha.mjs +37 -5
- package/fesm2022/ngx-histaff-alpha.mjs.map +1 -1
- package/lib/app/libraries/core-compare-db-pipeline/core-compare-db-pipeline.component.d.ts +4 -0
- package/lib/app/libraries/core-table/core-table.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -316,4 +316,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImpor
|
|
|
316
316
|
}], onChange: [{
|
|
317
317
|
type: Output
|
|
318
318
|
}] } });
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb21tb24tcGFyYW0ta2l0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbW1vbi1wYXJhbS1raXQvY29yZS1jb21tb24tcGFyYW0ta2l0L2NvcmUtY29tbW9uLXBhcmFtLWtpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1jb21tb24tcGFyYW0ta2l0L2NvcmUtY29tbW9uLXBhcmFtLWtpdC9jb3JlLWNvbW1vbi1wYXJhbS1raXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFLMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUNySCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUN6SCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQzs7OztBQWtCekcsTUFBTSxP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QkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csK0JBQStCO3NCQUF2QyxLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJQ29yZUNoZWNrbGlzdE9wdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUtY2hlY2tsaXN0L2NvcmUtY2hlY2tsaXN0L2NvcmUtY2hlY2tsaXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElDb3JlUGFyYW1Db250cm9sIH0gZnJvbSAnLi4vLi4vY29yZS1oZWFkZXItcGFyYW1zL2VudW0tYW5kLWludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBFbnVtRm9ybUJhc2VDb250b2xUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bS9FbnVtRm9ybUJhc2VDb250b2xUeXBlJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtY29tcG9uZW50L2Jhc2UvYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgYXBpIH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwcC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUZvcm1hdGVkUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lGb3JtYXRlZFJlc3BvbnNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvcmVIZWFkZXJQYXJhbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWhlYWRlci1wYXJhbXMvY29yZS1oZWFkZXItcGFyYW1zL2NvcmUtaGVhZGVyLXBhcmFtcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci9FbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSc7XHJcbmltcG9ydCB7IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUgfSBmcm9tICcuLi8uLi9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS5jb21wb25lbnQnO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvcmVDb21tb25QYXJhbUtpdEV2ZW50RW1pdHRlckRhdGEge1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgdmFsdWU6IGFueTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdjb3JlLWNvbW1vbi1wYXJhbS1raXQnLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgQ29yZUhlYWRlclBhcmFtc0NvbXBvbmVudCxcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWNvbW1vbi1wYXJhbS1raXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvcmUtY29tbW9uLXBhcmFtLWtpdC5jb21wb25lbnQuc2NzcyddXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUNvbW1vblBhcmFtS2l0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgaGlkZGVuTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVuYWJsZVRpbWVab25lQ29udmVydGVyRm9yRGF0ZVRpbWVQZXJpb2RQYXJhbWV0ZXJzITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkYXRlUGVyaW9kQ29tcGFyaXNvbkZvciE6IHN0cmluZztcclxuICBASW5wdXQoKSBkYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5ITogRW51bVRyYW5zbGF0ZUtleTtcclxuICBASW5wdXQoKSBzdGF0dXNJbmNsdXNpb25Gb3IhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3RhdHVzSW5jbHVzaW9uRm9yTGFiZWxLZXkhOiBFbnVtVHJhbnNsYXRlS2V5O1xyXG4gIEBJbnB1dCgpIHN0YXR1c09wdGlvbnNBcGkhOiBhcGk7XHJcbiAgQElucHV0KCkgc2hvd09yZ1BhcmFtITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzaG93T3JnUGFyYW1Ecm9wZG93biE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaGlkZURhdGVQZXJpb2RDb21wYXJpc29uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoaWRlU3RhdHVzSW5jbHVzaW9uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoaWRlR2VuZXJhbFNlYXJjaCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc3RhdHVzT3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElDb3JlQ2hlY2tsaXN0T3B0aW9uW10+KFtdKTtcclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElDb3JlQ29tbW9uUGFyYW1LaXRFdmVudEVtaXR0ZXJEYXRhPigpO1xyXG5cclxuICBpc0VtcGxveWVlU3RhdHVzQ2FzZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBvbk5nTW9kZWxDaGFuZ2UgPSAobmdNb2RlbDogc3RyaW5nLCB2YWx1ZTogYW55KSA9PiB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xyXG4gICAgICBmaWVsZDogbmdNb2RlbCxcclxuICAgICAgdmFsdWUsXHJcbiAgICB9KTtcclxuICB9O1xyXG5cclxuICBwYXJhbVJvd3MhOiBJQ29yZVBhcmFtQ29udHJvbFtdW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG92ZXJyaWRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcFNlcnZpY2U6IEFwcFNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKG1scyk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBjb25zdCBzdGF0dXNJZHNJbml0aWFsVmFsdWU6IGFueVtdID0gW107XHJcbiAgICAvLyBwcmVwYXJlIHN0YXR1c0lkcyBpbml0aWFsIHZhbHVlXHJcbiAgICBpZiAodGhpcy5zdGF0dXNPcHRpb25zJC52YWx1ZSkge1xyXG4gICAgICB0aGlzLnN0YXR1c09wdGlvbnMkLnZhbHVlLmZpbHRlcih4ID0+IHguY2hlY2tlZCkubWFwKHggPT4ge1xyXG4gICAgICAgIHN0YXR1c0lkc0luaXRpYWxWYWx1ZS5wdXNoKHgudmFsdWUpO1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSgoeCkgPT4gKHRoaXMubGFuZyA9IHgpKSk7XHJcblxyXG4gICAgaWYgKCEhdGhpcy5oaWRkZW5Nb2RlKSB7XHJcbiAgICAgIGlmICghIXRoaXMuaGlkZURhdGVQZXJpb2RDb21wYXJpc29uKSB7XHJcbiAgICAgICAgdGhpcy5wYXJhbVJvd3MgPSBbXHJcbiAgICAgICAgICBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBmbGV4U2l6ZTogMTIsXHJcbiAgICAgICAgICAgICAgbmFtZTogJ29yZ0lkcycsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbDogW10sXHJcbiAgICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX0hVX09SR0FOSVpBVElPTl9JRFMsXHJcbiAgICAgICAgICAgICAgY29udHJvbFR5cGU6IHRoaXMuc2hvd09yZ1BhcmFtID8gRW51bUZvcm1CYXNlQ29udG9sVHlwZS5TRUVLRVIgOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLk9SR19QQVJBTV9EUk9QRE9XTixcclxuICAgICAgICAgICAgICBzZWVrZXJTb3VyY2VUeXBlOiB0aGlzLnNob3dPcmdQYXJhbSA/IEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlLk9SR0FOSVpBVElPTl9VTklUX1NFRUsgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgaGlkZGVuOiAhdGhpcy5zaG93T3JnUGFyYW0gJiYgIXRoaXMuc2hvd09yZ1BhcmFtRHJvcGRvd24sXHJcbiAgICAgICAgICAgICAgYWNjZXNzb3JNb2RlOiB0aGlzLnNob3dPcmdQYXJhbSA/IHVuZGVmaW5lZCA6IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUuQ0hFQ0tFRCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF1cclxuICAgICAgICBdXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5wYXJhbVJvd3MgPSBbXHJcbiAgICAgICAgICBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBmbGV4U2l6ZTogMTIsXHJcbiAgICAgICAgICAgICAgbmFtZTogJ29yZ0lkcycsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbDogJycsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX0hVX09SR0FOSVpBVElPTl9JRFMsXHJcbiAgICAgICAgICAgICAgY29udHJvbFR5cGU6ICEhdGhpcy5zaG93T3JnUGFyYW0gPyBFbnVtRm9ybUJhc2VDb250b2xUeXBlLlNFRUtFUiA6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuT1JHX1BBUkFNX0RST1BET1dOLFxyXG4gICAgICAgICAgICAgIHNlZWtlclNvdXJjZVR5cGU6IHRoaXMuc2hvd09yZ1BhcmFtID8gRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUuT1JHQU5JWkFUSU9OX1VOSVRfU0VFSyA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICBoaWRkZW46ICF0aGlzLnNob3dPcmdQYXJhbSAmJiAhdGhpcy5zaG93T3JnUGFyYW1Ecm9wZG93bixcclxuICAgICAgICAgICAgICBhY2Nlc3Nvck1vZGU6IHRoaXMuc2hvd09yZ1BhcmFtID8gdW5kZWZpbmVkIDogRW51bUNvcmVPcmdUcmVlYUFjY2Vzc29yTW9kZS5DSEVDS0VELFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICAgIFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGZsZXhTaXplOiA2LFxyXG4gICAgICAgICAgICAgIG5hbWU6ICdkYXRlRnJvbScsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbDogbnVsbCxcclxuICAgICAgICAgICAgICBuZ01vZGVsQ2hhbmdlOiB0aGlzLm9uTmdNb2RlbENoYW5nZSxcclxuICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICAgICAgICBoaWRkZW46IHRoaXMuaGlkZURhdGVQZXJpb2RDb21wYXJpc29uLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmRhdGVQZXJpb2RDb21wYXJpc29uRm9yTGFiZWxLZXksXHJcbiAgICAgICAgICAgICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuREFURVBJQ0tFUixcclxuICAgICAgICAgICAgICBwb3B1cEFsaWduOiAncmlnaHQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBmbGV4U2l6ZTogNixcclxuICAgICAgICAgICAgICBuYW1lOiAnZGF0ZVRvJyxcclxuICAgICAgICAgICAgICBuZ01vZGVsOiBudWxsLFxyXG4gICAgICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgICAgIGhpZGRlbjogdGhpcy5oaWRlRGF0ZVBlcmlvZENvbXBhcmlzb24sXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleSxcclxuICAgICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5EQVRFUElDS0VSLFxyXG4gICAgICAgICAgICAgIHBvcHVwQWxpZ246ICdyaWdodCdcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgXTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCEhdGhpcy5oaWRlRGF0ZVBlcmlvZENvbXBhcmlzb24pIHtcclxuICAgICAgICB0aGlzLnBhcmFtUm93cyA9IFtcclxuICAgICAgICAgIFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGZsZXhTaXplOiAzLFxyXG4gICAgICAgICAgICAgIG5hbWU6ICdvcmdJZHMnLFxyXG4gICAgICAgICAgICAgIG5nTW9kZWw6ICcnLFxyXG4gICAgICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcclxuICAgICAgICAgICAgICBsYWJlbDogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9IVV9PUkdBTklaQVRJT05fSURTLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiB0aGlzLnNob3dPcmdQYXJhbSA/IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuU0VFS0VSIDogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5PUkdfUEFSQU1fRFJPUERPV04sXHJcbiAgICAgICAgICAgICAgc2Vla2VyU291cmNlVHlwZTogdGhpcy5zaG93T3JnUGFyYW0gPyBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZS5PUkdBTklaQVRJT05fVU5JVF9TRUVLIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgIGhpZGRlbjogIXRoaXMuc2hvd09yZ1BhcmFtICYmICF0aGlzLnNob3dPcmdQYXJhbURyb3Bkb3duLFxyXG4gICAgICAgICAgICAgIGFjY2Vzc29yTW9kZTogdGhpcy5zaG93T3JnUGFyYW0gPyB1bmRlZmluZWQgOiBFbnVtQ29yZU9yZ1RyZWVhQWNjZXNzb3JNb2RlLkNIRUNLRUQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIC8vIHtcclxuICAgICAgICAgICAgLy8gICBmbGV4U2l6ZTogMyxcclxuICAgICAgICAgICAgLy8gICBuYW1lOiAnZ2VuZXJhbFNlYXJjaCcsXHJcbiAgICAgICAgICAgIC8vICAgbmdNb2RlbDogJycsXHJcbiAgICAgICAgICAgIC8vICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgIC8vICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgICAvLyAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfUEFSQU1TX0dFTkVSQUxfU0VBUkNILFxyXG4gICAgICAgICAgICAvLyAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLlRFWFRCT1gsXHJcbiAgICAgICAgICAgIC8vICAgaGlkZGVuOiB0aGlzLmhpZGVHZW5lcmFsU2VhcmNoXHJcbiAgICAgICAgICAgIC8vIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBmbGV4U2l6ZTogIXRoaXMuaGlkZUdlbmVyYWxTZWFyY2ggPyAzIDogMTAsXHJcbiAgICAgICAgICAgICAgbmFtZTogJ3N0YXR1c0lkcycsXHJcbiAgICAgICAgICAgICAgd2lkdGg6IDI1MCxcclxuICAgICAgICAgICAgICBuZ01vZGVsOiBzdGF0dXNJZHNJbml0aWFsVmFsdWUsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmhpZGVTdGF0dXNJbmNsdXNpb24sXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuc3RhdHVzSW5jbHVzaW9uRm9yTGFiZWxLZXksXHJcbiAgICAgICAgICAgICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuQ0hFQ0tMSVNULFxyXG4gICAgICAgICAgICAgIGNoZWNrbGlzdE9wdGlvbnMkOiB0aGlzLnN0YXR1c09wdGlvbnMkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnBhcmFtUm93cyA9IFtcclxuICAgICAgICAgIFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGZsZXhTaXplOiAwLFxyXG4gICAgICAgICAgICAgIHdpZHRoOiAzMDAsXHJcbiAgICAgICAgICAgICAgbmFtZTogJ29yZ0lkcycsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbDogJycsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX0hVX09SR0FOSVpBVElPTl9JRFMsXHJcbiAgICAgICAgICAgICAgY29udHJvbFR5cGU6IHRoaXMuc2hvd09yZ1BhcmFtID8gRW51bUZvcm1CYXNlQ29udG9sVHlwZS5TRUVLRVIgOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLk9SR19QQVJBTV9EUk9QRE9XTixcclxuICAgICAgICAgICAgICBzZWVrZXJTb3VyY2VUeXBlOiB0aGlzLnNob3dPcmdQYXJhbSA/IEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlLk9SR0FOSVpBVElPTl9VTklUX1NFRUsgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgaGlkZGVuOiAhdGhpcy5zaG93T3JnUGFyYW0gJiYgIXRoaXMuc2hvd09yZ1BhcmFtRHJvcGRvd24sXHJcbiAgICAgICAgICAgICAgYWNjZXNzb3JNb2RlOiB0aGlzLnNob3dPcmdQYXJhbSA/IHVuZGVmaW5lZCA6IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUuQ0hFQ0tFRCxcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIC8qXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBmbGV4U2l6ZTogMyxcclxuICAgICAgICAgICAgICBuYW1lOiAnZ2VuZXJhbFNlYXJjaCcsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbDogJycsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfUEFSQU1TX0dFTkVSQUxfU0VBUkNILFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLlRFWFRCT1gsXHJcbiAgICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmhpZGVHZW5lcmFsU2VhcmNoXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICovXHJcblxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgZmxleFNpemU6IDAsXHJcbiAgICAgICAgICAgICAgd2lkdGg6IDE1MCxcclxuICAgICAgICAgICAgICBuYW1lOiAnZGF0ZUZyb20nLFxyXG4gICAgICAgICAgICAgIG5nTW9kZWw6IG51bGwsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmhpZGVEYXRlUGVyaW9kQ29tcGFyaXNvbixcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5kYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5LFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkRBVEVQSUNLRVIsXHJcbiAgICAgICAgICAgICAgLy9wb3B1cEFsaWduOiAncmlnaHQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBmbGV4U2l6ZTogMCxcclxuICAgICAgICAgICAgICB3aWR0aDogMTUwLFxyXG4gICAgICAgICAgICAgIG5hbWU6ICdkYXRlVG8nLFxyXG4gICAgICAgICAgICAgIG5nTW9kZWw6IG51bGwsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmhpZGVEYXRlUGVyaW9kQ29tcGFyaXNvbixcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5kYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5LFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkRBVEVQSUNLRVIsXHJcbiAgICAgICAgICAgICAgLy9wb3B1cEFsaWduOiAncmlnaHQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBmbGV4U2l6ZTogMCxcclxuICAgICAgICAgICAgICB3aWR0aDogMjUwLFxyXG4gICAgICAgICAgICAgIG5hbWU6ICdzdGF0dXNJZHMnLFxyXG4gICAgICAgICAgICAgIG5nTW9kZWw6IHN0YXR1c0lkc0luaXRpYWxWYWx1ZSxcclxuICAgICAgICAgICAgICBuZ01vZGVsQ2hhbmdlOiB0aGlzLm9uTmdNb2RlbENoYW5nZSxcclxuICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICAgICAgICBoaWRkZW46IHRoaXMuaGlkZVN0YXR1c0luY2x1c2lvbixcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5zdGF0dXNJbmNsdXNpb25Gb3JMYWJlbEtleSxcclxuICAgICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5DSEVDS0xJU1QsXHJcbiAgICAgICAgICAgICAgY2hlY2tsaXN0T3B0aW9ucyQ6IHRoaXMuc3RhdHVzT3B0aW9ucyQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuc3RhdHVzT3B0aW9ucyQuc3Vic2NyaWJlKHhzID0+IHtcclxuICAgICAgICAgIGNvbnN0IG5ld1N0YXR1c1ZhbHVlOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgICAgeHMuZmlsdGVyKHggPT4gISF4LmNoZWNrZWQpLm1hcCh5ID0+IHtcclxuICAgICAgICAgICAgbmV3U3RhdHVzVmFsdWUucHVzaCh5LnZhbHVlKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLnBhcmFtUm93c1swXS5maWx0ZXIobSA9PiBtLm5hbWUgPT09ICdzdGF0dXNJZHMnKTtcclxuICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgIGZpbHRlclswXS5uZ01vZGVsID0gbmV3U3RhdHVzVmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICBpZiAoISF0aGlzLnN0YXR1c09wdGlvbnNBcGkpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuXHJcbiAgICAgICAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG5cclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLmdldCh0aGlzLnN0YXR1c09wdGlvbnNBcGkgKyAnP2xhbmc9JyArIHgpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHgub2sgJiYgeC5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBib2R5OiBJRm9ybWF0ZWRSZXNwb25zZSA9IHguYm9keTtcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHkuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIE7hur91IGzDoCB0cuG6oW5nIHRow6FpIG5ow6JuIHZpw6puLCBjaOG7iSBjaGVjayBt4bq3YyDEkeG7i25oIFwixJBhbmcgbMOgbSB2aeG7h2NcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFRyw6FpIGzhuqFpIHRow6wgY2hlY2sgdOG6pXRcclxuXHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYm9keS5pbm5lckJvZHkubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpID0gYm9keS5pbm5lckJvZHlbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGkudHlwZUNvZGUgPT09IFwiRU1QX1NUQVRVU1wiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNFbXBsb3llZVN0YXR1c0Nhc2UgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld09wdGlvbnM6IElDb3JlQ2hlY2tsaXN0T3B0aW9uW10gPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLm1scy50cmFucyhFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfUEFSQU1TX0NPTU1PTl9OVUxMX1NUQVRVUywgdGhpcy5sYW5nKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZDogdGhpcy5pc0VtcGxveWVlU3RhdHVzQ2FzZSA/IGZhbHNlIDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgfV07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1N0YXR1c0lkczogKG51bWJlciB8IG51bGwpW10gPSAhIXRoaXMuaXNFbXBsb3llZVN0YXR1c0Nhc2UgPyBbXSA6IFtudWxsXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgYm9keS5pbm5lckJvZHkubWFwKChtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIG5ld09wdGlvbnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBtLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6ICEhdGhpcy5pc0VtcGxveWVlU3RhdHVzQ2FzZSA/IChtLmNvZGUgPT09IFwiRVNXXCIpIDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoISF0aGlzLmlzRW1wbG95ZWVTdGF0dXNDYXNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtLmNvZGUgPT09IFwiRVNXXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0dXNJZHMucHVzaChtLmlkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3RhdHVzSWRzLnB1c2gobS5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzT3B0aW9ucyQubmV4dChuZXdPcHRpb25zKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJhbVJvd3MubWFwKHJvdyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICByb3cubWFwKGNvbHVtbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW4ubmFtZSA9PT0gJ3N0YXR1c0lkcycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4ubmdNb2RlbCA9IG5ld1N0YXR1c0lkcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgZmllbGQ6IFwic3RhdHVzSWRzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmV3U3RhdHVzSWRzXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfSlcclxuXHJcblxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29yZS1jb21tb24tcGFyYW0ta2l0LWNvbnRhaW5lclwiIFtjbGFzcy5tbDVdPVwiIWhpZGRlbk1vZGVcIj5cclxuICAgIDxjb3JlLWhlYWRlci1wYXJhbXMgW3Jvd3NdPVwicGFyYW1Sb3dzXCI+PC9jb3JlLWhlYWRlci1wYXJhbXM+XHJcbjwvZGl2PiJdfQ==
|
|
319
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb21tb24tcGFyYW0ta2l0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbW1vbi1wYXJhbS1raXQvY29yZS1jb21tb24tcGFyYW0ta2l0L2NvcmUtY29tbW9uLXBhcmFtLWtpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1jb21tb24tcGFyYW0ta2l0L2NvcmUtY29tbW9uLXBhcmFtLWtpdC9jb3JlLWNvbW1vbi1wYXJhbS1raXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEdBQUcsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd2QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFLMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUNySCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUN6SCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQzs7OztBQWtCekcsTUFBTSxP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QkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csK0JBQStCO3NCQUF2QyxLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJQ29yZUNoZWNrbGlzdE9wdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUtY2hlY2tsaXN0L2NvcmUtY2hlY2tsaXN0L2NvcmUtY2hlY2tsaXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElDb3JlUGFyYW1Db250cm9sIH0gZnJvbSAnLi4vLi4vY29yZS1oZWFkZXItcGFyYW1zL2VudW0tYW5kLWludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBFbnVtRm9ybUJhc2VDb250b2xUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZW51bS9FbnVtRm9ybUJhc2VDb250b2xUeXBlJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtY29tcG9uZW50L2Jhc2UvYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgYXBpIH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FwcC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUZvcm1hdGVkUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL0lGb3JtYXRlZFJlc3BvbnNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvcmVIZWFkZXJQYXJhbXNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlLWhlYWRlci1wYXJhbXMvY29yZS1oZWFkZXItcGFyYW1zL2NvcmUtaGVhZGVyLXBhcmFtcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSB9IGZyb20gJy4uLy4uL2NvcmUtZm9ybS1jb250cm9sLXNlZWtlci9FbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZSc7XHJcbmltcG9ydCB7IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUgfSBmcm9tICcuLi8uLi9jb3JlLW9yZy10cmVlL2NvcmUtb3JnLXRyZWUvY29yZS1vcmctdHJlZS5jb21wb25lbnQnO1xyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvcmVDb21tb25QYXJhbUtpdEV2ZW50RW1pdHRlckRhdGEge1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgdmFsdWU6IGFueTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvcmUtY29tbW9uLXBhcmFtLWtpdCcsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgICAgIENvcmVIZWFkZXJQYXJhbXNDb21wb25lbnQsXHJcbiAgICBdLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtY29tbW9uLXBhcmFtLWtpdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb3JlLWNvbW1vbi1wYXJhbS1raXQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUNvbW1vblBhcmFtS2l0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgaGlkZGVuTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVuYWJsZVRpbWVab25lQ29udmVydGVyRm9yRGF0ZVRpbWVQZXJpb2RQYXJhbWV0ZXJzITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkYXRlUGVyaW9kQ29tcGFyaXNvbkZvciE6IHN0cmluZztcclxuICBASW5wdXQoKSBkYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5ITogRW51bVRyYW5zbGF0ZUtleTtcclxuICBASW5wdXQoKSBzdGF0dXNJbmNsdXNpb25Gb3IhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3RhdHVzSW5jbHVzaW9uRm9yTGFiZWxLZXkhOiBFbnVtVHJhbnNsYXRlS2V5O1xyXG4gIEBJbnB1dCgpIHN0YXR1c09wdGlvbnNBcGkhOiBhcGk7XHJcbiAgQElucHV0KCkgc2hvd09yZ1BhcmFtITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzaG93T3JnUGFyYW1Ecm9wZG93biE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaGlkZURhdGVQZXJpb2RDb21wYXJpc29uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoaWRlU3RhdHVzSW5jbHVzaW9uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoaWRlR2VuZXJhbFNlYXJjaCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc3RhdHVzT3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElDb3JlQ2hlY2tsaXN0T3B0aW9uW10+KFtdKTtcclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElDb3JlQ29tbW9uUGFyYW1LaXRFdmVudEVtaXR0ZXJEYXRhPigpO1xyXG5cclxuICBpc0VtcGxveWVlU3RhdHVzQ2FzZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBvbk5nTW9kZWxDaGFuZ2UgPSAobmdNb2RlbDogc3RyaW5nLCB2YWx1ZTogYW55KSA9PiB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xyXG4gICAgICBmaWVsZDogbmdNb2RlbCxcclxuICAgICAgdmFsdWUsXHJcbiAgICB9KTtcclxuICB9O1xyXG5cclxuICBwYXJhbVJvd3MhOiBJQ29yZVBhcmFtQ29udHJvbFtdW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG92ZXJyaWRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFwcFNlcnZpY2U6IEFwcFNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKG1scyk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBjb25zdCBzdGF0dXNJZHNJbml0aWFsVmFsdWU6IGFueVtdID0gW107XHJcbiAgICAvLyBwcmVwYXJlIHN0YXR1c0lkcyBpbml0aWFsIHZhbHVlXHJcbiAgICBpZiAodGhpcy5zdGF0dXNPcHRpb25zJC52YWx1ZSkge1xyXG4gICAgICB0aGlzLnN0YXR1c09wdGlvbnMkLnZhbHVlLmZpbHRlcih4ID0+IHguY2hlY2tlZCkubWFwKHggPT4ge1xyXG4gICAgICAgIHN0YXR1c0lkc0luaXRpYWxWYWx1ZS5wdXNoKHgudmFsdWUpO1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSgoeCkgPT4gKHRoaXMubGFuZyA9IHgpKSk7XHJcblxyXG4gICAgaWYgKCEhdGhpcy5oaWRkZW5Nb2RlKSB7XHJcbiAgICAgIGlmICghIXRoaXMuaGlkZURhdGVQZXJpb2RDb21wYXJpc29uKSB7XHJcbiAgICAgICAgdGhpcy5wYXJhbVJvd3MgPSBbXHJcbiAgICAgICAgICBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBmbGV4U2l6ZTogMTIsXHJcbiAgICAgICAgICAgICAgbmFtZTogJ29yZ0lkcycsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbDogW10sXHJcbiAgICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX0hVX09SR0FOSVpBVElPTl9JRFMsXHJcbiAgICAgICAgICAgICAgY29udHJvbFR5cGU6IHRoaXMuc2hvd09yZ1BhcmFtID8gRW51bUZvcm1CYXNlQ29udG9sVHlwZS5TRUVLRVIgOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLk9SR19QQVJBTV9EUk9QRE9XTixcclxuICAgICAgICAgICAgICBzZWVrZXJTb3VyY2VUeXBlOiB0aGlzLnNob3dPcmdQYXJhbSA/IEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlLk9SR0FOSVpBVElPTl9VTklUX1NFRUsgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgaGlkZGVuOiAhdGhpcy5zaG93T3JnUGFyYW0gJiYgIXRoaXMuc2hvd09yZ1BhcmFtRHJvcGRvd24sXHJcbiAgICAgICAgICAgICAgYWNjZXNzb3JNb2RlOiB0aGlzLnNob3dPcmdQYXJhbSA/IHVuZGVmaW5lZCA6IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUuQ0hFQ0tFRCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF1cclxuICAgICAgICBdXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5wYXJhbVJvd3MgPSBbXHJcbiAgICAgICAgICBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBmbGV4U2l6ZTogMTIsXHJcbiAgICAgICAgICAgICAgbmFtZTogJ29yZ0lkcycsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbDogJycsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX0hVX09SR0FOSVpBVElPTl9JRFMsXHJcbiAgICAgICAgICAgICAgY29udHJvbFR5cGU6ICEhdGhpcy5zaG93T3JnUGFyYW0gPyBFbnVtRm9ybUJhc2VDb250b2xUeXBlLlNFRUtFUiA6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuT1JHX1BBUkFNX0RST1BET1dOLFxyXG4gICAgICAgICAgICAgIHNlZWtlclNvdXJjZVR5cGU6IHRoaXMuc2hvd09yZ1BhcmFtID8gRW51bUNvcmVGb3JtQ29udHJvbFNlZWtlclNvdXJjZVR5cGUuT1JHQU5JWkFUSU9OX1VOSVRfU0VFSyA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgICBoaWRkZW46ICF0aGlzLnNob3dPcmdQYXJhbSAmJiAhdGhpcy5zaG93T3JnUGFyYW1Ecm9wZG93bixcclxuICAgICAgICAgICAgICBhY2Nlc3Nvck1vZGU6IHRoaXMuc2hvd09yZ1BhcmFtID8gdW5kZWZpbmVkIDogRW51bUNvcmVPcmdUcmVlYUFjY2Vzc29yTW9kZS5DSEVDS0VELFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXSxcclxuICAgICAgICAgIFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGZsZXhTaXplOiA2LFxyXG4gICAgICAgICAgICAgIG5hbWU6ICdkYXRlRnJvbScsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbDogbnVsbCxcclxuICAgICAgICAgICAgICBuZ01vZGVsQ2hhbmdlOiB0aGlzLm9uTmdNb2RlbENoYW5nZSxcclxuICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICAgICAgICBoaWRkZW46IHRoaXMuaGlkZURhdGVQZXJpb2RDb21wYXJpc29uLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmRhdGVQZXJpb2RDb21wYXJpc29uRm9yTGFiZWxLZXksXHJcbiAgICAgICAgICAgICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuREFURVBJQ0tFUixcclxuICAgICAgICAgICAgICBwb3B1cEFsaWduOiAncmlnaHQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBmbGV4U2l6ZTogNixcclxuICAgICAgICAgICAgICBuYW1lOiAnZGF0ZVRvJyxcclxuICAgICAgICAgICAgICBuZ01vZGVsOiBudWxsLFxyXG4gICAgICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgICAgIGhpZGRlbjogdGhpcy5oaWRlRGF0ZVBlcmlvZENvbXBhcmlzb24sXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleSxcclxuICAgICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5EQVRFUElDS0VSLFxyXG4gICAgICAgICAgICAgIHBvcHVwQWxpZ246ICdyaWdodCdcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIF0sXHJcbiAgICAgICAgXTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCEhdGhpcy5oaWRlRGF0ZVBlcmlvZENvbXBhcmlzb24pIHtcclxuICAgICAgICB0aGlzLnBhcmFtUm93cyA9IFtcclxuICAgICAgICAgIFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGZsZXhTaXplOiAzLFxyXG4gICAgICAgICAgICAgIG5hbWU6ICdvcmdJZHMnLFxyXG4gICAgICAgICAgICAgIG5nTW9kZWw6ICcnLFxyXG4gICAgICAgICAgICAgIG5nTW9kZWxDaGFuZ2U6IHRoaXMub25OZ01vZGVsQ2hhbmdlLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiAnJyxcclxuICAgICAgICAgICAgICBsYWJlbDogRW51bVRyYW5zbGF0ZUtleS5VSV9FTlRJVFlfRklFTERfQ0FQVElPTl9IVV9PUkdBTklaQVRJT05fSURTLFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiB0aGlzLnNob3dPcmdQYXJhbSA/IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuU0VFS0VSIDogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5PUkdfUEFSQU1fRFJPUERPV04sXHJcbiAgICAgICAgICAgICAgc2Vla2VyU291cmNlVHlwZTogdGhpcy5zaG93T3JnUGFyYW0gPyBFbnVtQ29yZUZvcm1Db250cm9sU2Vla2VyU291cmNlVHlwZS5PUkdBTklaQVRJT05fVU5JVF9TRUVLIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgIGhpZGRlbjogIXRoaXMuc2hvd09yZ1BhcmFtICYmICF0aGlzLnNob3dPcmdQYXJhbURyb3Bkb3duLFxyXG4gICAgICAgICAgICAgIGFjY2Vzc29yTW9kZTogdGhpcy5zaG93T3JnUGFyYW0gPyB1bmRlZmluZWQgOiBFbnVtQ29yZU9yZ1RyZWVhQWNjZXNzb3JNb2RlLkNIRUNLRUQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIC8vIHtcclxuICAgICAgICAgICAgLy8gICBmbGV4U2l6ZTogMyxcclxuICAgICAgICAgICAgLy8gICBuYW1lOiAnZ2VuZXJhbFNlYXJjaCcsXHJcbiAgICAgICAgICAgIC8vICAgbmdNb2RlbDogJycsXHJcbiAgICAgICAgICAgIC8vICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgIC8vICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgICAvLyAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfUEFSQU1TX0dFTkVSQUxfU0VBUkNILFxyXG4gICAgICAgICAgICAvLyAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLlRFWFRCT1gsXHJcbiAgICAgICAgICAgIC8vICAgaGlkZGVuOiB0aGlzLmhpZGVHZW5lcmFsU2VhcmNoXHJcbiAgICAgICAgICAgIC8vIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBmbGV4U2l6ZTogIXRoaXMuaGlkZUdlbmVyYWxTZWFyY2ggPyAzIDogMTAsXHJcbiAgICAgICAgICAgICAgbmFtZTogJ3N0YXR1c0lkcycsXHJcbiAgICAgICAgICAgICAgd2lkdGg6IDI1MCxcclxuICAgICAgICAgICAgICBuZ01vZGVsOiBzdGF0dXNJZHNJbml0aWFsVmFsdWUsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmhpZGVTdGF0dXNJbmNsdXNpb24sXHJcbiAgICAgICAgICAgICAgbGFiZWw6IHRoaXMuc3RhdHVzSW5jbHVzaW9uRm9yTGFiZWxLZXksXHJcbiAgICAgICAgICAgICAgY29udHJvbFR5cGU6IEVudW1Gb3JtQmFzZUNvbnRvbFR5cGUuQ0hFQ0tMSVNULFxyXG4gICAgICAgICAgICAgIGNoZWNrbGlzdE9wdGlvbnMkOiB0aGlzLnN0YXR1c09wdGlvbnMkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIF1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnBhcmFtUm93cyA9IFtcclxuICAgICAgICAgIFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIGZsZXhTaXplOiAwLFxyXG4gICAgICAgICAgICAgIHdpZHRoOiAzMDAsXHJcbiAgICAgICAgICAgICAgbmFtZTogJ29yZ0lkcycsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbDogJycsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0VOVElUWV9GSUVMRF9DQVBUSU9OX0hVX09SR0FOSVpBVElPTl9JRFMsXHJcbiAgICAgICAgICAgICAgY29udHJvbFR5cGU6IHRoaXMuc2hvd09yZ1BhcmFtID8gRW51bUZvcm1CYXNlQ29udG9sVHlwZS5TRUVLRVIgOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLk9SR19QQVJBTV9EUk9QRE9XTixcclxuICAgICAgICAgICAgICBzZWVrZXJTb3VyY2VUeXBlOiB0aGlzLnNob3dPcmdQYXJhbSA/IEVudW1Db3JlRm9ybUNvbnRyb2xTZWVrZXJTb3VyY2VUeXBlLk9SR0FOSVpBVElPTl9VTklUX1NFRUsgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgaGlkZGVuOiAhdGhpcy5zaG93T3JnUGFyYW0gJiYgIXRoaXMuc2hvd09yZ1BhcmFtRHJvcGRvd24sXHJcbiAgICAgICAgICAgICAgYWNjZXNzb3JNb2RlOiB0aGlzLnNob3dPcmdQYXJhbSA/IHVuZGVmaW5lZCA6IEVudW1Db3JlT3JnVHJlZWFBY2Nlc3Nvck1vZGUuQ0hFQ0tFRCxcclxuICAgICAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIC8qXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBmbGV4U2l6ZTogMyxcclxuICAgICAgICAgICAgICBuYW1lOiAnZ2VuZXJhbFNlYXJjaCcsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbDogJycsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6ICcnLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfUEFSQU1TX0dFTkVSQUxfU0VBUkNILFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLlRFWFRCT1gsXHJcbiAgICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmhpZGVHZW5lcmFsU2VhcmNoXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICovXHJcblxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgZmxleFNpemU6IDAsXHJcbiAgICAgICAgICAgICAgd2lkdGg6IDE1MCxcclxuICAgICAgICAgICAgICBuYW1lOiAnZGF0ZUZyb20nLFxyXG4gICAgICAgICAgICAgIG5nTW9kZWw6IG51bGwsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmhpZGVEYXRlUGVyaW9kQ29tcGFyaXNvbixcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5kYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5LFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkRBVEVQSUNLRVIsXHJcbiAgICAgICAgICAgICAgLy9wb3B1cEFsaWduOiAncmlnaHQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBmbGV4U2l6ZTogMCxcclxuICAgICAgICAgICAgICB3aWR0aDogMTUwLFxyXG4gICAgICAgICAgICAgIG5hbWU6ICdkYXRlVG8nLFxyXG4gICAgICAgICAgICAgIG5nTW9kZWw6IG51bGwsXHJcbiAgICAgICAgICAgICAgbmdNb2RlbENoYW5nZTogdGhpcy5vbk5nTW9kZWxDaGFuZ2UsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICAgICAgaGlkZGVuOiB0aGlzLmhpZGVEYXRlUGVyaW9kQ29tcGFyaXNvbixcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5kYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5LFxyXG4gICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBFbnVtRm9ybUJhc2VDb250b2xUeXBlLkRBVEVQSUNLRVIsXHJcbiAgICAgICAgICAgICAgLy9wb3B1cEFsaWduOiAncmlnaHQnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBmbGV4U2l6ZTogMCxcclxuICAgICAgICAgICAgICB3aWR0aDogMjUwLFxyXG4gICAgICAgICAgICAgIG5hbWU6ICdzdGF0dXNJZHMnLFxyXG4gICAgICAgICAgICAgIG5nTW9kZWw6IHN0YXR1c0lkc0luaXRpYWxWYWx1ZSxcclxuICAgICAgICAgICAgICBuZ01vZGVsQ2hhbmdlOiB0aGlzLm9uTmdNb2RlbENoYW5nZSxcclxuICAgICAgICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICAgICAgICBoaWRkZW46IHRoaXMuaGlkZVN0YXR1c0luY2x1c2lvbixcclxuICAgICAgICAgICAgICBsYWJlbDogdGhpcy5zdGF0dXNJbmNsdXNpb25Gb3JMYWJlbEtleSxcclxuICAgICAgICAgICAgICBjb250cm9sVHlwZTogRW51bUZvcm1CYXNlQ29udG9sVHlwZS5DSEVDS0xJU1QsXHJcbiAgICAgICAgICAgICAgY2hlY2tsaXN0T3B0aW9ucyQ6IHRoaXMuc3RhdHVzT3B0aW9ucyQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICBdLFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuc3RhdHVzT3B0aW9ucyQuc3Vic2NyaWJlKHhzID0+IHtcclxuICAgICAgICAgIGNvbnN0IG5ld1N0YXR1c1ZhbHVlOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgICAgeHMuZmlsdGVyKHggPT4gISF4LmNoZWNrZWQpLm1hcCh5ID0+IHtcclxuICAgICAgICAgICAgbmV3U3RhdHVzVmFsdWUucHVzaCh5LnZhbHVlKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLnBhcmFtUm93c1swXS5maWx0ZXIobSA9PiBtLm5hbWUgPT09ICdzdGF0dXNJZHMnKTtcclxuICAgICAgICAgIGlmIChmaWx0ZXIubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgIGZpbHRlclswXS5uZ01vZGVsID0gbmV3U3RhdHVzVmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICBpZiAoISF0aGlzLnN0YXR1c09wdGlvbnNBcGkpIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuXHJcbiAgICAgICAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG5cclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5hcHBTZXJ2aWNlLmdldCh0aGlzLnN0YXR1c09wdGlvbnNBcGkgKyAnP2xhbmc9JyArIHgpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHgub2sgJiYgeC5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBib2R5OiBJRm9ybWF0ZWRSZXNwb25zZSA9IHguYm9keTtcclxuICAgICAgICAgICAgICAgICAgaWYgKGJvZHkuc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8vIE7hur91IGzDoCB0cuG6oW5nIHRow6FpIG5ow6JuIHZpw6puLCBjaOG7iSBjaGVjayBt4bq3YyDEkeG7i25oIFwixJBhbmcgbMOgbSB2aeG7h2NcIlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIFRyw6FpIGzhuqFpIHRow6wgY2hlY2sgdOG6pXRcclxuXHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYm9keS5pbm5lckJvZHkubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpID0gYm9keS5pbm5lckJvZHlbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKGkudHlwZUNvZGUgPT09IFwiRU1QX1NUQVRVU1wiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNFbXBsb3llZVN0YXR1c0Nhc2UgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld09wdGlvbnM6IElDb3JlQ2hlY2tsaXN0T3B0aW9uW10gPSBbXHJcbiAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0aGlzLm1scy50cmFucyhFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfUEFSQU1TX0NPTU1PTl9OVUxMX1NUQVRVUywgdGhpcy5sYW5nKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZDogdGhpcy5pc0VtcGxveWVlU3RhdHVzQ2FzZSA/IGZhbHNlIDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgfV07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1N0YXR1c0lkczogKG51bWJlciB8IG51bGwpW10gPSAhIXRoaXMuaXNFbXBsb3llZVN0YXR1c0Nhc2UgPyBbXSA6IFtudWxsXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgYm9keS5pbm5lckJvZHkubWFwKChtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIG5ld09wdGlvbnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBtLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ6ICEhdGhpcy5pc0VtcGxveWVlU3RhdHVzQ2FzZSA/IChtLmNvZGUgPT09IFwiRVNXXCIpIDogdHJ1ZVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoISF0aGlzLmlzRW1wbG95ZWVTdGF0dXNDYXNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtLmNvZGUgPT09IFwiRVNXXCIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0dXNJZHMucHVzaChtLmlkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3RhdHVzSWRzLnB1c2gobS5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzT3B0aW9ucyQubmV4dChuZXdPcHRpb25zKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXJhbVJvd3MubWFwKHJvdyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICByb3cubWFwKGNvbHVtbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb2x1bW4ubmFtZSA9PT0gJ3N0YXR1c0lkcycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW4ubmdNb2RlbCA9IG5ld1N0YXR1c0lkcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgZmllbGQ6IFwic3RhdHVzSWRzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogbmV3U3RhdHVzSWRzXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfSlcclxuXHJcblxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29yZS1jb21tb24tcGFyYW0ta2l0LWNvbnRhaW5lclwiIFtjbGFzcy5tbDVdPVwiIWhpZGRlbk1vZGVcIj5cclxuICAgIDxjb3JlLWhlYWRlci1wYXJhbXMgW3Jvd3NdPVwicGFyYW1Sb3dzXCI+PC9jb3JlLWhlYWRlci1wYXJhbXM+XHJcbjwvZGl2PiJdfQ==
|
package/esm2022/lib/app/libraries/core-compare-db-pipeline/core-compare-db-pipeline.component.mjs
CHANGED
|
@@ -58,7 +58,7 @@ export class CoreCompareDbPipelineComponent extends BaseComponent {
|
|
|
58
58
|
caption: 'Target',
|
|
59
59
|
align: 'left',
|
|
60
60
|
sortDisabled: true,
|
|
61
|
-
width:
|
|
61
|
+
width: 200
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
64
|
field: 'tableName',
|
|
@@ -92,6 +92,14 @@ export class CoreCompareDbPipelineComponent extends BaseComponent {
|
|
|
92
92
|
sortDisabled: true,
|
|
93
93
|
width: 60
|
|
94
94
|
},
|
|
95
|
+
{
|
|
96
|
+
field: 'sourceIsIdentityColumn',
|
|
97
|
+
type: 'boolean',
|
|
98
|
+
caption: 'Source is Identity',
|
|
99
|
+
align: 'center',
|
|
100
|
+
sortDisabled: true,
|
|
101
|
+
width: 60
|
|
102
|
+
},
|
|
95
103
|
{
|
|
96
104
|
field: 'sourceNullability',
|
|
97
105
|
type: 'boolean',
|
|
@@ -140,6 +148,14 @@ export class CoreCompareDbPipelineComponent extends BaseComponent {
|
|
|
140
148
|
sortDisabled: true,
|
|
141
149
|
width: 60
|
|
142
150
|
},
|
|
151
|
+
{
|
|
152
|
+
field: 'targetIsIdentityColumn',
|
|
153
|
+
type: 'boolean',
|
|
154
|
+
caption: 'Target is Identity',
|
|
155
|
+
align: 'center',
|
|
156
|
+
sortDisabled: true,
|
|
157
|
+
width: 60
|
|
158
|
+
},
|
|
143
159
|
{
|
|
144
160
|
field: 'targetNullability',
|
|
145
161
|
type: 'boolean',
|
|
@@ -218,6 +234,14 @@ export class CoreCompareDbPipelineComponent extends BaseComponent {
|
|
|
218
234
|
if (!!tryFilterTargetIsPrimaryKey.length) {
|
|
219
235
|
tryFilterTargetIsPrimaryKey[0].templateRef = this.targetIsPrimaryKey;
|
|
220
236
|
}
|
|
237
|
+
const tryFilterSourceIsIdentityColumn = this.columns.filter(x => x.field === 'sourceIsIdentityColumn');
|
|
238
|
+
if (!!tryFilterSourceIsIdentityColumn.length) {
|
|
239
|
+
tryFilterSourceIsIdentityColumn[0].templateRef = this.sourceIsIdentityColumn;
|
|
240
|
+
}
|
|
241
|
+
const tryFilterTargetIsIdentityColumn = this.columns.filter(x => x.field === 'targetIsIdentityColumn');
|
|
242
|
+
if (!!tryFilterTargetIsIdentityColumn.length) {
|
|
243
|
+
tryFilterTargetIsIdentityColumn[0].templateRef = this.targetIsIdentityColumn;
|
|
244
|
+
}
|
|
221
245
|
const tryFilterSourceNullability = this.columns.filter(x => x.field === 'sourceNullability');
|
|
222
246
|
if (!!tryFilterSourceNullability.length) {
|
|
223
247
|
tryFilterSourceNullability[0].templateRef = this.sourceNullability;
|
|
@@ -246,11 +270,13 @@ export class CoreCompareDbPipelineComponent extends BaseComponent {
|
|
|
246
270
|
});
|
|
247
271
|
}
|
|
248
272
|
onSearching(e) {
|
|
273
|
+
console.log("onSearching", e);
|
|
249
274
|
const filtered = e.filter(x => !!x.searchFor.length);
|
|
250
|
-
|
|
275
|
+
const reqCloned = {
|
|
251
276
|
...this.request$.value,
|
|
252
277
|
filter: filtered
|
|
253
|
-
}
|
|
278
|
+
};
|
|
279
|
+
this.request$.next(JSON.parse(JSON.stringify(reqCloned)));
|
|
254
280
|
}
|
|
255
281
|
openRowResolver(event, context) {
|
|
256
282
|
event.stopPropagation();
|
|
@@ -297,7 +323,7 @@ export class CoreCompareDbPipelineComponent extends BaseComponent {
|
|
|
297
323
|
}
|
|
298
324
|
}
|
|
299
325
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: CoreCompareDbPipelineComponent, deps: [{ token: i1.MultiLanguageService }, { token: i2.AppService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
300
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: CoreCompareDbPipelineComponent, isStandalone: true, selector: "core-compare-db-pipeline", viewQueries: [{ propertyName: "toolBlock", first: true, predicate: ["toolBlock"], descendants: true }, { propertyName: "conflictType", first: true, predicate: ["conflictType"], descendants: true }, { propertyName: "sourceNullability", first: true, predicate: ["sourceNullability"], descendants: true }, { propertyName: "targetNullability", first: true, predicate: ["targetNullability"], descendants: true }, { propertyName: "sourceIsPrimaryKey", first: true, predicate: ["sourceIsPrimaryKey"], descendants: true }, { propertyName: "targetIsPrimaryKey", first: true, predicate: ["targetIsPrimaryKey"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"core-compare-db-pipeline-container\">\r\n <core-page-header [title]=\"'DB STRUCTURE COMPARE'\"\r\n [hideButtonGroup]=\"true\"></core-page-header>\r\n\r\n <core-tabs [headers]=\"tabHeaders\" [contents]=\"[]\" [height]=\"45\" [headerLineHeight]=\"45\"\r\n (onHeaderClick)=\"onCoreTabsHeaderClick($event)\">\r\n </core-tabs>\r\n\r\n\r\n <core-table [columns]=\"columns\" [height]=\"tableHeight\" [data]=\"data\" [loading]=\"loading\"\r\n [autoColumnFitAvailableSpace]=\"false\" [frozen]=\"3\" [lazyLoading]=\"true\" [headerFirstRowHeight]=\"80\"\r\n (onSearching)=\"onSearching($event)\"></core-table>\r\n <div class=\"h15\"></div>\r\n <div class=\"w-100 d-flex d-flex-between\">\r\n <div class=\"conflict-total\" [class.error]=\"!!conflictTotal\">\r\n {{ !!conflictTotal ? conflictTotal + ' conflicts found!' : 'No conflict found' }} \r\n </div>\r\n <core-pagination [$height]=\"46\" [$currentPage]=\"currentPage$\" [$pageCount]=\"pageCount\" [$loading]=\"loading\"\r\n [$background]=\"'#848484'\" [$fixedPageSize]=\"20\"\r\n [$suspendCurrentPageSubscription]=\"suspendCurrentPageSubscription$\"></core-pagination>\r\n </div>\r\n\r\n @if (showRowResolverWindow) {\r\n <div class=\"modal-container\">\r\n <div class=\"modal-content-root\">\r\n <div class=\"row-resolver-window\">\r\n <core-page-header [title]=\"'RESOLVER WINDOW'\" [hideButtonGroup]=\"true\"></core-page-header>\r\n <i class=\"close-icon pointer feather-x fs24\" (click)=\"closeRowResolver($event)\"></i>\r\n <textarea class=\"form-control\" [rows]=\"'10'\" style=\"height: 400px; padding: 15px;\" disabled>\r\n {{ sqlCommand }}\r\n </textarea>\r\n <button class=\"btn btn-primary\" (click)=\"resolve($event)\" style=\"margin-top: 15px;\">Run</button>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n <ng-template #conflictType let-context=\"context\">\r\n <div class=\"conflict-type-wrapper d-flex d-flex-between\" [appTooltip]=\"context.conflictType\" [showAnyway]=\"true\">\r\n \r\n @switch (context.conflictType) {\r\n @case ('TMIT') {\r\n <i [class]=\"'feather-layout ' + context.conflictType\"></i>\r\n }\r\n @case ('CMIT') {\r\n <i [class]=\"'feather-sidebar ' + context.conflictType\"></i>\r\n }\r\n @case ('CPKM') {\r\n <i [class]=\"'feather-zap ' + context.conflictType\"></i>\r\n }\r\n @case ('CTM') {\r\n <i [class]=\"'feather-type ' + context.conflictType\"></i>\r\n }\r\n @case ('CSM') {\r\n <i [class]=\"'feather-layers ' + context.conflictType\"></i>\r\n }\r\n @case ('CNM') {\r\n <i [class]=\"'feather-droplet ' + context.conflictType\"></i>\r\n }\r\n @case ('CPSM') {\r\n <i [class]=\"'feather-move ' + context.conflictType\"></i>\r\n }\r\n @case ('RT') {\r\n <i [class]=\"'feather-trash ' + context.conflictType\"></i>\r\n }\r\n @case ('RC') {\r\n <i [class]=\"'feather-trash ' + context.conflictType\"></i>\r\n }\r\n }\r\n\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #toolBlock let-context=\"context\">\r\n <div class=\"tools inter-font d-flex d-flex-start\">\r\n <div class=\"icon-wrapper\" [appTooltip]=\"'Resolve'\" [position]=\"'right'\" [showAnyway]=\"true\" (click)=\"openRowResolver($event, context)\">\r\n <i class=\"feather-play fs24\"></i>\r\n </div>\r\n <span>{{ context.difference }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template #sourceNullability let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.sourceNullability\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #targetNullability let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.targetNullability\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #sourceIsPrimaryKey let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.sourceIsPrimaryKey\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #targetIsPrimaryKey let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.targetIsPrimaryKey\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n</div>", styles: [".core-compare-db-pipeline-container .h15{height:15px}.core-compare-db-pipeline-container .tools{height:36px}.core-compare-db-pipeline-container .tools .icon-wrapper{color:#848484;opacity:.5;display:inline-flex;width:36px;height:36px;border-radius:50%}.core-compare-db-pipeline-container .tools .icon-wrapper:hover{opacity:1;color:#fff;background-color:#848484}.core-compare-db-pipeline-container .modal-content-root{padding-top:0}.core-compare-db-pipeline-container .close-icon{display:block;position:absolute;top:8px;right:8px;color:#848484}.core-compare-db-pipeline-container .close-icon:hover{color:inherit}.core-compare-db-pipeline-container .row-resolver-window{display:block;width:992px;max-width:100vw!important;height:500px}.core-compare-db-pipeline-container .conflict-total{height:50px;display:flex;align-items:center;justify-content:flex-start;color:#848484;font-size:24px;font-weight:700}.core-compare-db-pipeline-container .conflict-total.error{color:brown}.core-compare-db-pipeline-container .conflict-type-wrapper i{font-size:20px;font-weight:700}.core-compare-db-pipeline-container .conflict-type-wrapper .TMIT{color:red}.core-compare-db-pipeline-container .conflict-type-wrapper .CMIT{color:orange}.core-compare-db-pipeline-container .conflict-type-wrapper .CTM{color:#d2691e}.core-compare-db-pipeline-container .conflict-type-wrapper .CSM{color:#ffa07a}.core-compare-db-pipeline-container .conflict-type-wrapper .CNM{color:#ffb6c1}.core-compare-db-pipeline-container .conflict-type-wrapper .RT{color:red}.core-compare-db-pipeline-container .conflict-type-wrapper .RC{color:#d2691e}\n"], dependencies: [{ kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup"], outputs: ["buttonClick"] }, { kind: "component", type: CoreTableComponent, selector: "core-table", inputs: ["id", "width", "height", "showCheckbox", "checkboxSize", "outerButtons", "showTools", "tools", "checkingResetFlag", "borderRadius", "headerColor", "headerBackgroundColor", "headerWrap", "headerFirstRowHeight", "headerSecondRowHeight", "wrap", "allowCellScrollY", "loading", "rowHeight", "frozen", "footer", "columns", "data", "selectedIds", "corePageListInstanceNumber", "disableHighlightOnClick", "freeMode", "searchSwitchDisabled", "disableSorting", "inlineToolItems", "columnSearchDefaultOpen", "lazyLoading", "primaryKey", "rowHoverBgColor", "noPaddingCell", "autoColumnFitAvailableSpace"], outputs: ["onSearching", "onToolClick", "onRowClick", "onRowDoubleClick", "onSelectedIdsChange", "onSelectedDataChange", "onColumnCaptionClick"] }, { kind: "component", type: CorePaginationComponent, selector: "core-pagination", inputs: ["$currentPage", "$height", "$pageCount", "$loading", "$suspendCurrentPageSubscription", "$showAdd", "$background", "$fixedPageSize"], outputs: ["$onClickAdd"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CoreTabsComponent, selector: "core-tabs", inputs: ["headers", "contents", "headerTools", "height", "headerLineHeight"], outputs: ["onHeaderClick", "onToolItemClick"] }] }); }
|
|
326
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: CoreCompareDbPipelineComponent, isStandalone: true, selector: "core-compare-db-pipeline", viewQueries: [{ propertyName: "toolBlock", first: true, predicate: ["toolBlock"], descendants: true }, { propertyName: "conflictType", first: true, predicate: ["conflictType"], descendants: true }, { propertyName: "sourceNullability", first: true, predicate: ["sourceNullability"], descendants: true }, { propertyName: "targetNullability", first: true, predicate: ["targetNullability"], descendants: true }, { propertyName: "sourceIsPrimaryKey", first: true, predicate: ["sourceIsPrimaryKey"], descendants: true }, { propertyName: "targetIsPrimaryKey", first: true, predicate: ["targetIsPrimaryKey"], descendants: true }, { propertyName: "sourceIsIdentityColumn", first: true, predicate: ["sourceIsIdentityColumn"], descendants: true }, { propertyName: "targetIsIdentityColumn", first: true, predicate: ["targetIsIdentityColumn"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"core-compare-db-pipeline-container\">\r\n <core-page-header [title]=\"'DB STRUCTURE COMPARE'\"\r\n [hideButtonGroup]=\"true\"></core-page-header>\r\n\r\n <core-tabs [headers]=\"tabHeaders\" [contents]=\"[]\" [height]=\"45\" [headerLineHeight]=\"45\"\r\n (onHeaderClick)=\"onCoreTabsHeaderClick($event)\">\r\n </core-tabs>\r\n\r\n\r\n <core-table [columns]=\"columns\" [height]=\"tableHeight\" [data]=\"data\" [loading]=\"loading\"\r\n [autoColumnFitAvailableSpace]=\"false\" [frozen]=\"3\" [lazyLoading]=\"true\" [headerFirstRowHeight]=\"80\"\r\n (onSearching)=\"onSearching($event)\"></core-table>\r\n <div class=\"h15\"></div>\r\n <div class=\"w-100 d-flex d-flex-between\">\r\n <div class=\"conflict-total\" [class.error]=\"!!conflictTotal\">\r\n {{ !!loading ? 'Scanning for issues...' : (!!conflictTotal ? conflictTotal + ' conflicts found!' : 'No conflict found') }} \r\n </div>\r\n <core-pagination [$height]=\"46\" [$currentPage]=\"currentPage$\" [$pageCount]=\"pageCount\" [$loading]=\"loading\"\r\n [$background]=\"'#848484'\" [$fixedPageSize]=\"20\"\r\n [$suspendCurrentPageSubscription]=\"suspendCurrentPageSubscription$\"></core-pagination>\r\n </div>\r\n\r\n @if (showRowResolverWindow) {\r\n <div class=\"modal-container\">\r\n <div class=\"modal-content-root\">\r\n <div class=\"row-resolver-window\">\r\n <core-page-header [title]=\"'RESOLVER WINDOW'\" [hideButtonGroup]=\"true\"></core-page-header>\r\n <i class=\"close-icon pointer feather-x fs24\" (click)=\"closeRowResolver($event)\"></i>\r\n <textarea class=\"form-control\" [rows]=\"'10'\" style=\"height: 400px; padding: 15px;\" disabled>\r\n {{ sqlCommand }}\r\n </textarea>\r\n <button class=\"btn btn-primary\" (click)=\"resolve($event)\" style=\"margin-top: 15px;\">Run</button>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n <ng-template #conflictType let-context=\"context\">\r\n <div class=\"conflict-type-wrapper d-flex d-flex-between\" [appTooltip]=\"context.conflictType\" [showAnyway]=\"true\">\r\n \r\n @switch (context.conflictType) {\r\n @case ('TMIT') {\r\n <i [class]=\"'feather-layout ' + context.conflictType\"></i>\r\n }\r\n @case ('CMIT') {\r\n <i [class]=\"'feather-sidebar ' + context.conflictType\"></i>\r\n }\r\n @case ('CPKM') {\r\n <i [class]=\"'feather-zap ' + context.conflictType\"></i>\r\n }\r\n @case ('CTM') {\r\n <i [class]=\"'feather-type ' + context.conflictType\"></i>\r\n }\r\n @case ('CSM') {\r\n <i [class]=\"'feather-layers ' + context.conflictType\"></i>\r\n }\r\n @case ('CNM') {\r\n <i [class]=\"'feather-droplet ' + context.conflictType\"></i>\r\n }\r\n @case ('CPSM') {\r\n <i [class]=\"'feather-move ' + context.conflictType\"></i>\r\n }\r\n @case ('RT') {\r\n <i [class]=\"'feather-trash ' + context.conflictType\"></i>\r\n }\r\n @case ('RC') {\r\n <i [class]=\"'feather-trash ' + context.conflictType\"></i>\r\n }\r\n }\r\n\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #toolBlock let-context=\"context\">\r\n <div class=\"tools inter-font d-flex d-flex-start\">\r\n <div class=\"icon-wrapper\" [appTooltip]=\"'Resolve'\" [position]=\"'right'\" [showAnyway]=\"true\" (click)=\"openRowResolver($event, context)\">\r\n <i class=\"feather-play fs24\"></i>\r\n </div>\r\n <span>{{ context.difference }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template #sourceNullability let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.sourceNullability\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #targetNullability let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.targetNullability\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #sourceIsPrimaryKey let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.sourceIsPrimaryKey\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #sourceIsIdentityColumn let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.sourceIsIdentityColumn\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #targetIsPrimaryKey let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.targetIsPrimaryKey\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #targetIsIdentityColumn let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.targetIsIdentityColumn\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n\r\n</div>", styles: [".core-compare-db-pipeline-container .h15{height:15px}.core-compare-db-pipeline-container .tools{height:36px}.core-compare-db-pipeline-container .tools .icon-wrapper{color:#848484;opacity:.5;display:inline-flex;width:36px;height:36px;border-radius:50%}.core-compare-db-pipeline-container .tools .icon-wrapper:hover{opacity:1;color:#fff;background-color:#848484}.core-compare-db-pipeline-container .modal-content-root{padding-top:0}.core-compare-db-pipeline-container .close-icon{display:block;position:absolute;top:8px;right:8px;color:#848484}.core-compare-db-pipeline-container .close-icon:hover{color:inherit}.core-compare-db-pipeline-container .row-resolver-window{display:block;width:992px;max-width:100vw!important;height:500px}.core-compare-db-pipeline-container .conflict-total{height:50px;display:flex;align-items:center;justify-content:flex-start;color:#848484;font-size:24px;font-weight:700}.core-compare-db-pipeline-container .conflict-total.error{color:brown}.core-compare-db-pipeline-container .conflict-type-wrapper i{font-size:20px;font-weight:700}.core-compare-db-pipeline-container .conflict-type-wrapper .TMIT{color:red}.core-compare-db-pipeline-container .conflict-type-wrapper .CMIT{color:orange}.core-compare-db-pipeline-container .conflict-type-wrapper .CTM{color:#d2691e}.core-compare-db-pipeline-container .conflict-type-wrapper .CSM{color:#ffa07a}.core-compare-db-pipeline-container .conflict-type-wrapper .CNM{color:#ffb6c1}.core-compare-db-pipeline-container .conflict-type-wrapper .RT{color:red}.core-compare-db-pipeline-container .conflict-type-wrapper .RC{color:#d2691e}\n"], dependencies: [{ kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup"], outputs: ["buttonClick"] }, { kind: "component", type: CoreTableComponent, selector: "core-table", inputs: ["id", "width", "height", "showCheckbox", "checkboxSize", "outerButtons", "showTools", "tools", "checkingResetFlag", "borderRadius", "headerColor", "headerBackgroundColor", "headerWrap", "headerFirstRowHeight", "headerSecondRowHeight", "wrap", "allowCellScrollY", "loading", "rowHeight", "frozen", "footer", "columns", "data", "selectedIds", "corePageListInstanceNumber", "disableHighlightOnClick", "freeMode", "searchSwitchDisabled", "disableSorting", "inlineToolItems", "columnSearchDefaultOpen", "lazyLoading", "primaryKey", "rowHoverBgColor", "noPaddingCell", "autoColumnFitAvailableSpace"], outputs: ["onSearching", "onToolClick", "onRowClick", "onRowDoubleClick", "onSelectedIdsChange", "onSelectedDataChange", "onColumnCaptionClick"] }, { kind: "component", type: CorePaginationComponent, selector: "core-pagination", inputs: ["$currentPage", "$height", "$pageCount", "$loading", "$suspendCurrentPageSubscription", "$showAdd", "$background", "$fixedPageSize"], outputs: ["$onClickAdd"] }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }, { kind: "component", type: CoreCheckboxComponent, selector: "core-checkbox", inputs: ["text", "tooltipPosition", "tooltip", "inputValue", "disabled"], outputs: ["onClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CoreTabsComponent, selector: "core-tabs", inputs: ["headers", "contents", "headerTools", "height", "headerLineHeight"], outputs: ["onHeaderClick", "onToolItemClick"] }] }); }
|
|
301
327
|
}
|
|
302
328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: CoreCompareDbPipelineComponent, decorators: [{
|
|
303
329
|
type: Component,
|
|
@@ -310,7 +336,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImpor
|
|
|
310
336
|
CoreCheckboxComponent,
|
|
311
337
|
FormsModule,
|
|
312
338
|
CoreTabsComponent
|
|
313
|
-
], template: "<div class=\"core-compare-db-pipeline-container\">\r\n <core-page-header [title]=\"'DB STRUCTURE COMPARE'\"\r\n [hideButtonGroup]=\"true\"></core-page-header>\r\n\r\n <core-tabs [headers]=\"tabHeaders\" [contents]=\"[]\" [height]=\"45\" [headerLineHeight]=\"45\"\r\n (onHeaderClick)=\"onCoreTabsHeaderClick($event)\">\r\n </core-tabs>\r\n\r\n\r\n <core-table [columns]=\"columns\" [height]=\"tableHeight\" [data]=\"data\" [loading]=\"loading\"\r\n [autoColumnFitAvailableSpace]=\"false\" [frozen]=\"3\" [lazyLoading]=\"true\" [headerFirstRowHeight]=\"80\"\r\n (onSearching)=\"onSearching($event)\"></core-table>\r\n <div class=\"h15\"></div>\r\n <div class=\"w-100 d-flex d-flex-between\">\r\n <div class=\"conflict-total\" [class.error]=\"!!conflictTotal\">\r\n {{ !!conflictTotal ? conflictTotal + ' conflicts found!' : 'No conflict found' }} \r\n </div>\r\n <core-pagination [$height]=\"46\" [$currentPage]=\"currentPage$\" [$pageCount]=\"pageCount\" [$loading]=\"loading\"\r\n [$background]=\"'#848484'\" [$fixedPageSize]=\"20\"\r\n [$suspendCurrentPageSubscription]=\"suspendCurrentPageSubscription$\"></core-pagination>\r\n </div>\r\n\r\n @if (showRowResolverWindow) {\r\n <div class=\"modal-container\">\r\n <div class=\"modal-content-root\">\r\n <div class=\"row-resolver-window\">\r\n <core-page-header [title]=\"'RESOLVER WINDOW'\" [hideButtonGroup]=\"true\"></core-page-header>\r\n <i class=\"close-icon pointer feather-x fs24\" (click)=\"closeRowResolver($event)\"></i>\r\n <textarea class=\"form-control\" [rows]=\"'10'\" style=\"height: 400px; padding: 15px;\" disabled>\r\n {{ sqlCommand }}\r\n </textarea>\r\n <button class=\"btn btn-primary\" (click)=\"resolve($event)\" style=\"margin-top: 15px;\">Run</button>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n <ng-template #conflictType let-context=\"context\">\r\n <div class=\"conflict-type-wrapper d-flex d-flex-between\" [appTooltip]=\"context.conflictType\" [showAnyway]=\"true\">\r\n \r\n @switch (context.conflictType) {\r\n @case ('TMIT') {\r\n <i [class]=\"'feather-layout ' + context.conflictType\"></i>\r\n }\r\n @case ('CMIT') {\r\n <i [class]=\"'feather-sidebar ' + context.conflictType\"></i>\r\n }\r\n @case ('CPKM') {\r\n <i [class]=\"'feather-zap ' + context.conflictType\"></i>\r\n }\r\n @case ('CTM') {\r\n <i [class]=\"'feather-type ' + context.conflictType\"></i>\r\n }\r\n @case ('CSM') {\r\n <i [class]=\"'feather-layers ' + context.conflictType\"></i>\r\n }\r\n @case ('CNM') {\r\n <i [class]=\"'feather-droplet ' + context.conflictType\"></i>\r\n }\r\n @case ('CPSM') {\r\n <i [class]=\"'feather-move ' + context.conflictType\"></i>\r\n }\r\n @case ('RT') {\r\n <i [class]=\"'feather-trash ' + context.conflictType\"></i>\r\n }\r\n @case ('RC') {\r\n <i [class]=\"'feather-trash ' + context.conflictType\"></i>\r\n }\r\n }\r\n\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #toolBlock let-context=\"context\">\r\n <div class=\"tools inter-font d-flex d-flex-start\">\r\n <div class=\"icon-wrapper\" [appTooltip]=\"'Resolve'\" [position]=\"'right'\" [showAnyway]=\"true\" (click)=\"openRowResolver($event, context)\">\r\n <i class=\"feather-play fs24\"></i>\r\n </div>\r\n <span>{{ context.difference }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template #sourceNullability let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.sourceNullability\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #targetNullability let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.targetNullability\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #sourceIsPrimaryKey let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.sourceIsPrimaryKey\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #targetIsPrimaryKey let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.targetIsPrimaryKey\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n</div>", styles: [".core-compare-db-pipeline-container .h15{height:15px}.core-compare-db-pipeline-container .tools{height:36px}.core-compare-db-pipeline-container .tools .icon-wrapper{color:#848484;opacity:.5;display:inline-flex;width:36px;height:36px;border-radius:50%}.core-compare-db-pipeline-container .tools .icon-wrapper:hover{opacity:1;color:#fff;background-color:#848484}.core-compare-db-pipeline-container .modal-content-root{padding-top:0}.core-compare-db-pipeline-container .close-icon{display:block;position:absolute;top:8px;right:8px;color:#848484}.core-compare-db-pipeline-container .close-icon:hover{color:inherit}.core-compare-db-pipeline-container .row-resolver-window{display:block;width:992px;max-width:100vw!important;height:500px}.core-compare-db-pipeline-container .conflict-total{height:50px;display:flex;align-items:center;justify-content:flex-start;color:#848484;font-size:24px;font-weight:700}.core-compare-db-pipeline-container .conflict-total.error{color:brown}.core-compare-db-pipeline-container .conflict-type-wrapper i{font-size:20px;font-weight:700}.core-compare-db-pipeline-container .conflict-type-wrapper .TMIT{color:red}.core-compare-db-pipeline-container .conflict-type-wrapper .CMIT{color:orange}.core-compare-db-pipeline-container .conflict-type-wrapper .CTM{color:#d2691e}.core-compare-db-pipeline-container .conflict-type-wrapper .CSM{color:#ffa07a}.core-compare-db-pipeline-container .conflict-type-wrapper .CNM{color:#ffb6c1}.core-compare-db-pipeline-container .conflict-type-wrapper .RT{color:red}.core-compare-db-pipeline-container .conflict-type-wrapper .RC{color:#d2691e}\n"] }]
|
|
339
|
+
], template: "<div class=\"core-compare-db-pipeline-container\">\r\n <core-page-header [title]=\"'DB STRUCTURE COMPARE'\"\r\n [hideButtonGroup]=\"true\"></core-page-header>\r\n\r\n <core-tabs [headers]=\"tabHeaders\" [contents]=\"[]\" [height]=\"45\" [headerLineHeight]=\"45\"\r\n (onHeaderClick)=\"onCoreTabsHeaderClick($event)\">\r\n </core-tabs>\r\n\r\n\r\n <core-table [columns]=\"columns\" [height]=\"tableHeight\" [data]=\"data\" [loading]=\"loading\"\r\n [autoColumnFitAvailableSpace]=\"false\" [frozen]=\"3\" [lazyLoading]=\"true\" [headerFirstRowHeight]=\"80\"\r\n (onSearching)=\"onSearching($event)\"></core-table>\r\n <div class=\"h15\"></div>\r\n <div class=\"w-100 d-flex d-flex-between\">\r\n <div class=\"conflict-total\" [class.error]=\"!!conflictTotal\">\r\n {{ !!loading ? 'Scanning for issues...' : (!!conflictTotal ? conflictTotal + ' conflicts found!' : 'No conflict found') }} \r\n </div>\r\n <core-pagination [$height]=\"46\" [$currentPage]=\"currentPage$\" [$pageCount]=\"pageCount\" [$loading]=\"loading\"\r\n [$background]=\"'#848484'\" [$fixedPageSize]=\"20\"\r\n [$suspendCurrentPageSubscription]=\"suspendCurrentPageSubscription$\"></core-pagination>\r\n </div>\r\n\r\n @if (showRowResolverWindow) {\r\n <div class=\"modal-container\">\r\n <div class=\"modal-content-root\">\r\n <div class=\"row-resolver-window\">\r\n <core-page-header [title]=\"'RESOLVER WINDOW'\" [hideButtonGroup]=\"true\"></core-page-header>\r\n <i class=\"close-icon pointer feather-x fs24\" (click)=\"closeRowResolver($event)\"></i>\r\n <textarea class=\"form-control\" [rows]=\"'10'\" style=\"height: 400px; padding: 15px;\" disabled>\r\n {{ sqlCommand }}\r\n </textarea>\r\n <button class=\"btn btn-primary\" (click)=\"resolve($event)\" style=\"margin-top: 15px;\">Run</button>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n <ng-template #conflictType let-context=\"context\">\r\n <div class=\"conflict-type-wrapper d-flex d-flex-between\" [appTooltip]=\"context.conflictType\" [showAnyway]=\"true\">\r\n \r\n @switch (context.conflictType) {\r\n @case ('TMIT') {\r\n <i [class]=\"'feather-layout ' + context.conflictType\"></i>\r\n }\r\n @case ('CMIT') {\r\n <i [class]=\"'feather-sidebar ' + context.conflictType\"></i>\r\n }\r\n @case ('CPKM') {\r\n <i [class]=\"'feather-zap ' + context.conflictType\"></i>\r\n }\r\n @case ('CTM') {\r\n <i [class]=\"'feather-type ' + context.conflictType\"></i>\r\n }\r\n @case ('CSM') {\r\n <i [class]=\"'feather-layers ' + context.conflictType\"></i>\r\n }\r\n @case ('CNM') {\r\n <i [class]=\"'feather-droplet ' + context.conflictType\"></i>\r\n }\r\n @case ('CPSM') {\r\n <i [class]=\"'feather-move ' + context.conflictType\"></i>\r\n }\r\n @case ('RT') {\r\n <i [class]=\"'feather-trash ' + context.conflictType\"></i>\r\n }\r\n @case ('RC') {\r\n <i [class]=\"'feather-trash ' + context.conflictType\"></i>\r\n }\r\n }\r\n\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #toolBlock let-context=\"context\">\r\n <div class=\"tools inter-font d-flex d-flex-start\">\r\n <div class=\"icon-wrapper\" [appTooltip]=\"'Resolve'\" [position]=\"'right'\" [showAnyway]=\"true\" (click)=\"openRowResolver($event, context)\">\r\n <i class=\"feather-play fs24\"></i>\r\n </div>\r\n <span>{{ context.difference }}</span>\r\n </div>\r\n </ng-template>\r\n <ng-template #sourceNullability let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.sourceNullability\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #targetNullability let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.targetNullability\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #sourceIsPrimaryKey let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.sourceIsPrimaryKey\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #sourceIsIdentityColumn let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.sourceIsIdentityColumn\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #targetIsPrimaryKey let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.targetIsPrimaryKey\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n <ng-template #targetIsIdentityColumn let-context=\"context\">\r\n <core-checkbox [ngModel]=\"!!context.targetIsIdentityColumn\" [disabled]=\"true\"></core-checkbox>\r\n </ng-template>\r\n\r\n</div>", styles: [".core-compare-db-pipeline-container .h15{height:15px}.core-compare-db-pipeline-container .tools{height:36px}.core-compare-db-pipeline-container .tools .icon-wrapper{color:#848484;opacity:.5;display:inline-flex;width:36px;height:36px;border-radius:50%}.core-compare-db-pipeline-container .tools .icon-wrapper:hover{opacity:1;color:#fff;background-color:#848484}.core-compare-db-pipeline-container .modal-content-root{padding-top:0}.core-compare-db-pipeline-container .close-icon{display:block;position:absolute;top:8px;right:8px;color:#848484}.core-compare-db-pipeline-container .close-icon:hover{color:inherit}.core-compare-db-pipeline-container .row-resolver-window{display:block;width:992px;max-width:100vw!important;height:500px}.core-compare-db-pipeline-container .conflict-total{height:50px;display:flex;align-items:center;justify-content:flex-start;color:#848484;font-size:24px;font-weight:700}.core-compare-db-pipeline-container .conflict-total.error{color:brown}.core-compare-db-pipeline-container .conflict-type-wrapper i{font-size:20px;font-weight:700}.core-compare-db-pipeline-container .conflict-type-wrapper .TMIT{color:red}.core-compare-db-pipeline-container .conflict-type-wrapper .CMIT{color:orange}.core-compare-db-pipeline-container .conflict-type-wrapper .CTM{color:#d2691e}.core-compare-db-pipeline-container .conflict-type-wrapper .CSM{color:#ffa07a}.core-compare-db-pipeline-container .conflict-type-wrapper .CNM{color:#ffb6c1}.core-compare-db-pipeline-container .conflict-type-wrapper .RT{color:red}.core-compare-db-pipeline-container .conflict-type-wrapper .RC{color:#d2691e}\n"] }]
|
|
314
340
|
}], ctorParameters: () => [{ type: i1.MultiLanguageService }, { type: i2.AppService }], propDecorators: { toolBlock: [{
|
|
315
341
|
type: ViewChild,
|
|
316
342
|
args: ['toolBlock']
|
|
@@ -329,5 +355,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImpor
|
|
|
329
355
|
}], targetIsPrimaryKey: [{
|
|
330
356
|
type: ViewChild,
|
|
331
357
|
args: ['targetIsPrimaryKey']
|
|
358
|
+
}], sourceIsIdentityColumn: [{
|
|
359
|
+
type: ViewChild,
|
|
360
|
+
args: ['sourceIsIdentityColumn']
|
|
361
|
+
}], targetIsIdentityColumn: [{
|
|
362
|
+
type: ViewChild,
|
|
363
|
+
args: ['targetIsIdentityColumn']
|
|
332
364
|
}] } });
|
|
333
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb21wYXJlLWRiLXBpcGVsaW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbXBhcmUtZGItcGlwZWxpbmUvY29yZS1jb21wYXJlLWRiLXBpcGVsaW5lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbXBhcmUtZGItcGlwZWxpbmUvY29yZS1jb21wYXJlLWRiLXBpcGVsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDMUcsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBQzdILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FB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QUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ08saUJBQWlCO3NCQUFoRCxTQUFTO3VCQUFDLG1CQUFtQjtnQkFDRSxpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CO2dCQUNHLGtCQUFrQjtzQkFBbEQsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBQ0Usa0JBQWtCO3NCQUFsRCxTQUFTO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXBwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1jb21wb25lbnQvYmFzZS9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUtdGFibGUvY29yZS10YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJQ29yZVRhYmxlQ29sdW1uSXRlbSB9IGZyb20gJy4uL2NvcmUtdGFibGUvSUNvcmVUYWJsZUNvbHVtbkl0ZW0nO1xyXG5pbXBvcnQgeyBDb3JlUGFnZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUtcGFnZS1oZWFkZXIvY29yZS1wYWdlLWhlYWRlci9jb3JlLXBhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvcmVQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS1wYWdpbmF0aW9uL2NvcmUtcGFnaW5hdGlvbi9jb3JlLXBhZ2luYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZUJ1dHRvbkdyb3VwVm5zQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9jb3JlLWJ1dHRvbi1ncm91cC12bnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb3JlQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlLWNoZWNrYm94L2NvcmUtY2hlY2tib3gvY29yZS1jaGVja2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29yZVRhYnNDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlLXRhYnMvY29yZS10YWJzL2NvcmUtdGFicy5jb21wb25lbnQnO1xyXG5cclxuaW50ZXJmYWNlIElDb21wYXJlRGJTdHJ1Y3R1cmVGaWx0ZXJJdGVtIHtcclxuICBmaWVsZDogc3RyaW5nO1xyXG4gIHNlYXJjaEZvcjogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSUNvbXBhcmVEYlN0cnVjdHVyZVJlcXVlc3Qge1xyXG4gIGZpbHRlcj86IElDb21wYXJlRGJTdHJ1Y3R1cmVGaWx0ZXJJdGVtW107XHJcbiAgcGFnZU51bWJlcjogbnVtYmVyO1xyXG4gIHBhZ2VTaXplOiBudW1iZXI7XHJcbiAgZm9yRXh0ZW5kZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSURiU3RydWN0dXJlRGlmZmVyZW5jZSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBzb3VyY2VBbGlhczogc3RyaW5nO1xyXG4gIHRhcmdldEFsaWFzOiBzdHJpbmc7XHJcbiAgdGFibGVOYW1lOiBzdHJpbmc7XHJcbiAgY29sdW1uTmFtZTogc3RyaW5nO1xyXG4gIGNvbmZsaWN0VHlwZTogc3RyaW5nO1xyXG4gIHNvdXJjZVR5cGU/OiBzdHJpbmc7XHJcbiAgc291cmNlSXNQcmltYXJ5S2V5PzogYm9vbGVhbjtcclxuICBzb3VyY2VTaXplPzogbnVtYmVyO1xyXG4gIHNvdXJjZU51bGxhYmlsaXR5PzogYm9vbGVhbjtcclxuICBzb3VyY2VQcmVjaXNpb24/OiBudW1iZXI7XHJcbiAgc291cmNlU2NhbGU/OiBudW1iZXI7XHJcbiAgdGFyZ2V0VHlwZT86IHN0cmluZztcclxuICB0YXJnZXRJc1ByaW1hcnlLZXk/OiBib29sZWFuO1xyXG4gIHRhcmdldFNpemU/OiBudW1iZXI7XHJcbiAgdGFyZ2V0TnVsbGFiaWxpdHk/OiBib29sZWFuO1xyXG4gIHRhcmdldFByZWNpc2lvbj86IG51bWJlcjtcclxuICB0YXJnZXRTY2FsZT86IG51bWJlcjtcclxuICBkaWZmZXJlbmNlOiBzdHJpbmc7XHJcbiAgcmVzb2x2ZXJTZXNzaW9uSWQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1jb21wYXJlLWRiLXBpcGVsaW5lJyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb3JlQnV0dG9uR3JvdXBWbnNDb21wb25lbnQsXHJcbiAgICBDb3JlUGFnZUhlYWRlckNvbXBvbmVudCxcclxuICAgIENvcmVUYWJsZUNvbXBvbmVudCxcclxuICAgIENvcmVQYWdpbmF0aW9uQ29tcG9uZW50LFxyXG4gICAgVG9vbHRpcERpcmVjdGl2ZSxcclxuICAgIENvcmVDaGVja2JveENvbXBvbmVudCxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQ29yZVRhYnNDb21wb25lbnRcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWNvbXBhcmUtZGItcGlwZWxpbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jb3JlLWNvbXBhcmUtZGItcGlwZWxpbmUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlQ29tcGFyZURiUGlwZWxpbmVDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3Rvb2xCbG9jaycpIHRvb2xCbG9jayE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgnY29uZmxpY3RUeXBlJykgY29uZmxpY3RUeXBlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdzb3VyY2VOdWxsYWJpbGl0eScpIHNvdXJjZU51bGxhYmlsaXR5ITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCd0YXJnZXROdWxsYWJpbGl0eScpIHRhcmdldE51bGxhYmlsaXR5ITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdzb3VyY2VJc1ByaW1hcnlLZXknKSBzb3VyY2VJc1ByaW1hcnlLZXkhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ3RhcmdldElzUHJpbWFyeUtleScpIHRhcmdldElzUHJpbWFyeUtleSE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIGRhdGE6IElEYlN0cnVjdHVyZURpZmZlcmVuY2VbXSA9IFtdO1xyXG5cclxuICBzaG93Um93UmVzb2x2ZXJXaW5kb3chOiBib29sZWFuO1xyXG5cclxuICB0YWJIZWFkZXJzOiBzdHJpbmdbXSA9IFtcIkRldi1UZXN0LUxpdmVcIiwgXCJEZXYtRXh0ZW5kZWRcIl1cclxuXHJcbiAgY29sdW1uczogSUNvcmVUYWJsZUNvbHVtbkl0ZW1bXSA9IFtcclxuICAgIHtcclxuICAgICAgZmllbGQ6ICdpZCcsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBjYXB0aW9uOiAnaWQnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgIHdpZHRoOiAwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ2RpZmZlcmVuY2UnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgY2FwdGlvbjogJ1Byb2JsZW0nLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICBzb3J0RGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiAzMDBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiAnY29uZmxpY3RUeXBlJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGNhcHRpb246ICdNYXJrZXInLFxyXG4gICAgICBhbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgIHdpZHRoOiA1MFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgZmllbGQ6ICdzb3VyY2VBbGlhcycsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBjYXB0aW9uOiAnU291cmNlJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgc29ydERpc2FibGVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogNjBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiAndGFyZ2V0QWxpYXMnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgY2FwdGlvbjogJ1RhcmdldCcsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHNvcnREaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IDYwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ3RhYmxlTmFtZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBjYXB0aW9uOiAnVGFibGUnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICBzb3J0RGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiAyMDBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiAnY29sdW1uTmFtZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBjYXB0aW9uOiAnQ29sdW1uJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgc29ydERpc2FibGVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogMjAwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ3NvdXJjZVR5cGUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgY2FwdGlvbjogJ1NvdXJjZSB0eXBlJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgc29ydERpc2FibGVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogMTAwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ3NvdXJjZUlzUHJpbWFyeUtleScsXHJcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcclxuICAgICAgY2FwdGlvbjogJ1NvdXJjZSBpcyBQSycsXHJcbiAgICAgIGFsaWduOiAnY2VudGVyJyxcclxuICAgICAgc29ydERpc2FibGVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogNjBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiAnc291cmNlTnVsbGFiaWxpdHknLFxyXG4gICAgICB0eXBlOiAnYm9vbGVhbicsXHJcbiAgICAgIGNhcHRpb246ICdTb3VyY2UgbnVsbGFiaWxpdHknLFxyXG4gICAgICBhbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgIHNvcnREaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IDcwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ3NvdXJjZVNpemUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgY2FwdGlvbjogJ1NvdXJjZSBzaXplJyxcclxuICAgICAgYWxpZ246ICdyaWdodCcsXHJcbiAgICAgIHNvcnREaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IDEwMFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgZmllbGQ6ICdzb3VyY2VQcmVjaXNpb24nLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgY2FwdGlvbjogJ1NvdXJjZSBwcmVjaXNpb24nLFxyXG4gICAgICBhbGlnbjogJ3JpZ2h0JyxcclxuICAgICAgc29ydERpc2FibGVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogNTBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiAnc291cmNlU2NhbGUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgY2FwdGlvbjogJ1NvdXJjZSBzY2FsZScsXHJcbiAgICAgIGFsaWduOiAncmlnaHQnLFxyXG4gICAgICBzb3J0RGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiA1MFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgZmllbGQ6ICd0YXJnZXRUeXBlJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGNhcHRpb246ICdUYXJnZXQgdHlwZScsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHNvcnREaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IDEwMFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgZmllbGQ6ICd0YXJnZXRJc1ByaW1hcnlLZXknLFxyXG4gICAgICB0eXBlOiAnYm9vbGVhbicsXHJcbiAgICAgIGNhcHRpb246ICdUYXJnZXQgaXMgUEsnLFxyXG4gICAgICBhbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgIHNvcnREaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IDYwXHJcbiAgICB9LFxyXG5cclxuICAgIHtcclxuICAgICAgZmllbGQ6ICd0YXJnZXROdWxsYWJpbGl0eScsXHJcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcclxuICAgICAgY2FwdGlvbjogJ1RhcmdldCBudWxsYWJpbGl0eScsXHJcbiAgICAgIGFsaWduOiAnY2VudGVyJyxcclxuICAgICAgc29ydERpc2FibGVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogNzBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiAndGFyZ2V0U2l6ZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBjYXB0aW9uOiAnVGFyZ2VyIHNpemUnLFxyXG4gICAgICBhbGlnbjogJ3JpZ2h0JyxcclxuICAgICAgc29ydERpc2FibGVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogMTAwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ3RhcmdldFByZWNpc2lvbicsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBjYXB0aW9uOiAnVGFyZ2V0IHByZWNpc2lvbicsXHJcbiAgICAgIGFsaWduOiAncmlnaHQnLFxyXG4gICAgICBzb3J0RGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiA1MFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgZmllbGQ6ICd0YXJnZXRTY2FsZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBjYXB0aW9uOiAnVGFyZ2V0IHNjYWxlJyxcclxuICAgICAgYWxpZ246ICdyaWdodCcsXHJcbiAgICAgIHNvcnREaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IDUwXHJcbiAgICB9LFxyXG4gIF1cclxuXHJcbiAgdGFibGVIZWlnaHQ6IG51bWJlciA9IDUwMDtcclxuXHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBkZWZhdWx0UmVxdWVzdDogSUNvbXBhcmVEYlN0cnVjdHVyZVJlcXVlc3QgPSB7XHJcbiAgICBwYWdlTnVtYmVyOiAxLFxyXG4gICAgcGFnZVNpemU6IDUwXHJcbiAgfVxyXG5cclxuICByZXF1ZXN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUNvbXBhcmVEYlN0cnVjdHVyZVJlcXVlc3Q+KHRoaXMuZGVmYXVsdFJlcXVlc3QpO1xyXG5cclxuICBjdXJyZW50UGFnZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMSk7XHJcbiAgcGFnZVNpemUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDUwKTtcclxuICBwYWdlQ291bnQ6IG51bWJlciA9IDA7XHJcblxyXG4gIHN1c3BlbmRDdXJyZW50UGFnZVN1YnNjcmlwdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgc3FsQ29tbWFuZDogc3RyaW5nID0gJyc7XHJcbiAgcmVzb2x2ZXJTZXNzaW9uSWQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBjb25mbGljdFRvdGFsOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvdmVycmlkZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcHBTZXJ2aWNlOiBBcHBTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtbHMpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaExpc3QoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuYXBwU2VydmljZS5wb3N0KCcvYXBpL1NxbFNlcnZlclBpcGVsaW5lL0NvbXBhcmVEYlN0cnVjdHVyZScsIHRoaXMucmVxdWVzdCQudmFsdWUpLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAoeC5vayAmJiB4LnN0YXR1cyA9PT0gMjAwICYmIHguYm9keT8uc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGEgPSB4LmJvZHkuaW5uZXJCb2R5LmRhdGFcclxuICAgICAgICAgIHRoaXMucGFnZUNvdW50ID0gTWF0aC5jZWlsKHguYm9keS5pbm5lckJvZHkuY291bnQgLyB0aGlzLnBhZ2VTaXplJC52YWx1ZSk7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRQYWdlJC5uZXh0KHguYm9keS5pbm5lckJvZHkucGFnZU51bWJlcik7XHJcbiAgICAgICAgICB0aGlzLmNvbmZsaWN0VG90YWwgPSB4LmJvZHkuaW5uZXJCb2R5LmNvdW50IHx8IDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgICBjb25zdCB0cnlGaWx0ZXJDb25mbGljdFR5cGUgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKHggPT4geC5maWVsZCA9PT0gJ2NvbmZsaWN0VHlwZScpO1xyXG4gICAgICBpZiAoISF0cnlGaWx0ZXJDb25mbGljdFR5cGUubGVuZ3RoKSB7XHJcbiAgICAgICAgdHJ5RmlsdGVyQ29uZmxpY3RUeXBlWzBdLnRlbXBsYXRlUmVmID0gdGhpcy5jb25mbGljdFR5cGU7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgdHJ5RmlsdGVyRGlmZmVyZW5jZSA9IHRoaXMuY29sdW1ucy5maWx0ZXIoeCA9PiB4LmZpZWxkID09PSAnZGlmZmVyZW5jZScpO1xyXG4gICAgICBpZiAoISF0cnlGaWx0ZXJEaWZmZXJlbmNlLmxlbmd0aCkge1xyXG4gICAgICAgIHRyeUZpbHRlckRpZmZlcmVuY2VbMF0udGVtcGxhdGVSZWYgPSB0aGlzLnRvb2xCbG9jaztcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB0cnlGaWx0ZXJTb3VyY2VJc1ByaW1hcnlLZXkgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKHggPT4geC5maWVsZCA9PT0gJ3NvdXJjZUlzUHJpbWFyeUtleScpO1xyXG4gICAgICBpZiAoISF0cnlGaWx0ZXJTb3VyY2VJc1ByaW1hcnlLZXkubGVuZ3RoKSB7XHJcbiAgICAgICAgdHJ5RmlsdGVyU291cmNlSXNQcmltYXJ5S2V5WzBdLnRlbXBsYXRlUmVmID0gdGhpcy5zb3VyY2VJc1ByaW1hcnlLZXk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgdHJ5RmlsdGVyVGFyZ2V0SXNQcmltYXJ5S2V5ID0gdGhpcy5jb2x1bW5zLmZpbHRlcih4ID0+IHguZmllbGQgPT09ICd0YXJnZXRJc1ByaW1hcnlLZXknKTtcclxuICAgICAgaWYgKCEhdHJ5RmlsdGVyVGFyZ2V0SXNQcmltYXJ5S2V5Lmxlbmd0aCkge1xyXG4gICAgICAgIHRyeUZpbHRlclRhcmdldElzUHJpbWFyeUtleVswXS50ZW1wbGF0ZVJlZiA9IHRoaXMudGFyZ2V0SXNQcmltYXJ5S2V5O1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHRyeUZpbHRlclNvdXJjZU51bGxhYmlsaXR5ID0gdGhpcy5jb2x1bW5zLmZpbHRlcih4ID0+IHguZmllbGQgPT09ICdzb3VyY2VOdWxsYWJpbGl0eScpO1xyXG4gICAgICBpZiAoISF0cnlGaWx0ZXJTb3VyY2VOdWxsYWJpbGl0eS5sZW5ndGgpIHtcclxuICAgICAgICB0cnlGaWx0ZXJTb3VyY2VOdWxsYWJpbGl0eVswXS50ZW1wbGF0ZVJlZiA9IHRoaXMuc291cmNlTnVsbGFiaWxpdHk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgdHJ5RmlsdGVyVGFyZ2V0TnVsbGFiaWxpdHkgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKHggPT4geC5maWVsZCA9PT0gJ3RhcmdldE51bGxhYmlsaXR5Jyk7XHJcbiAgICAgIGlmICghIXRyeUZpbHRlclRhcmdldE51bGxhYmlsaXR5Lmxlbmd0aCkge1xyXG4gICAgICAgIHRyeUZpbHRlclRhcmdldE51bGxhYmlsaXR5WzBdLnRlbXBsYXRlUmVmID0gdGhpcy50YXJnZXROdWxsYWJpbGl0eTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy50YWJsZUhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIDYwIC0gNTAgLSA0NiAtIDMwIC0gNDU7XHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLnJlcXVlc3QkLnBpcGUoXHJcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJlLCBjdXIpID0+IEpTT04uc3RyaW5naWZ5KHByZSkgPT09IEpTT04uc3RyaW5naWZ5KGN1cikpLFxyXG4gICAgICAgICAgdGFwKCgpID0+IHRoaXMubG9hZGluZyA9IHRydWUpLFxyXG4gICAgICAgICAgc3dpdGNoTWFwKHggPT4gdGhpcy5hcHBTZXJ2aWNlLnBvc3QoJy9hcGkvU3FsU2VydmVyUGlwZWxpbmUvQ29tcGFyZURiU3RydWN0dXJlJywgeCkpXHJcbiAgICAgICAgKS5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIGlmICh4Lm9rICYmIHguc3RhdHVzID09PSAyMDAgJiYgeC5ib2R5Py5zdGF0dXNDb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhID0geC5ib2R5LmlubmVyQm9keS5kYXRhXHJcbiAgICAgICAgICAgIHRoaXMucGFnZUNvdW50ID0gTWF0aC5jZWlsKHguYm9keS5pbm5lckJvZHkuY291bnQgLyB0aGlzLnBhZ2VTaXplJC52YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2UkLm5leHQoeC5ib2R5LmlubmVyQm9keS5wYWdlTnVtYmVyKTtcclxuICAgICAgICAgICAgdGhpcy5jb25mbGljdFRvdGFsID0geC5ib2R5LmlubmVyQm9keS5jb3VudCB8fCAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY3VycmVudFBhZ2UkLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgIGNvbnN0IG5ld1JlcXVlc3Q6IElDb21wYXJlRGJTdHJ1Y3R1cmVSZXF1ZXN0ID0ge1xyXG4gICAgICAgICAgICAuLi50aGlzLnJlcXVlc3QkLnZhbHVlLFxyXG4gICAgICAgICAgICBwYWdlTnVtYmVyOiB4XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnJlcXVlc3QkLm5leHQoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShuZXdSZXF1ZXN0KSkpXHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvblNlYXJjaGluZyhlOiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGZpbHRlcmVkID0gZS5maWx0ZXIoeCA9PiAhIXguc2VhcmNoRm9yLmxlbmd0aClcclxuICAgIHRoaXMucmVxdWVzdCQubmV4dCh7XHJcbiAgICAgIC4uLnRoaXMucmVxdWVzdCQudmFsdWUsXHJcbiAgICAgIGZpbHRlcjogZmlsdGVyZWRcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvcGVuUm93UmVzb2x2ZXIoZXZlbnQ6IGFueSwgY29udGV4dDogYW55KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5hcHBTZXJ2aWNlLnBvc3QoJy9hcGkvU3FsU2VydmVyUGlwZWxpbmUvR2VuZXJhdGVDb25mbGljdFJlc29sdmVyQ29tbWFuZCcsIGNvbnRleHQpLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAoeC5vayAmJiB4LnN0YXR1cyA9PT0gMjAwICYmIHguYm9keT8uc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dSb3dSZXNvbHZlcldpbmRvdyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnJlc29sdmVyU2Vzc2lvbklkID0geC5ib2R5LmlubmVyQm9keS5yZXNvbHZlclNlc3Npb25JZFxyXG4gICAgICAgICAgdGhpcy5zcWxDb21tYW5kID0gKHguYm9keS5pbm5lckJvZHkuc3FsQ29tbWFuZCBhcyBzdHJpbmcpLnRyaW0oKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBjbG9zZVJvd1Jlc29sdmVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2hvd1Jvd1Jlc29sdmVyV2luZG93ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZXNvbHZlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5hcHBTZXJ2aWNlLnBvc3QoJy9hcGkvU3FsU2VydmVyUGlwZWxpbmUvUnVuQ29uZmxpY3RSZXNvbHZlckNvbW1hbmQnLCB7XHJcbiAgICAgICAgcmVzb2x2ZXJTZXNzaW9uSWQ6IHRoaXMucmVzb2x2ZXJTZXNzaW9uSWQsXHJcbiAgICAgICAgc3FsQ29tbWFuZDogdGhpcy5zcWxDb21tYW5kXHJcbiAgICAgIH0pLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBpZiAoeC5vayAmJiB4LnN0YXR1cyA9PT0gMjAwICYmIHguYm9keT8uc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dSb3dSZXNvbHZlcldpbmRvdyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoTGlzdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIG9uQ29yZVRhYnNIZWFkZXJDbGljayhldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQuaW5kZXggPT09IDApIHtcclxuICAgICAgY29uc3QgbmV3UmVxdWVzdDogSUNvbXBhcmVEYlN0cnVjdHVyZVJlcXVlc3QgPSB7XHJcbiAgICAgICAgLi4udGhpcy5yZXF1ZXN0JC52YWx1ZSxcclxuICAgICAgICBmb3JFeHRlbmRlZDogZmFsc2VcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJlcXVlc3QkLm5leHQobmV3UmVxdWVzdCk7XHJcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmluZGV4ID09PSAxKSB7XHJcbiAgICAgIGNvbnN0IG5ld1JlcXVlc3Q6IElDb21wYXJlRGJTdHJ1Y3R1cmVSZXF1ZXN0ID0ge1xyXG4gICAgICAgIC4uLnRoaXMucmVxdWVzdCQudmFsdWUsXHJcbiAgICAgICAgZm9yRXh0ZW5kZWQ6IHRydWVcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJlcXVlc3QkLm5leHQobmV3UmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb3JlLWNvbXBhcmUtZGItcGlwZWxpbmUtY29udGFpbmVyXCI+XHJcbiAgICA8Y29yZS1wYWdlLWhlYWRlciBbdGl0bGVdPVwiJ0RCIFNUUlVDVFVSRSBDT01QQVJFJ1wiXHJcbiAgICAgICAgW2hpZGVCdXR0b25Hcm91cF09XCJ0cnVlXCI+PC9jb3JlLXBhZ2UtaGVhZGVyPlxyXG5cclxuICAgIDxjb3JlLXRhYnMgW2hlYWRlcnNdPVwidGFiSGVhZGVyc1wiIFtjb250ZW50c109XCJbXVwiIFtoZWlnaHRdPVwiNDVcIiBbaGVhZGVyTGluZUhlaWdodF09XCI0NVwiXHJcbiAgICAgICAgKG9uSGVhZGVyQ2xpY2spPVwib25Db3JlVGFic0hlYWRlckNsaWNrKCRldmVudClcIj5cclxuICAgIDwvY29yZS10YWJzPlxyXG5cclxuXHJcbiAgICA8Y29yZS10YWJsZSBbY29sdW1uc109XCJjb2x1bW5zXCIgW2hlaWdodF09XCJ0YWJsZUhlaWdodFwiIFtkYXRhXT1cImRhdGFcIiBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgICAgICBbYXV0b0NvbHVtbkZpdEF2YWlsYWJsZVNwYWNlXT1cImZhbHNlXCIgW2Zyb3plbl09XCIzXCIgW2xhenlMb2FkaW5nXT1cInRydWVcIiBbaGVhZGVyRmlyc3RSb3dIZWlnaHRdPVwiODBcIlxyXG4gICAgICAgIChvblNlYXJjaGluZyk9XCJvblNlYXJjaGluZygkZXZlbnQpXCI+PC9jb3JlLXRhYmxlPlxyXG4gICAgPGRpdiBjbGFzcz1cImgxNVwiPjwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInctMTAwIGQtZmxleCBkLWZsZXgtYmV0d2VlblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb25mbGljdC10b3RhbFwiIFtjbGFzcy5lcnJvcl09XCIhIWNvbmZsaWN0VG90YWxcIj5cclxuICAgICAgICAgICAge3sgISFjb25mbGljdFRvdGFsID8gY29uZmxpY3RUb3RhbCArICcgY29uZmxpY3RzIGZvdW5kIScgOiAnTm8gY29uZmxpY3QgZm91bmQnIH19IFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxjb3JlLXBhZ2luYXRpb24gWyRoZWlnaHRdPVwiNDZcIiBbJGN1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlJFwiIFskcGFnZUNvdW50XT1cInBhZ2VDb3VudFwiIFskbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgICAgICAgICAgWyRiYWNrZ3JvdW5kXT1cIicjODQ4NDg0J1wiIFskZml4ZWRQYWdlU2l6ZV09XCIyMFwiXHJcbiAgICAgICAgICAgIFskc3VzcGVuZEN1cnJlbnRQYWdlU3Vic2NyaXB0aW9uXT1cInN1c3BlbmRDdXJyZW50UGFnZVN1YnNjcmlwdGlvbiRcIj48L2NvcmUtcGFnaW5hdGlvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIEBpZiAoc2hvd1Jvd1Jlc29sdmVyV2luZG93KSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudC1yb290XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXJlc29sdmVyLXdpbmRvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjb3JlLXBhZ2UtaGVhZGVyIFt0aXRsZV09XCInUkVTT0xWRVIgV0lORE9XJ1wiIFtoaWRlQnV0dG9uR3JvdXBdPVwidHJ1ZVwiPjwvY29yZS1wYWdlLWhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImNsb3NlLWljb24gcG9pbnRlciBmZWF0aGVyLXggZnMyNFwiIChjbGljayk9XCJjbG9zZVJvd1Jlc29sdmVyKCRldmVudClcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW3Jvd3NdPVwiJzEwJ1wiIHN0eWxlPVwiaGVpZ2h0OiA0MDBweDsgcGFkZGluZzogMTVweDtcIiBkaXNhYmxlZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc3FsQ29tbWFuZCB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJyZXNvbHZlKCRldmVudClcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDE1cHg7XCI+UnVuPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNjb25mbGljdFR5cGUgbGV0LWNvbnRleHQ9XCJjb250ZXh0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZsaWN0LXR5cGUtd3JhcHBlciBkLWZsZXggZC1mbGV4LWJldHdlZW5cIiBbYXBwVG9vbHRpcF09XCJjb250ZXh0LmNvbmZsaWN0VHlwZVwiIFtzaG93QW55d2F5XT1cInRydWVcIj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIEBzd2l0Y2ggKGNvbnRleHQuY29uZmxpY3RUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ1RNSVQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidmZWF0aGVyLWxheW91dCAnICsgY29udGV4dC5jb25mbGljdFR5cGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ0NNSVQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidmZWF0aGVyLXNpZGViYXIgJyArIGNvbnRleHQuY29uZmxpY3RUeXBlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdDUEtNJykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCInZmVhdGhlci16YXAgJyArIGNvbnRleHQuY29uZmxpY3RUeXBlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdDVE0nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidmZWF0aGVyLXR5cGUgJyArIGNvbnRleHQuY29uZmxpY3RUeXBlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdDU00nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidmZWF0aGVyLWxheWVycyAnICsgY29udGV4dC5jb25mbGljdFR5cGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ0NOTScpIHtcclxuICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ2ZlYXRoZXItZHJvcGxldCAnICsgY29udGV4dC5jb25mbGljdFR5cGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ0NQU00nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidmZWF0aGVyLW1vdmUgJyArIGNvbnRleHQuY29uZmxpY3RUeXBlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdSVCcpIHtcclxuICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ2ZlYXRoZXItdHJhc2ggJyArIGNvbnRleHQuY29uZmxpY3RUeXBlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdSQycpIHtcclxuICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ2ZlYXRoZXItdHJhc2ggJyArIGNvbnRleHQuY29uZmxpY3RUeXBlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI3Rvb2xCbG9jayBsZXQtY29udGV4dD1cImNvbnRleHRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHMgaW50ZXItZm9udCBkLWZsZXggZC1mbGV4LXN0YXJ0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXdyYXBwZXJcIiBbYXBwVG9vbHRpcF09XCInUmVzb2x2ZSdcIiBbcG9zaXRpb25dPVwiJ3JpZ2h0J1wiIFtzaG93QW55d2F5XT1cInRydWVcIiAoY2xpY2spPVwib3BlblJvd1Jlc29sdmVyKCRldmVudCwgY29udGV4dClcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1wbGF5IGZzMjRcIj48L2k+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBjb250ZXh0LmRpZmZlcmVuY2UgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNzb3VyY2VOdWxsYWJpbGl0eSBsZXQtY29udGV4dD1cImNvbnRleHRcIj5cclxuICAgICAgICA8Y29yZS1jaGVja2JveCBbbmdNb2RlbF09XCIhIWNvbnRleHQuc291cmNlTnVsbGFiaWxpdHlcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvY29yZS1jaGVja2JveD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI3RhcmdldE51bGxhYmlsaXR5IGxldC1jb250ZXh0PVwiY29udGV4dFwiPlxyXG4gICAgICAgIDxjb3JlLWNoZWNrYm94IFtuZ01vZGVsXT1cIiEhY29udGV4dC50YXJnZXROdWxsYWJpbGl0eVwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9jb3JlLWNoZWNrYm94PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjc291cmNlSXNQcmltYXJ5S2V5IGxldC1jb250ZXh0PVwiY29udGV4dFwiPlxyXG4gICAgICAgIDxjb3JlLWNoZWNrYm94IFtuZ01vZGVsXT1cIiEhY29udGV4dC5zb3VyY2VJc1ByaW1hcnlLZXlcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvY29yZS1jaGVja2JveD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI3RhcmdldElzUHJpbWFyeUtleSBsZXQtY29udGV4dD1cImNvbnRleHRcIj5cclxuICAgICAgICA8Y29yZS1jaGVja2JveCBbbmdNb2RlbF09XCIhIWNvbnRleHQudGFyZ2V0SXNQcmltYXJ5S2V5XCIgW2Rpc2FibGVkXT1cInRydWVcIj48L2NvcmUtY2hlY2tib3g+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj4iXX0=
|
|
365
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb21wYXJlLWRiLXBpcGVsaW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbXBhcmUtZGItcGlwZWxpbmUvY29yZS1jb21wYXJlLWRiLXBpcGVsaW5lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWNvbXBhcmUtZGItcGlwZWxpbmUvY29yZS1jb21wYXJlLWRiLXBpcGVsaW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFlLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDMUcsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdGQUFnRixDQUFDO0FBQzdILE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FB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Uzt1QkFBQyxjQUFjO2dCQUNPLGlCQUFpQjtzQkFBaEQsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBQ0UsaUJBQWlCO3NCQUFoRCxTQUFTO3VCQUFDLG1CQUFtQjtnQkFDRyxrQkFBa0I7c0JBQWxELFNBQVM7dUJBQUMsb0JBQW9CO2dCQUNFLGtCQUFrQjtzQkFBbEQsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBQ00sc0JBQXNCO3NCQUExRCxTQUFTO3VCQUFDLHdCQUF3QjtnQkFDRSxzQkFBc0I7c0JBQTFELFNBQVM7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFwcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAuc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWNvbXBvbmVudC9iYXNlL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29yZVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS10YWJsZS9jb3JlLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElDb3JlVGFibGVDb2x1bW5JdGVtIH0gZnJvbSAnLi4vY29yZS10YWJsZS9JQ29yZVRhYmxlQ29sdW1uSXRlbSc7XHJcbmltcG9ydCB7IENvcmVQYWdlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29yZS1wYWdlLWhlYWRlci9jb3JlLXBhZ2UtaGVhZGVyL2NvcmUtcGFnZS1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29yZVBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi9jb3JlLXBhZ2luYXRpb24vY29yZS1wYWdpbmF0aW9uL2NvcmUtcGFnaW5hdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3JlQnV0dG9uR3JvdXBWbnNDb21wb25lbnQgfSBmcm9tICcuLi9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLWdyb3VwLXZucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvcmVDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUtY2hlY2tib3gvY29yZS1jaGVja2JveC9jb3JlLWNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb3JlVGFic0NvbXBvbmVudCB9IGZyb20gJy4uL2NvcmUtdGFicy9jb3JlLXRhYnMvY29yZS10YWJzLmNvbXBvbmVudCc7XHJcblxyXG5pbnRlcmZhY2UgSUNvbXBhcmVEYlN0cnVjdHVyZUZpbHRlckl0ZW0ge1xyXG4gIGZpZWxkOiBzdHJpbmc7XHJcbiAgc2VhcmNoRm9yOiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBJQ29tcGFyZURiU3RydWN0dXJlUmVxdWVzdCB7XHJcbiAgZmlsdGVyPzogSUNvbXBhcmVEYlN0cnVjdHVyZUZpbHRlckl0ZW1bXTtcclxuICBwYWdlTnVtYmVyOiBudW1iZXI7XHJcbiAgcGFnZVNpemU6IG51bWJlcjtcclxuICBmb3JFeHRlbmRlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmludGVyZmFjZSBJRGJTdHJ1Y3R1cmVEaWZmZXJlbmNlIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIHNvdXJjZUFsaWFzOiBzdHJpbmc7XHJcbiAgdGFyZ2V0QWxpYXM6IHN0cmluZztcclxuICB0YWJsZU5hbWU6IHN0cmluZztcclxuICBjb2x1bW5OYW1lOiBzdHJpbmc7XHJcbiAgY29uZmxpY3RUeXBlOiBzdHJpbmc7XHJcbiAgc291cmNlVHlwZT86IHN0cmluZztcclxuICBzb3VyY2VJc1ByaW1hcnlLZXk/OiBib29sZWFuO1xyXG4gIHNvdXJjZUlzSWRlbnRpdHlDb2x1bW4/OiBib29sZWFuO1xyXG4gIHNvdXJjZVNpemU/OiBudW1iZXI7XHJcbiAgc291cmNlTnVsbGFiaWxpdHk/OiBib29sZWFuO1xyXG4gIHNvdXJjZVByZWNpc2lvbj86IG51bWJlcjtcclxuICBzb3VyY2VTY2FsZT86IG51bWJlcjtcclxuICB0YXJnZXRUeXBlPzogc3RyaW5nO1xyXG4gIHRhcmdldElzUHJpbWFyeUtleT86IGJvb2xlYW47XHJcbiAgdGFyZ2V0SXNJZGVudGl0eUNvbHVtbj86IGJvb2xlYW47XHJcbiAgdGFyZ2V0U2l6ZT86IG51bWJlcjtcclxuICB0YXJnZXROdWxsYWJpbGl0eT86IGJvb2xlYW47XHJcbiAgdGFyZ2V0UHJlY2lzaW9uPzogbnVtYmVyO1xyXG4gIHRhcmdldFNjYWxlPzogbnVtYmVyO1xyXG4gIGRpZmZlcmVuY2U6IHN0cmluZztcclxuICByZXNvbHZlclNlc3Npb25JZD86IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLWNvbXBhcmUtZGItcGlwZWxpbmUnLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvcmVCdXR0b25Hcm91cFZuc0NvbXBvbmVudCxcclxuICAgIENvcmVQYWdlSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgQ29yZVRhYmxlQ29tcG9uZW50LFxyXG4gICAgQ29yZVBhZ2luYXRpb25Db21wb25lbnQsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxyXG4gICAgQ29yZUNoZWNrYm94Q29tcG9uZW50LFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb3JlVGFic0NvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtY29tcGFyZS1kYi1waXBlbGluZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NvcmUtY29tcGFyZS1kYi1waXBlbGluZS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVDb21wYXJlRGJQaXBlbGluZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgndG9vbEJsb2NrJykgdG9vbEJsb2NrITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdjb25mbGljdFR5cGUnKSBjb25mbGljdFR5cGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ3NvdXJjZU51bGxhYmlsaXR5Jykgc291cmNlTnVsbGFiaWxpdHkhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ3RhcmdldE51bGxhYmlsaXR5JykgdGFyZ2V0TnVsbGFiaWxpdHkhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ3NvdXJjZUlzUHJpbWFyeUtleScpIHNvdXJjZUlzUHJpbWFyeUtleSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgndGFyZ2V0SXNQcmltYXJ5S2V5JykgdGFyZ2V0SXNQcmltYXJ5S2V5ITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdzb3VyY2VJc0lkZW50aXR5Q29sdW1uJykgc291cmNlSXNJZGVudGl0eUNvbHVtbiE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgndGFyZ2V0SXNJZGVudGl0eUNvbHVtbicpIHRhcmdldElzSWRlbnRpdHlDb2x1bW4hOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBkYXRhOiBJRGJTdHJ1Y3R1cmVEaWZmZXJlbmNlW10gPSBbXTtcclxuXHJcbiAgc2hvd1Jvd1Jlc29sdmVyV2luZG93ITogYm9vbGVhbjtcclxuXHJcbiAgdGFiSGVhZGVyczogc3RyaW5nW10gPSBbXCJEZXYtVGVzdC1MaXZlXCIsIFwiRGV2LUV4dGVuZGVkXCJdXHJcblxyXG4gIGNvbHVtbnM6IElDb3JlVGFibGVDb2x1bW5JdGVtW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiAnaWQnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgY2FwdGlvbjogJ2lkJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICB3aWR0aDogMFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgZmllbGQ6ICdkaWZmZXJlbmNlJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGNhcHRpb246ICdQcm9ibGVtJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgc29ydERpc2FibGVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogMzAwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ2NvbmZsaWN0VHlwZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBjYXB0aW9uOiAnTWFya2VyJyxcclxuICAgICAgYWxpZ246ICdjZW50ZXInLFxyXG4gICAgICB3aWR0aDogNTBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiAnc291cmNlQWxpYXMnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgY2FwdGlvbjogJ1NvdXJjZScsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHNvcnREaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IDYwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ3RhcmdldEFsaWFzJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGNhcHRpb246ICdUYXJnZXQnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICBzb3J0RGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiAyMDBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiAndGFibGVOYW1lJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGNhcHRpb246ICdUYWJsZScsXHJcbiAgICAgIGFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHNvcnREaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IDIwMFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgZmllbGQ6ICdjb2x1bW5OYW1lJyxcclxuICAgICAgdHlwZTogJ3N0cmluZycsXHJcbiAgICAgIGNhcHRpb246ICdDb2x1bW4nLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICBzb3J0RGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiAyMDBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiAnc291cmNlVHlwZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBjYXB0aW9uOiAnU291cmNlIHR5cGUnLFxyXG4gICAgICBhbGlnbjogJ2xlZnQnLFxyXG4gICAgICBzb3J0RGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiAxMDBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiAnc291cmNlSXNQcmltYXJ5S2V5JyxcclxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxyXG4gICAgICBjYXB0aW9uOiAnU291cmNlIGlzIFBLJyxcclxuICAgICAgYWxpZ246ICdjZW50ZXInLFxyXG4gICAgICBzb3J0RGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiA2MFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgZmllbGQ6ICdzb3VyY2VJc0lkZW50aXR5Q29sdW1uJyxcclxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxyXG4gICAgICBjYXB0aW9uOiAnU291cmNlIGlzIElkZW50aXR5JyxcclxuICAgICAgYWxpZ246ICdjZW50ZXInLFxyXG4gICAgICBzb3J0RGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiA2MFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgZmllbGQ6ICdzb3VyY2VOdWxsYWJpbGl0eScsXHJcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcclxuICAgICAgY2FwdGlvbjogJ1NvdXJjZSBudWxsYWJpbGl0eScsXHJcbiAgICAgIGFsaWduOiAnY2VudGVyJyxcclxuICAgICAgc29ydERpc2FibGVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogNzBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiAnc291cmNlU2l6ZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBjYXB0aW9uOiAnU291cmNlIHNpemUnLFxyXG4gICAgICBhbGlnbjogJ3JpZ2h0JyxcclxuICAgICAgc29ydERpc2FibGVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogMTAwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ3NvdXJjZVByZWNpc2lvbicsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBjYXB0aW9uOiAnU291cmNlIHByZWNpc2lvbicsXHJcbiAgICAgIGFsaWduOiAncmlnaHQnLFxyXG4gICAgICBzb3J0RGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiA1MFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgZmllbGQ6ICdzb3VyY2VTY2FsZScsXHJcbiAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICBjYXB0aW9uOiAnU291cmNlIHNjYWxlJyxcclxuICAgICAgYWxpZ246ICdyaWdodCcsXHJcbiAgICAgIHNvcnREaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IDUwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ3RhcmdldFR5cGUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgY2FwdGlvbjogJ1RhcmdldCB0eXBlJyxcclxuICAgICAgYWxpZ246ICdsZWZ0JyxcclxuICAgICAgc29ydERpc2FibGVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogMTAwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ3RhcmdldElzUHJpbWFyeUtleScsXHJcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcclxuICAgICAgY2FwdGlvbjogJ1RhcmdldCBpcyBQSycsXHJcbiAgICAgIGFsaWduOiAnY2VudGVyJyxcclxuICAgICAgc29ydERpc2FibGVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogNjBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiAndGFyZ2V0SXNJZGVudGl0eUNvbHVtbicsXHJcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcclxuICAgICAgY2FwdGlvbjogJ1RhcmdldCBpcyBJZGVudGl0eScsXHJcbiAgICAgIGFsaWduOiAnY2VudGVyJyxcclxuICAgICAgc29ydERpc2FibGVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogNjBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiAndGFyZ2V0TnVsbGFiaWxpdHknLFxyXG4gICAgICB0eXBlOiAnYm9vbGVhbicsXHJcbiAgICAgIGNhcHRpb246ICdUYXJnZXQgbnVsbGFiaWxpdHknLFxyXG4gICAgICBhbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgIHNvcnREaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IDcwXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBmaWVsZDogJ3RhcmdldFNpemUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgY2FwdGlvbjogJ1RhcmdlciBzaXplJyxcclxuICAgICAgYWxpZ246ICdyaWdodCcsXHJcbiAgICAgIHNvcnREaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IDEwMFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgZmllbGQ6ICd0YXJnZXRQcmVjaXNpb24nLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgY2FwdGlvbjogJ1RhcmdldCBwcmVjaXNpb24nLFxyXG4gICAgICBhbGlnbjogJ3JpZ2h0JyxcclxuICAgICAgc29ydERpc2FibGVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogNTBcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGZpZWxkOiAndGFyZ2V0U2NhbGUnLFxyXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgY2FwdGlvbjogJ1RhcmdldCBzY2FsZScsXHJcbiAgICAgIGFsaWduOiAncmlnaHQnLFxyXG4gICAgICBzb3J0RGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiA1MFxyXG4gICAgfSxcclxuICBdXHJcblxyXG4gIHRhYmxlSGVpZ2h0OiBudW1iZXIgPSA1MDA7XHJcblxyXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZGVmYXVsdFJlcXVlc3Q6IElDb21wYXJlRGJTdHJ1Y3R1cmVSZXF1ZXN0ID0ge1xyXG4gICAgcGFnZU51bWJlcjogMSxcclxuICAgIHBhZ2VTaXplOiA1MFxyXG4gIH1cclxuXHJcbiAgcmVxdWVzdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElDb21wYXJlRGJTdHJ1Y3R1cmVSZXF1ZXN0Pih0aGlzLmRlZmF1bHRSZXF1ZXN0KTtcclxuXHJcbiAgY3VycmVudFBhZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDEpO1xyXG4gIHBhZ2VTaXplJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPig1MCk7XHJcbiAgcGFnZUNvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuICBzdXNwZW5kQ3VycmVudFBhZ2VTdWJzY3JpcHRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIHNxbENvbW1hbmQ6IHN0cmluZyA9ICcnO1xyXG4gIHJlc29sdmVyU2Vzc2lvbklkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgY29uZmxpY3RUb3RhbDogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBwU2VydmljZTogQXBwU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIobWxzKTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2hMaXN0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmFwcFNlcnZpY2UucG9zdCgnL2FwaS9TcWxTZXJ2ZXJQaXBlbGluZS9Db21wYXJlRGJTdHJ1Y3R1cmUnLCB0aGlzLnJlcXVlc3QkLnZhbHVlKS5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHgub2sgJiYgeC5zdGF0dXMgPT09IDIwMCAmJiB4LmJvZHk/LnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5kYXRhID0geC5ib2R5LmlubmVyQm9keS5kYXRhXHJcbiAgICAgICAgICB0aGlzLnBhZ2VDb3VudCA9IE1hdGguY2VpbCh4LmJvZHkuaW5uZXJCb2R5LmNvdW50IC8gdGhpcy5wYWdlU2l6ZSQudmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50UGFnZSQubmV4dCh4LmJvZHkuaW5uZXJCb2R5LnBhZ2VOdW1iZXIpO1xyXG4gICAgICAgICAgdGhpcy5jb25mbGljdFRvdGFsID0geC5ib2R5LmlubmVyQm9keS5jb3VudCB8fCAwO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgY29uc3QgdHJ5RmlsdGVyQ29uZmxpY3RUeXBlID0gdGhpcy5jb2x1bW5zLmZpbHRlcih4ID0+IHguZmllbGQgPT09ICdjb25mbGljdFR5cGUnKTtcclxuICAgICAgaWYgKCEhdHJ5RmlsdGVyQ29uZmxpY3RUeXBlLmxlbmd0aCkge1xyXG4gICAgICAgIHRyeUZpbHRlckNvbmZsaWN0VHlwZVswXS50ZW1wbGF0ZVJlZiA9IHRoaXMuY29uZmxpY3RUeXBlO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHRyeUZpbHRlckRpZmZlcmVuY2UgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKHggPT4geC5maWVsZCA9PT0gJ2RpZmZlcmVuY2UnKTtcclxuICAgICAgaWYgKCEhdHJ5RmlsdGVyRGlmZmVyZW5jZS5sZW5ndGgpIHtcclxuICAgICAgICB0cnlGaWx0ZXJEaWZmZXJlbmNlWzBdLnRlbXBsYXRlUmVmID0gdGhpcy50b29sQmxvY2s7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgdHJ5RmlsdGVyU291cmNlSXNQcmltYXJ5S2V5ID0gdGhpcy5jb2x1bW5zLmZpbHRlcih4ID0+IHguZmllbGQgPT09ICdzb3VyY2VJc1ByaW1hcnlLZXknKTtcclxuICAgICAgaWYgKCEhdHJ5RmlsdGVyU291cmNlSXNQcmltYXJ5S2V5Lmxlbmd0aCkge1xyXG4gICAgICAgIHRyeUZpbHRlclNvdXJjZUlzUHJpbWFyeUtleVswXS50ZW1wbGF0ZVJlZiA9IHRoaXMuc291cmNlSXNQcmltYXJ5S2V5O1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHRyeUZpbHRlclRhcmdldElzUHJpbWFyeUtleSA9IHRoaXMuY29sdW1ucy5maWx0ZXIoeCA9PiB4LmZpZWxkID09PSAndGFyZ2V0SXNQcmltYXJ5S2V5Jyk7XHJcbiAgICAgIGlmICghIXRyeUZpbHRlclRhcmdldElzUHJpbWFyeUtleS5sZW5ndGgpIHtcclxuICAgICAgICB0cnlGaWx0ZXJUYXJnZXRJc1ByaW1hcnlLZXlbMF0udGVtcGxhdGVSZWYgPSB0aGlzLnRhcmdldElzUHJpbWFyeUtleTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB0cnlGaWx0ZXJTb3VyY2VJc0lkZW50aXR5Q29sdW1uID0gdGhpcy5jb2x1bW5zLmZpbHRlcih4ID0+IHguZmllbGQgPT09ICdzb3VyY2VJc0lkZW50aXR5Q29sdW1uJyk7XHJcbiAgICAgIGlmICghIXRyeUZpbHRlclNvdXJjZUlzSWRlbnRpdHlDb2x1bW4ubGVuZ3RoKSB7XHJcbiAgICAgICAgdHJ5RmlsdGVyU291cmNlSXNJZGVudGl0eUNvbHVtblswXS50ZW1wbGF0ZVJlZiA9IHRoaXMuc291cmNlSXNJZGVudGl0eUNvbHVtbjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB0cnlGaWx0ZXJUYXJnZXRJc0lkZW50aXR5Q29sdW1uID0gdGhpcy5jb2x1bW5zLmZpbHRlcih4ID0+IHguZmllbGQgPT09ICd0YXJnZXRJc0lkZW50aXR5Q29sdW1uJyk7XHJcbiAgICAgIGlmICghIXRyeUZpbHRlclRhcmdldElzSWRlbnRpdHlDb2x1bW4ubGVuZ3RoKSB7XHJcbiAgICAgICAgdHJ5RmlsdGVyVGFyZ2V0SXNJZGVudGl0eUNvbHVtblswXS50ZW1wbGF0ZVJlZiA9IHRoaXMudGFyZ2V0SXNJZGVudGl0eUNvbHVtbjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB0cnlGaWx0ZXJTb3VyY2VOdWxsYWJpbGl0eSA9IHRoaXMuY29sdW1ucy5maWx0ZXIoeCA9PiB4LmZpZWxkID09PSAnc291cmNlTnVsbGFiaWxpdHknKTtcclxuICAgICAgaWYgKCEhdHJ5RmlsdGVyU291cmNlTnVsbGFiaWxpdHkubGVuZ3RoKSB7XHJcbiAgICAgICAgdHJ5RmlsdGVyU291cmNlTnVsbGFiaWxpdHlbMF0udGVtcGxhdGVSZWYgPSB0aGlzLnNvdXJjZU51bGxhYmlsaXR5O1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHRyeUZpbHRlclRhcmdldE51bGxhYmlsaXR5ID0gdGhpcy5jb2x1bW5zLmZpbHRlcih4ID0+IHguZmllbGQgPT09ICd0YXJnZXROdWxsYWJpbGl0eScpO1xyXG4gICAgICBpZiAoISF0cnlGaWx0ZXJUYXJnZXROdWxsYWJpbGl0eS5sZW5ndGgpIHtcclxuICAgICAgICB0cnlGaWx0ZXJUYXJnZXROdWxsYWJpbGl0eVswXS50ZW1wbGF0ZVJlZiA9IHRoaXMudGFyZ2V0TnVsbGFiaWxpdHk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMudGFibGVIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSA2MCAtIDUwIC0gNDYgLSAzMCAtIDQ1O1xyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5yZXF1ZXN0JC5waXBlKFxyXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZSwgY3VyKSA9PiBKU09OLnN0cmluZ2lmeShwcmUpID09PSBKU09OLnN0cmluZ2lmeShjdXIpKSxcclxuICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmcgPSB0cnVlKSxcclxuICAgICAgICAgIHN3aXRjaE1hcCh4ID0+IHRoaXMuYXBwU2VydmljZS5wb3N0KCcvYXBpL1NxbFNlcnZlclBpcGVsaW5lL0NvbXBhcmVEYlN0cnVjdHVyZScsIHgpKVxyXG4gICAgICAgICkuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICBpZiAoeC5vayAmJiB4LnN0YXR1cyA9PT0gMjAwICYmIHguYm9keT8uc3RhdHVzQ29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YSA9IHguYm9keS5pbm5lckJvZHkuZGF0YVxyXG4gICAgICAgICAgICB0aGlzLnBhZ2VDb3VudCA9IE1hdGguY2VpbCh4LmJvZHkuaW5uZXJCb2R5LmNvdW50IC8gdGhpcy5wYWdlU2l6ZSQudmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRQYWdlJC5uZXh0KHguYm9keS5pbm5lckJvZHkucGFnZU51bWJlcik7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmxpY3RUb3RhbCA9IHguYm9keS5pbm5lckJvZHkuY291bnQgfHwgMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmN1cnJlbnRQYWdlJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICBjb25zdCBuZXdSZXF1ZXN0OiBJQ29tcGFyZURiU3RydWN0dXJlUmVxdWVzdCA9IHtcclxuICAgICAgICAgICAgLi4udGhpcy5yZXF1ZXN0JC52YWx1ZSxcclxuICAgICAgICAgICAgcGFnZU51bWJlcjogeFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5yZXF1ZXN0JC5uZXh0KEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmV3UmVxdWVzdCkpKVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25TZWFyY2hpbmcoZTogYW55KTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyhcIm9uU2VhcmNoaW5nXCIsIGUpXHJcbiAgICBjb25zdCBmaWx0ZXJlZCA9IGUuZmlsdGVyKHggPT4gISF4LnNlYXJjaEZvci5sZW5ndGgpXHJcbiAgICBjb25zdCByZXFDbG9uZWQgPSB7XHJcbiAgICAgIC4uLnRoaXMucmVxdWVzdCQudmFsdWUsXHJcbiAgICAgIGZpbHRlcjogZmlsdGVyZWRcclxuICAgIH1cclxuICAgIHRoaXMucmVxdWVzdCQubmV4dChKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHJlcUNsb25lZCkpKVxyXG4gIH1cclxuXHJcbiAgb3BlblJvd1Jlc29sdmVyKGV2ZW50OiBhbnksIGNvbnRleHQ6IGFueSkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuYXBwU2VydmljZS5wb3N0KCcvYXBpL1NxbFNlcnZlclBpcGVsaW5lL0dlbmVyYXRlQ29uZmxpY3RSZXNvbHZlckNvbW1hbmQnLCBjb250ZXh0KS5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHgub2sgJiYgeC5zdGF0dXMgPT09IDIwMCAmJiB4LmJvZHk/LnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5zaG93Um93UmVzb2x2ZXJXaW5kb3cgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5yZXNvbHZlclNlc3Npb25JZCA9IHguYm9keS5pbm5lckJvZHkucmVzb2x2ZXJTZXNzaW9uSWRcclxuICAgICAgICAgIHRoaXMuc3FsQ29tbWFuZCA9ICh4LmJvZHkuaW5uZXJCb2R5LnNxbENvbW1hbmQgYXMgc3RyaW5nKS50cmltKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgY2xvc2VSb3dSZXNvbHZlcihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNob3dSb3dSZXNvbHZlcldpbmRvdyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmVzb2x2ZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuYXBwU2VydmljZS5wb3N0KCcvYXBpL1NxbFNlcnZlclBpcGVsaW5lL1J1bkNvbmZsaWN0UmVzb2x2ZXJDb21tYW5kJywge1xyXG4gICAgICAgIHJlc29sdmVyU2Vzc2lvbklkOiB0aGlzLnJlc29sdmVyU2Vzc2lvbklkLFxyXG4gICAgICAgIHNxbENvbW1hbmQ6IHRoaXMuc3FsQ29tbWFuZFxyXG4gICAgICB9KS5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHgub2sgJiYgeC5zdGF0dXMgPT09IDIwMCAmJiB4LmJvZHk/LnN0YXR1c0NvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5zaG93Um93UmVzb2x2ZXJXaW5kb3cgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMucmVmcmVzaExpc3QoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBvbkNvcmVUYWJzSGVhZGVyQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LmluZGV4ID09PSAwKSB7XHJcbiAgICAgIGNvbnN0IG5ld1JlcXVlc3Q6IElDb21wYXJlRGJTdHJ1Y3R1cmVSZXF1ZXN0ID0ge1xyXG4gICAgICAgIC4uLnRoaXMucmVxdWVzdCQudmFsdWUsXHJcbiAgICAgICAgZm9yRXh0ZW5kZWQ6IGZhbHNlXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZXF1ZXN0JC5uZXh0KG5ld1JlcXVlc3QpO1xyXG4gICAgfSBlbHNlIGlmIChldmVudC5pbmRleCA9PT0gMSkge1xyXG4gICAgICBjb25zdCBuZXdSZXF1ZXN0OiBJQ29tcGFyZURiU3RydWN0dXJlUmVxdWVzdCA9IHtcclxuICAgICAgICAuLi50aGlzLnJlcXVlc3QkLnZhbHVlLFxyXG4gICAgICAgIGZvckV4dGVuZGVkOiB0cnVlXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yZXF1ZXN0JC5uZXh0KG5ld1JlcXVlc3QpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29yZS1jb21wYXJlLWRiLXBpcGVsaW5lLWNvbnRhaW5lclwiPlxyXG4gICAgPGNvcmUtcGFnZS1oZWFkZXIgW3RpdGxlXT1cIidEQiBTVFJVQ1RVUkUgQ09NUEFSRSdcIlxyXG4gICAgICAgIFtoaWRlQnV0dG9uR3JvdXBdPVwidHJ1ZVwiPjwvY29yZS1wYWdlLWhlYWRlcj5cclxuXHJcbiAgICA8Y29yZS10YWJzIFtoZWFkZXJzXT1cInRhYkhlYWRlcnNcIiBbY29udGVudHNdPVwiW11cIiBbaGVpZ2h0XT1cIjQ1XCIgW2hlYWRlckxpbmVIZWlnaHRdPVwiNDVcIlxyXG4gICAgICAgIChvbkhlYWRlckNsaWNrKT1cIm9uQ29yZVRhYnNIZWFkZXJDbGljaygkZXZlbnQpXCI+XHJcbiAgICA8L2NvcmUtdGFicz5cclxuXHJcblxyXG4gICAgPGNvcmUtdGFibGUgW2NvbHVtbnNdPVwiY29sdW1uc1wiIFtoZWlnaHRdPVwidGFibGVIZWlnaHRcIiBbZGF0YV09XCJkYXRhXCIgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICAgICAgW2F1dG9Db2x1bW5GaXRBdmFpbGFibGVTcGFjZV09XCJmYWxzZVwiIFtmcm96ZW5dPVwiM1wiIFtsYXp5TG9hZGluZ109XCJ0cnVlXCIgW2hlYWRlckZpcnN0Um93SGVpZ2h0XT1cIjgwXCJcclxuICAgICAgICAob25TZWFyY2hpbmcpPVwib25TZWFyY2hpbmcoJGV2ZW50KVwiPjwvY29yZS10YWJsZT5cclxuICAgIDxkaXYgY2xhc3M9XCJoMTVcIj48L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggZC1mbGV4LWJldHdlZW5cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmxpY3QtdG90YWxcIiBbY2xhc3MuZXJyb3JdPVwiISFjb25mbGljdFRvdGFsXCI+XHJcbiAgICAgICAgICAgIHt7ICEhbG9hZGluZyA/ICdTY2FubmluZyBmb3IgaXNzdWVzLi4uJyA6ICghIWNvbmZsaWN0VG90YWwgPyBjb25mbGljdFRvdGFsICsgJyBjb25mbGljdHMgZm91bmQhJyA6ICdObyBjb25mbGljdCBmb3VuZCcpIH19IFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxjb3JlLXBhZ2luYXRpb24gWyRoZWlnaHRdPVwiNDZcIiBbJGN1cnJlbnRQYWdlXT1cImN1cnJlbnRQYWdlJFwiIFskcGFnZUNvdW50XT1cInBhZ2VDb3VudFwiIFskbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgICAgICAgICAgWyRiYWNrZ3JvdW5kXT1cIicjODQ4NDg0J1wiIFskZml4ZWRQYWdlU2l6ZV09XCIyMFwiXHJcbiAgICAgICAgICAgIFskc3VzcGVuZEN1cnJlbnRQYWdlU3Vic2NyaXB0aW9uXT1cInN1c3BlbmRDdXJyZW50UGFnZVN1YnNjcmlwdGlvbiRcIj48L2NvcmUtcGFnaW5hdGlvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIEBpZiAoc2hvd1Jvd1Jlc29sdmVyV2luZG93KSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudC1yb290XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93LXJlc29sdmVyLXdpbmRvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjb3JlLXBhZ2UtaGVhZGVyIFt0aXRsZV09XCInUkVTT0xWRVIgV0lORE9XJ1wiIFtoaWRlQnV0dG9uR3JvdXBdPVwidHJ1ZVwiPjwvY29yZS1wYWdlLWhlYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImNsb3NlLWljb24gcG9pbnRlciBmZWF0aGVyLXggZnMyNFwiIChjbGljayk9XCJjbG9zZVJvd1Jlc29sdmVyKCRldmVudClcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW3Jvd3NdPVwiJzEwJ1wiIHN0eWxlPVwiaGVpZ2h0OiA0MDBweDsgcGFkZGluZzogMTVweDtcIiBkaXNhYmxlZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgc3FsQ29tbWFuZCB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJyZXNvbHZlKCRldmVudClcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDE1cHg7XCI+UnVuPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNjb25mbGljdFR5cGUgbGV0LWNvbnRleHQ9XCJjb250ZXh0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZsaWN0LXR5cGUtd3JhcHBlciBkLWZsZXggZC1mbGV4LWJldHdlZW5cIiBbYXBwVG9vbHRpcF09XCJjb250ZXh0LmNvbmZsaWN0VHlwZVwiIFtzaG93QW55d2F5XT1cInRydWVcIj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIEBzd2l0Y2ggKGNvbnRleHQuY29uZmxpY3RUeXBlKSB7XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ1RNSVQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidmZWF0aGVyLWxheW91dCAnICsgY29udGV4dC5jb25mbGljdFR5cGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ0NNSVQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidmZWF0aGVyLXNpZGViYXIgJyArIGNvbnRleHQuY29uZmxpY3RUeXBlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdDUEtNJykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCInZmVhdGhlci16YXAgJyArIGNvbnRleHQuY29uZmxpY3RUeXBlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdDVE0nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidmZWF0aGVyLXR5cGUgJyArIGNvbnRleHQuY29uZmxpY3RUeXBlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdDU00nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidmZWF0aGVyLWxheWVycyAnICsgY29udGV4dC5jb25mbGljdFR5cGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ0NOTScpIHtcclxuICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ2ZlYXRoZXItZHJvcGxldCAnICsgY29udGV4dC5jb25mbGljdFR5cGVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAY2FzZSAoJ0NQU00nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIidmZWF0aGVyLW1vdmUgJyArIGNvbnRleHQuY29uZmxpY3RUeXBlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdSVCcpIHtcclxuICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ2ZlYXRoZXItdHJhc2ggJyArIGNvbnRleHQuY29uZmxpY3RUeXBlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGNhc2UgKCdSQycpIHtcclxuICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ2ZlYXRoZXItdHJhc2ggJyArIGNvbnRleHQuY29uZmxpY3RUeXBlXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI3Rvb2xCbG9jayBsZXQtY29udGV4dD1cImNvbnRleHRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHMgaW50ZXItZm9udCBkLWZsZXggZC1mbGV4LXN0YXJ0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXdyYXBwZXJcIiBbYXBwVG9vbHRpcF09XCInUmVzb2x2ZSdcIiBbcG9zaXRpb25dPVwiJ3JpZ2h0J1wiIFtzaG93QW55d2F5XT1cInRydWVcIiAoY2xpY2spPVwib3BlblJvd1Jlc29sdmVyKCRldmVudCwgY29udGV4dClcIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci1wbGF5IGZzMjRcIj48L2k+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBjb250ZXh0LmRpZmZlcmVuY2UgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNzb3VyY2VOdWxsYWJpbGl0eSBsZXQtY29udGV4dD1cImNvbnRleHRcIj5cclxuICAgICAgICA8Y29yZS1jaGVja2JveCBbbmdNb2RlbF09XCIhIWNvbnRleHQuc291cmNlTnVsbGFiaWxpdHlcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvY29yZS1jaGVja2JveD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI3RhcmdldE51bGxhYmlsaXR5IGxldC1jb250ZXh0PVwiY29udGV4dFwiPlxyXG4gICAgICAgIDxjb3JlLWNoZWNrYm94IFtuZ01vZGVsXT1cIiEhY29udGV4dC50YXJnZXROdWxsYWJpbGl0eVwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+PC9jb3JlLWNoZWNrYm94PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjc291cmNlSXNQcmltYXJ5S2V5IGxldC1jb250ZXh0PVwiY29udGV4dFwiPlxyXG4gICAgICAgIDxjb3JlLWNoZWNrYm94IFtuZ01vZGVsXT1cIiEhY29udGV4dC5zb3VyY2VJc1ByaW1hcnlLZXlcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvY29yZS1jaGVja2JveD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI3NvdXJjZUlzSWRlbnRpdHlDb2x1bW4gbGV0LWNvbnRleHQ9XCJjb250ZXh0XCI+XHJcbiAgICAgICAgPGNvcmUtY2hlY2tib3ggW25nTW9kZWxdPVwiISFjb250ZXh0LnNvdXJjZUlzSWRlbnRpdHlDb2x1bW5cIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPjwvY29yZS1jaGVja2JveD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI3RhcmdldElzUHJpbWFyeUtleSBsZXQtY29udGV4dD1cImNvbnRleHRcIj5cclxuICAgICAgICA8Y29yZS1jaGVja2JveCBbbmdNb2RlbF09XCIhIWNvbnRleHQudGFyZ2V0SXNQcmltYXJ5S2V5XCIgW2Rpc2FibGVkXT1cInRydWVcIj48L2NvcmUtY2hlY2tib3g+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICN0YXJnZXRJc0lkZW50aXR5Q29sdW1uIGxldC1jb250ZXh0PVwiY29udGV4dFwiPlxyXG4gICAgICAgIDxjb3JlLWNoZWNrYm94IFtuZ01vZGVsXT1cIiEhY29udGV4dC50YXJnZXRJc0lkZW50aXR5Q29sdW1uXCIgW2Rpc2FibGVkXT1cInRydWVcIj48L2NvcmUtY2hlY2tib3g+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuPC9kaXY+Il19
|