@universis/ngx-tables 0.6.10 → 0.6.11
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/bundles/universis-ngx-tables.umd.js +23 -13
- package/bundles/universis-ngx-tables.umd.js.map +1 -1
- package/bundles/universis-ngx-tables.umd.min.js +1 -1
- package/bundles/universis-ngx-tables.umd.min.js.map +1 -1
- package/esm2015/lib/components/advanced-select/advanced-select.component.js +2 -2
- package/esm2015/lib/components/advanced-table/advanced-table-search.component.js +2 -2
- package/esm2015/lib/components/advanced-table/advanced-table.component.js +7 -3
- package/esm2015/lib/components/advanced-table/advanced-table.formatters.js +1 -1
- package/esm2015/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +17 -10
- package/esm2015/lib/tables.module.js +1 -3
- package/esm5/lib/components/advanced-select/advanced-select.component.js +2 -2
- package/esm5/lib/components/advanced-table/advanced-table-search.component.js +2 -2
- package/esm5/lib/components/advanced-table/advanced-table.component.js +7 -3
- package/esm5/lib/components/advanced-table/advanced-table.formatters.js +1 -1
- package/esm5/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +12 -5
- package/esm5/lib/tables.module.js +1 -3
- package/fesm2015/universis-ngx-tables.js +24 -15
- package/fesm2015/universis-ngx-tables.js.map +1 -1
- package/fesm5/universis-ngx-tables.js +19 -10
- package/fesm5/universis-ngx-tables.js.map +1 -1
- package/lib/components/advanced-table-modal/advanced-table-modal-base.component.d.ts +5 -1
- package/package.json +1 -1
- package/universis-ngx-tables.metadata.json +1 -1
|
@@ -470,4 +470,4 @@ var LanguageFormatter = /** @class */ (function (_super) {
|
|
|
470
470
|
}(AdvancedColumnFormatter));
|
|
471
471
|
export { LanguageFormatter };
|
|
472
472
|
|
|
473
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtdGFibGUuZm9ybWF0dGVycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1bml2ZXJzaXMvbmd4LXRhYmxlcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmZvcm1hdHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsRUFBRSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBR3BDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEtBQUssT0FBTyxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQW9CLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBR3BGO0lBQUE7SUEyRkEsQ0FBQztJQXpFaUIsZ0NBQVEsR0FBdEIsVUFBdUIsSUFBWTtRQUNqQyxJQUFJLE1BQU0sR0FBRyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdELElBQUksT0FBTyxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQ2hDLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFJUywrQ0FBYSxHQUF2QixVQUF3QixJQUFTLEVBQUUsT0FBaUU7UUFDbEcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNuQyxJQUFNLGNBQWMsR0FBbUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7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QWdCLEdBQUcsV0FBSyxJQUFJLFlBQVMsQ0FBQzt5QkFDOUM7cUJBQ0Y7Ozs7Ozs7OzthQUNGO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUlILHVCQUFDO0FBQUQsQ0FBQyxBQTFCRCxDQUFzQyx1QkFBdUIsR0EwQjVEOztBQUNEO0lBQXVDLDZDQUF1QjtJQU81RDtlQUNFLGlCQUFPO0lBQ1QsQ0FBQztJQVJNLGtDQUFNLEdBQWIsVUFBYyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJO1FBQ2pDLElBQUksSUFBSSxFQUFFO1lBQ1IsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBSUgsd0JBQUM7QUFBRCxDQUFDLEFBVkQsQ0FBdUMsdUJBQXVCLEdBVTdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt0ZW1wbGF0ZSwgYXR9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1RhYmxlQ29sdW1uQ29uZmlndXJhdGlvbn0gZnJvbSAnLi9hZHZhbmNlZC10YWJsZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7SW5qZWN0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBJU082MzkxIGZyb20gJ2lzby02MzktMS9idWlsZCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkV4dHJhcywgUm91dGVyLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbi8vIGltcG9ydCB7IERyb3Bkb3duIH0gZnJvbSAnYm9vdHN0cmFwJztcbmRlY2xhcmUgdmFyIGpRdWVyeTogYW55O1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyIGltcGxlbWVudHMgVGFibGVDb2x1bW5Db25maWd1cmF0aW9uIHtcblxuICAgIHB1YmxpYyBzdGF0aWMgdGVtcGxhdGVDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCAoZGF0YTogYW55KSA9PiBzdHJpbmc+KCk7XG5cbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yO1xuICAgIHB1YmxpYyBjbGFzc05hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgZGVmYXVsdENvbnRlbnQ6IHN0cmluZztcbiAgICBwdWJsaWMgZm9ybWF0U3RyaW5nOiBzdHJpbmc7XG4gICAgcHVibGljIGZvcm1hdHRlcjogc3RyaW5nO1xuICAgIHB1YmxpYyBoaWRkZW46IGJvb2xlYW47XG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgb3JkZXI6IHN0cmluZztcbiAgICBwdWJsaWMgcHJvcGVydHk6IHN0cmluZztcbiAgICBwdWJsaWMgc29ydGFibGU6IGJvb2xlYW47XG4gICAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG4gICAgcHVibGljIGZvcm1hdE9wdGlvbnM/OiBhbnk7XG4gICAgcHVibGljIGFjdGlvbnM/OiBBcnJheTxhbnk+O1xuXG4gICAgcHVibGljIHN0YXRpYyB0ZW1wbGF0ZShleHByOiBzdHJpbmcpOiAoZGF0YTogYW55KSA9PiBzdHJpbmcge1xuICAgICAgbGV0IHJlc3VsdCA9IEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyLnRlbXBsYXRlQ2FjaGUuZ2V0KGV4cHIpO1xuICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCA9IHRlbXBsYXRlKGV4cHIpO1xuICAgICAgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGVDYWNoZS5zZXQoZXhwciwgcmVzdWx0KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFic3RyYWN0IHJlbmRlcihkYXRhOiBhbnksIHR5cGU6IHN0cmluZywgcm93OiBhbnksIG1ldGE6IGFueSk6IGFueTtcblxuICAgIHByb3RlY3RlZCBjcmVhdGVVcmxUcmVlKGRhdGE6IGFueSwgb3B0aW9uczogeyBjb21tYW5kczogYW55W10sIG5hdmlnYXRpb25FeHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzIH0pOiBVcmxUcmVlIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMuY29tbWFuZHMpKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICAgICAgY29uc3Qgcm91dGVyOiBSb3V0ZXIgPSB0aGlzLmluamVjdG9yLmdldChSb3V0ZXIpO1xuICAgICAgICBjb25zdCBjb21tYW5kcyA9IG9wdGlvbnMuY29tbWFuZHMubWFwKCAoY29tbWFuZCkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb21tYW5kID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBBZHZhbmNlZENvbHVtbkZvcm1hdHRlci50ZW1wbGF0ZShjb21tYW5kKShkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb21tYW5kLm91dGxldHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kT3V0bGV0cyA9IHt9O1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbW1hbmQub3V0bGV0cykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29tbWFuZC5vdXRsZXRzLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvdXRsZXQgPSBjb21tYW5kLm91dGxldHNba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG91dGxldCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29tbWFuZE91dGxldHMsIGtleSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogb3V0bGV0Lm1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyLnRlbXBsYXRlKHgpKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbW1hbmRPdXRsZXRzLCBrZXksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG91dGxldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIG91dGxldHM6IGNvbW1hbmRPdXRsZXRzLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY29tbWFuZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge307XG4gICAgICAgIGxldCByZXBsYWNlVXJsID0gdHJ1ZTtcbiAgICAgICAgaWYgKG9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcyAmJiBvcHRpb25zLm5hdmlnYXRpb25FeHRyYXMucXVlcnlQYXJhbXMpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKG9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcy5xdWVyeVBhcmFtcykubWFwKCAoa2V5KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHRleHQgPSBvcHRpb25zLm5hdmlnYXRpb25FeHRyYXMucXVlcnlQYXJhbXNba2V5XTtcbiAgICAgICAgICAgICAgcXVlcnlQYXJhbXNba2V5XSA9IEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyLnRlbXBsYXRlKHRleHQpKGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcyAmJiB0eXBlb2Ygb3B0aW9ucy5uYXZpZ2F0aW9uRXh0cmFzLnJlcGxhY2VVcmwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgcmVwbGFjZVVybCA9IG9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcy5yZXBsYWNlVXJsO1xuICAgICAgICB9XG4gICAgICAgIGxldCBza2lwTG9jYXRpb25DaGFuZ2UgPSBmYWxzZTtcbiAgICAgICAgaWYgKG9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcyAmJiB0eXBlb2Ygb3B0aW9ucy5uYXZpZ2F0aW9uRXh0cmFzLnNraXBMb2NhdGlvbkNoYW5nZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgc2tpcExvY2F0aW9uQ2hhbmdlID0gb3B0aW9ucy5uYXZpZ2F0aW9uRXh0cmFzLnNraXBMb2NhdGlvbkNoYW5nZTtcbiAgICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3V0ZXIuY3JlYXRlVXJsVHJlZShjb21tYW5kcywge1xuICAgICAgICAgICAgcmVsYXRpdmVUbzogYWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgICBxdWVyeVBhcmFtcyxcbiAgICAgICAgICAgIHJlcGxhY2VVcmwsXG4gICAgICAgICAgICBza2lwTG9jYXRpb25DaGFuZ2UsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uQWR2YW5jZWRDb2x1bW5BZnRlclJlbmRlciB7XG4gIGFmdGVyUmVuZGVyKGNlbGw6IGFueSwgY2VsbERhdGE6IGFueSwgcm93RGF0YTogYW55LCByb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogdm9pZDtcbn1cblxuZXhwb3J0IGNsYXNzIE5lc3RlZFByb3BlcnR5Rm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICAgIHB1YmxpYyByZW5kZXIoZGF0YSwgdHlwZSwgcm93LCBtZXRhKSB7XG4gICAgICAgIC8vIGdldCBjb2x1bW5cbiAgICAgICAgY29uc3QgY29sdW1uID0gbWV0YS5zZXR0aW5ncy5hb0NvbHVtbnNbbWV0YS5jb2xdO1xuICAgICAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gYXQocm93LCBjb2x1bW4uZGF0YS5yZXBsYWNlKC9cXC8vZywgJy4nKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJ1dHRvbkZvcm1hdHRlciBleHRlbmRzIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyIHtcbiAgcHVibGljIHJlbmRlcihkYXRhLCB0eXBlLCByb3csIG1ldGEpIHtcbiAgICBpZiAoZGF0YSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG4gICAgLy8gZ2V0IGZvcm1hdCBvcHRpb25zXG4gICAgY29uc3QgZm9ybWF0T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgYnV0dG9uQ2xhc3M6ICdidG4gYnRuLWRlZmF1bHQnLFxuICAgIH0sIHRoaXMuZm9ybWF0T3B0aW9ucyk7XG4gICAgLy8gZ2V0IHRleHQgY29udGVudFxuICAgIGxldCBidXR0b25UZXh0OiBzdHJpbmc7XG4gICAgbGV0IGJ1dHRvblRpdGxlID0gJyc7XG4gICAgaWYgKGZvcm1hdE9wdGlvbnMuYnV0dG9uVGV4dCkge1xuICAgICAgYnV0dG9uVGV4dCA9IHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoZm9ybWF0T3B0aW9ucy5idXR0b25UZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnV0dG9uVGV4dCA9IGZvcm1hdE9wdGlvbnMuYnV0dG9uQ29udGVudDtcbiAgICB9XG4gICAgaWYgKGZvcm1hdE9wdGlvbnMuYnV0dG9uVGl0bGUpIHtcbiAgICAgIGJ1dHRvblRpdGxlID0gdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuaW5zdGFudChmb3JtYXRPcHRpb25zLmJ1dHRvblRpdGxlKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5mb3JtYXRPcHRpb25zLmNvbW1hbmRzKSkge1xuICAgICAgY29uc3Qgcm91dGVyTGluayA9IHRoaXMuY3JlYXRlVXJsVHJlZShyb3csIHRoaXMuZm9ybWF0T3B0aW9ucyk7XG4gICAgICByZXR1cm4gYDxhIGNsYXNzPVwiJHtmb3JtYXRPcHRpb25zLmJ1dHRvbkNsYXNzfVwiIHRpdGxlPVwiJHtidXR0b25UaXRsZX1cIiBocmVmPVwiIyR7cm91dGVyTGlua31cIj4ke2J1dHRvblRleHR9PC9hPmA7XG4gICAgfVxuICAgIC8vIGFuZCByZXR1cm4gYnV0dG9uXG4gICAgY29uc3QgaHJlZiA9IEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyLnRlbXBsYXRlKHRoaXMuZm9ybWF0U3RyaW5nKShyb3cpO1xuICAgIHJldHVybiBgPGEgY2xhc3M9XCIke2Zvcm1hdE9wdGlvbnMuYnV0dG9uQ2xhc3N9XCIgdGl0bGU9XCIke2J1dHRvblRpdGxlfVwiIGhyZWY9XCIke2hyZWZ9XCI+JHtidXR0b25UZXh0fTwvYT5gO1xuICB9XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpbmtGb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlciB7XG4gIHB1YmxpYyByZW5kZXIoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcsIHJvdzogYW55LCBtZXRhOiBhbnkpOiBhbnkge1xuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG4gICAgaWYgKGNvbHVtbiAmJiBjb2x1bW4uZGF0YSkge1xuICAgICAgcmV0dXJuIGA8YSBocmVmPVwiJHsoQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGUodGhpcy5mb3JtYXRTdHJpbmcpKHJvdykpfVwiPiR7ZGF0YX08L2E+YDtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uTGlua0Zvcm1hdHRlciBleHRlbmRzIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyXG4gIGltcGxlbWVudHMgT25BZHZhbmNlZENvbHVtbkFmdGVyUmVuZGVyIHtcbiAgcHVibGljIHJlbmRlcihkYXRhOiBhbnksIHR5cGU6IHN0cmluZywgcm93OiBhbnksIG1ldGE6IGFueSk6IGFueSB7XG4gICAgLy8gZ2V0IGNvbHVtblxuICAgIGNvbnN0IGNvbHVtbiA9IG1ldGEuc2V0dGluZ3MuYW9Db2x1bW5zW21ldGEuY29sXTtcblxuICAgIGlmIChjb2x1bW4gJiYgY29sdW1uLmRhdGEpIHtcbiAgICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLmFjdGlvbnMgfHwgW107XG4gICAgICBsZXQgaW5kZXggPSAxO1xuICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgYWN0aW9ucykge1xuICAgICAgICBPYmplY3QuYXNzaWduKGFjdGlvbiwge1xuICAgICAgICAgIG5hbWU6IGFjdGlvbi5uYW1lIHx8IGBhY3Rpb24ke2luZGV4fWAsXG4gICAgICAgIH0pO1xuICAgICAgICBpbmRleCArPSAxO1xuICAgICAgfVxuICAgICAgLy8gcmV0dXJuIHRoZSBkcm9wZG93biBtZW51IHdpdGggMyBkb3RzXG4gICAgICByZXR1cm4gYDxkaXYgY2xhc3M9J2Ryb3Bkb3duIGRldGFpbHMtY29udHJvbCcgZGF0YS1pZD0nJHtkYXRhfScgZGF0YS10eXBlPSdzdHVkZW50JyA+XG4gICAgICAgICAgICAgICAgICAgIDxhIGlkPVwiZHJvcGRvd25NZW51QnV0dG9uLSR7ZGF0YX1cIlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEtMnggdGV4dC1kb3RzXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25NZW51QnV0dG9uLSR7ZGF0YX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICR7YWN0aW9ucy5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgaWYgKHgudHlwZSA9PT0gJ2RpdmlkZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tZGl2aWRlclwiPjwvZGl2PmA7XG4gICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgaWYgKHguZm9ybWF0T3B0aW9ucyAmJiB4LmZvcm1hdE9wdGlvbnMuY29tbWFuZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmxUcmVlID0gdGhpcy5jcmVhdGVVcmxUcmVlKHJvdywgeC5mb3JtYXRPcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxhIGRhdGEtbmFtZT0nJHt4Lm5hbWV9JyBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiBocmVmPVwiJHt1cmxUcmVlLnRvU3RyaW5nKCl9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KHgudGl0bGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+YDtcbiAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxhIGRhdGEtbmFtZT0nJHt4Lm5hbWV9JyBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiBocmVmPVwiJHtBZHZhbmNlZENvbHVtbkZvcm1hdHRlci50ZW1wbGF0ZSh4LmhyZWYpKHJvdyl9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuaW5zdGFudCh4LnRpdGxlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5gO1xuICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAuam9pbignJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuICBwdWJsaWMgYWZ0ZXJSZW5kZXIoY2VsbDogYW55LCBjZWxsRGF0YTogYW55LCByb3dEYXRhOiBhbnksIHJvd0luZGV4OiBudW1iZXIsIGNvbEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAvLyBhc3NpZ24gYm9vdHN0cmFwIGRyb3Bkb3duICg/KVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25CdXR0b25Gb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlclxuICBpbXBsZW1lbnRzIE9uQWR2YW5jZWRDb2x1bW5BZnRlclJlbmRlciB7XG4gIHB1YmxpYyByZW5kZXIoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcsIHJvdzogYW55LCBtZXRhOiBhbnkpOiBhbnkge1xuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG5cbiAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICBjb25zdCBhY3Rpb25zID0gdGhpcy5hY3Rpb25zIHx8IFtdO1xuICAgICAgbGV0IGluZGV4ID0gMTtcbiAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIGFjdGlvbnMpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihhY3Rpb24sIHtcbiAgICAgICAgICBuYW1lOiBhY3Rpb24ubmFtZSB8fCBgYWN0aW9uJHtpbmRleH1gLFxuICAgICAgICB9KTtcbiAgICAgICAgaW5kZXggKz0gMTtcbiAgICAgIH1cbiAgICAgIGxldCBidXR0b25UZXh0OiBzdHJpbmc7XG4gICAgICBpZiAodGhpcy5mb3JtYXRPcHRpb25zICYmIHRoaXMuZm9ybWF0T3B0aW9ucy5idXR0b25UZXh0KSB7XG4gICAgICAgIC8vIGlmIGJ1dHRvbiB0ZXh0IGlzIGEgbGl0ZXJhbCBleHByZXNzaW9uXG4gICAgICAgIGlmICh0aGlzLmZvcm1hdE9wdGlvbnMuYnV0dG9uVGV4dC5pbmNsdWRlcygnJHsnKSkge1xuICAgICAgICAgIC8vIHVzZSB0ZW1wbGF0ZVxuICAgICAgICAgIGJ1dHRvblRleHQgPSBBZHZhbmNlZENvbHVtbkZvcm1hdHRlci50ZW1wbGF0ZSh0aGlzLmZvcm1hdE9wdGlvbnMuYnV0dG9uVGV4dCkocm93KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBvdGhlcndpc2UgdHJhbnNsYXRlIGl0XG4gICAgICAgICAgYnV0dG9uVGV4dCA9IHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQodGhpcy5mb3JtYXRPcHRpb25zLmJ1dHRvblRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsZXQgYnV0dG9uVGl0bGU6IHN0cmluZztcbiAgICAgIGlmICh0aGlzLmZvcm1hdE9wdGlvbnMgJiYgdGhpcy5mb3JtYXRPcHRpb25zLmJ1dHRvblRpdGxlKSB7XG4gICAgICAgIGJ1dHRvblRpdGxlID0gdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuaW5zdGFudCh0aGlzLmZvcm1hdE9wdGlvbnMuYnV0dG9uVGJ1dHRvblRpdGxlZXh0KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGJ1dHRvbkNsYXNzID0gKHRoaXMuZm9ybWF0T3B0aW9ucyAmJiB0aGlzLmZvcm1hdE9wdGlvbnMuYnV0dG9uQ2xhc3MpIHx8ICdidG4gYnRuLWxpZ2h0JztcbiAgICAgIC8vIHJldHVybiB0aGUgZHJvcGRvd24gbWVudSB3aXRoIDMgZG90c1xuICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPSdkcm9wZG93biBkZXRhaWxzLWNvbnRyb2wnIGRhdGEtaWQ9JyR7ZGF0YX0nPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIiR7YnV0dG9uQ2xhc3N9IGRyb3Bkb3duLXRvZ2dsZVwiIGhyZWY9XCIjXCIgcm9sZT1cImJ1dHRvblwiIHRpdGxlPVwiJHtidXR0b25UaXRsZX1cIlxuICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZHJvcGRvd25NZW51QnV0dG9uLSR7ZGF0YX1cIiBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAke2J1dHRvblRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bk1lbnVCdXR0b24tJHtkYXRhfVwiPlxuICAgICAgICAgICAgICAgICAgICAgJHthY3Rpb25zLm1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICBpZiAoeC50eXBlID09PSAnZGl2aWRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJkcm9wZG93bi1kaXZpZGVyXCI+PC9kaXY+YDtcbiAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICBpZiAoeC5jb21tYW5kcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLmNyZWF0ZVVybFRyZWUocm93LCB4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxhIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIGhyZWY9XCIke3VybFRyZWUudG9TdHJpbmcoKX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoeC50aXRsZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5gO1xuICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgaHJlZj1cIiR7QWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGUoeC5ocmVmKShyb3cpfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoeC50aXRsZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+YDtcbiAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgLmpvaW4oJycpfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgcHVibGljIGFmdGVyUmVuZGVyKGNlbGw6IGFueSwgY2VsbERhdGE6IGFueSwgcm93RGF0YTogYW55LCByb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgLy8gYXNzaWduIGJvb3RzdHJhcCBkcm9wZG93biAoPylcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uU3BsaXRCdXR0b25Gb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlclxuICBpbXBsZW1lbnRzIE9uQWR2YW5jZWRDb2x1bW5BZnRlclJlbmRlciB7XG4gIHB1YmxpYyByZW5kZXIoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcsIHJvdzogYW55LCBtZXRhOiBhbnkpOiBhbnkge1xuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG5cbiAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICBjb25zdCBhY3Rpb25zID0gdGhpcy5hY3Rpb25zIHx8IFtdO1xuICAgICAgbGV0IGluZGV4ID0gMTtcbiAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIGFjdGlvbnMpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihhY3Rpb24sIHtcbiAgICAgICAgICBuYW1lOiBhY3Rpb24ubmFtZSB8fCBgYWN0aW9uJHtpbmRleH1gLFxuICAgICAgICB9KTtcbiAgICAgICAgaW5kZXggKz0gMTtcbiAgICAgIH1cbiAgICAgIGlmIChhY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBidXR0b25DbGFzcyA9ICh0aGlzLmZvcm1hdE9wdGlvbnMgJiYgdGhpcy5mb3JtYXRPcHRpb25zLmJ1dHRvbkNsYXNzKSB8fCAnYnRuIGJ0bi1saWdodCc7XG4gICAgICAvLyByZXR1cm4gdGhlIGRyb3Bkb3duIG1lbnUgd2l0aCAzIGRvdHNcbiAgICAgIGNvbnN0IGRlZmF1bHRBY3Rpb24gPSBhY3Rpb25zWzBdO1xuICAgICAgbGV0IGRlZmF1bHRBY3Rpb25IcmVmOiBzdHJpbmc7XG4gICAgICBpZiAoZGVmYXVsdEFjdGlvbiAmJiBkZWZhdWx0QWN0aW9uLmNvbW1hbmRzKSB7XG4gICAgICAgIGRlZmF1bHRBY3Rpb25IcmVmID0gdGhpcy5jcmVhdGVVcmxUcmVlKHJvdywgZGVmYXVsdEFjdGlvbikudG9TdHJpbmcoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlZmF1bHRBY3Rpb25IcmVmID0gQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGUoZGVmYXVsdEFjdGlvbi5ocmVmKShyb3cpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIiR7YnV0dG9uQ2xhc3N9XCIgaHJlZj1cIiR7ZGVmYXVsdEFjdGlvbkhyZWZ9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KGRlZmF1bHRBY3Rpb24udGl0bGUpfVxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiJHtidXR0b25DbGFzc30gZHJvcGRvd24tdG9nZ2xlIGRyb3Bkb3duLXRvZ2dsZS1zcGxpdFwiXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+JHt0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KCdUb2dnbGUgRHJvcGRvd24nKX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIGFyaWEtbGFiZWxsZWRieT1cImRyb3Bkb3duTWVudUJ1dHRvbi0ke2RhdGF9XCI+XG4gICAgICAgICAgICAgICAgICAgICAke2FjdGlvbnMubWFwKCh4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgIGlmICh4LnRpdGxlID09PSAnLScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJkcm9wZG93bi1kaXZpZGVyXCI+PC9kaXY+YDtcbiAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICBpZiAoeC5jb21tYW5kcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLmNyZWF0ZVVybFRyZWUocm93LCB4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxhIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIGhyZWY9XCIke3VybFRyZWUudG9TdHJpbmcoKX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoeC50aXRsZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5gO1xuICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgaHJlZj1cIiR7QWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGUoeC5ocmVmKShyb3cpfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoeC50aXRsZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+YDtcbiAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgLmpvaW4oJycpfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgcHVibGljIGFmdGVyUmVuZGVyKGNlbGw6IGFueSwgY2VsbERhdGE6IGFueSwgcm93RGF0YTogYW55LCByb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgLy8gYXNzaWduIGJvb3RzdHJhcCBkcm9wZG93biAoPylcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0Um93Rm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICAgIHB1YmxpYyByZW5kZXIoZGF0YSwgdHlwZSwgcm93LCBtZXRhKSB7XG4gICAgICAgIC8vIGdldCBjb2x1bW5cbiAgICAgICAgY29uc3QgY29sdW1uID0gbWV0YS5zZXR0aW5ncy5hb0NvbHVtbnNbbWV0YS5jb2xdO1xuICAgICAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgX3RwbCA9IGA8aW5wdXQgY2xhc3M9XCJjaGVja2JveCBjaGVja2JveC10aGVtZVwiIHR5cGU9XCJjaGVja2JveFwiXG4gaWQ9XCJzLSR7bWV0YS5yb3d9XCIgLz48bGFiZWwgZm9yPVwicy0ke21ldGEucm93fVwiPiZuYnNwOzwvbGFiZWw+YDtcbiAgICAgICAgICByZXR1cm4gIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyLnRlbXBsYXRlKF90cGwpKHJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlRm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICAgIHB1YmxpYyByZW5kZXIoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcsIHJvdzogYW55LCBtZXRhOiBhbnkpOiBhbnkge1xuICAgICAgICAvLyBnZXQgY29sdW1uXG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IG1ldGEuc2V0dGluZ3MuYW9Db2x1bW5zW21ldGEuY29sXTtcbiAgICAgICAgaWYgKGNvbHVtbiAmJiBjb2x1bW4uZGF0YSkge1xuICAgICAgICAgIHJldHVybiBBZHZhbmNlZENvbHVtbkZvcm1hdHRlci50ZW1wbGF0ZSh0aGlzLmZvcm1hdFN0cmluZykocm93KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHJ1ZUZhbHNlRm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuXG4gICAgcHVibGljIHJlbmRlcihkYXRhLCB0eXBlLCByb3csIG1ldGEpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEgPyB0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KCdUcnVlRmFsc2UubG9uZy5ZZXMnKSA6XG4gICAgICAgICAgICB0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KCdUcnVlRmFsc2UubG9uZy5ObycpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cblxuZGVjbGFyZSBpbnRlcmZhY2UgVHJhbnNsYXRpb25Gb3JtYXR0ZXJUZW1wbGF0ZSB7XG4gIHRyYW5zbGF0ZVRlbXBsYXRlPzogKGRhdGE6IGFueSkgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25Gb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlciB7XG4gIHB1YmxpYyByZW5kZXIoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcsIHJvdzogYW55LCBtZXRhOiBhbnkpOiBhbnkge1xuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW46IFRyYW5zbGF0aW9uRm9ybWF0dGVyVGVtcGxhdGUgPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG4gICAgaWYgKGNvbHVtbiAmJiBkYXRhICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KFxuICAgICAgICBBZHZhbmNlZENvbHVtbkZvcm1hdHRlci50ZW1wbGF0ZSh0aGlzLmZvcm1hdFN0cmluZykoe1xuICAgICAgICB2YWx1ZTogZGF0YSxcbiAgICAgIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoJ1Vua25vd24nKTtcbiAgfVxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlVGltZUZvcm1hdHRlciBleHRlbmRzIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyIHtcbiAgcHVibGljIHJlbmRlcihkYXRhOiBhbnksIHR5cGU6IHN0cmluZywgcm93OiBhbnksIG1ldGE6IGFueSk6IGFueSB7XG4gICAgLy8gZ2V0IGNvbHVtblxuICAgIGNvbnN0IGNvbHVtbiA9IG1ldGEuc2V0dGluZ3MuYW9Db2x1bW5zW21ldGEuY29sXTtcbiAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICBjb25zdCBkYXRlUGlwZTogRGF0ZVBpcGUgPSBuZXcgRGF0ZVBpcGUodGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuY3VycmVudExhbmcpO1xuICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJyAmJiAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9VFxcZHsyfTpcXGR7Mn06XFxkezJ9XFwrXFxkezJ9JC8udGVzdChkYXRhKSkge1xuICAgICAgICByZXR1cm4gZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKGRhdGEgKyAnOjAwJyksIHRoaXMuZm9ybWF0U3RyaW5nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRlUGlwZS50cmFuc2Zvcm0oZGF0YSwgdGhpcy5mb3JtYXRTdHJpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOZ0NsYXNzRm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICBwdWJsaWMgcmVuZGVyKGRhdGEsIHR5cGUsIHJvdywgbWV0YSkge1xuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG4gICAgaWYgKGNvbHVtbiAmJiBjb2x1bW4uZGF0YSkge1xuICAgICAgLy8gZ2V0IGZvcm1hdE9wdGlvbnNcbiAgICAgIGlmICh0aGlzLmZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgbmdDbGFzcyA9IHRoaXMuZm9ybWF0T3B0aW9ucy5uZ0NsYXNzO1xuICAgICAgICAvLyBjaGVjayBjb25kaXRpb24gZm9yIGVhY2gga2V5XG4gICAgICAgIGNvbHVtbi5uZ0NsYXNzVGVtcGxhdGVzID0gY29sdW1uLm5nQ2xhc3NUZW1wbGF0ZXMgfHwge307XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG5nQ2xhc3MpKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGUobmdDbGFzc1trZXldKShyb3cpO1xuICAgICAgICAgIGNvbnN0IGZuID0gbmV3IEZ1bmN0aW9uKGByZXR1cm4gJHtyZXN1bHR9O2ApO1xuICAgICAgICAgIC8vIGlmIGNvbmRpdGlvbiByZXR1cm5zIHRydWUgYWRkIGNsYXNzXG4gICAgICAgICAgaWYgKGZuKCkgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybiBgPHNwYW4gY2xhc3M9XCIke2tleX1cIj4ke2RhdGF9PC9zcGFuPmA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIExhbmd1YWdlRm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICBwdWJsaWMgcmVuZGVyKGRhdGEsIHR5cGUsIHJvdywgbWV0YSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICByZXR1cm4gSVNPNjM5MS5nZXROYXRpdmVOYW1lKGRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG4iXX0=
|
|
473
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtdGFibGUuZm9ybWF0dGVycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1bml2ZXJzaXMvbmd4LXRhYmxlcy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmZvcm1hdHRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsRUFBRSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBR3BDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEtBQUssT0FBTyxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQW9CLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBRXBGO0lBQUE7SUEyRkEsQ0FBQztJQXpFaUIsZ0NBQVEsR0FBdEIsVUFBdUIsSUFBWTtRQUNqQyxJQUFJLE1BQU0sR0FBRyx1QkFBdUIsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdELElBQUksT0FBTyxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQ2hDLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7UUFDRCxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFJUywrQ0FBYSxHQUF2QixVQUF3QixJQUFTLEVBQUUsT0FBaUU7UUFDbEcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNuQyxJQUFNLGNBQWMsR0FBbUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7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QWdCLEdBQUcsV0FBSyxJQUFJLFlBQVMsQ0FBQzt5QkFDOUM7cUJBQ0Y7Ozs7Ozs7OzthQUNGO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUlILHVCQUFDO0FBQUQsQ0FBQyxBQTFCRCxDQUFzQyx1QkFBdUIsR0EwQjVEOztBQUNEO0lBQXVDLDZDQUF1QjtJQU81RDtlQUNFLGlCQUFPO0lBQ1QsQ0FBQztJQVJNLGtDQUFNLEdBQWIsVUFBYyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxJQUFJO1FBQ2pDLElBQUksSUFBSSxFQUFFO1lBQ1IsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBSUgsd0JBQUM7QUFBRCxDQUFDLEFBVkQsQ0FBdUMsdUJBQXVCLEdBVTdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHt0ZW1wbGF0ZSwgYXR9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1RhYmxlQ29sdW1uQ29uZmlndXJhdGlvbn0gZnJvbSAnLi9hZHZhbmNlZC10YWJsZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7SW5qZWN0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgKiBhcyBJU082MzkxIGZyb20gJ2lzby02MzktMS9idWlsZCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkV4dHJhcywgUm91dGVyLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmRlY2xhcmUgdmFyIGpRdWVyeTogYW55O1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyIGltcGxlbWVudHMgVGFibGVDb2x1bW5Db25maWd1cmF0aW9uIHtcblxuICAgIHB1YmxpYyBzdGF0aWMgdGVtcGxhdGVDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCAoZGF0YTogYW55KSA9PiBzdHJpbmc+KCk7XG5cbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yO1xuICAgIHB1YmxpYyBjbGFzc05hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgZGVmYXVsdENvbnRlbnQ6IHN0cmluZztcbiAgICBwdWJsaWMgZm9ybWF0U3RyaW5nOiBzdHJpbmc7XG4gICAgcHVibGljIGZvcm1hdHRlcjogc3RyaW5nO1xuICAgIHB1YmxpYyBoaWRkZW46IGJvb2xlYW47XG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgb3JkZXI6IHN0cmluZztcbiAgICBwdWJsaWMgcHJvcGVydHk6IHN0cmluZztcbiAgICBwdWJsaWMgc29ydGFibGU6IGJvb2xlYW47XG4gICAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG4gICAgcHVibGljIGZvcm1hdE9wdGlvbnM/OiBhbnk7XG4gICAgcHVibGljIGFjdGlvbnM/OiBBcnJheTxhbnk+O1xuXG4gICAgcHVibGljIHN0YXRpYyB0ZW1wbGF0ZShleHByOiBzdHJpbmcpOiAoZGF0YTogYW55KSA9PiBzdHJpbmcge1xuICAgICAgbGV0IHJlc3VsdCA9IEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyLnRlbXBsYXRlQ2FjaGUuZ2V0KGV4cHIpO1xuICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJlc3VsdCA9IHRlbXBsYXRlKGV4cHIpO1xuICAgICAgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGVDYWNoZS5zZXQoZXhwciwgcmVzdWx0KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFic3RyYWN0IHJlbmRlcihkYXRhOiBhbnksIHR5cGU6IHN0cmluZywgcm93OiBhbnksIG1ldGE6IGFueSk6IGFueTtcblxuICAgIHByb3RlY3RlZCBjcmVhdGVVcmxUcmVlKGRhdGE6IGFueSwgb3B0aW9uczogeyBjb21tYW5kczogYW55W10sIG5hdmlnYXRpb25FeHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzIH0pOiBVcmxUcmVlIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMuY29tbWFuZHMpKSB7XG4gICAgICAgIGNvbnN0IGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICAgICAgY29uc3Qgcm91dGVyOiBSb3V0ZXIgPSB0aGlzLmluamVjdG9yLmdldChSb3V0ZXIpO1xuICAgICAgICBjb25zdCBjb21tYW5kcyA9IG9wdGlvbnMuY29tbWFuZHMubWFwKCAoY29tbWFuZCkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb21tYW5kID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBBZHZhbmNlZENvbHVtbkZvcm1hdHRlci50ZW1wbGF0ZShjb21tYW5kKShkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjb21tYW5kLm91dGxldHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21tYW5kT3V0bGV0cyA9IHt9O1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGNvbW1hbmQub3V0bGV0cykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY29tbWFuZC5vdXRsZXRzLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvdXRsZXQgPSBjb21tYW5kLm91dGxldHNba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG91dGxldCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29tbWFuZE91dGxldHMsIGtleSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogb3V0bGV0Lm1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyLnRlbXBsYXRlKHgpKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbW1hbmRPdXRsZXRzLCBrZXksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG91dGxldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIG91dGxldHM6IGNvbW1hbmRPdXRsZXRzLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY29tbWFuZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge307XG4gICAgICAgIGxldCByZXBsYWNlVXJsID0gdHJ1ZTtcbiAgICAgICAgaWYgKG9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcyAmJiBvcHRpb25zLm5hdmlnYXRpb25FeHRyYXMucXVlcnlQYXJhbXMpIHtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKG9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcy5xdWVyeVBhcmFtcykubWFwKCAoa2V5KSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHRleHQgPSBvcHRpb25zLm5hdmlnYXRpb25FeHRyYXMucXVlcnlQYXJhbXNba2V5XTtcbiAgICAgICAgICAgICAgcXVlcnlQYXJhbXNba2V5XSA9IEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyLnRlbXBsYXRlKHRleHQpKGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcyAmJiB0eXBlb2Ygb3B0aW9ucy5uYXZpZ2F0aW9uRXh0cmFzLnJlcGxhY2VVcmwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgcmVwbGFjZVVybCA9IG9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcy5yZXBsYWNlVXJsO1xuICAgICAgICB9XG4gICAgICAgIGxldCBza2lwTG9jYXRpb25DaGFuZ2UgPSBmYWxzZTtcbiAgICAgICAgaWYgKG9wdGlvbnMubmF2aWdhdGlvbkV4dHJhcyAmJiB0eXBlb2Ygb3B0aW9ucy5uYXZpZ2F0aW9uRXh0cmFzLnNraXBMb2NhdGlvbkNoYW5nZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgc2tpcExvY2F0aW9uQ2hhbmdlID0gb3B0aW9ucy5uYXZpZ2F0aW9uRXh0cmFzLnNraXBMb2NhdGlvbkNoYW5nZTtcbiAgICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3V0ZXIuY3JlYXRlVXJsVHJlZShjb21tYW5kcywge1xuICAgICAgICAgICAgcmVsYXRpdmVUbzogYWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgICBxdWVyeVBhcmFtcyxcbiAgICAgICAgICAgIHJlcGxhY2VVcmwsXG4gICAgICAgICAgICBza2lwTG9jYXRpb25DaGFuZ2UsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9uQWR2YW5jZWRDb2x1bW5BZnRlclJlbmRlciB7XG4gIGFmdGVyUmVuZGVyKGNlbGw6IGFueSwgY2VsbERhdGE6IGFueSwgcm93RGF0YTogYW55LCByb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogdm9pZDtcbn1cblxuZXhwb3J0IGNsYXNzIE5lc3RlZFByb3BlcnR5Rm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICAgIHB1YmxpYyByZW5kZXIoZGF0YSwgdHlwZSwgcm93LCBtZXRhKSB7XG4gICAgICAgIC8vIGdldCBjb2x1bW5cbiAgICAgICAgY29uc3QgY29sdW1uID0gbWV0YS5zZXR0aW5ncy5hb0NvbHVtbnNbbWV0YS5jb2xdO1xuICAgICAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gYXQocm93LCBjb2x1bW4uZGF0YS5yZXBsYWNlKC9cXC8vZywgJy4nKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEJ1dHRvbkZvcm1hdHRlciBleHRlbmRzIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyIHtcbiAgcHVibGljIHJlbmRlcihkYXRhLCB0eXBlLCByb3csIG1ldGEpIHtcbiAgICBpZiAoZGF0YSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG4gICAgLy8gZ2V0IGZvcm1hdCBvcHRpb25zXG4gICAgY29uc3QgZm9ybWF0T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe1xuICAgICAgYnV0dG9uQ2xhc3M6ICdidG4gYnRuLWRlZmF1bHQnLFxuICAgIH0sIHRoaXMuZm9ybWF0T3B0aW9ucyk7XG4gICAgLy8gZ2V0IHRleHQgY29udGVudFxuICAgIGxldCBidXR0b25UZXh0OiBzdHJpbmc7XG4gICAgbGV0IGJ1dHRvblRpdGxlID0gJyc7XG4gICAgaWYgKGZvcm1hdE9wdGlvbnMuYnV0dG9uVGV4dCkge1xuICAgICAgYnV0dG9uVGV4dCA9IHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoZm9ybWF0T3B0aW9ucy5idXR0b25UZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnV0dG9uVGV4dCA9IGZvcm1hdE9wdGlvbnMuYnV0dG9uQ29udGVudDtcbiAgICB9XG4gICAgaWYgKGZvcm1hdE9wdGlvbnMuYnV0dG9uVGl0bGUpIHtcbiAgICAgIGJ1dHRvblRpdGxlID0gdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuaW5zdGFudChmb3JtYXRPcHRpb25zLmJ1dHRvblRpdGxlKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5mb3JtYXRPcHRpb25zLmNvbW1hbmRzKSkge1xuICAgICAgY29uc3Qgcm91dGVyTGluayA9IHRoaXMuY3JlYXRlVXJsVHJlZShyb3csIHRoaXMuZm9ybWF0T3B0aW9ucyk7XG4gICAgICByZXR1cm4gYDxhIGNsYXNzPVwiJHtmb3JtYXRPcHRpb25zLmJ1dHRvbkNsYXNzfVwiIHRpdGxlPVwiJHtidXR0b25UaXRsZX1cIiBocmVmPVwiIyR7cm91dGVyTGlua31cIj4ke2J1dHRvblRleHR9PC9hPmA7XG4gICAgfVxuICAgIC8vIGFuZCByZXR1cm4gYnV0dG9uXG4gICAgY29uc3QgaHJlZiA9IEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyLnRlbXBsYXRlKHRoaXMuZm9ybWF0U3RyaW5nKShyb3cpO1xuICAgIHJldHVybiBgPGEgY2xhc3M9XCIke2Zvcm1hdE9wdGlvbnMuYnV0dG9uQ2xhc3N9XCIgdGl0bGU9XCIke2J1dHRvblRpdGxlfVwiIGhyZWY9XCIke2hyZWZ9XCI+JHtidXR0b25UZXh0fTwvYT5gO1xuICB9XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpbmtGb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlciB7XG4gIHB1YmxpYyByZW5kZXIoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcsIHJvdzogYW55LCBtZXRhOiBhbnkpOiBhbnkge1xuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG4gICAgaWYgKGNvbHVtbiAmJiBjb2x1bW4uZGF0YSkge1xuICAgICAgcmV0dXJuIGA8YSBocmVmPVwiJHsoQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGUodGhpcy5mb3JtYXRTdHJpbmcpKHJvdykpfVwiPiR7ZGF0YX08L2E+YDtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uTGlua0Zvcm1hdHRlciBleHRlbmRzIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyXG4gIGltcGxlbWVudHMgT25BZHZhbmNlZENvbHVtbkFmdGVyUmVuZGVyIHtcbiAgcHVibGljIHJlbmRlcihkYXRhOiBhbnksIHR5cGU6IHN0cmluZywgcm93OiBhbnksIG1ldGE6IGFueSk6IGFueSB7XG4gICAgLy8gZ2V0IGNvbHVtblxuICAgIGNvbnN0IGNvbHVtbiA9IG1ldGEuc2V0dGluZ3MuYW9Db2x1bW5zW21ldGEuY29sXTtcblxuICAgIGlmIChjb2x1bW4gJiYgY29sdW1uLmRhdGEpIHtcbiAgICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLmFjdGlvbnMgfHwgW107XG4gICAgICBsZXQgaW5kZXggPSAxO1xuICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgYWN0aW9ucykge1xuICAgICAgICBPYmplY3QuYXNzaWduKGFjdGlvbiwge1xuICAgICAgICAgIG5hbWU6IGFjdGlvbi5uYW1lIHx8IGBhY3Rpb24ke2luZGV4fWAsXG4gICAgICAgIH0pO1xuICAgICAgICBpbmRleCArPSAxO1xuICAgICAgfVxuICAgICAgLy8gcmV0dXJuIHRoZSBkcm9wZG93biBtZW51IHdpdGggMyBkb3RzXG4gICAgICByZXR1cm4gYDxkaXYgY2xhc3M9J2Ryb3Bkb3duIGRldGFpbHMtY29udHJvbCcgZGF0YS1pZD0nJHtkYXRhfScgZGF0YS10eXBlPSdzdHVkZW50JyA+XG4gICAgICAgICAgICAgICAgICAgIDxhIGlkPVwiZHJvcGRvd25NZW51QnV0dG9uLSR7ZGF0YX1cIlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEtMnggdGV4dC1kb3RzXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25NZW51QnV0dG9uLSR7ZGF0YX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICR7YWN0aW9ucy5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgaWYgKHgudHlwZSA9PT0gJ2RpdmlkZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tZGl2aWRlclwiPjwvZGl2PmA7XG4gICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgaWYgKHguZm9ybWF0T3B0aW9ucyAmJiB4LmZvcm1hdE9wdGlvbnMuY29tbWFuZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1cmxUcmVlID0gdGhpcy5jcmVhdGVVcmxUcmVlKHJvdywgeC5mb3JtYXRPcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxhIGRhdGEtbmFtZT0nJHt4Lm5hbWV9JyBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiBocmVmPVwiJHt1cmxUcmVlLnRvU3RyaW5nKCl9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KHgudGl0bGUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+YDtcbiAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxhIGRhdGEtbmFtZT0nJHt4Lm5hbWV9JyBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIiBocmVmPVwiJHtBZHZhbmNlZENvbHVtbkZvcm1hdHRlci50ZW1wbGF0ZSh4LmhyZWYpKHJvdyl9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICR7dGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuaW5zdGFudCh4LnRpdGxlKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5gO1xuICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAuam9pbignJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuICBwdWJsaWMgYWZ0ZXJSZW5kZXIoY2VsbDogYW55LCBjZWxsRGF0YTogYW55LCByb3dEYXRhOiBhbnksIHJvd0luZGV4OiBudW1iZXIsIGNvbEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAvLyBhc3NpZ24gYm9vdHN0cmFwIGRyb3Bkb3duICg/KVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25CdXR0b25Gb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlclxuICBpbXBsZW1lbnRzIE9uQWR2YW5jZWRDb2x1bW5BZnRlclJlbmRlciB7XG4gIHB1YmxpYyByZW5kZXIoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcsIHJvdzogYW55LCBtZXRhOiBhbnkpOiBhbnkge1xuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG5cbiAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICBjb25zdCBhY3Rpb25zID0gdGhpcy5hY3Rpb25zIHx8IFtdO1xuICAgICAgbGV0IGluZGV4ID0gMTtcbiAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIGFjdGlvbnMpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihhY3Rpb24sIHtcbiAgICAgICAgICBuYW1lOiBhY3Rpb24ubmFtZSB8fCBgYWN0aW9uJHtpbmRleH1gLFxuICAgICAgICB9KTtcbiAgICAgICAgaW5kZXggKz0gMTtcbiAgICAgIH1cbiAgICAgIGxldCBidXR0b25UZXh0OiBzdHJpbmc7XG4gICAgICBpZiAodGhpcy5mb3JtYXRPcHRpb25zICYmIHRoaXMuZm9ybWF0T3B0aW9ucy5idXR0b25UZXh0KSB7XG4gICAgICAgIC8vIGlmIGJ1dHRvbiB0ZXh0IGlzIGEgbGl0ZXJhbCBleHByZXNzaW9uXG4gICAgICAgIGlmICh0aGlzLmZvcm1hdE9wdGlvbnMuYnV0dG9uVGV4dC5pbmNsdWRlcygnJHsnKSkge1xuICAgICAgICAgIC8vIHVzZSB0ZW1wbGF0ZVxuICAgICAgICAgIGJ1dHRvblRleHQgPSBBZHZhbmNlZENvbHVtbkZvcm1hdHRlci50ZW1wbGF0ZSh0aGlzLmZvcm1hdE9wdGlvbnMuYnV0dG9uVGV4dCkocm93KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBvdGhlcndpc2UgdHJhbnNsYXRlIGl0XG4gICAgICAgICAgYnV0dG9uVGV4dCA9IHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQodGhpcy5mb3JtYXRPcHRpb25zLmJ1dHRvblRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsZXQgYnV0dG9uVGl0bGU6IHN0cmluZztcbiAgICAgIGlmICh0aGlzLmZvcm1hdE9wdGlvbnMgJiYgdGhpcy5mb3JtYXRPcHRpb25zLmJ1dHRvblRpdGxlKSB7XG4gICAgICAgIGJ1dHRvblRpdGxlID0gdGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuaW5zdGFudCh0aGlzLmZvcm1hdE9wdGlvbnMuYnV0dG9uVGJ1dHRvblRpdGxlZXh0KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGJ1dHRvbkNsYXNzID0gKHRoaXMuZm9ybWF0T3B0aW9ucyAmJiB0aGlzLmZvcm1hdE9wdGlvbnMuYnV0dG9uQ2xhc3MpIHx8ICdidG4gYnRuLWxpZ2h0JztcbiAgICAgIC8vIHJldHVybiB0aGUgZHJvcGRvd24gbWVudSB3aXRoIDMgZG90c1xuICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPSdkcm9wZG93biBkZXRhaWxzLWNvbnRyb2wnIGRhdGEtaWQ9JyR7ZGF0YX0nPlxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIiR7YnV0dG9uQ2xhc3N9IGRyb3Bkb3duLXRvZ2dsZVwiIGhyZWY9XCIjXCIgcm9sZT1cImJ1dHRvblwiIHRpdGxlPVwiJHtidXR0b25UaXRsZX1cIlxuICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZHJvcGRvd25NZW51QnV0dG9uLSR7ZGF0YX1cIiBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAke2J1dHRvblRleHR9XG4gICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bk1lbnVCdXR0b24tJHtkYXRhfVwiPlxuICAgICAgICAgICAgICAgICAgICAgJHthY3Rpb25zLm1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICBpZiAoeC50eXBlID09PSAnZGl2aWRlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJkcm9wZG93bi1kaXZpZGVyXCI+PC9kaXY+YDtcbiAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICBpZiAoeC5jb21tYW5kcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLmNyZWF0ZVVybFRyZWUocm93LCB4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxhIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIGhyZWY9XCIke3VybFRyZWUudG9TdHJpbmcoKX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoeC50aXRsZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5gO1xuICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgaHJlZj1cIiR7QWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGUoeC5ocmVmKShyb3cpfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoeC50aXRsZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+YDtcbiAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgLmpvaW4oJycpfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgcHVibGljIGFmdGVyUmVuZGVyKGNlbGw6IGFueSwgY2VsbERhdGE6IGFueSwgcm93RGF0YTogYW55LCByb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgLy8gYXNzaWduIGJvb3RzdHJhcCBkcm9wZG93biAoPylcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uU3BsaXRCdXR0b25Gb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlclxuICBpbXBsZW1lbnRzIE9uQWR2YW5jZWRDb2x1bW5BZnRlclJlbmRlciB7XG4gIHB1YmxpYyByZW5kZXIoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcsIHJvdzogYW55LCBtZXRhOiBhbnkpOiBhbnkge1xuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG5cbiAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICBjb25zdCBhY3Rpb25zID0gdGhpcy5hY3Rpb25zIHx8IFtdO1xuICAgICAgbGV0IGluZGV4ID0gMTtcbiAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIGFjdGlvbnMpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihhY3Rpb24sIHtcbiAgICAgICAgICBuYW1lOiBhY3Rpb24ubmFtZSB8fCBgYWN0aW9uJHtpbmRleH1gLFxuICAgICAgICB9KTtcbiAgICAgICAgaW5kZXggKz0gMTtcbiAgICAgIH1cbiAgICAgIGlmIChhY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBidXR0b25DbGFzcyA9ICh0aGlzLmZvcm1hdE9wdGlvbnMgJiYgdGhpcy5mb3JtYXRPcHRpb25zLmJ1dHRvbkNsYXNzKSB8fCAnYnRuIGJ0bi1saWdodCc7XG4gICAgICAvLyByZXR1cm4gdGhlIGRyb3Bkb3duIG1lbnUgd2l0aCAzIGRvdHNcbiAgICAgIGNvbnN0IGRlZmF1bHRBY3Rpb24gPSBhY3Rpb25zWzBdO1xuICAgICAgbGV0IGRlZmF1bHRBY3Rpb25IcmVmOiBzdHJpbmc7XG4gICAgICBpZiAoZGVmYXVsdEFjdGlvbiAmJiBkZWZhdWx0QWN0aW9uLmNvbW1hbmRzKSB7XG4gICAgICAgIGRlZmF1bHRBY3Rpb25IcmVmID0gdGhpcy5jcmVhdGVVcmxUcmVlKHJvdywgZGVmYXVsdEFjdGlvbikudG9TdHJpbmcoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlZmF1bHRBY3Rpb25IcmVmID0gQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGUoZGVmYXVsdEFjdGlvbi5ocmVmKShyb3cpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIiR7YnV0dG9uQ2xhc3N9XCIgaHJlZj1cIiR7ZGVmYXVsdEFjdGlvbkhyZWZ9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgJHt0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KGRlZmF1bHRBY3Rpb24udGl0bGUpfVxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiJHtidXR0b25DbGFzc30gZHJvcGRvd24tdG9nZ2xlIGRyb3Bkb3duLXRvZ2dsZS1zcGxpdFwiXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1leHBhbmRlZD1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+JHt0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KCdUb2dnbGUgRHJvcGRvd24nKX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIGFyaWEtbGFiZWxsZWRieT1cImRyb3Bkb3duTWVudUJ1dHRvbi0ke2RhdGF9XCI+XG4gICAgICAgICAgICAgICAgICAgICAke2FjdGlvbnMubWFwKCh4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgIGlmICh4LnRpdGxlID09PSAnLScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxkaXYgY2xhc3M9XCJkcm9wZG93bi1kaXZpZGVyXCI+PC9kaXY+YDtcbiAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICBpZiAoeC5jb21tYW5kcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLmNyZWF0ZVVybFRyZWUocm93LCB4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYDxhIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIGhyZWY9XCIke3VybFRyZWUudG9TdHJpbmcoKX1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoeC50aXRsZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5gO1xuICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgaHJlZj1cIiR7QWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGUoeC5ocmVmKShyb3cpfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAke3RoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoeC50aXRsZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+YDtcbiAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgLmpvaW4oJycpfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cbiAgcHVibGljIGFmdGVyUmVuZGVyKGNlbGw6IGFueSwgY2VsbERhdGE6IGFueSwgcm93RGF0YTogYW55LCByb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgLy8gYXNzaWduIGJvb3RzdHJhcCBkcm9wZG93biAoPylcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0Um93Rm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICAgIHB1YmxpYyByZW5kZXIoZGF0YSwgdHlwZSwgcm93LCBtZXRhKSB7XG4gICAgICAgIC8vIGdldCBjb2x1bW5cbiAgICAgICAgY29uc3QgY29sdW1uID0gbWV0YS5zZXR0aW5ncy5hb0NvbHVtbnNbbWV0YS5jb2xdO1xuICAgICAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgX3RwbCA9IGA8aW5wdXQgY2xhc3M9XCJjaGVja2JveCBjaGVja2JveC10aGVtZVwiIHR5cGU9XCJjaGVja2JveFwiXG4gaWQ9XCJzLSR7bWV0YS5yb3d9XCIgLz48bGFiZWwgZm9yPVwicy0ke21ldGEucm93fVwiPiZuYnNwOzwvbGFiZWw+YDtcbiAgICAgICAgICByZXR1cm4gIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyLnRlbXBsYXRlKF90cGwpKHJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlRm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICAgIHB1YmxpYyByZW5kZXIoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcsIHJvdzogYW55LCBtZXRhOiBhbnkpOiBhbnkge1xuICAgICAgICAvLyBnZXQgY29sdW1uXG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IG1ldGEuc2V0dGluZ3MuYW9Db2x1bW5zW21ldGEuY29sXTtcbiAgICAgICAgaWYgKGNvbHVtbiAmJiBjb2x1bW4uZGF0YSkge1xuICAgICAgICAgIHJldHVybiBBZHZhbmNlZENvbHVtbkZvcm1hdHRlci50ZW1wbGF0ZSh0aGlzLmZvcm1hdFN0cmluZykocm93KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVHJ1ZUZhbHNlRm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuXG4gICAgcHVibGljIHJlbmRlcihkYXRhLCB0eXBlLCByb3csIG1ldGEpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEgPyB0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KCdUcnVlRmFsc2UubG9uZy5ZZXMnKSA6XG4gICAgICAgICAgICB0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KCdUcnVlRmFsc2UubG9uZy5ObycpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cbn1cblxuZGVjbGFyZSBpbnRlcmZhY2UgVHJhbnNsYXRpb25Gb3JtYXR0ZXJUZW1wbGF0ZSB7XG4gIHRyYW5zbGF0ZVRlbXBsYXRlPzogKGRhdGE6IGFueSkgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25Gb3JtYXR0ZXIgZXh0ZW5kcyBBZHZhbmNlZENvbHVtbkZvcm1hdHRlciB7XG4gIHB1YmxpYyByZW5kZXIoZGF0YTogYW55LCB0eXBlOiBzdHJpbmcsIHJvdzogYW55LCBtZXRhOiBhbnkpOiBhbnkge1xuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW46IFRyYW5zbGF0aW9uRm9ybWF0dGVyVGVtcGxhdGUgPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG4gICAgaWYgKGNvbHVtbiAmJiBkYXRhICE9IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmluamVjdG9yLmdldChUcmFuc2xhdGVTZXJ2aWNlKS5pbnN0YW50KFxuICAgICAgICBBZHZhbmNlZENvbHVtbkZvcm1hdHRlci50ZW1wbGF0ZSh0aGlzLmZvcm1hdFN0cmluZykoe1xuICAgICAgICB2YWx1ZTogZGF0YSxcbiAgICAgIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KFRyYW5zbGF0ZVNlcnZpY2UpLmluc3RhbnQoJ1Vua25vd24nKTtcbiAgfVxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRlVGltZUZvcm1hdHRlciBleHRlbmRzIEFkdmFuY2VkQ29sdW1uRm9ybWF0dGVyIHtcbiAgcHVibGljIHJlbmRlcihkYXRhOiBhbnksIHR5cGU6IHN0cmluZywgcm93OiBhbnksIG1ldGE6IGFueSk6IGFueSB7XG4gICAgLy8gZ2V0IGNvbHVtblxuICAgIGNvbnN0IGNvbHVtbiA9IG1ldGEuc2V0dGluZ3MuYW9Db2x1bW5zW21ldGEuY29sXTtcbiAgICBpZiAoY29sdW1uICYmIGNvbHVtbi5kYXRhKSB7XG4gICAgICBjb25zdCBkYXRlUGlwZTogRGF0ZVBpcGUgPSBuZXcgRGF0ZVBpcGUodGhpcy5pbmplY3Rvci5nZXQoVHJhbnNsYXRlU2VydmljZSkuY3VycmVudExhbmcpO1xuICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJyAmJiAvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9VFxcZHsyfTpcXGR7Mn06XFxkezJ9XFwrXFxkezJ9JC8udGVzdChkYXRhKSkge1xuICAgICAgICByZXR1cm4gZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKGRhdGEgKyAnOjAwJyksIHRoaXMuZm9ybWF0U3RyaW5nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkYXRlUGlwZS50cmFuc2Zvcm0oZGF0YSwgdGhpcy5mb3JtYXRTdHJpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBOZ0NsYXNzRm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICBwdWJsaWMgcmVuZGVyKGRhdGEsIHR5cGUsIHJvdywgbWV0YSkge1xuICAgIC8vIGdldCBjb2x1bW5cbiAgICBjb25zdCBjb2x1bW4gPSBtZXRhLnNldHRpbmdzLmFvQ29sdW1uc1ttZXRhLmNvbF07XG4gICAgaWYgKGNvbHVtbiAmJiBjb2x1bW4uZGF0YSkge1xuICAgICAgLy8gZ2V0IGZvcm1hdE9wdGlvbnNcbiAgICAgIGlmICh0aGlzLmZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgbmdDbGFzcyA9IHRoaXMuZm9ybWF0T3B0aW9ucy5uZ0NsYXNzO1xuICAgICAgICAvLyBjaGVjayBjb25kaXRpb24gZm9yIGVhY2gga2V5XG4gICAgICAgIGNvbHVtbi5uZ0NsYXNzVGVtcGxhdGVzID0gY29sdW1uLm5nQ2xhc3NUZW1wbGF0ZXMgfHwge307XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG5nQ2xhc3MpKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIudGVtcGxhdGUobmdDbGFzc1trZXldKShyb3cpO1xuICAgICAgICAgIGNvbnN0IGZuID0gbmV3IEZ1bmN0aW9uKGByZXR1cm4gJHtyZXN1bHR9O2ApO1xuICAgICAgICAgIC8vIGlmIGNvbmRpdGlvbiByZXR1cm5zIHRydWUgYWRkIGNsYXNzXG4gICAgICAgICAgaWYgKGZuKCkgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybiBgPHNwYW4gY2xhc3M9XCIke2tleX1cIj4ke2RhdGF9PC9zcGFuPmA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxufVxuZXhwb3J0IGNsYXNzIExhbmd1YWdlRm9ybWF0dGVyIGV4dGVuZHMgQWR2YW5jZWRDb2x1bW5Gb3JtYXR0ZXIge1xuICBwdWJsaWMgcmVuZGVyKGRhdGEsIHR5cGUsIHJvdywgbWV0YSkge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICByZXR1cm4gSVNPNjM5MS5nZXROYXRpdmVOYW1lKGRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG4iXX0=
|
|
@@ -9,7 +9,7 @@ import { DatePipe } from '@angular/common';
|
|
|
9
9
|
import { TemplatePipe } from '@universis/common';
|
|
10
10
|
// important: export this const due to AOT compilation errors
|
|
11
11
|
// see more https://angular.io/guide/aot-metadata-errors#only-initialized-variables
|
|
12
|
-
export var AdvancedTableModalBaseTemplate = "\n<div>\n <!-- search -->\n <div class=\"row mt-3\">\n <div class=\"col-12 col-lg-3\">\n <div class=\"input-group mb-3\">\n <input spellcheck=\"false\" type=\"text\"\n (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"searchText\"\n class=\"form-control bg-gray-100 border-0\"\n placeholder=\"{{'Tables.SearchPlaceholder' | translate}}\" aria-label=\"Search\" aria-describedby=\"basic-addon2\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-default bg-gray-100 border-0\" type=\"button\">\n <i class=\"fa fa-search text-secondary\"></i>\n </button>\n </div>\n </div>\n </div>\n <div #emptyTable class=\"d-none\">\n <div>\n <div class=\"mt-4\">\n <div class=\"icon-circle bg-gray-300 border-gray-100\"></div>\n </div>\n <div class=\"mt-4\">\n <h4 class=\"font-3xl text-dark\" [translate]=\"'Tables.EmptyTableTitle'\"></h4>\n <p class=\"font-lg text-dark\" [translate]=\"'Tables.EmptyTableMessage'\"></p>\n </div>\n\n </div>\n </div>\n <div class=\"col-12 col-lg-5\">\n <div class=\"btn-toolbar\">\n <button class=\"btn btn-gray-100\">\n <i class=\"fa fa-sliders-h pr-2 text-secondary\" aria-hidden=\"true\"></i>{{'Tables.Filters' | translate}}\n </button>\n <div #dropdownFilter class=\"dropdown ml-3\"
|
|
12
|
+
export var AdvancedTableModalBaseTemplate = "\n<div>\n <!-- search -->\n <div class=\"row mt-3\">\n <div class=\"col-12 col-lg-3\">\n <div class=\"input-group mb-3\">\n <input spellcheck=\"false\" type=\"text\"\n (keyup)=\"onKeyUp($event)\" [(ngModel)]=\"searchText\"\n class=\"form-control bg-gray-100 border-0\"\n placeholder=\"{{'Tables.SearchPlaceholder' | translate}}\" aria-label=\"Search\" aria-describedby=\"basic-addon2\">\n <div class=\"input-group-append\">\n <button class=\"btn btn-default bg-gray-100 border-0\" type=\"button\">\n <i class=\"fa fa-search text-secondary\"></i>\n </button>\n </div>\n </div>\n </div>\n <div #emptyTable class=\"d-none\">\n <div>\n <div class=\"mt-4\">\n <div class=\"icon-circle bg-gray-300 border-gray-100\"></div>\n </div>\n <div class=\"mt-4\">\n <h4 class=\"font-3xl text-dark\" [translate]=\"'Tables.EmptyTableTitle'\"></h4>\n <p class=\"font-lg text-dark\" [translate]=\"'Tables.EmptyTableMessage'\"></p>\n </div>\n\n </div>\n </div>\n <div class=\"col-12 col-lg-5\">\n <div class=\"btn-toolbar\">\n <button class=\"btn btn-gray-100\">\n <i class=\"fa fa-sliders-h pr-2 text-secondary\" aria-hidden=\"true\"></i>{{'Tables.Filters' | translate}}\n </button>\n <div #dropdownFilter class=\"dropdown ml-3\">\n <button class=\"btn btn-gray-100 dropdown-toggle\"\n type=\"button\" id=\"dropdownDefaultFilters\"\n data-toggle=\"dropdown\" dropdownToggle>\n {{ this.defaultFilter.name | translate }}\n </button>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownDefaultFilters\">\n <button type=\"button\" class=\"dropdown-item\" *ngFor=\"let filter of defaultFilters\" (click)=\"onFilterSelect(filter)\">\n {{ filter.name | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col text-lg-right mt-3 mt-lg-0\">\n <button [disabled]=\"true\" class=\"btn rounded-pill btn-outline-theme\">\n <span class=\"pr-2 font-lg\">+</span><span [translate]=\"'Tables.AddItem'\"></span>\n </button>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\" [ngClass]=\"{ 'component-loading': loading}\">\n <app-advanced-table #advancedTable (init)=\"onTableInit($event)\"\n (load)=\"onDataLoad($event)\"\n [selectable]=\"true\"\n [multipleSelect]=\"true\"\n [scrollX]=\"false\" [scrollY]=\"320\"\n [pageLength]=\"pageLength\"\n [scrollable]=\"false\" [showFooter]=\"false\"\n [showActions]=\"false\" [lengthMenu]=\"lengthMenu\"\n [config]=\"tableConfig\" [configSrc]=\"tableConfigSrc\"></app-advanced-table>\n </div>\n </div>\n <div class=\"row mt-3 table-custom-pager\">\n <div class=\"col-12 d-flex\" *ngIf=\"recordsTotal\">\n <div class=\"mt-2 ml-auto mr-3 text-secondary\" [translate]=\"'Tables.RecordsPerPage'\"></div>\n <div #dropdownLength class=\"dropdown mr-3\">\n <button class=\"btn btn-gray-100 dropdown-toggle\"\n type=\"button\" id=\"dropdownPageSize\" data-toggle=\"dropdown\"\n dropdownToggle>\n {{pageLength}}\n </button>\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownPageSize\">\n <button (click)=\"setLength(item)\"\n class=\"dropdown-item dropdown-item-theme\"\n type=\"button\" *ngFor=\"let item of lengthMenu\">{{item}}</button>\n </div>\n </div>\n <div class=\"mt-2 mr-2\" [translate]=\"'Tables.PageInfo'\" [translateParams]=\"pageInfo\"></div>\n <button [disabled]=\"pageInfo && pageInfo.page === 0\" class=\"btn text-nowrap\" (click)=\"firstPage()\">\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===0\" class=\"btn\" (click)=\"previousPage()\">\n <i class=\"fa fa-chevron-left text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===pageInfo.pages-1\" class=\"btn\" (click)=\"nextPage()\">\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n </button>\n <button [disabled]=\"pageInfo && pageInfo.page===pageInfo.pages-1\" class=\"btn text-nowrap\" (click)=\"lastPage()\">\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n <i class=\"fa fa-chevron-right text-color-theme\"></i>\n </button>\n </div>\n </div>\n </div>\n";
|
|
13
13
|
var AdvancedTableModalBaseComponent = /** @class */ (function (_super) {
|
|
14
14
|
tslib_1.__extends(AdvancedTableModalBaseComponent, _super);
|
|
15
15
|
function AdvancedTableModalBaseComponent(_router, _activatedRoute, _context, advancedFilterValueProvider, datePipe) {
|
|
@@ -177,15 +177,18 @@ var AdvancedTableModalBaseComponent = /** @class */ (function (_super) {
|
|
|
177
177
|
if (defaultFilterValues === void 0) { defaultFilterValues = {}; }
|
|
178
178
|
// Do nothing in absence of configuration.
|
|
179
179
|
if (!tableConfig || !Array.isArray(tableConfig.criteria)) {
|
|
180
|
-
|
|
180
|
+
return [];
|
|
181
|
+
}
|
|
182
|
+
if (searchItem.filter == null) {
|
|
181
183
|
return [];
|
|
182
184
|
}
|
|
183
185
|
var matchedCriterion = tableConfig.criteria.find(function (criterion) {
|
|
184
186
|
return Object.prototype.hasOwnProperty.call(searchItem.filter, criterion.name);
|
|
185
187
|
});
|
|
186
|
-
if (
|
|
188
|
+
if (matchedCriterion == null) {
|
|
187
189
|
return [];
|
|
188
190
|
}
|
|
191
|
+
var value = searchItem.filter[matchedCriterion.name];
|
|
189
192
|
var criterionSafeName = matchedCriterion.name !== null
|
|
190
193
|
? matchedCriterion.name.toString()
|
|
191
194
|
: '';
|
|
@@ -199,7 +202,7 @@ var AdvancedTableModalBaseComponent = /** @class */ (function (_super) {
|
|
|
199
202
|
}
|
|
200
203
|
else if (criterionSafeName !== 'undefined') {
|
|
201
204
|
applicableFilter = (this._template.transform(matchedCriterion.filter, Object.assign({
|
|
202
|
-
value:
|
|
205
|
+
value: value
|
|
203
206
|
}, defaultFilterValues)));
|
|
204
207
|
}
|
|
205
208
|
else {
|
|
@@ -207,6 +210,9 @@ var AdvancedTableModalBaseComponent = /** @class */ (function (_super) {
|
|
|
207
210
|
}
|
|
208
211
|
return [applicableFilter];
|
|
209
212
|
};
|
|
213
|
+
AdvancedTableModalBaseComponent.prototype.onFilterSelect = function (value) {
|
|
214
|
+
this.advancedSearch(value);
|
|
215
|
+
};
|
|
210
216
|
/**
|
|
211
217
|
*
|
|
212
218
|
* Runs a filter against the modal table
|
|
@@ -263,6 +269,7 @@ var AdvancedTableModalBaseComponent = /** @class */ (function (_super) {
|
|
|
263
269
|
};
|
|
264
270
|
AdvancedTableModalBaseComponent.decorators = [
|
|
265
271
|
{ type: Component, args: [{
|
|
272
|
+
// tslint:disable-next-line: component-selector
|
|
266
273
|
selector: 'app-advanced-table-modal',
|
|
267
274
|
template: AdvancedTableModalBaseTemplate,
|
|
268
275
|
styles: ["\n\n "]
|
|
@@ -292,4 +299,4 @@ var AdvancedTableModalBaseComponent = /** @class */ (function (_super) {
|
|
|
292
299
|
}(RouterModalOkCancel));
|
|
293
300
|
export { AdvancedTableModalBaseComponent };
|
|
294
301
|
|
|
295
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtdGFibGUtbW9kYWwtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS1tb2RhbC9hZHZhbmNlZC10YWJsZS1tb2RhbC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBaUMsVUFBVSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFtQyxNQUFNLGVBQWUsQ0FBQztBQUMxSixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsY0FBYyxFQUFFLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBR3ZELE9BQU8sRUFBQyxzQkFBc0IsRUFBMEIsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBYWpELDZEQUE2RDtBQUM3RCxtRkFBbUY7QUFDbkYsTUFBTSxDQUFDLElBQU0sOEJBQThCLEdBQUcscStKQW9HN0MsQ0FBQztBQVlGO0lBU3FELDJEQUFtQjtJQStCdEUseUNBQ0UsT0FBZSxFQUNmLGVBQStCLEVBQ3JCLFFBQTRCLEVBQzVCLDJCQUF3RCxFQUN4RCxRQUFrQjtRQUw5QixZQU9FLGtCQUFNLE9BQU8sRUFBRSxlQUFlLENBQUMsU0FHaEM7UUFQVyxjQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUM1QixpQ0FBMkIsR0FBM0IsMkJBQTJCLENBQTZCO1FBQ3hELGNBQVEsR0FBUixRQUFRLENBQVU7UUFwQlQs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QU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQzt3QkFDakYsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7d0JBQ2pDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Ozs7O0tBQzVCO0lBelJ1QixrREFBa0IsR0FBRztRQUMzQyxJQUFJLEVBQUUsWUFBWTtRQUNsQixNQUFNLEVBQUUsSUFBSTtLQUNiLENBQUM7O2dCQWpCSCxTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFLDhCQUE4Qjs2QkFFdEMsVUFFQztpQkFFSjs7OztnQkEvSXVCLE1BQU07Z0JBQXRCLGNBQWM7Z0JBSWIsa0JBQWtCO2dCQUNsQiwyQkFBMkI7Z0JBQzNCLFFBQVE7OztnQ0FvSmQsU0FBUyxTQUFDLGVBQWU7NkJBQ3pCLFNBQVMsU0FBQyxZQUFZO2lDQUN0QixTQUFTLFNBQUMsZ0JBQWdCO2lDQUMxQixTQUFTLFNBQUMsZ0JBQWdCOzhCQUMxQixLQUFLLFNBQUMsYUFBYTtpQ0FDbkIsS0FBSyxTQUFDLGdCQUFnQjs2QkFDdEIsS0FBSyxTQUFDLFlBQVk7NkJBQ2xCLEtBQUssU0FBQyxZQUFZOzZCQUNsQixLQUFLLFNBQUMsWUFBWTtnQ0FNbEIsS0FBSyxTQUFDLGVBQWU7O0lBdVF4QixzQ0FBQztDQUFBLEFBeFNELENBU3FELG1CQUFtQixHQStSdkU7U0EvUlksK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENvbXBvbmVudERlY29yYXRvciwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIEFmdGVyVmlld0luaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJNb2RhbE9rQ2FuY2VsfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbi9yb3V0aW5nJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VGFibGVDb25maWd1cmF0aW9ufSBmcm9tICcuLi9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWR2YW5jZWRUYWJsZUNvbXBvbmVudCwgQWR2YW5jZWRUYWJsZURhdGFSZXN1bHR9IGZyb20gJy4uL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmd1bGFyRGF0YUNvbnRleHQgfSBmcm9tICdAdGhlbW9zdC9hbmd1bGFyJztcbmltcG9ydCB7IEFkdmFuY2VkRmlsdGVyVmFsdWVQcm92aWRlciB9IGZyb20gJy4vLi4vYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtZmlsdGVyLXZhbHVlLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVxdWVzdFR5cGVzU2VydmljZSB9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcbmltcG9ydCB7IFRlbXBsYXRlUGlwZSB9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBQYWdlSW5mbyB7XG4gIHBhZ2U6IG51bWJlcjtcbiAgcGFnZXM6IG51bWJlcjtcbiAgc3RhcnQ6IG51bWJlcjtcbiAgZW5kOiBudW1iZXI7XG4gIGxlbmd0aDogbnVtYmVyO1xuICByZWNvcmRzVG90YWw6IG51bWJlcjtcbiAgcmVjb3Jkc0Rpc3BsYXk6IG51bWJlcjtcbiAgc2VydmVyU2lkZT86IGJvb2xlYW47XG59XG5cbi8vIGltcG9ydGFudDogZXhwb3J0IHRoaXMgY29uc3QgZHVlIHRvIEFPVCBjb21waWxhdGlvbiBlcnJvcnNcbi8vIHNlZSBtb3JlIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9hb3QtbWV0YWRhdGEtZXJyb3JzI29ubHktaW5pdGlhbGl6ZWQtdmFyaWFibGVzXG5leHBvcnQgY29uc3QgQWR2YW5jZWRUYWJsZU1vZGFsQmFzZVRlbXBsYXRlID0gYFxuPGRpdj5cbiAgICA8IS0tIHNlYXJjaCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwicm93IG10LTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLWxnLTNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIG1iLTNcIj5cbiAgICAgICAgICA8aW5wdXQgc3BlbGxjaGVjaz1cImZhbHNlXCIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAoa2V5dXApPVwib25LZXlVcCgkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYmctZ3JheS0xMDAgYm9yZGVyLTBcIlxuICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7J1RhYmxlcy5TZWFyY2hQbGFjZWhvbGRlcicgfCB0cmFuc2xhdGV9fVwiIGFyaWEtbGFiZWw9XCJTZWFyY2hcIiBhcmlhLWRlc2NyaWJlZGJ5PVwiYmFzaWMtYWRkb24yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBiZy1ncmF5LTEwMCBib3JkZXItMFwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zZWFyY2ggdGV4dC1zZWNvbmRhcnlcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgI2VtcHR5VGFibGUgY2xhc3M9XCJkLW5vbmVcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY2lyY2xlIGJnLWdyYXktMzAwIGJvcmRlci1ncmF5LTEwMFwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00XCI+XG4gICAgICAgICAgICA8aDQgY2xhc3M9XCJmb250LTN4bCB0ZXh0LWRhcmtcIiBbdHJhbnNsYXRlXT1cIidUYWJsZXMuRW1wdHlUYWJsZVRpdGxlJ1wiPjwvaDQ+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImZvbnQtbGcgdGV4dC1kYXJrXCIgW3RyYW5zbGF0ZV09XCInVGFibGVzLkVtcHR5VGFibGVNZXNzYWdlJ1wiPjwvcD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbGctNVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLXRvb2xiYXJcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1ncmF5LTEwMFwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1zbGlkZXJzLWggcHItMiB0ZXh0LXNlY29uZGFyeVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT57eydUYWJsZXMuRmlsdGVycycgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxkaXYgI2Ryb3Bkb3duRmlsdGVyIGNsYXNzPVwiZHJvcGRvd24gbWwtM1wiIGRyb3Bkb3duPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tZ3JheS0xMDAgZHJvcGRvd24tdG9nZ2xlXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiIGlkPVwiZHJvcGRvd25EZWZhdWx0RmlsdGVyc1wiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIiBkcm9wZG93blRvZ2dsZT5cbiAgICAgICAgICAgICAge3sgdGhpcy5kZWZhdWx0RmlsdGVyLm5hbWUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnVcIiBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bkRlZmF1bHRGaWx0ZXJzXCIgKmRyb3Bkb3duTWVudT5cbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBkZWZhdWx0RmlsdGVyc1wiIChjbGljayk9XCJhZHZhbmNlZFNlYXJjaChmaWx0ZXIuZmlsdGVyID8gZmlsdGVyIDogJycpXCI+XG4gICAgICAgICAgICAgICAge3sgZmlsdGVyLm5hbWUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sIHRleHQtbGctcmlnaHQgbXQtMyBtdC1sZy0wXCI+XG4gICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cInRydWVcIiBjbGFzcz1cImJ0biByb3VuZGVkLXBpbGwgYnRuLW91dGxpbmUtdGhlbWVcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInByLTIgZm9udC1sZ1wiPis8L3NwYW4+PHNwYW4gW3RyYW5zbGF0ZV09XCInVGFibGVzLkFkZEl0ZW0nXCI+PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIiBbbmdDbGFzc109XCJ7ICdjb21wb25lbnQtbG9hZGluZyc6IGxvYWRpbmd9XCI+XG4gICAgICAgIDxhcHAtYWR2YW5jZWQtdGFibGUgI2FkdmFuY2VkVGFibGUgKGluaXQpPVwib25UYWJsZUluaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvYWQpPVwib25EYXRhTG9hZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0YWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVTZWxlY3RdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Njcm9sbFhdPVwiZmFsc2VcIiBbc2Nyb2xsWV09XCIzMjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdlTGVuZ3RoXT1cInBhZ2VMZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JvbGxhYmxlXT1cImZhbHNlXCIgW3Nob3dGb290ZXJdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93QWN0aW9uc109XCJmYWxzZVwiIFtsZW5ndGhNZW51XT1cImxlbmd0aE1lbnVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwidGFibGVDb25maWdcIiBbY29uZmlnU3JjXT1cInRhYmxlQ29uZmlnU3JjXCI+PC9hcHAtYWR2YW5jZWQtdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicm93IG10LTMgdGFibGUtY3VzdG9tLXBhZ2VyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGQtZmxleFwiICpuZ0lmPVwicmVjb3Jkc1RvdGFsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIG1sLWF1dG8gbXItMyB0ZXh0LXNlY29uZGFyeVwiIFt0cmFuc2xhdGVdPVwiJ1RhYmxlcy5SZWNvcmRzUGVyUGFnZSdcIj48L2Rpdj5cbiAgICAgICAgPGRpdiAjZHJvcGRvd25MZW5ndGggY2xhc3M9XCJkcm9wZG93biBtci0zXCIgZHJvcGRvd24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tZ3JheS0xMDAgZHJvcGRvd24tdG9nZ2xlXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBpZD1cImRyb3Bkb3duUGFnZVNpemVcIiBkYXRhLXRvZ2dsZT1cImRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgIGRyb3Bkb3duVG9nZ2xlPlxuICAgICAgICAgICAge3twYWdlTGVuZ3RofX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIGFyaWEtbGFiZWxsZWRieT1cImRyb3Bkb3duUGFnZVNpemVcIiAqZHJvcGRvd25NZW51PlxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2V0TGVuZ3RoKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGRyb3Bkb3duLWl0ZW0tdGhlbWVcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGVuZ3RoTWVudVwiPnt7aXRlbX19PC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBtci0yXCIgW3RyYW5zbGF0ZV09XCInVGFibGVzLlBhZ2VJbmZvJ1wiIFt0cmFuc2xhdGVQYXJhbXNdPVwicGFnZUluZm9cIj48L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwicGFnZUluZm8gJiYgcGFnZUluZm8ucGFnZSA9PT0gMFwiIGNsYXNzPVwiYnRuIHRleHQtbm93cmFwXCIgKGNsaWNrKT1cImZpcnN0UGFnZSgpXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGV2cm9uLWxlZnQgdGV4dC1jb2xvci10aGVtZVwiPjwvaT5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZXZyb24tbGVmdCB0ZXh0LWNvbG9yLXRoZW1lXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwicGFnZUluZm8gJiYgcGFnZUluZm8ucGFnZT09PTBcIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJwcmV2aW91c1BhZ2UoKVwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1sZWZ0IHRleHQtY29sb3ItdGhlbWVcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJwYWdlSW5mbyAmJiBwYWdlSW5mby5wYWdlPT09cGFnZUluZm8ucGFnZXMtMVwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cIm5leHRQYWdlKClcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZXZyb24tcmlnaHQgdGV4dC1jb2xvci10aGVtZVwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cInBhZ2VJbmZvICYmIHBhZ2VJbmZvLnBhZ2U9PT1wYWdlSW5mby5wYWdlcy0xXCIgY2xhc3M9XCJidG4gdGV4dC1ub3dyYXBcIiAoY2xpY2spPVwibGFzdFBhZ2UoKVwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1yaWdodCB0ZXh0LWNvbG9yLXRoZW1lXCI+PC9pPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1yaWdodCB0ZXh0LWNvbG9yLXRoZW1lXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbmA7XG5cbi8qKlxuICpcbiAqIEEgc3BlY2lmaWMgdmFsdWUgZm9yIGEgY3JpdGVyaW9uXG4gKlxuICovXG5pbnRlcmZhY2UgU2VhcmNoSXRlbSB7XG4gIGZpbHRlcjogYW55O1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hZHZhbmNlZC10YWJsZS1tb2RhbCcsXG4gIHRlbXBsYXRlOiBBZHZhbmNlZFRhYmxlTW9kYWxCYXNlVGVtcGxhdGUsXG4gIHN0eWxlczogW1xuICAgIGBcblxuICAgIGBcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZFRhYmxlTW9kYWxCYXNlQ29tcG9uZW50IGV4dGVuZHMgUm91dGVyTW9kYWxPa0NhbmNlbCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0FMTF9GSUxURVIgPSB7XG4gICAgbmFtZTogJ1RhYmxlcy5BbGwnLFxuICAgIGZpbHRlcjogbnVsbFxuICB9O1xuXG4gIEBWaWV3Q2hpbGQoJ2FkdmFuY2VkVGFibGUnKSBhZHZhbmNlZFRhYmxlOiBBZHZhbmNlZFRhYmxlQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdlbXB0eVRhYmxlJykgZW1wdHlUYWJsZTogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25GaWx0ZXInKSBkcm9wZG93bkZpbHRlcjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25MZW5ndGgnKSBkcm9wZG93bkxlbmd0aDogRWxlbWVudFJlZjtcbiAgQElucHV0KCd0YWJsZUNvbmZpZycpIHRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZ3VyYXRpb247XG4gIEBJbnB1dCgndGFibGVDb25maWdTcmMnKSB0YWJsZUNvbmZpZ1NyYzogc3RyaW5nO1xuICBASW5wdXQoJ3BhZ2VMZW5ndGgnKSBwYWdlTGVuZ3RoID0gMjU7XG4gIEBJbnB1dCgnc2VhcmNoVGV4dCcpIHNlYXJjaFRleHQ6IHN0cmluZztcbiAgQElucHV0KCdsZW5ndGhNZW51JykgbGVuZ3RoTWVudTogQXJyYXk8bnVtYmVyPiA9IFs1LCAxMCwgMjUsIDUwLCAxMDBdO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgcmVjb3Jkc1RvdGFsID0gMDtcbiAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgcHVibGljIHJlY29yZHNGaWx0ZXJlZCA9IDA7XG4gIHB1YmxpYyBkZWZhdWx0RmlsdGVyczogQXJyYXk8YW55PiA9IFtBZHZhbmNlZFRhYmxlTW9kYWxCYXNlQ29tcG9uZW50LkRFRkFVTFRfQUxMX0ZJTFRFUl07XG4gIEBJbnB1dCgnZGVmYXVsdEZpbHRlcicpIGRlZmF1bHRGaWx0ZXIgPSBBZHZhbmNlZFRhYmxlTW9kYWxCYXNlQ29tcG9uZW50LkRFRkFVTFRfQUxMX0ZJTFRFUjtcbiAgcHVibGljIHBhZ2VJbmZvID0gPFBhZ2VJbmZvPiB7XG4gICAgc2VydmVyU2lkZTogdHJ1ZVxuICB9O1xuICBwcml2YXRlIF90ZW1wbGF0ZTogVGVtcGxhdGVQaXBlO1xuICBjb25maWdDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgX3JvdXRlcjogUm91dGVyLFxuICAgIF9hY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJvdGVjdGVkIF9jb250ZXh0OiBBbmd1bGFyRGF0YUNvbnRleHQsXG4gICAgcHJvdGVjdGVkIGFkdmFuY2VkRmlsdGVyVmFsdWVQcm92aWRlcjogQWR2YW5jZWRGaWx0ZXJWYWx1ZVByb3ZpZGVyLFxuICAgIHByb3RlY3RlZCBkYXRlUGlwZTogRGF0ZVBpcGVcbiAgKSB7XG4gICAgc3VwZXIoX3JvdXRlciwgX2FjdGl2YXRlZFJvdXRlKTtcbiAgICB0aGlzLm1vZGFsQ2xhc3MgPSAnbW9kYWwteGwgbW9kYWwtdGFibGUnO1xuICAgIHRoaXMuX3RlbXBsYXRlID0gbmV3IFRlbXBsYXRlUGlwZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0SW5wdXRzKGNvbXBvbmVudFR5cGUpOiBBcnJheTxhbnk+IHtcbiAgICBjb25zdCBwcm9wcyA9IGNvbXBvbmVudFR5cGUuX19wcm9wX19tZXRhZGF0YV9fO1xuICAgIGNvbnN0IGlucHV0cyA9IFtdO1xuICAgIGlmIChwcm9wcyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gaW5wdXRzO1xuICAgIH1cbiAgICBPYmplY3Qua2V5cyhwcm9wcykuZm9yRWFjaCAocHJvcCA9PiB7XG4gICAgICBjb25zdCBtZW1iZXIgPSBwcm9wc1twcm9wXVswXTtcbiAgICAgIGlmIChtZW1iZXIubmdNZXRhZGF0YU5hbWUgPT09ICdJbnB1dCcpIHtcbiAgICAgICAgaW5wdXRzLnB1c2gocHJvcCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGlucHV0cy5zb3J0KCk7XG4gIH1cblxuICBwdWJsaWMgaGFzSW5wdXRzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgdGhpcy5va0J1dHRvblRleHQgPSAnVGFibGVzLkFwcGx5JztcbiAgICB0aGlzLmNhbmNlbEJ1dHRvblRleHQgPSAnVGFibGVzLkNhbmNlbCc7XG5cbiAgICAvLyBnZXQgcm91dGUgZGF0YVxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhLnN1YnNjcmliZSggZGF0YSA9PiB7XG4gICAgICAvLyBzZXQgbW9kYWwgdGl0bGUgaWYgYW55XG4gICAgICBpZiAoZGF0YS50aXRsZSkge1xuICAgICAgICB0aGlzLm1vZGFsVGl0bGUgPSBkYXRhLnRpdGxlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGF0YS5jb25maWcpIHtcbiAgICAgICAgdGhpcy50YWJsZUNvbmZpZyA9IGRhdGEuY29uZmlnO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMudGFibGVDb25maWcpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0RmlsdGVycy5wdXNoLmFwcGx5KHRoaXMuZGVmYXVsdEZpbHRlcnMsIHRoaXMudGFibGVDb25maWcuc2VhcmNoZXMpO1xuICAgICAgfVxuICAgICAgLy8gaW1wb3J0YW50OiB1c2UgaGFzSW5wdXRzIGR1ZSB0byBBT1QgY29tcGlsYXRpb24uIE1ldGFkYXRhIHByb3BlcnRpZXMgY2Fubm90IGJlIHVzZWQgKGUuZy4gQElucHV0KCkpXG4gICAgICAvLyBiZWNhdXNlIHRoZXJlIGFyZSBlbXB0eSBkdXJpbmcgcnVudGltZVxuICAgICAgLy8gc28gd2UgbmVlZCB0byBkZWZpbmUgbWFudWFsbHkgaW5wdXQgcHJvcGVydGllcyB0aGF0IGFyZSBnb2luZyB0byBiZSBiaW5kIHRocm91Z2ggdGhpcyBwcm9jZXNzXG4gICAgICAvLyBiaW5kIGFsbCBpbnB1dHNcbiAgICAgIGNvbnN0IGlucHV0cyA9IHRoaXMuaGFzSW5wdXRzKCk7XG4gICAgICBpbnB1dHMuZm9yRWFjaCggaW5wdXQgPT4ge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGlucHV0KSkge1xuICAgICAgICAgIHRoaXNbaW5wdXRdID0gZGF0YVtpbnB1dF07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmNvbmZpZ0NoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLmFkdmFuY2VkVGFibGUuY29uZmlnQ2hhbmdlcy5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xuICAgICAgICBpZiAodGhpcy50YWJsZUNvbmZpZykge1xuICAgICAgICAgIC8vIHJlc2V0IGRlZmF1bHQgZmlsdGVyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0RmlsdGVyID0gQWR2YW5jZWRUYWJsZU1vZGFsQmFzZUNvbXBvbmVudC5ERUZBVUxUX0FMTF9GSUxURVI7XG4gICAgICAgICAgLy8gaW5pdCBmaWx0ZXJcbiAgICAgICAgICB0aGlzLmRlZmF1bHRGaWx0ZXJzID0gW0FkdmFuY2VkVGFibGVNb2RhbEJhc2VDb21wb25lbnQuREVGQVVMVF9BTExfRklMVEVSXTtcbiAgICAgICAgICAvLyBhZGQgZXh0cmEgZmlsdGVyc1xuICAgICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlcnMucHVzaC5hcHBseSh0aGlzLmRlZmF1bHRGaWx0ZXJzLCB0aGlzLnRhYmxlQ29uZmlnLnNlYXJjaGVzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB9KTtcbiAgfVxuXG4gIGNhbmNlbCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBvaygpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgb25EYXRhTG9hZChkYXRhOiBBZHZhbmNlZFRhYmxlRGF0YVJlc3VsdCkge1xuICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gZGF0YS5yZWNvcmRzVG90YWw7XG4gICAgdGhpcy5yZWNvcmRzRmlsdGVyZWQgPSBkYXRhLnJlY29yZHNGaWx0ZXJlZDtcbiAgICAvLyBnZXQgZmlyc3QgcGFnZSBpbmZvIChiZWNhdXNlIHBhZ2UgaXMgbm90IGdvaW5nIHRvIGJlIGZpcmVkIGZvciBmaXJzdCBwYWdlKVxuICAgIGlmIChkYXRhLnJlY29yZHNUb3RhbCA+IDAgJiYgdGhpcy5wYWdlSW5mby5yZWNvcmRzVG90YWwgPT09IDApIHtcbiAgICAgIHRoaXMucGFnZUluZm8ucmVjb3Jkc1RvdGFsID0gZGF0YS5yZWNvcmRzVG90YWw7XG4gICAgfVxuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICB9XG5cbiAgcHJldmlvdXNQYWdlKCkge1xuICAgIC8vIGdvIHRvIG5leHQgcGFnZVxuICAgIC8vIG5vaW5zcGVjdGlvbiBUeXBlU2NyaXB0VmFsaWRhdGVKU1R5cGVzXG4gICAgdGhpcy5hZHZhbmNlZFRhYmxlLmRhdGFUYWJsZS5wYWdlKCdwcmV2aW91cycpLmRyYXcoJ3BhZ2UnKTtcbiAgfVxuXG4gIG5leHRQYWdlKCkge1xuICAgIC8vIGdvIHRvIG5leHQgcGFnZVxuICAgIC8vIG5vaW5zcGVjdGlvbiBUeXBlU2NyaXB0VmFsaWRhdGVKU1R5cGVzXG4gICAgdGhpcy5hZHZhbmNlZFRhYmxlLmRhdGFUYWJsZS5wYWdlKCduZXh0JykuZHJhdygncGFnZScpO1xuICB9XG5cbiAgb25UYWJsZUluaXQoZGF0YVRhYmxlOiBhbnkpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICAvLyBnZXQgaW5pdGlhbCBwYWdlIGluZm9cbiAgICBjb25zdCBpbml0aWFsUGFnZUluZm8gPSA8UGFnZUluZm8+ZGF0YVRhYmxlLnBhZ2UuaW5mbygpO1xuICAgIGluaXRpYWxQYWdlSW5mby5zdGFydCArPSAxO1xuICAgIHNlbGYucGFnZUluZm8gPSBpbml0aWFsUGFnZUluZm87XG4gICAgLy8gY2hhbmdlIGVtcHR5VGFibGVNZXNzYWdlXG4gICAgZGF0YVRhYmxlLmNvbnRleHRbMF0ub0xhbmd1YWdlLnNFbXB0eVRhYmxlID0gdGhpcy5lbXB0eVRhYmxlLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MO1xuICAgIC8vIGJpbmQgcGFnZSBjaGFuZ2UgZXZlbnRcbiAgICBkYXRhVGFibGUub24oICdwYWdlLmR0JywgZnVuY3Rpb24oKSB7XG4gICAgICBjb25zdCBwYWdlSW5mbyA9IDxQYWdlSW5mbz5kYXRhVGFibGUucGFnZS5pbmZvKCk7XG4gICAgICBwYWdlSW5mby5zdGFydCArPSAxO1xuICAgICAgc2VsZi5wYWdlSW5mbyA9IHBhZ2VJbmZvO1xuICAgIH0pO1xuICAgIC8vIGJpbmQgZHJhdyBjaGFuZ2UgZXZlbnRcbiAgICBkYXRhVGFibGUub24oICdkcmF3LmR0JywgZnVuY3Rpb24oKSB7XG4gICAgICAvLyBmb3IgZnV0dXJlIHVzZVxuICAgICAgc2VsZi5sb2FkaW5nID0gZmFsc2U7XG4gICAgICBjb25zdCBwYWdlSW5mbyA9IDxQYWdlSW5mbz5kYXRhVGFibGUucGFnZS5pbmZvKCk7XG4gICAgICBwYWdlSW5mby5zdGFydCArPSAxO1xuICAgICAgc2VsZi5wYWdlSW5mbyA9IHBhZ2VJbmZvO1xuICAgIH0pO1xuICB9XG5cbiAgZmlyc3RQYWdlKCkge1xuICAgIC8vIGdvIHRvIGZpcnN0IHBhZ2VcbiAgICAvLyBub2luc3BlY3Rpb24gVHlwZVNjcmlwdFZhbGlkYXRlSlNUeXBlc1xuICAgIHRoaXMuYWR2YW5jZWRUYWJsZS5kYXRhVGFibGUucGFnZSgnZmlyc3QnKS5kcmF3KCdwYWdlJyk7XG4gIH1cblxuICBsYXN0UGFnZSgpIHtcbiAgICAvLyBnbyB0byBsYXN0IHBhZ2VcbiAgICAvLyBub2luc3BlY3Rpb24gVHlwZVNjcmlwdFZhbGlkYXRlSlNUeXBlc1xuICAgIHRoaXMuYWR2YW5jZWRUYWJsZS5kYXRhVGFibGUucGFnZSgnbGFzdCcpLmRyYXcoJ3BhZ2UnKTtcbiAgfVxuXG4gICAgc2V0TGVuZ3RoKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgIHRoaXMucGFnZUxlbmd0aCA9IHZhbHVlO1xuICAgICAgdGhpcy5hZHZhbmNlZFRhYmxlLmRhdGFUYWJsZS5wYWdlLmxlbih2YWx1ZSkuZHJhdygpO1xuICAgIH1cblxuICBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmNvZGUgPT09ICdFbnRlcicpIHtcbiAgICAgIC8vIGxvYWRpbmdcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmFkdmFuY2VkVGFibGUuc2VhcmNoKCg8SFRNTElucHV0RWxlbWVudD5ldmVudC50YXJnZXQpLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogUmVhZHMgdGhlIG1vZGFsIHRhYmxlIGFuZCByZXR1cm5zIGEgbGlzdCBvZiBmaWx0ZXJzIHRvIHVzZSBpbiB0aGUgdGFibGVcbiAgICogcXVlcnkuXG4gICAqXG4gICAqIEBwYXJhbSB0YWJsZUNvbmZpZyB7b2JqZWN0fSBUaGUgdGFibGUgY29uZmlndXJhdGlvbiBmcm9tIGpzb24gZmlsZVxuICAgKiBAcGFyYW0gZGVmYXVsdEZpbHRlclZhbHVlcyB7b2JqZWN0fSBBIGxpc3Qgb2YgZGVmYXVsdCBmaWx0ZXJzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBzZWFyY2hJdGVtIFRoZSBzZWFyY2hJdGVtIHRvIHVzZVxuICAgKlxuICAgKi9cbiAgZ2V0RmlsdGVycyhcbiAgICB0YWJsZUNvbmZpZzogYW55LFxuICAgIGRlZmF1bHRGaWx0ZXJWYWx1ZXMgPSB7fSxcbiAgICBzZWFyY2hJdGVtOiBhbnlcbiAgKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgLy8gRG8gbm90aGluZyBpbiBhYnNlbmNlIG9mIGNvbmZpZ3VyYXRpb24uXG4gICAgaWYgKCF0YWJsZUNvbmZpZyB8fCAhQXJyYXkuaXNBcnJheSh0YWJsZUNvbmZpZy5jcml0ZXJpYSkpIHtcbiAgICAgIGNvbnNvbGUud2FybignTm8gdGFibGUgY29uZmlndXJhdGlvbiBhdmFpbGFibGUnLCB0aGlzLnRhYmxlQ29uZmlnKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBtYXRjaGVkQ3JpdGVyaW9uID0gdGFibGVDb25maWcuY3JpdGVyaWEuZmluZChjcml0ZXJpb24gPT5cbiAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzZWFyY2hJdGVtLmZpbHRlciwgY3JpdGVyaW9uLm5hbWUpXG4gICAgKTtcblxuICAgIGlmICghbWF0Y2hlZENyaXRlcmlvbikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGNyaXRlcmlvblNhZmVOYW1lID0gbWF0Y2hlZENyaXRlcmlvbi5uYW1lICE9PSBudWxsXG4gICAgICA/IG1hdGNoZWRDcml0ZXJpb24ubmFtZS50b1N0cmluZygpXG4gICAgICA6ICcnO1xuXG4gICAgbGV0IGFwcGxpY2FibGVGaWx0ZXI6IHN0cmluZztcblxuICAgIC8vIFJhdyBkYXRlcyBzaG91bGQgYmUgdHJhbnNmb3JtZWQgdG8gYSBzcGVjaWZpYyBmb3JtYXRcbiAgICBpZiAoY3JpdGVyaW9uU2FmZU5hbWUuaW5jbHVkZXMoJ0dNVCcpKSB7XG4gICAgICBjb25zdCBuZXdEYXRlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oY3JpdGVyaW9uU2FmZU5hbWUsICdNTS9kZC95eXl5Jyk7XG4gICAgICBhcHBsaWNhYmxlRmlsdGVyID0gdGhpcy5fdGVtcGxhdGUudHJhbnNmb3JtKG1hdGNoZWRDcml0ZXJpb24uZmlsdGVyLCB7XG4gICAgICAgIHZhbHVlOiBuZXdEYXRlXG4gICAgICB9KTtcblxuICAgIH0gZWxzZSBpZiAoY3JpdGVyaW9uU2FmZU5hbWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBhcHBsaWNhYmxlRmlsdGVyID0gKHRoaXMuX3RlbXBsYXRlLnRyYW5zZm9ybShtYXRjaGVkQ3JpdGVyaW9uLmZpbHRlciwgT2JqZWN0LmFzc2lnbih7XG4gICAgICAgIHZhbHVlOiBtYXRjaGVkQ3JpdGVyaW9uLmZpbHRlclxuICAgICAgfSwgZGVmYXVsdEZpbHRlclZhbHVlcykpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXBwbGljYWJsZUZpbHRlciA9ICcnO1xuICAgIH1cblxuICAgIHJldHVybiBbYXBwbGljYWJsZUZpbHRlcl07XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogUnVucyBhIGZpbHRlciBhZ2FpbnN0IHRoZSBtb2RhbCB0YWJsZVxuICAgKlxuICAgKiBAcGFyYW0ge29iamVjdH0gZmlsdGVyIFRoZSBmaWx0ZXIgdG8gdXNlIGluIHRoZSBzZWFyY2hcbiAgICpcbiAgICovXG4gIGFzeW5jIGFkdmFuY2VkU2VhcmNoKGZpbHRlcik6IFByb21pc2U8YW55PiB7XG4gICAgLy8gRG8gbm90aGluZyBpbiBhYnNlbmNlIG9mIGNvbmZpZ3VyYXRpb24uXG4gICAgaWYgKCF0aGlzLnRhYmxlQ29uZmlnICYmICFBcnJheS5pc0FycmF5KHRoaXMudGFibGVDb25maWcuY3JpdGVyaWEpKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ05vIHRhYmxlIGNvbmZpZ3VyYXRpb24gYXZhaWxhYmxlJywgdGhpcy50YWJsZUNvbmZpZyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQW4gYWR2YW5jZWQgdGFibGUgaGFzIHNvbWUgZmlsdGVycyBieSBkZWZhdWx0XG4gICAgbGV0IGRlZmF1bHRGaWx0ZXJWYWx1ZXM7XG4gICAgdHJ5IHtcbiAgICAgIGRlZmF1bHRGaWx0ZXJWYWx1ZXMgPSBhd2FpdCB0aGlzLmFkdmFuY2VkRmlsdGVyVmFsdWVQcm92aWRlci5nZXRWYWx1ZXMoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGRlZmF1bHRGaWx0ZXJWYWx1ZXMgPSB7fTtcbiAgICB9XG5cbiAgICBjb25zdCBleHByZXNzaW9ucyA9ICBbXTtcbiAgICBsZXQgcHJlZGVmaW5lZENyaXRlcmlhO1xuICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgIHRoaXMuZGVmYXVsdEZpbHRlciA9IGZpbHRlcjtcbiAgICAgIHByZWRlZmluZWRDcml0ZXJpYSA9IHRoaXMuZ2V0RmlsdGVycyhcbiAgICAgICAgdGhpcy50YWJsZUNvbmZpZyxcbiAgICAgICAgZGVmYXVsdEZpbHRlclZhbHVlcyxcbiAgICAgICAgZmlsdGVyXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBFbXB0eSBhIGZhbHN5IGZpbHRlciByZXNldHMgdGhlIHJlc3VsdHNcbiAgICAgIHRoaXMuZGVmYXVsdEZpbHRlciA9IEFkdmFuY2VkVGFibGVNb2RhbEJhc2VDb21wb25lbnQuREVGQVVMVF9BTExfRklMVEVSO1xuICAgIH1cblxuICAgIC8vIHNlYXJjaCBmaWx0ZXIgaXMgYXBwbGllZCBzZXBhcmF0ZWx5LCB0aGVyZSBpcyBubyBuZWVkIHRvIGFkZCBoZXJlLlxuICAgIGV4cHJlc3Npb25zLnB1c2gocHJlZGVmaW5lZENyaXRlcmlhKTtcblxuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5fY29udGV4dC5tb2RlbCh0aGlzLmFkdmFuY2VkVGFibGUuY29uZmlnLm1vZGVsKS5hc1F1ZXJ5YWJsZSgpO1xuICAgIHF1ZXJ5LnNldFBhcmFtKCdmaWx0ZXInLCBleHByZXNzaW9ucy5qb2luKCcgYW5kICcpKS5wcmVwYXJlKCk7XG4gICAgdGhpcy5hZHZhbmNlZFRhYmxlLnF1ZXJ5ID0gcXVlcnk7XG4gICAgdGhpcy5hZHZhbmNlZFRhYmxlLmZldGNoKCk7XG4gIH1cbn1cblxuIl19
|
|
302
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtdGFibGUtbW9kYWwtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS1tb2RhbC9hZHZhbmNlZC10YWJsZS1tb2RhbC1iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFHdkQsT0FBTyxFQUFDLHNCQUFzQixFQUEwQixNQUFNLDRDQUE0QyxDQUFDO0FBQzNHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFZakQsNkRBQTZEO0FBQzdELG1GQUFtRjtBQUNuRixNQUFNLENBQUMsSUFBTSw4QkFBOEIsR0FBRyw0N0pBb0c3QyxDQUFDO0FBWUY7SUFVcUQsMkRBQW1CO0lBK0J0RSx5Q0FDRSxPQUFlLEVBQ2YsZUFBK0IsRUFDckIsUUFBNEIsRUFDNUIsMkJBQXdELEVBQ3hELFFBQWtCO1FBTDlCLFlBT0Usa0JBQU0sT0FBTyxFQUFFLGVBQWUsQ0FBQyxTQUdoQztRQVBXLGNBQVEsR0FBUixRQUFRLENBQW9CO1FBQzVCLGlDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFDeEQsY0FBUSxHQUFSLFFBQVEsQ0FBVTtRQXBCVCxn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Q29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQsIEFmdGVyVmlld0luaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJNb2RhbE9rQ2FuY2VsfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbi9yb3V0aW5nJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VGFibGVDb25maWd1cmF0aW9ufSBmcm9tICcuLi9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWR2YW5jZWRUYWJsZUNvbXBvbmVudCwgQWR2YW5jZWRUYWJsZURhdGFSZXN1bHR9IGZyb20gJy4uL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmd1bGFyRGF0YUNvbnRleHQgfSBmcm9tICdAdGhlbW9zdC9hbmd1bGFyJztcbmltcG9ydCB7IEFkdmFuY2VkRmlsdGVyVmFsdWVQcm92aWRlciB9IGZyb20gJy4vLi4vYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtZmlsdGVyLXZhbHVlLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVGVtcGxhdGVQaXBlIH0gZnJvbSAnQHVuaXZlcnNpcy9jb21tb24nO1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFBhZ2VJbmZvIHtcbiAgcGFnZTogbnVtYmVyO1xuICBwYWdlczogbnVtYmVyO1xuICBzdGFydDogbnVtYmVyO1xuICBlbmQ6IG51bWJlcjtcbiAgbGVuZ3RoOiBudW1iZXI7XG4gIHJlY29yZHNUb3RhbDogbnVtYmVyO1xuICByZWNvcmRzRGlzcGxheTogbnVtYmVyO1xuICBzZXJ2ZXJTaWRlPzogYm9vbGVhbjtcbn1cblxuLy8gaW1wb3J0YW50OiBleHBvcnQgdGhpcyBjb25zdCBkdWUgdG8gQU9UIGNvbXBpbGF0aW9uIGVycm9yc1xuLy8gc2VlIG1vcmUgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2FvdC1tZXRhZGF0YS1lcnJvcnMjb25seS1pbml0aWFsaXplZC12YXJpYWJsZXNcbmV4cG9ydCBjb25zdCBBZHZhbmNlZFRhYmxlTW9kYWxCYXNlVGVtcGxhdGUgPSBgXG48ZGl2PlxuICAgIDwhLS0gc2VhcmNoIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtbGctM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgbWItM1wiPlxuICAgICAgICAgIDxpbnB1dCBzcGVsbGNoZWNrPVwiZmFsc2VcIiB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvbktleVVwKCRldmVudClcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxuICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBiZy1ncmF5LTEwMCBib3JkZXItMFwiXG4gICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3snVGFibGVzLlNlYXJjaFBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZX19XCIgYXJpYS1sYWJlbD1cIlNlYXJjaFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJiYXNpYy1hZGRvbjJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJnLWdyYXktMTAwIGJvcmRlci0wXCIgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNlYXJjaCB0ZXh0LXNlY29uZGFyeVwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAjZW1wdHlUYWJsZSBjbGFzcz1cImQtbm9uZVwiPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jaXJjbGUgYmctZ3JheS0zMDAgYm9yZGVyLWdyYXktMTAwXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTRcIj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cImZvbnQtM3hsIHRleHQtZGFya1wiIFt0cmFuc2xhdGVdPVwiJ1RhYmxlcy5FbXB0eVRhYmxlVGl0bGUnXCI+PC9oND5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwiZm9udC1sZyB0ZXh0LWRhcmtcIiBbdHJhbnNsYXRlXT1cIidUYWJsZXMuRW1wdHlUYWJsZU1lc3NhZ2UnXCI+PC9wPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1sZy01XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJidG4tdG9vbGJhclwiPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWdyYXktMTAwXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNsaWRlcnMtaCBwci0yIHRleHQtc2Vjb25kYXJ5XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPnt7J1RhYmxlcy5GaWx0ZXJzJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGRpdiAjZHJvcGRvd25GaWx0ZXIgY2xhc3M9XCJkcm9wZG93biBtbC0zXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1ncmF5LTEwMCBkcm9wZG93bi10b2dnbGVcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJkcm9wZG93bkRlZmF1bHRGaWx0ZXJzXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiIGRyb3Bkb3duVG9nZ2xlPlxuICAgICAgICAgICAgICB7eyB0aGlzLmRlZmF1bHRGaWx0ZXIubmFtZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIGFyaWEtbGFiZWxsZWRieT1cImRyb3Bkb3duRGVmYXVsdEZpbHRlcnNcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBkZWZhdWx0RmlsdGVyc1wiIChjbGljayk9XCJvbkZpbHRlclNlbGVjdChmaWx0ZXIpXCI+XG4gICAgICAgICAgICAgICAge3sgZmlsdGVyLm5hbWUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wgdGV4dC1sZy1yaWdodCBtdC0zIG10LWxnLTBcIj5cbiAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwidHJ1ZVwiIGNsYXNzPVwiYnRuIHJvdW5kZWQtcGlsbCBidG4tb3V0bGluZS10aGVtZVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHItMiBmb250LWxnXCI+Kzwvc3Bhbj48c3BhbiBbdHJhbnNsYXRlXT1cIidUYWJsZXMuQWRkSXRlbSdcIj48L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiIFtuZ0NsYXNzXT1cInsgJ2NvbXBvbmVudC1sb2FkaW5nJzogbG9hZGluZ31cIj5cbiAgICAgICAgPGFwcC1hZHZhbmNlZC10YWJsZSAjYWR2YW5jZWRUYWJsZSAoaW5pdCk9XCJvblRhYmxlSW5pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9hZCk9XCJvbkRhdGFMb2FkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZVNlbGVjdF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2Nyb2xsWF09XCJmYWxzZVwiIFtzY3JvbGxZXT1cIjMyMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhZ2VMZW5ndGhdPVwicGFnZUxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Njcm9sbGFibGVdPVwiZmFsc2VcIiBbc2hvd0Zvb3Rlcl09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dBY3Rpb25zXT1cImZhbHNlXCIgW2xlbmd0aE1lbnVdPVwibGVuZ3RoTWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJ0YWJsZUNvbmZpZ1wiIFtjb25maWdTcmNdPVwidGFibGVDb25maWdTcmNcIj48L2FwcC1hZHZhbmNlZC10YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMyB0YWJsZS1jdXN0b20tcGFnZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgZC1mbGV4XCIgKm5nSWY9XCJyZWNvcmRzVG90YWxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgbWwtYXV0byBtci0zIHRleHQtc2Vjb25kYXJ5XCIgW3RyYW5zbGF0ZV09XCInVGFibGVzLlJlY29yZHNQZXJQYWdlJ1wiPjwvZGl2PlxuICAgICAgICA8ZGl2ICNkcm9wZG93bkxlbmd0aCBjbGFzcz1cImRyb3Bkb3duIG1yLTNcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1ncmF5LTEwMCBkcm9wZG93bi10b2dnbGVcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiIGlkPVwiZHJvcGRvd25QYWdlU2l6ZVwiIGRhdGEtdG9nZ2xlPVwiZHJvcGRvd25cIlxuICAgICAgICAgICAgICAgICAgZHJvcGRvd25Ub2dnbGU+XG4gICAgICAgICAgICB7e3BhZ2VMZW5ndGh9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25QYWdlU2l6ZVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic2V0TGVuZ3RoKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1pdGVtIGRyb3Bkb3duLWl0ZW0tdGhlbWVcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGVuZ3RoTWVudVwiPnt7aXRlbX19PC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBtci0yXCIgW3RyYW5zbGF0ZV09XCInVGFibGVzLlBhZ2VJbmZvJ1wiIFt0cmFuc2xhdGVQYXJhbXNdPVwicGFnZUluZm9cIj48L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwicGFnZUluZm8gJiYgcGFnZUluZm8ucGFnZSA9PT0gMFwiIGNsYXNzPVwiYnRuIHRleHQtbm93cmFwXCIgKGNsaWNrKT1cImZpcnN0UGFnZSgpXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1jaGV2cm9uLWxlZnQgdGV4dC1jb2xvci10aGVtZVwiPjwvaT5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZXZyb24tbGVmdCB0ZXh0LWNvbG9yLXRoZW1lXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwicGFnZUluZm8gJiYgcGFnZUluZm8ucGFnZT09PTBcIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJwcmV2aW91c1BhZ2UoKVwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1sZWZ0IHRleHQtY29sb3ItdGhlbWVcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJwYWdlSW5mbyAmJiBwYWdlSW5mby5wYWdlPT09cGFnZUluZm8ucGFnZXMtMVwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cIm5leHRQYWdlKClcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWNoZXZyb24tcmlnaHQgdGV4dC1jb2xvci10aGVtZVwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cInBhZ2VJbmZvICYmIHBhZ2VJbmZvLnBhZ2U9PT1wYWdlSW5mby5wYWdlcy0xXCIgY2xhc3M9XCJidG4gdGV4dC1ub3dyYXBcIiAoY2xpY2spPVwibGFzdFBhZ2UoKVwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1yaWdodCB0ZXh0LWNvbG9yLXRoZW1lXCI+PC9pPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY2hldnJvbi1yaWdodCB0ZXh0LWNvbG9yLXRoZW1lXCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbmA7XG5cbi8qKlxuICpcbiAqIEEgc3BlY2lmaWMgdmFsdWUgZm9yIGEgY3JpdGVyaW9uXG4gKlxuICovXG5pbnRlcmZhY2UgU2VhcmNoSXRlbSB7XG4gIGZpbHRlcjogYW55O1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGNvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2FwcC1hZHZhbmNlZC10YWJsZS1tb2RhbCcsXG4gIHRlbXBsYXRlOiBBZHZhbmNlZFRhYmxlTW9kYWxCYXNlVGVtcGxhdGUsXG4gIHN0eWxlczogW1xuICAgIGBcblxuICAgIGBcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZFRhYmxlTW9kYWxCYXNlQ29tcG9uZW50IGV4dGVuZHMgUm91dGVyTW9kYWxPa0NhbmNlbCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8vXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0FMTF9GSUxURVIgPSB7XG4gICAgbmFtZTogJ1RhYmxlcy5BbGwnLFxuICAgIGZpbHRlcjogbnVsbFxuICB9O1xuXG4gIEBWaWV3Q2hpbGQoJ2FkdmFuY2VkVGFibGUnKSBhZHZhbmNlZFRhYmxlOiBBZHZhbmNlZFRhYmxlQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdlbXB0eVRhYmxlJykgZW1wdHlUYWJsZTogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25GaWx0ZXInKSBkcm9wZG93bkZpbHRlcjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25MZW5ndGgnKSBkcm9wZG93bkxlbmd0aDogRWxlbWVudFJlZjtcbiAgQElucHV0KCd0YWJsZUNvbmZpZycpIHRhYmxlQ29uZmlnOiBUYWJsZUNvbmZpZ3VyYXRpb247XG4gIEBJbnB1dCgndGFibGVDb25maWdTcmMnKSB0YWJsZUNvbmZpZ1NyYzogc3RyaW5nO1xuICBASW5wdXQoJ3BhZ2VMZW5ndGgnKSBwYWdlTGVuZ3RoID0gMjU7XG4gIEBJbnB1dCgnc2VhcmNoVGV4dCcpIHNlYXJjaFRleHQ6IHN0cmluZztcbiAgQElucHV0KCdsZW5ndGhNZW51JykgbGVuZ3RoTWVudTogQXJyYXk8bnVtYmVyPiA9IFs1LCAxMCwgMjUsIDUwLCAxMDBdO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgcmVjb3Jkc1RvdGFsID0gMDtcbiAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgcHVibGljIHJlY29yZHNGaWx0ZXJlZCA9IDA7XG4gIHB1YmxpYyBkZWZhdWx0RmlsdGVyczogQXJyYXk8YW55PiA9IFtBZHZhbmNlZFRhYmxlTW9kYWxCYXNlQ29tcG9uZW50LkRFRkFVTFRfQUxMX0ZJTFRFUl07XG4gIEBJbnB1dCgnZGVmYXVsdEZpbHRlcicpIGRlZmF1bHRGaWx0ZXIgPSBBZHZhbmNlZFRhYmxlTW9kYWxCYXNlQ29tcG9uZW50LkRFRkFVTFRfQUxMX0ZJTFRFUjtcbiAgcHVibGljIHBhZ2VJbmZvID0gPFBhZ2VJbmZvPiB7XG4gICAgc2VydmVyU2lkZTogdHJ1ZVxuICB9O1xuICBwcml2YXRlIF90ZW1wbGF0ZTogVGVtcGxhdGVQaXBlO1xuICBjb25maWdDaGFuZ2VzU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgX3JvdXRlcjogUm91dGVyLFxuICAgIF9hY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJvdGVjdGVkIF9jb250ZXh0OiBBbmd1bGFyRGF0YUNvbnRleHQsXG4gICAgcHJvdGVjdGVkIGFkdmFuY2VkRmlsdGVyVmFsdWVQcm92aWRlcjogQWR2YW5jZWRGaWx0ZXJWYWx1ZVByb3ZpZGVyLFxuICAgIHByb3RlY3RlZCBkYXRlUGlwZTogRGF0ZVBpcGVcbiAgKSB7XG4gICAgc3VwZXIoX3JvdXRlciwgX2FjdGl2YXRlZFJvdXRlKTtcbiAgICB0aGlzLm1vZGFsQ2xhc3MgPSAnbW9kYWwteGwgbW9kYWwtdGFibGUnO1xuICAgIHRoaXMuX3RlbXBsYXRlID0gbmV3IFRlbXBsYXRlUGlwZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0SW5wdXRzKGNvbXBvbmVudFR5cGUpOiBBcnJheTxhbnk+IHtcbiAgICBjb25zdCBwcm9wcyA9IGNvbXBvbmVudFR5cGUuX19wcm9wX19tZXRhZGF0YV9fO1xuICAgIGNvbnN0IGlucHV0cyA9IFtdO1xuICAgIGlmIChwcm9wcyA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gaW5wdXRzO1xuICAgIH1cbiAgICBPYmplY3Qua2V5cyhwcm9wcykuZm9yRWFjaCAocHJvcCA9PiB7XG4gICAgICBjb25zdCBtZW1iZXIgPSBwcm9wc1twcm9wXVswXTtcbiAgICAgIGlmIChtZW1iZXIubmdNZXRhZGF0YU5hbWUgPT09ICdJbnB1dCcpIHtcbiAgICAgICAgaW5wdXRzLnB1c2gocHJvcCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGlucHV0cy5zb3J0KCk7XG4gIH1cblxuICBwdWJsaWMgaGFzSW5wdXRzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuXG4gICAgdGhpcy5va0J1dHRvblRleHQgPSAnVGFibGVzLkFwcGx5JztcbiAgICB0aGlzLmNhbmNlbEJ1dHRvblRleHQgPSAnVGFibGVzLkNhbmNlbCc7XG5cbiAgICAvLyBnZXQgcm91dGUgZGF0YVxuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5kYXRhLnN1YnNjcmliZSggZGF0YSA9PiB7XG4gICAgICAvLyBzZXQgbW9kYWwgdGl0bGUgaWYgYW55XG4gICAgICBpZiAoZGF0YS50aXRsZSkge1xuICAgICAgICB0aGlzLm1vZGFsVGl0bGUgPSBkYXRhLnRpdGxlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGF0YS5jb25maWcpIHtcbiAgICAgICAgdGhpcy50YWJsZUNvbmZpZyA9IGRhdGEuY29uZmlnO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMudGFibGVDb25maWcpIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0RmlsdGVycy5wdXNoLmFwcGx5KHRoaXMuZGVmYXVsdEZpbHRlcnMsIHRoaXMudGFibGVDb25maWcuc2VhcmNoZXMpO1xuICAgICAgfVxuICAgICAgLy8gaW1wb3J0YW50OiB1c2UgaGFzSW5wdXRzIGR1ZSB0byBBT1QgY29tcGlsYXRpb24uIE1ldGFkYXRhIHByb3BlcnRpZXMgY2Fubm90IGJlIHVzZWQgKGUuZy4gQElucHV0KCkpXG4gICAgICAvLyBiZWNhdXNlIHRoZXJlIGFyZSBlbXB0eSBkdXJpbmcgcnVudGltZVxuICAgICAgLy8gc28gd2UgbmVlZCB0byBkZWZpbmUgbWFudWFsbHkgaW5wdXQgcHJvcGVydGllcyB0aGF0IGFyZSBnb2luZyB0byBiZSBiaW5kIHRocm91Z2ggdGhpcyBwcm9jZXNzXG4gICAgICAvLyBiaW5kIGFsbCBpbnB1dHNcbiAgICAgIGNvbnN0IGlucHV0cyA9IHRoaXMuaGFzSW5wdXRzKCk7XG4gICAgICBpbnB1dHMuZm9yRWFjaCggaW5wdXQgPT4ge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsIGlucHV0KSkge1xuICAgICAgICAgIHRoaXNbaW5wdXRdID0gZGF0YVtpbnB1dF07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmNvbmZpZ0NoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLmFkdmFuY2VkVGFibGUuY29uZmlnQ2hhbmdlcy5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xuICAgICAgICBpZiAodGhpcy50YWJsZUNvbmZpZykge1xuICAgICAgICAgIC8vIHJlc2V0IGRlZmF1bHQgZmlsdGVyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0RmlsdGVyID0gQWR2YW5jZWRUYWJsZU1vZGFsQmFzZUNvbXBvbmVudC5ERUZBVUxUX0FMTF9GSUxURVI7XG4gICAgICAgICAgLy8gaW5pdCBmaWx0ZXJcbiAgICAgICAgICB0aGlzLmRlZmF1bHRGaWx0ZXJzID0gW0FkdmFuY2VkVGFibGVNb2RhbEJhc2VDb21wb25lbnQuREVGQVVMVF9BTExfRklMVEVSXTtcbiAgICAgICAgICAvLyBhZGQgZXh0cmEgZmlsdGVyc1xuICAgICAgICAgIHRoaXMuZGVmYXVsdEZpbHRlcnMucHVzaC5hcHBseSh0aGlzLmRlZmF1bHRGaWx0ZXJzLCB0aGlzLnRhYmxlQ29uZmlnLnNlYXJjaGVzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB9KTtcbiAgfVxuXG4gIGNhbmNlbCgpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBvaygpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgb25EYXRhTG9hZChkYXRhOiBBZHZhbmNlZFRhYmxlRGF0YVJlc3VsdCkge1xuICAgIHRoaXMucmVjb3Jkc1RvdGFsID0gZGF0YS5yZWNvcmRzVG90YWw7XG4gICAgdGhpcy5yZWNvcmRzRmlsdGVyZWQgPSBkYXRhLnJlY29yZHNGaWx0ZXJlZDtcbiAgICAvLyBnZXQgZmlyc3QgcGFnZSBpbmZvIChiZWNhdXNlIHBhZ2UgaXMgbm90IGdvaW5nIHRvIGJlIGZpcmVkIGZvciBmaXJzdCBwYWdlKVxuICAgIGlmIChkYXRhLnJlY29yZHNUb3RhbCA+IDAgJiYgdGhpcy5wYWdlSW5mby5yZWNvcmRzVG90YWwgPT09IDApIHtcbiAgICAgIHRoaXMucGFnZUluZm8ucmVjb3Jkc1RvdGFsID0gZGF0YS5yZWNvcmRzVG90YWw7XG4gICAgfVxuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICB9XG5cbiAgcHJldmlvdXNQYWdlKCkge1xuICAgIC8vIGdvIHRvIG5leHQgcGFnZVxuICAgIC8vIG5vaW5zcGVjdGlvbiBUeXBlU2NyaXB0VmFsaWRhdGVKU1R5cGVzXG4gICAgdGhpcy5hZHZhbmNlZFRhYmxlLmRhdGFUYWJsZS5wYWdlKCdwcmV2aW91cycpLmRyYXcoJ3BhZ2UnKTtcbiAgfVxuXG4gIG5leHRQYWdlKCkge1xuICAgIC8vIGdvIHRvIG5leHQgcGFnZVxuICAgIC8vIG5vaW5zcGVjdGlvbiBUeXBlU2NyaXB0VmFsaWRhdGVKU1R5cGVzXG4gICAgdGhpcy5hZHZhbmNlZFRhYmxlLmRhdGFUYWJsZS5wYWdlKCduZXh0JykuZHJhdygncGFnZScpO1xuICB9XG5cbiAgb25UYWJsZUluaXQoZGF0YVRhYmxlOiBhbnkpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICAvLyBnZXQgaW5pdGlhbCBwYWdlIGluZm9cbiAgICBjb25zdCBpbml0aWFsUGFnZUluZm8gPSA8UGFnZUluZm8+ZGF0YVRhYmxlLnBhZ2UuaW5mbygpO1xuICAgIGluaXRpYWxQYWdlSW5mby5zdGFydCArPSAxO1xuICAgIHNlbGYucGFnZUluZm8gPSBpbml0aWFsUGFnZUluZm87XG4gICAgLy8gY2hhbmdlIGVtcHR5VGFibGVNZXNzYWdlXG4gICAgZGF0YVRhYmxlLmNvbnRleHRbMF0ub0xhbmd1YWdlLnNFbXB0eVRhYmxlID0gdGhpcy5lbXB0eVRhYmxlLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MO1xuICAgIC8vIGJpbmQgcGFnZSBjaGFuZ2UgZXZlbnRcbiAgICBkYXRhVGFibGUub24oICdwYWdlLmR0JywgZnVuY3Rpb24oKSB7XG4gICAgICBjb25zdCBwYWdlSW5mbyA9IDxQYWdlSW5mbz5kYXRhVGFibGUucGFnZS5pbmZvKCk7XG4gICAgICBwYWdlSW5mby5zdGFydCArPSAxO1xuICAgICAgc2VsZi5wYWdlSW5mbyA9IHBhZ2VJbmZvO1xuICAgIH0pO1xuICAgIC8vIGJpbmQgZHJhdyBjaGFuZ2UgZXZlbnRcbiAgICBkYXRhVGFibGUub24oICdkcmF3LmR0JywgZnVuY3Rpb24oKSB7XG4gICAgICAvLyBmb3IgZnV0dXJlIHVzZVxuICAgICAgc2VsZi5sb2FkaW5nID0gZmFsc2U7XG4gICAgICBjb25zdCBwYWdlSW5mbyA9IDxQYWdlSW5mbz5kYXRhVGFibGUucGFnZS5pbmZvKCk7XG4gICAgICBwYWdlSW5mby5zdGFydCArPSAxO1xuICAgICAgc2VsZi5wYWdlSW5mbyA9IHBhZ2VJbmZvO1xuICAgIH0pO1xuICB9XG5cbiAgZmlyc3RQYWdlKCkge1xuICAgIC8vIGdvIHRvIGZpcnN0IHBhZ2VcbiAgICAvLyBub2luc3BlY3Rpb24gVHlwZVNjcmlwdFZhbGlkYXRlSlNUeXBlc1xuICAgIHRoaXMuYWR2YW5jZWRUYWJsZS5kYXRhVGFibGUucGFnZSgnZmlyc3QnKS5kcmF3KCdwYWdlJyk7XG4gIH1cblxuICBsYXN0UGFnZSgpIHtcbiAgICAvLyBnbyB0byBsYXN0IHBhZ2VcbiAgICAvLyBub2luc3BlY3Rpb24gVHlwZVNjcmlwdFZhbGlkYXRlSlNUeXBlc1xuICAgIHRoaXMuYWR2YW5jZWRUYWJsZS5kYXRhVGFibGUucGFnZSgnbGFzdCcpLmRyYXcoJ3BhZ2UnKTtcbiAgfVxuXG4gICAgc2V0TGVuZ3RoKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgIHRoaXMucGFnZUxlbmd0aCA9IHZhbHVlO1xuICAgICAgdGhpcy5hZHZhbmNlZFRhYmxlLmRhdGFUYWJsZS5wYWdlLmxlbih2YWx1ZSkuZHJhdygpO1xuICAgIH1cblxuICBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmNvZGUgPT09ICdFbnRlcicpIHtcbiAgICAgIC8vIGxvYWRpbmdcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmFkdmFuY2VkVGFibGUuc2VhcmNoKCg8SFRNTElucHV0RWxlbWVudD5ldmVudC50YXJnZXQpLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogUmVhZHMgdGhlIG1vZGFsIHRhYmxlIGFuZCByZXR1cm5zIGEgbGlzdCBvZiBmaWx0ZXJzIHRvIHVzZSBpbiB0aGUgdGFibGVcbiAgICogcXVlcnkuXG4gICAqXG4gICAqIEBwYXJhbSB0YWJsZUNvbmZpZyB7b2JqZWN0fSBUaGUgdGFibGUgY29uZmlndXJhdGlvbiBmcm9tIGpzb24gZmlsZVxuICAgKiBAcGFyYW0gZGVmYXVsdEZpbHRlclZhbHVlcyB7b2JqZWN0fSBBIGxpc3Qgb2YgZGVmYXVsdCBmaWx0ZXJzXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBzZWFyY2hJdGVtIFRoZSBzZWFyY2hJdGVtIHRvIHVzZVxuICAgKlxuICAgKi9cbiAgZ2V0RmlsdGVycyhcbiAgICB0YWJsZUNvbmZpZzogYW55LFxuICAgIGRlZmF1bHRGaWx0ZXJWYWx1ZXMgPSB7fSxcbiAgICBzZWFyY2hJdGVtOiBhbnlcbiAgKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgLy8gRG8gbm90aGluZyBpbiBhYnNlbmNlIG9mIGNvbmZpZ3VyYXRpb24uXG4gICAgaWYgKCF0YWJsZUNvbmZpZyB8fCAhQXJyYXkuaXNBcnJheSh0YWJsZUNvbmZpZy5jcml0ZXJpYSkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBpZiAoc2VhcmNoSXRlbS5maWx0ZXIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoZWRDcml0ZXJpb24gPSB0YWJsZUNvbmZpZy5jcml0ZXJpYS5maW5kKGNyaXRlcmlvbiA9PlxuICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNlYXJjaEl0ZW0uZmlsdGVyLCBjcml0ZXJpb24ubmFtZSlcbiAgICApO1xuXG4gICAgaWYgKG1hdGNoZWRDcml0ZXJpb24gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gc2VhcmNoSXRlbS5maWx0ZXJbbWF0Y2hlZENyaXRlcmlvbi5uYW1lXTtcblxuICAgIGNvbnN0IGNyaXRlcmlvblNhZmVOYW1lID0gbWF0Y2hlZENyaXRlcmlvbi5uYW1lICE9PSBudWxsXG4gICAgICA/IG1hdGNoZWRDcml0ZXJpb24ubmFtZS50b1N0cmluZygpXG4gICAgICA6ICcnO1xuXG4gICAgbGV0IGFwcGxpY2FibGVGaWx0ZXI6IHN0cmluZztcblxuICAgIC8vIFJhdyBkYXRlcyBzaG91bGQgYmUgdHJhbnNmb3JtZWQgdG8gYSBzcGVjaWZpYyBmb3JtYXRcbiAgICBpZiAoY3JpdGVyaW9uU2FmZU5hbWUuaW5jbHVkZXMoJ0dNVCcpKSB7XG4gICAgICBjb25zdCBuZXdEYXRlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oY3JpdGVyaW9uU2FmZU5hbWUsICdNTS9kZC95eXl5Jyk7XG4gICAgICBhcHBsaWNhYmxlRmlsdGVyID0gdGhpcy5fdGVtcGxhdGUudHJhbnNmb3JtKG1hdGNoZWRDcml0ZXJpb24uZmlsdGVyLCB7XG4gICAgICAgIHZhbHVlOiBuZXdEYXRlXG4gICAgICB9KTtcblxuICAgIH0gZWxzZSBpZiAoY3JpdGVyaW9uU2FmZU5hbWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBhcHBsaWNhYmxlRmlsdGVyID0gKHRoaXMuX3RlbXBsYXRlLnRyYW5zZm9ybShtYXRjaGVkQ3JpdGVyaW9uLmZpbHRlciwgT2JqZWN0LmFzc2lnbih7XG4gICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgfSwgZGVmYXVsdEZpbHRlclZhbHVlcykpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXBwbGljYWJsZUZpbHRlciA9ICcnO1xuICAgIH1cblxuICAgIHJldHVybiBbYXBwbGljYWJsZUZpbHRlcl07XG4gIH1cblxuICBvbkZpbHRlclNlbGVjdCh2YWx1ZTogeyBmaWx0ZXI6IGFueTsgbmFtZTogc3RyaW5nIH0gfCBhbnkpIHtcbiAgICB0aGlzLmFkdmFuY2VkU2VhcmNoKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBSdW5zIGEgZmlsdGVyIGFnYWluc3QgdGhlIG1vZGFsIHRhYmxlXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBmaWx0ZXIgVGhlIGZpbHRlciB0byB1c2UgaW4gdGhlIHNlYXJjaFxuICAgKlxuICAgKi9cbiAgYXN5bmMgYWR2YW5jZWRTZWFyY2goZmlsdGVyKTogUHJvbWlzZTxhbnk+IHtcbiAgICAvLyBEbyBub3RoaW5nIGluIGFic2VuY2Ugb2YgY29uZmlndXJhdGlvbi5cbiAgICBpZiAoIXRoaXMudGFibGVDb25maWcgJiYgIUFycmF5LmlzQXJyYXkodGhpcy50YWJsZUNvbmZpZy5jcml0ZXJpYSkpIHtcbiAgICAgIGNvbnNvbGUud2FybignTm8gdGFibGUgY29uZmlndXJhdGlvbiBhdmFpbGFibGUnLCB0aGlzLnRhYmxlQ29uZmlnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBBbiBhZHZhbmNlZCB0YWJsZSBoYXMgc29tZSBmaWx0ZXJzIGJ5IGRlZmF1bHRcbiAgICBsZXQgZGVmYXVsdEZpbHRlclZhbHVlcztcbiAgICB0cnkge1xuICAgICAgZGVmYXVsdEZpbHRlclZhbHVlcyA9IGF3YWl0IHRoaXMuYWR2YW5jZWRGaWx0ZXJWYWx1ZVByb3ZpZGVyLmdldFZhbHVlcygpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgZGVmYXVsdEZpbHRlclZhbHVlcyA9IHt9O1xuICAgIH1cblxuICAgIGNvbnN0IGV4cHJlc3Npb25zID0gIFtdO1xuICAgIGxldCBwcmVkZWZpbmVkQ3JpdGVyaWE7XG4gICAgaWYgKGZpbHRlcikge1xuICAgICAgdGhpcy5kZWZhdWx0RmlsdGVyID0gZmlsdGVyO1xuICAgICAgcHJlZGVmaW5lZENyaXRlcmlhID0gdGhpcy5nZXRGaWx0ZXJzKFxuICAgICAgICB0aGlzLnRhYmxlQ29uZmlnLFxuICAgICAgICBkZWZhdWx0RmlsdGVyVmFsdWVzLFxuICAgICAgICBmaWx0ZXJcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEVtcHR5IGEgZmFsc3kgZmlsdGVyIHJlc2V0cyB0aGUgcmVzdWx0c1xuICAgICAgdGhpcy5kZWZhdWx0RmlsdGVyID0gQWR2YW5jZWRUYWJsZU1vZGFsQmFzZUNvbXBvbmVudC5ERUZBVUxUX0FMTF9GSUxURVI7XG4gICAgfVxuXG4gICAgLy8gc2VhcmNoIGZpbHRlciBpcyBhcHBsaWVkIHNlcGFyYXRlbHksIHRoZXJlIGlzIG5vIG5lZWQgdG8gYWRkIGhlcmUuXG4gICAgZXhwcmVzc2lvbnMucHVzaChwcmVkZWZpbmVkQ3JpdGVyaWEpO1xuXG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLl9jb250ZXh0Lm1vZGVsKHRoaXMuYWR2YW5jZWRUYWJsZS5jb25maWcubW9kZWwpLmFzUXVlcnlhYmxlKCk7XG4gICAgcXVlcnkuc2V0UGFyYW0oJ2ZpbHRlcicsIGV4cHJlc3Npb25zLmpvaW4oJyBhbmQgJykpLnByZXBhcmUoKTtcbiAgICB0aGlzLmFkdmFuY2VkVGFibGUucXVlcnkgPSBxdWVyeTtcbiAgICB0aGlzLmFkdmFuY2VkVGFibGUuZmV0Y2goKTtcbiAgfVxufVxuXG4iXX0=
|
|
@@ -23,7 +23,6 @@ import { TABLES_EL } from './i18n/tables.el';
|
|
|
23
23
|
import { TABLES_EN } from './i18n/tables.en';
|
|
24
24
|
import { TableSimpleHeaderComponent, SimpleHeaderToolsComponent } from './components/table-simple-header/table-simple-header.component';
|
|
25
25
|
import { ModalModule } from 'ngx-bootstrap/modal';
|
|
26
|
-
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
|
|
27
26
|
import { ProgressbarModule } from 'ngx-bootstrap/progressbar';
|
|
28
27
|
import { AdvancedSelectComponent } from './components/advanced-select/advanced-select.component';
|
|
29
28
|
import { AdvancedSelectService } from './components/advanced-select/advanced-select.service';
|
|
@@ -67,7 +66,6 @@ var TablesModule = /** @class */ (function () {
|
|
|
67
66
|
AdvancedFormsModule,
|
|
68
67
|
SharedModule,
|
|
69
68
|
ModalModule,
|
|
70
|
-
BsDropdownModule,
|
|
71
69
|
ProgressbarModule,
|
|
72
70
|
NgPipesModule
|
|
73
71
|
],
|
|
@@ -136,4 +134,4 @@ var TablesModule = /** @class */ (function () {
|
|
|
136
134
|
export { TablesModule };
|
|
137
135
|
export { ɵ0 };
|
|
138
136
|
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1bml2ZXJzaXMvbmd4LXRhYmxlcy8iLCJzb3VyY2VzIjpbImxpYi90YWJsZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWlCLFFBQVEsRUFBVSxzQkFBc0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHNCQUFzQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDL0csT0FBTyxFQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQzdHLE9BQU8sRUFBQyxZQUFZLEVBQUUsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFN0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDeEgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDL0csT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFD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O3dCQUMzQixxQkFBcUI7d0JBQ3JCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3dCQUM1QiwyQkFBMkI7d0JBQzNCLCtCQUErQjt3QkFDL0Isc0JBQXNCO3dCQUN0QixjQUFjO3dCQUNkLGlCQUFpQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHNCQUFzQjt3QkFDdEIsNEJBQTRCO3dCQUM1QixlQUFlO3dCQUNmLDhCQUE4Qjt3QkFDOUIsMkJBQTJCO3dCQUMzQixxQkFBcUI7d0JBQ3JCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsNEJBQTRCO3dCQUM1QiwyQkFBMkI7d0JBQzNCLCtCQUErQjt3QkFDL0IsaUJBQWlCO3FCQUNwQjtvQkFDRCxlQUFlLEVBQUU7d0JBQ2IsK0JBQStCO3dCQUMvQiw4QkFBOEI7d0JBQzlCLDBCQUEwQjt3QkFDMUIsdUJBQXVCO3dCQUN2QixpQkFBaUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzs7OztnQkFoSHdCLGdCQUFnQjs7SUE4SHpDLG1CQUFDO0NBQUEsQUF0RkQsSUFzRkM7U0FiWSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgTmdNb2R1bGUsIE9uSW5pdCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QWR2YW5jZWRUYWJsZUNvbXBvbmVudCwgQ09MVU1OX0ZPUk1BVFRFUlN9IGZyb20gJy4vY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtBZHZhbmNlZFRhYmxlU2VhcmNoQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtCdG5FeHBEaXJlY3RpdmV9IGZyb20gJy4vZGlyZWN0aXZlcy9idG5leHAuZGlyZWN0aXZlJztcbmltcG9ydCB7QWR2YW5jZWRUYWJsZVNldHRpbmdzQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUtc2V0dGluZ3MuY29tcG9uZW50JztcbmltcG9ydCB7U2hhcmVkTW9kdWxlLCBUZW1wbGF0ZVBpcGV9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcbmltcG9ydCB7QWR2YW5jZWRGaWx0ZXJWYWx1ZVByb3ZpZGVyfSBmcm9tICcuL2NvbXBvbmVudHMvYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtZmlsdGVyLXZhbHVlLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWR2YW5jZWRUYWJsZU1vZGFsQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS1tb2RhbC9hZHZhbmNlZC10YWJsZS1tb2RhbC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQge1JvdXRlck1vZGFsTW9kdWxlfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbi9yb3V0aW5nJztcbmltcG9ydCB7IEFkdmFuY2VkU2VhcmNoRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZHZhbmNlZC1zZWFyY2gtZm9ybS9hZHZhbmNlZC1zZWFyY2gtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHtBZHZhbmNlZEZvcm1zTW9kdWxlfSBmcm9tICdAdW5pdmVyc2lzL2Zvcm1zJztcbmltcG9ydCB7Rm9ybWlvTW9kdWxlfSBmcm9tICdhbmd1bGFyLWZvcm1pbyc7XG5pbXBvcnQgeyBBZHZhbmNlZExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWR2YW5jZWQtbGlzdC9hZHZhbmNlZC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gICAgQWR2YW5jZWRTZWFyY2hDb25maWd1cmF0aW9uUmVzb2x2ZXIsXG4gICAgQWR2YW5jZWRUYWJsZUNvbmZpZ3VyYXRpb25SZXNvbHZlclxufSBmcm9tICcuL2NvbXBvbmVudHMvYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUtcmVzb2x2ZXJzJztcbmltcG9ydCB7QWR2YW5jZWRSb3dBY3Rpb25Db21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9hZHZhbmNlZC1yb3ctYWN0aW9uL2FkdmFuY2VkLXJvdy1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7Rk9STUFUVEVSU30gZnJvbSAnLi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLmZvcm1hdHRlcnMuaW50ZXJmYWNlJztcblxuaW1wb3J0IHtUQUJMRVNfRUx9IGZyb20gJy4vaTE4bi90YWJsZXMuZWwnO1xuaW1wb3J0IHtUQUJMRVNfRU59IGZyb20gJy4vaTE4bi90YWJsZXMuZW4nO1xuaW1wb3J0IHsgVGFibGVTaW1wbGVIZWFkZXJDb21wb25lbnQsIFNpbXBsZUhlYWRlclRvb2xzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLXNpbXBsZS1oZWFkZXIvdGFibGUtc2ltcGxlLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IEJzRHJvcGRvd25Nb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duJztcbmltcG9ydCB7IFByb2dyZXNzYmFyTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wcm9ncmVzc2Jhcic7XG5pbXBvcnQgeyBBZHZhbmNlZFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZHZhbmNlZC1zZWxlY3QvYWR2YW5jZWQtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZHZhbmNlZFNlbGVjdFNlcnZpY2UgfSBmcm9tICcuL2NvbXBvbmVudHMvYWR2YW5jZWQtc2VsZWN0L2FkdmFuY2VkLXNlbGVjdC5zZXJ2aWNlJztcbmltcG9ydCB7IEFkdmFuY2VkVGFibGVFZGl0b3JEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYWR2YW5jZWQtdGFibGUtZWRpdG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0FkdmFuY2VkQWdncmVnYXRvckNvbXBvbmVudH0gZnJvbSBcIi4vY29tcG9uZW50cy9hZHZhbmNlZC1hZ2dyZWdhdG9yL2FkdmFuY2VkLWFnZ3JlZ2F0b3IuY29tcG9uZW50XCI7XG5pbXBvcnQge0FkdmFuY2VkQWdncmVnYXRvckxpc3RDb21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvYWR2YW5jZWQtYWdncmVnYXRvci1saXN0L2FkdmFuY2VkLWFnZ3JlZ2F0b3ItbGlzdC5jb21wb25lbnRcIjtcbmltcG9ydCB7QWR2YW5jZWRBZ2dyZWdhdG9yU2VydmljZX0gZnJvbSAnLi9zZXJ2aWNlcy9hZHZhbmNlZC1hZ2dyZWdhdG9yL2FkdmFuY2VkLWFnZ3JlZ2F0b3Iuc2VydmljZSc7XG5pbXBvcnQge0FkdmFuY2VkQWdncmVnYXRvclBpcGV9IGZyb20gJy4vcGlwZXMvYWR2YW5jZWQtYWdncmVnYXRvci5waXBlJztcbmltcG9ydCB7R3JvdXBCeVBpcGUsIE5nUGlwZXNNb2R1bGV9IGZyb20gJ25neC1waXBlcyc7XG5pbXBvcnQge1BhcnNlVGl0bGVQaXBlfSBmcm9tICcuL3BpcGVzL2FkdmFuc2VkLWFnZ3JlZ2F0b3ItbGlzdC10aXRsZS1wYXJzZS5waXBlJztcbmltcG9ydCB7QWRkSXRlbXNDb21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvYWRkLWl0ZW1zL2FkZC1pdGVtcy5jb21wb25lbnRcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgU2hhcmVkTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZGFsTW9kdWxlLFxuICAgICAgICBGb3JtaW9Nb2R1bGUsXG4gICAgICAgIEFkdmFuY2VkRm9ybXNNb2R1bGUsXG4gICAgICAgIFNoYXJlZE1vZHVsZSxcbiAgICAgICAgTW9kYWxNb2R1bGUsXG4gICAgICAgIEJzRHJvcGRvd25Nb2R1bGUsXG4gICAgICAgIFByb2dyZXNzYmFyTW9kdWxlLFxuICAgICAgICBOZ1BpcGVzTW9kdWxlXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtEYXRlUGlwZSwgVGVtcGxhdGVQaXBlLFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBDT0xVTU5fRk9STUFUVEVSUyxcbiAgICAgICAgdXNlVmFsdWU6IEZPUk1BVFRFUlNcbiAgICAgIH0sXG5cbiAgICAgIEFkdmFuY2VkVGFibGVDb25maWd1cmF0aW9uUmVzb2x2ZXIsXG4gICAgICAgIEFkdmFuY2VkU2VhcmNoQ29uZmlndXJhdGlvblJlc29sdmVyLFxuICAgICAgICBBZHZhbmNlZFNlbGVjdFNlcnZpY2UsXG4gICAgICAgIEFkdmFuY2VkQWdncmVnYXRvclNlcnZpY2UsXG4gICAgICAgIEdyb3VwQnlQaXBlXG4gICAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBBZHZhbmNlZFRhYmxlQ29tcG9uZW50LFxuICAgICAgICBBZHZhbmNlZFRhYmxlU2VhcmNoQ29tcG9uZW50LFxuICAgICAgICBCdG5FeHBEaXJlY3RpdmUsXG4gICAgICAgIEFkdmFuY2VkVGFibGVTZXR0aW5nc0NvbXBvbmVudCxcbiAgICAgICAgQWR2YW5jZWRUYWJsZU1vZGFsQmFzZUNvbXBvbmVudCxcbiAgICAgICAgQWR2YW5jZWRTZWFyY2hGb3JtQ29tcG9uZW50LFxuICAgICAgICBBZHZhbmNlZExpc3RDb21wb25lbnQsXG4gICAgICAgIEFkdmFuY2VkUm93QWN0aW9uQ29tcG9uZW50LFxuICAgICAgICBUYWJsZVNpbXBsZUhlYWRlckNvbXBvbmVudCxcbiAgICAgICAgU2ltcGxlSGVhZGVyVG9vbHNDb21wb25lbnQsXG4gICAgICAgIEFkdmFuY2VkU2VsZWN0Q29tcG9uZW50LFxuICAgICAgICBBZHZhbmNlZFRhYmxlRWRpdG9yRGlyZWN0aXZlLFxuICAgICAgICBBZHZhbmNlZEFnZ3JlZ2F0b3JDb21wb25lbnQsXG4gICAgICAgIEFkdmFuY2VkQWdncmVnYXRvckxpc3RDb21wb25lbnQsXG4gICAgICAgIEFkdmFuY2VkQWdncmVnYXRvclBpcGUsXG4gICAgICAgIFBhcnNlVGl0bGVQaXBlLFxuICAgICAgICBBZGRJdGVtc0NvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBBZHZhbmNlZFRhYmxlQ29tcG9uZW50LFxuICAgICAgICBBZHZhbmNlZFRhYmxlU2VhcmNoQ29tcG9uZW50LFxuICAgICAgICBCdG5FeHBEaXJlY3RpdmUsXG4gICAgICAgIEFkdmFuY2VkVGFibGVTZXR0aW5nc0NvbXBvbmVudCxcbiAgICAgICAgQWR2YW5jZWRTZWFyY2hGb3JtQ29tcG9uZW50LFxuICAgICAgICBBZHZhbmNlZExpc3RDb21wb25lbnQsXG4gICAgICAgIEFkdmFuY2VkUm93QWN0aW9uQ29tcG9uZW50LFxuICAgICAgICBUYWJsZVNpbXBsZUhlYWRlckNvbXBvbmVudCxcbiAgICAgICAgU2ltcGxlSGVhZGVyVG9vbHNDb21wb25lbnQsXG4gICAgICAgIEFkdmFuY2VkU2VsZWN0Q29tcG9uZW50LFxuICAgICAgICBBZHZhbmNlZFRhYmxlRWRpdG9yRGlyZWN0aXZlLFxuICAgICAgICBBZHZhbmNlZEFnZ3JlZ2F0b3JDb21wb25lbnQsXG4gICAgICAgIEFkdmFuY2VkQWdncmVnYXRvckxpc3RDb21wb25lbnQsXG4gICAgICAgIEFkZEl0ZW1zQ29tcG9uZW50XG4gICAgXSxcbiAgICBlbnRyeUNvbXBvbmVudHM6IFtcbiAgICAgICAgQWR2YW5jZWRUYWJsZU1vZGFsQmFzZUNvbXBvbmVudCxcbiAgICAgICAgQWR2YW5jZWRUYWJsZVNldHRpbmdzQ29tcG9uZW50LFxuICAgICAgICBBZHZhbmNlZFJvd0FjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgQWR2YW5jZWRTZWxlY3RDb21wb25lbnQsXG4gICAgICAgIEFkZEl0ZW1zQ29tcG9uZW50XG4gICAgXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVzTW9kdWxlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMubmdPbkluaXQoKS5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgbG9hZGluZyB0YWJsZXMgbW9kdWxlJyk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFzeW5jIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLnNldFRyYW5zbGF0aW9uKCdlbicsIFRBQkxFU19FTiwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2Uuc2V0VHJhbnNsYXRpb24oJ2VsJywgVEFCTEVTX0VMLCB0cnVlKTtcbiAgICB9XG5cbn1cbiJdfQ==
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B1bml2ZXJzaXMvbmd4LXRhYmxlcy8iLCJzb3VyY2VzIjpbImxpYi90YWJsZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWlCLFFBQVEsRUFBVSxzQkFBc0IsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHNCQUFzQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDL0csT0FBTyxFQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLDZEQUE2RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQzdHLE9BQU8sRUFBQyxZQUFZLEVBQUUsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFN0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUVBQXVFLENBQUM7QUFDeEgsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDL0csT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0gsbUNBQW1DLEVBQ25DLGtDQUFrQyxFQUNyQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzlELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQzFHLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQUUzRixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3hJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM1RixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUMzRyxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSwwRUFBMEUsQ0FBQztBQUN6SCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsV0FBVyxFQUFFLGFBQWEsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDakYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNENBQTRDLENBQUM7U0FxQjNELFVBQVU7QUFuQjVCO0lBeUVJLHNCQUFvQixpQkFBbUM7UUFBbkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQUEsR0FBRztZQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7WUFDL0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFSywrQkFBUSxHQUFkOzs7Z0JBQ0ksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUM3RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7Ozs7S0FDaEU7O2dCQW5GSixRQUFRLFNBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLGFBQWE7cUJBQ2hCO29CQUNELFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBRSxZQUFZO3dCQUNoQzs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixRQUFRLElBQVk7eUJBQ3JCO3dCQUVELGtDQUFrQzt3QkFDaEMsbUNBQW1DO3dCQUNuQyxxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsV0FBVztxQkFDWjtvQkFDSCxZQUFZLEVBQUU7d0JBQ1Ysc0JBQXNCO3dCQUN0Qiw0QkFBNEI7d0JBQzVCLGVBQWU7d0JBQ2YsOEJBQThCO3dCQUM5QiwrQkFBK0I7d0JBQy9CLDJCQUEyQjt3QkFDM0IscUJBQXFCO3dCQUNyQiwwQkFBMEI7d0JBQzFCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsMkJBQTJCO3dCQUMzQiwrQkFBK0I7d0JBQy9CLHNCQUFzQjt3QkFDdEIsY0FBYzt3QkFDZCxpQkFBaUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxzQkFBc0I7d0JBQ3RCLDRCQUE0Qjt3QkFDNUIsZUFBZTt3QkFDZiw4QkFBOEI7d0JBQzlCLDJCQUEyQjt3QkFDM0IscUJBQXFCO3dCQUNyQiwwQkFBMEI7d0JBQzFCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsMkJBQTJCO3dCQUMzQiwrQkFBK0I7d0JBQy9CLGlCQUFpQjtxQkFDcEI7b0JBQ0QsZUFBZSxFQUFFO3dCQUNiLCtCQUErQjt3QkFDL0IsOEJBQThCO3dCQUM5QiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7Ozs7Z0JBOUd3QixnQkFBZ0I7O0lBNEh6QyxtQkFBQztDQUFBLEFBckZELElBcUZDO1NBYlksWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0aW9uVG9rZW4sIE5nTW9kdWxlLCBPbkluaXQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUF9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0FkdmFuY2VkVGFibGVDb21wb25lbnQsIENPTFVNTl9GT1JNQVRURVJTfSBmcm9tICcuL2NvbXBvbmVudHMvYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QWR2YW5jZWRUYWJsZVNlYXJjaENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLXNlYXJjaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7QnRuRXhwRGlyZWN0aXZlfSBmcm9tICcuL2RpcmVjdGl2ZXMvYnRuZXhwLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0FkdmFuY2VkVGFibGVTZXR0aW5nc0NvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLXNldHRpbmdzLmNvbXBvbmVudCc7XG5pbXBvcnQge1NoYXJlZE1vZHVsZSwgVGVtcGxhdGVQaXBlfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbic7XG5pbXBvcnQge0FkdmFuY2VkRmlsdGVyVmFsdWVQcm92aWRlcn0gZnJvbSAnLi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLWZpbHRlci12YWx1ZS1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFkdmFuY2VkVGFibGVNb2RhbEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWR2YW5jZWQtdGFibGUtbW9kYWwvYWR2YW5jZWQtdGFibGUtbW9kYWwtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHtSb3V0ZXJNb2RhbE1vZHVsZX0gZnJvbSAnQHVuaXZlcnNpcy9jb21tb24vcm91dGluZyc7XG5pbXBvcnQgeyBBZHZhbmNlZFNlYXJjaEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWR2YW5jZWQtc2VhcmNoLWZvcm0vYWR2YW5jZWQtc2VhcmNoLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7QWR2YW5jZWRGb3Jtc01vZHVsZX0gZnJvbSAnQHVuaXZlcnNpcy9mb3Jtcyc7XG5pbXBvcnQge0Zvcm1pb01vZHVsZX0gZnJvbSAnYW5ndWxhci1mb3JtaW8nO1xuaW1wb3J0IHsgQWR2YW5jZWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkdmFuY2VkLWxpc3QvYWR2YW5jZWQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICAgIEFkdmFuY2VkU2VhcmNoQ29uZmlndXJhdGlvblJlc29sdmVyLFxuICAgIEFkdmFuY2VkVGFibGVDb25maWd1cmF0aW9uUmVzb2x2ZXJcbn0gZnJvbSAnLi9jb21wb25lbnRzL2FkdmFuY2VkLXRhYmxlL2FkdmFuY2VkLXRhYmxlLXJlc29sdmVycyc7XG5pbXBvcnQge0FkdmFuY2VkUm93QWN0aW9uQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvYWR2YW5jZWQtcm93LWFjdGlvbi9hZHZhbmNlZC1yb3ctYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge0ZPUk1BVFRFUlN9IGZyb20gJy4vY29tcG9uZW50cy9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5mb3JtYXR0ZXJzLmludGVyZmFjZSc7XG5cbmltcG9ydCB7VEFCTEVTX0VMfSBmcm9tICcuL2kxOG4vdGFibGVzLmVsJztcbmltcG9ydCB7VEFCTEVTX0VOfSBmcm9tICcuL2kxOG4vdGFibGVzLmVuJztcbmltcG9ydCB7IFRhYmxlU2ltcGxlSGVhZGVyQ29tcG9uZW50LCBTaW1wbGVIZWFkZXJUb29sc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS1zaW1wbGUtaGVhZGVyL3RhYmxlLXNpbXBsZS1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1vZGFsTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBQcm9ncmVzc2Jhck1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvcHJvZ3Jlc3NiYXInO1xuaW1wb3J0IHsgQWR2YW5jZWRTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWR2YW5jZWQtc2VsZWN0L2FkdmFuY2VkLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWR2YW5jZWRTZWxlY3RTZXJ2aWNlIH0gZnJvbSAnLi9jb21wb25lbnRzL2FkdmFuY2VkLXNlbGVjdC9hZHZhbmNlZC1zZWxlY3Quc2VydmljZSc7XG5pbXBvcnQgeyBBZHZhbmNlZFRhYmxlRWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2FkdmFuY2VkLXRhYmxlLWVkaXRvci5kaXJlY3RpdmUnO1xuaW1wb3J0IHtBZHZhbmNlZEFnZ3JlZ2F0b3JDb21wb25lbnR9IGZyb20gXCIuL2NvbXBvbmVudHMvYWR2YW5jZWQtYWdncmVnYXRvci9hZHZhbmNlZC1hZ2dyZWdhdG9yLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtBZHZhbmNlZEFnZ3JlZ2F0b3JMaXN0Q29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnRzL2FkdmFuY2VkLWFnZ3JlZ2F0b3ItbGlzdC9hZHZhbmNlZC1hZ2dyZWdhdG9yLWxpc3QuY29tcG9uZW50XCI7XG5pbXBvcnQge0FkdmFuY2VkQWdncmVnYXRvclNlcnZpY2V9IGZyb20gJy4vc2VydmljZXMvYWR2YW5jZWQtYWdncmVnYXRvci9hZHZhbmNlZC1hZ2dyZWdhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtBZHZhbmNlZEFnZ3JlZ2F0b3JQaXBlfSBmcm9tICcuL3BpcGVzL2FkdmFuY2VkLWFnZ3JlZ2F0b3IucGlwZSc7XG5pbXBvcnQge0dyb3VwQnlQaXBlLCBOZ1BpcGVzTW9kdWxlfSBmcm9tICduZ3gtcGlwZXMnO1xuaW1wb3J0IHtQYXJzZVRpdGxlUGlwZX0gZnJvbSAnLi9waXBlcy9hZHZhbnNlZC1hZ2dyZWdhdG9yLWxpc3QtdGl0bGUtcGFyc2UucGlwZSc7XG5pbXBvcnQge0FkZEl0ZW1zQ29tcG9uZW50fSBmcm9tIFwiLi9jb21wb25lbnRzL2FkZC1pdGVtcy9hZGQtaXRlbXMuY29tcG9uZW50XCI7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFNoYXJlZE1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2RhbE1vZHVsZSxcbiAgICAgICAgRm9ybWlvTW9kdWxlLFxuICAgICAgICBBZHZhbmNlZEZvcm1zTW9kdWxlLFxuICAgICAgICBTaGFyZWRNb2R1bGUsXG4gICAgICAgIE1vZGFsTW9kdWxlLFxuICAgICAgICBQcm9ncmVzc2Jhck1vZHVsZSxcbiAgICAgICAgTmdQaXBlc01vZHVsZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbRGF0ZVBpcGUsIFRlbXBsYXRlUGlwZSxcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogQ09MVU1OX0ZPUk1BVFRFUlMsXG4gICAgICAgIHVzZVZhbHVlOiBGT1JNQVRURVJTXG4gICAgICB9LFxuXG4gICAgICBBZHZhbmNlZFRhYmxlQ29uZmlndXJhdGlvblJlc29sdmVyLFxuICAgICAgICBBZHZhbmNlZFNlYXJjaENvbmZpZ3VyYXRpb25SZXNvbHZlcixcbiAgICAgICAgQWR2YW5jZWRTZWxlY3RTZXJ2aWNlLFxuICAgICAgICBBZHZhbmNlZEFnZ3JlZ2F0b3JTZXJ2aWNlLFxuICAgICAgICBHcm91cEJ5UGlwZVxuICAgICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgQWR2YW5jZWRUYWJsZUNvbXBvbmVudCxcbiAgICAgICAgQWR2YW5jZWRUYWJsZVNlYXJjaENvbXBvbmVudCxcbiAgICAgICAgQnRuRXhwRGlyZWN0aXZlLFxuICAgICAgICBBZHZhbmNlZFRhYmxlU2V0dGluZ3NDb21wb25lbnQsXG4gICAgICAgIEFkdmFuY2VkVGFibGVNb2RhbEJhc2VDb21wb25lbnQsXG4gICAgICAgIEFkdmFuY2VkU2VhcmNoRm9ybUNvbXBvbmVudCxcbiAgICAgICAgQWR2YW5jZWRMaXN0Q29tcG9uZW50LFxuICAgICAgICBBZHZhbmNlZFJvd0FjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgVGFibGVTaW1wbGVIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIFNpbXBsZUhlYWRlclRvb2xzQ29tcG9uZW50LFxuICAgICAgICBBZHZhbmNlZFNlbGVjdENvbXBvbmVudCxcbiAgICAgICAgQWR2YW5jZWRUYWJsZUVkaXRvckRpcmVjdGl2ZSxcbiAgICAgICAgQWR2YW5jZWRBZ2dyZWdhdG9yQ29tcG9uZW50LFxuICAgICAgICBBZHZhbmNlZEFnZ3JlZ2F0b3JMaXN0Q29tcG9uZW50LFxuICAgICAgICBBZHZhbmNlZEFnZ3JlZ2F0b3JQaXBlLFxuICAgICAgICBQYXJzZVRpdGxlUGlwZSxcbiAgICAgICAgQWRkSXRlbXNDb21wb25lbnRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgQWR2YW5jZWRUYWJsZUNvbXBvbmVudCxcbiAgICAgICAgQWR2YW5jZWRUYWJsZVNlYXJjaENvbXBvbmVudCxcbiAgICAgICAgQnRuRXhwRGlyZWN0aXZlLFxuICAgICAgICBBZHZhbmNlZFRhYmxlU2V0dGluZ3NDb21wb25lbnQsXG4gICAgICAgIEFkdmFuY2VkU2VhcmNoRm9ybUNvbXBvbmVudCxcbiAgICAgICAgQWR2YW5jZWRMaXN0Q29tcG9uZW50LFxuICAgICAgICBBZHZhbmNlZFJvd0FjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgVGFibGVTaW1wbGVIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIFNpbXBsZUhlYWRlclRvb2xzQ29tcG9uZW50LFxuICAgICAgICBBZHZhbmNlZFNlbGVjdENvbXBvbmVudCxcbiAgICAgICAgQWR2YW5jZWRUYWJsZUVkaXRvckRpcmVjdGl2ZSxcbiAgICAgICAgQWR2YW5jZWRBZ2dyZWdhdG9yQ29tcG9uZW50LFxuICAgICAgICBBZHZhbmNlZEFnZ3JlZ2F0b3JMaXN0Q29tcG9uZW50LFxuICAgICAgICBBZGRJdGVtc0NvbXBvbmVudFxuICAgIF0sXG4gICAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgICAgIEFkdmFuY2VkVGFibGVNb2RhbEJhc2VDb21wb25lbnQsXG4gICAgICAgIEFkdmFuY2VkVGFibGVTZXR0aW5nc0NvbXBvbmVudCxcbiAgICAgICAgQWR2YW5jZWRSb3dBY3Rpb25Db21wb25lbnQsXG4gICAgICAgIEFkdmFuY2VkU2VsZWN0Q29tcG9uZW50LFxuICAgICAgICBBZGRJdGVtc0NvbXBvbmVudFxuICAgIF0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlc01vZHVsZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge1xuICAgICAgICB0aGlzLm5nT25Jbml0KCkuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGxvYWRpbmcgdGFibGVzIG1vZHVsZScpO1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5zZXRUcmFuc2xhdGlvbignZW4nLCBUQUJMRVNfRU4sIHRydWUpO1xuICAgICAgICB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLnNldFRyYW5zbGF0aW9uKCdlbCcsIFRBQkxFU19FTCwgdHJ1ZSk7XG4gICAgfVxuXG59XG4iXX0=
|