@cqa-lib/cqa-ui 1.0.42 → 1.0.43

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.
@@ -114,6 +114,9 @@ export class DynamicFilterComponent {
114
114
  disabled: item.disabled,
115
115
  multiple: item.multiple,
116
116
  searchable: item.searchable,
117
+ optionStyle: item.optionStyle,
118
+ showSelectAll: item.showSelectAll,
119
+ selectAllLabel: item.selectAllLabel,
117
120
  selectedValue: item.selectedValue,
118
121
  options: item.options || []
119
122
  };
@@ -307,4 +310,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
307
310
  }], onResetFilterClick: [{
308
311
  type: Output
309
312
  }] } });
310
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9maWx0ZXJzL2R5bmFtaWMtZmlsdGVyL2R5bmFtaWMtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmlsdGVycy9keW5hbWljLWZpbHRlci9keW5hbWljLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUMxSCxPQUFPLEVBQWUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUF1Q3JFLE1BQU0sT0FBTyxzQkFBc0I7SUFpQmpDLFlBQTZCLEVBQWU7UUFBZixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBaEJuQyxXQUFNLEdBQXdCLEVBQUUsQ0FBQztRQUNqQyxVQUFLLEdBQXdCLEVBQUUsQ0FBQztRQUNoQyxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUNoQyxpQkFBWSxHQUFnQyxRQUFRLENBQUM7UUFDcEQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUN6RCxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBQ3pELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN2Qyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUM3RCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXhELFNBQUksR0FBYyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQyxZQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNyQixvQkFBZSxHQUEyQixFQUFFLENBQUM7UUFD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QUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNyRCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDO1NBQ3hFO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzttSEFsUlUsc0JBQXNCO3VHQUF0QixzQkFBc0IsZ1lDeENuQyx3aGpCQW9QTTsyRkQ1TU8sc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNO2tHQUd0QyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2R5bmFtaWMtc2VsZWN0L2R5bmFtaWMtc2VsZWN0LWZpZWxkLmNvbXBvbmVudCc7XG5cbnR5cGUgRmlsdGVyVHlwZSA9ICdzZWxlY3QnIHwgJ2RhdGUtcmFuZ2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNGaWx0ZXJPcHRpb24ge1xuICBpZD86IG51bWJlciB8IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgdmFsdWU/OiBhbnk7XG4gIGxhYmVsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNGaWx0ZXJJdGVtIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHR5cGU6IEZpbHRlclR5cGU7XG4gIGtleTogc3RyaW5nO1xuICBvcHRpb25zPzogRHluYW1pY0ZpbHRlck9wdGlvbltdO1xuICBtdWx0aXBsZT86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgc2VhcmNoYWJsZT86IGJvb2xlYW47XG4gIHNlbGVjdGVkVmFsdWU/OiBhbnkgfCBhbnlbXTtcbiAgc2VsZWN0ZWRTdGFydERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICBzZWxlY3RlZEVuZERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICBvbkRhdGVDaGFuZ2U/OiAodmFsdWU6IHsgc3RhcnQ6IERhdGUgfCBudWxsOyBlbmQ6IERhdGUgfCBudWxsIH0sIGV2ZW50PzogTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQ8RGF0ZT4gfCBFdmVudCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRmlsdGVyVmFsdWVzIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtZHluYW1pYy1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY29uZmlnOiBEeW5hbWljRmlsdGVySXRlbVtdID0gW107XG4gIEBJbnB1dCgpIG1vZGVsOiBEeW5hbWljRmlsdGVyVmFsdWVzID0ge307XG4gIEBJbnB1dCgpIHNob3dGaWx0ZXJQYW5lbDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGJ1dHRvbkxheW91dDogJ2xlZnQnIHwgJ3JpZ2h0JyB8ICdib3R0b20nID0gJ2JvdHRvbSc7XG4gIEBPdXRwdXQoKSBmaWx0ZXJzQXBwbGllZCA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0ZpbHRlclZhbHVlcz4oKTtcbiAgQE91dHB1dCgpIGZpbHRlcnNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRmlsdGVyVmFsdWVzPigpO1xuICBAT3V0cHV0KCkgcmVzZXRBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBvbkFwcGx5RmlsdGVyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPER5bmFtaWNGaWx0ZXJWYWx1ZXM+KCk7XG4gIEBPdXRwdXQoKSBvblJlc2V0RmlsdGVyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgZm9ybTogRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7fSk7XG4gIG1heERhdGUgPSBuZXcgRGF0ZSgpO1xuICBzZWFyY2hUZXh0QnlLZXk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgcHJpdmF0ZSBzZWxlY3RPdXRzaWRlQ2xlYW51cCA9IG5ldyBNYXA8YW55LCAoKSA9PiB2b2lkPigpO1xuICBoYXNTZWxlY3RlZEZpbHRlcnMgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcikge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2NvbmZpZyddIHx8IGNoYW5nZXNbJ21vZGVsJ10pIHtcbiAgICAgIHRoaXMuYnVpbGRGb3JtKCk7XG4gICAgfVxuICB9XG5cbiAgb25EYXRlQ2hhbmdlKGV2ZW50OiBNYXREYXRlcGlja2VySW5wdXRFdmVudDxEYXRlPiB8IEV2ZW50LCBrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaW52b2tlRGF0ZVJhbmdlQ2hhbmdlKGtleSwgZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEZvcm0oKTogdm9pZCB7XG4gICAgY29uc3QgY3RybHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICAodGhpcy5jb25maWcgfHwgW10pLmZvckVhY2goYyA9PiB7XG4gICAgICBpZiAoYy5oaWRkZW4pIHJldHVybjtcbiAgICAgIGlmIChjLnR5cGUgPT09ICdkYXRlLXJhbmdlJykge1xuICAgICAgICBjb25zdCBpbml0aWFsUmFuZ2UgPSB0aGlzLmdldEluaXRpYWxEYXRlUmFuZ2VWYWx1ZShjKTtcbiAgICAgICAgY3RybHNbYy5rZXldID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgc3RhcnQ6IG5ldyBGb3JtQ29udHJvbChpbml0aWFsUmFuZ2Uuc3RhcnQpLFxuICAgICAgICAgIGVuZDogbmV3IEZvcm1Db250cm9sKGluaXRpYWxSYW5nZS5lbmQpLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGluaXRpYWwgPSB0aGlzLnJlc29sdmVJbml0aWFsU2VsZWN0VmFsdWUoYyk7XG4gICAgICAgIGlmIChjLm11bHRpcGxlKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBBcnJheS5pc0FycmF5KGluaXRpYWwpID8gaW5pdGlhbCA6IChpbml0aWFsICE9IG51bGwgPyBbaW5pdGlhbF0gOiBbXSk7XG4gICAgICAgICAgY3RybHNbYy5rZXldID0gbmV3IEZvcm1Db250cm9sKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjdHJsc1tjLmtleV0gPSBuZXcgRm9ybUNvbnRyb2wodGhpcy5jb2VyY2VUb1NpbmdsZVZhbHVlKGluaXRpYWwpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoY3RybHMpO1xuICAgIC8vIGluaXRpYWxpemUgYXBwbHkgYnV0dG9uIHN0YXRlIGJhc2VkIG9uIGluaXRpYWwgdmFsdWVzXG4gICAgdGhpcy5oYXNTZWxlY3RlZEZpbHRlcnMgPSBPYmplY3Qua2V5cyh0aGlzLnNlcmlhbGl6ZSgpKS5sZW5ndGggPiAwO1xuICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSB0aGlzLnNlcmlhbGl6ZSgpO1xuICAgICAgdGhpcy5oYXNTZWxlY3RlZEZpbHRlcnMgPSBPYmplY3Qua2V5cyhzZXJpYWxpemVkKS5sZW5ndGggPiAwO1xuICAgICAgdGhpcy5maWx0ZXJzQ2hhbmdlZC5lbWl0KHNlcmlhbGl6ZWQpO1xuICAgIH0pO1xuICB9XG5cbiAgb25TZWxlY3RPcGVuZWRDaGFuZ2Uob3BlbmVkOiBib29sZWFuLCBzZWxlY3Q6IGFueSk6IHZvaWQge1xuICAgIGlmIChvcGVuZWQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBvbkRvY0Rvd24gPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhbmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNkay1vdmVybGF5LXBhbmUgLm1hdC1zZWxlY3QtcGFuZWwnKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZS50YXJnZXQgYXMgTm9kZSB8IG51bGw7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luRWwgPSAoc2VsZWN0Py5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkgfHwgbnVsbDtcbiAgICAgICAgICBjb25zdCBpbnNpZGVQYW5lbCA9ICEhKHBhbmVsICYmIHRhcmdldCAmJiBwYW5lbC5jb250YWlucyh0YXJnZXQpKTtcbiAgICAgICAgICBjb25zdCBpbnNpZGVPcmlnaW4gPSAhIShvcmlnaW5FbCAmJiB0YXJnZXQgJiYgb3JpZ2luRWwuY29udGFpbnModGFyZ2V0KSk7XG4gICAgICAgICAgaWYgKCFpbnNpZGVQYW5lbCAmJiAhaW5zaWRlT3JpZ2luKSB7XG4gICAgICAgICAgICBzZWxlY3QuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIG9uRG9jRG93biwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0T3V0c2lkZUNsZWFudXAuc2V0KHNlbGVjdCwgKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgb25Eb2NEb3duLCB0cnVlKSk7XG4gICAgICB9LCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY2xlYW51cCA9IHRoaXMuc2VsZWN0T3V0c2lkZUNsZWFudXAuZ2V0KHNlbGVjdCk7XG4gICAgICBpZiAoY2xlYW51cCkgY2xlYW51cCgpO1xuICAgICAgdGhpcy5zZWxlY3RPdXRzaWRlQ2xlYW51cC5kZWxldGUoc2VsZWN0KTtcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaChrZXk6IHN0cmluZywgdGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hUZXh0QnlLZXlba2V5XSA9ICh0ZXh0IHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgZmlsdGVyZWRPcHRpb25zKGl0ZW06IER5bmFtaWNGaWx0ZXJJdGVtKTogRHluYW1pY0ZpbHRlck9wdGlvbltdIHtcbiAgICBjb25zdCBvcHRpb25zID0gaXRlbT8ub3B0aW9ucyB8fCBbXTtcbiAgICBjb25zdCBxID0gKHRoaXMuc2VhcmNoVGV4dEJ5S2V5W2l0ZW0ua2V5XSB8fCAnJykudHJpbSgpO1xuICAgIGlmICghcSkgcmV0dXJuIG9wdGlvbnM7XG4gICAgcmV0dXJuIG9wdGlvbnMuZmlsdGVyKG9wdCA9PiB7XG4gICAgICBjb25zdCBuYW1lID0gKG9wdC5uYW1lID8/IG9wdC5sYWJlbCA/PyBTdHJpbmcob3B0LnZhbHVlID8/ICcnKSkudG9Mb3dlckNhc2UoKTtcbiAgICAgIHJldHVybiBuYW1lLmluY2x1ZGVzKHEpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0RGF0ZUdyb3VwKGtleTogc3RyaW5nKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldChrZXkpIGFzIEZvcm1Hcm91cDtcbiAgfVxuXG4gIGdldFNlbGVjdENvbmZpZyhpdGVtOiBEeW5hbWljRmlsdGVySXRlbSk6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogaXRlbS5rZXksXG4gICAgICBsYWJlbDogaXRlbS5sYWJlbCxcbiAgICAgIHBsYWNlaG9sZGVyOiBpdGVtLnBsYWNlaG9sZGVyLFxuICAgICAgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQsXG4gICAgICBtdWx0aXBsZTogaXRlbS5tdWx0aXBsZSxcbiAgICAgIHNlYXJjaGFibGU6IGl0ZW0uc2VhcmNoYWJsZSxcbiAgICAgIHNlbGVjdGVkVmFsdWU6IGl0ZW0uc2VsZWN0ZWRWYWx1ZSxcbiAgICAgIG9wdGlvbnM6IGl0ZW0ub3B0aW9ucyB8fCBbXVxuICAgIH07XG4gIH1cblxuICBhcHBseSgpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZXMgPSB0aGlzLnNlcmlhbGl6ZSgpO1xuICAgIHRoaXMuZmlsdGVyc0FwcGxpZWQuZW1pdChmaWx0ZXJWYWx1ZXMpO1xuICAgIHRoaXMub25BcHBseUZpbHRlckNsaWNrLmVtaXQoZmlsdGVyVmFsdWVzKTtcbiAgfVxuXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuZm9ybS5jb250cm9scykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY29uc3QgY3RybCA9IHRoaXMuZm9ybS5nZXQoa2V5KTtcbiAgICAgIGlmIChjdHJsIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgIGN0cmwuZ2V0KCdzdGFydCcpPy5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICBjdHJsLmdldCgnZW5kJyk/LnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuaW52b2tlRGF0ZVJhbmdlQ2hhbmdlKGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdHJsPy5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMucmVzZXRBY3Rpb24uZW1pdCgpO1xuICAgIHRoaXMub25SZXNldEZpbHRlckNsaWNrLmVtaXQoKTtcbiAgICBjb25zdCBzZXJpYWxpemVkID0gdGhpcy5zZXJpYWxpemUoKTtcbiAgICB0aGlzLmhhc1NlbGVjdGVkRmlsdGVycyA9IE9iamVjdC5rZXlzKHNlcmlhbGl6ZWQpLmxlbmd0aCA+IDA7XG4gICAgdGhpcy5maWx0ZXJzQ2hhbmdlZC5lbWl0KHNlcmlhbGl6ZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXJpYWxpemUoKTogRHluYW1pY0ZpbHRlclZhbHVlcyB7XG4gICAgY29uc3QgcmVzdWx0OiBEeW5hbWljRmlsdGVyVmFsdWVzID0ge307XG4gICAgKHRoaXMuY29uZmlnIHx8IFtdKS5mb3JFYWNoKGMgPT4ge1xuICAgICAgY29uc3QgY3RybCA9IHRoaXMuZm9ybS5nZXQoYy5rZXkpO1xuICAgICAgaWYgKCFjdHJsKSByZXR1cm47XG4gICAgICBsZXQgdmFsOiBhbnkgPSBjdHJsIGluc3RhbmNlb2YgRm9ybUdyb3VwID8gKGN0cmwgYXMgRm9ybUdyb3VwKS5nZXRSYXdWYWx1ZSgpIDogY3RybC52YWx1ZTtcbiAgICAgIGlmIChjLnR5cGUgPT09ICdkYXRlLXJhbmdlJykge1xuICAgICAgICBjb25zdCBzdGFydCA9IHZhbD8uc3RhcnQ7IGNvbnN0IGVuZCA9IHZhbD8uZW5kO1xuICAgICAgICBpZiAoc3RhcnQgfHwgZW5kKSByZXN1bHRbYy5rZXldID0geyBzdGFydCwgZW5kIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodmFsICE9PSB1bmRlZmluZWQgJiYgdmFsICE9PSBudWxsICYmIChBcnJheS5pc0FycmF5KHZhbCkgPyB2YWwubGVuZ3RoID4gMCA6IHZhbCAhPT0gJycpKSB7XG4gICAgICAgICAgcmVzdWx0W2Mua2V5XSA9IHZhbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVJbml0aWFsU2VsZWN0VmFsdWUoaXRlbTogRHluYW1pY0ZpbHRlckl0ZW0pOiBhbnkge1xuICAgIGlmICh0aGlzLm1vZGVsICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLm1vZGVsLCBpdGVtLmtleSkpIHtcbiAgICAgIHJldHVybiB0aGlzLm1vZGVsW2l0ZW0ua2V5XTtcbiAgICB9XG4gICAgaWYgKGl0ZW0uc2VsZWN0ZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gaXRlbS5zZWxlY3RlZFZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBjb2VyY2VUb1NpbmdsZVZhbHVlKHZhbHVlOiBhbnkpOiBhbnkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA/IHZhbHVlWzBdIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGdldEluaXRpYWxEYXRlUmFuZ2VWYWx1ZShpdGVtOiBEeW5hbWljRmlsdGVySXRlbSk6IHsgc3RhcnQ6IERhdGUgfCBudWxsOyBlbmQ6IERhdGUgfCBudWxsIH0ge1xuICAgIGNvbnN0IG1vZGVsVmFsdWUgPSB0aGlzLm1vZGVsPy5baXRlbS5rZXldO1xuICAgIGNvbnN0IHN0YXJ0U291cmNlID0gbW9kZWxWYWx1ZT8uc3RhcnQgPz8gaXRlbS5zZWxlY3RlZFN0YXJ0RGF0ZSA/PyBudWxsO1xuICAgIGNvbnN0IGVuZFNvdXJjZSA9IG1vZGVsVmFsdWU/LmVuZCA/PyBpdGVtLnNlbGVjdGVkRW5kRGF0ZSA/PyBudWxsO1xuICAgIHJldHVybiB7XG4gICAgICBzdGFydDogdGhpcy5ub3JtYWxpemVEYXRlVmFsdWUoc3RhcnRTb3VyY2UpLFxuICAgICAgZW5kOiB0aGlzLm5vcm1hbGl6ZURhdGVWYWx1ZShlbmRTb3VyY2UpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIG5vcm1hbGl6ZURhdGVWYWx1ZSh2YWx1ZTogYW55KTogRGF0ZSB8IG51bGwge1xuICAgIGlmICghdmFsdWUpIHJldHVybiBudWxsO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKHZhbHVlLmdldFRpbWUoKSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgY29uc3QgcGFyc2VkID0gbmV3IERhdGUodmFsdWUpO1xuICAgIHJldHVybiBpc05hTihwYXJzZWQuZ2V0VGltZSgpKSA/IG51bGwgOiBwYXJzZWQ7XG4gIH1cblxuICBwcml2YXRlIGludm9rZURhdGVSYW5nZUNoYW5nZShrZXk6IHN0cmluZywgZXZlbnQ/OiBNYXREYXRlcGlja2VySW5wdXRFdmVudDxEYXRlPiB8IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaXRlbSA9ICh0aGlzLmNvbmZpZyB8fCBbXSkuZmluZChjZmcgPT4gY2ZnLmtleSA9PT0ga2V5KTtcbiAgICBpZiAoIWl0ZW0/Lm9uRGF0ZUNoYW5nZSkgcmV0dXJuO1xuICAgIGNvbnN0IGRhdGVHcm91cCA9IHRoaXMuZ2V0RGF0ZUdyb3VwKGtleSk7XG4gICAgaWYgKCFkYXRlR3JvdXApIHJldHVybjtcbiAgICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IGRhdGVHcm91cC5nZXRSYXdWYWx1ZSgpIHx8IHt9O1xuICAgIGl0ZW0ub25EYXRlQ2hhbmdlKFxuICAgICAge1xuICAgICAgICBzdGFydDogdGhpcy5ub3JtYWxpemVEYXRlVmFsdWUoc3RhcnQpLFxuICAgICAgICBlbmQ6IHRoaXMubm9ybWFsaXplRGF0ZVZhbHVlKGVuZCksXG4gICAgICB9LFxuICAgICAgZXZlbnRcbiAgICApO1xuICB9XG5cbiAgLy8gTWF0IGRhdGUgcmFuZ2UgcGlja2VyIG92ZXJsYXkgcHJlc2V0IGhlbHBlcnNcbiAgYXBwbHlQcmVzZXRUb0dyb3VwKGtleTogc3RyaW5nLCBwcmVzZXRLZXk6ICd0b2RheScgfCAnbGFzdDdkYXlzJyB8ICdsYXN0MzBkYXlzJyB8ICdsYXN0OTBkYXlzJyB8ICd0aGlzbW9udGgnIHwgJ2xhc3Rtb250aCcpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRlR3JvdXAgPSB0aGlzLmdldERhdGVHcm91cChrZXkpO1xuICAgIGlmICghZGF0ZUdyb3VwKSByZXR1cm47XG4gICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSB0aGlzLmdldFByZXNldERhdGVzKHByZXNldEtleSk7XG4gICAgZGF0ZUdyb3VwLnBhdGNoVmFsdWUoeyBzdGFydCwgZW5kIH0pO1xuICAgIHRoaXMuZmlsdGVyc0NoYW5nZWQuZW1pdCh0aGlzLnNlcmlhbGl6ZSgpKTtcbiAgICB0aGlzLmludm9rZURhdGVSYW5nZUNoYW5nZShrZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcmVzZXREYXRlcyhwcmVzZXRLZXk6ICd0b2RheScgfCAnbGFzdDdkYXlzJyB8ICdsYXN0MzBkYXlzJyB8ICdsYXN0OTBkYXlzJyB8ICd0aGlzbW9udGgnIHwgJ2xhc3Rtb250aCcpOiB7IHN0YXJ0OiBEYXRlOyBlbmQ6IERhdGUgfSB7XG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IGNsYW1wVG9FbmRPZlRvZGF5ID0gKGQ6IERhdGUpID0+IHsgY29uc3QgbmQgPSBuZXcgRGF0ZShkKTsgbmQuc2V0SG91cnMoMjMsNTksNTksOTk5KTsgcmV0dXJuIG5kOyB9O1xuICAgIHN3aXRjaCAocHJlc2V0S2V5KSB7XG4gICAgICBjYXNlICd0b2RheSc6XG4gICAgICAgIHJldHVybiB7IHN0YXJ0OiB0b2RheSwgZW5kOiB0b2RheSB9O1xuICAgICAgY2FzZSAnbGFzdDdkYXlzJzoge1xuICAgICAgICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKCk7IHN0YXJ0LnNldERhdGUoc3RhcnQuZ2V0RGF0ZSgpIC0gNik7XG4gICAgICAgIHJldHVybiB7IHN0YXJ0LCBlbmQ6IHRvZGF5IH07XG4gICAgICB9XG4gICAgICBjYXNlICdsYXN0MzBkYXlzJzoge1xuICAgICAgICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKCk7IHN0YXJ0LnNldERhdGUoc3RhcnQuZ2V0RGF0ZSgpIC0gMjkpO1xuICAgICAgICByZXR1cm4geyBzdGFydCwgZW5kOiB0b2RheSB9O1xuICAgICAgfVxuICAgICAgY2FzZSAnbGFzdDkwZGF5cyc6IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSgpOyBzdGFydC5zZXREYXRlKHN0YXJ0LmdldERhdGUoKSAtIDg5KTtcbiAgICAgICAgcmV0dXJuIHsgc3RhcnQsIGVuZDogdG9kYXkgfTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3RoaXNtb250aCc6IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpLCB0b2RheS5nZXRNb250aCgpLCAxKTtcbiAgICAgICAgcmV0dXJuIHsgc3RhcnQsIGVuZDogdG9kYXkgfTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2xhc3Rtb250aCc6IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpLCB0b2RheS5nZXRNb250aCgpIC0gMSwgMSk7XG4gICAgICAgIGNvbnN0IGVuZCA9IG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksIHRvZGF5LmdldE1vbnRoKCksIDApO1xuICAgICAgICByZXR1cm4geyBzdGFydCwgZW5kOiBjbGFtcFRvRW5kT2ZUb2RheShlbmQpIH07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldERhdGVWYWxpZGF0aW9uRXJyb3Ioa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBkYXRlR3JvdXAgPSB0aGlzLmdldERhdGVHcm91cChrZXkpO1xuICAgIGlmICghZGF0ZUdyb3VwKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IHN0YXJ0Q3RybCA9IGRhdGVHcm91cC5jb250cm9sc1snc3RhcnQnXTtcbiAgICBjb25zdCBlbmRDdHJsID0gZGF0ZUdyb3VwLmNvbnRyb2xzWydlbmQnXTtcbiAgICBjb25zdCBzdGFydFZhbCA9IHN0YXJ0Q3RybD8udmFsdWU7XG4gICAgY29uc3QgZW5kVmFsID0gZW5kQ3RybD8udmFsdWU7XG4gICAgY29uc3Qgc3RhcnRQYXJzZUVyciA9IHN0YXJ0Q3RybD8uZXJyb3JzPy5bJ21hdERhdGVwaWNrZXJQYXJzZSddPy50ZXh0O1xuICAgIGNvbnN0IGVuZFBhcnNlRXJyID0gZW5kQ3RybD8uZXJyb3JzPy5bJ21hdERhdGVwaWNrZXJQYXJzZSddPy50ZXh0O1xuXG4gICAgaWYgKCFzdGFydFZhbCAmJiAhZW5kVmFsICYmICFzdGFydFBhcnNlRXJyICYmICFlbmRQYXJzZUVycikgcmV0dXJuIG51bGw7XG5cbiAgICBpZiAoc3RhcnRQYXJzZUVycikgcmV0dXJuIGBJbnZhbGlkIHN0YXJ0IGRhdGUgZm9ybWF0YDtcbiAgICBpZiAoZW5kUGFyc2VFcnIpIHJldHVybiBgSW52YWxpZCBlbmQgZGF0ZSBmb3JtYXRgO1xuXG4gICAgaWYgKHN0YXJ0VmFsICYmICFlbmRWYWwpIHJldHVybiBgUGxlYXNlIHNlbGVjdCBhbiBlbmQgZGF0ZWA7XG4gICAgaWYgKCFzdGFydFZhbCAmJiBlbmRWYWwpIHJldHVybiBgUGxlYXNlIHNlbGVjdCBhIHN0YXJ0IGRhdGVgO1xuXG4gICAgaWYgKGRhdGVHcm91cC5oYXNFcnJvcignbWF0U3RhcnREYXRlSW52YWxpZCcpKSByZXR1cm4gYFN0YXJ0IGRhdGUgbXVzdCBiZSBiZWZvcmUgZW5kIGRhdGVgO1xuICAgIGlmIChkYXRlR3JvdXAuaGFzRXJyb3IoJ21hdEVuZERhdGVJbnZhbGlkJykpIHJldHVybiBgRW5kIGRhdGUgbXVzdCBiZSBhZnRlciBzdGFydCBkYXRlYDtcblxuICAgIGlmIChkYXRlR3JvdXAuaW52YWxpZCkge1xuICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWc/LmZpbmQoYyA9PiBjLmtleSA9PT0ga2V5KTtcbiAgICAgIHJldHVybiBjb25maWcgPyBgJHtjb25maWcubGFiZWx9IGlzIGludmFsaWRgIDogJ0RhdGUgcmFuZ2UgaXMgaW52YWxpZCc7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBEeW5hbWljIERhdGUgUGlja2VyIEludGVncmF0aW9uIE1ldGhvZHMgcmVtb3ZlZCAoY29tcG9uZW50IG5vIGxvbmdlciB1c2VkKVxufVxuXG5cbiIsIjxkaXYgaWQ9XCJjcWEtdWktcm9vdFwiPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZpbHRlciBjcWEtbWItWzI4cHhdXCIgKm5nSWY9XCJzaG93RmlsdGVyUGFuZWxcIiBzdHlsZT1cImhlaWdodDogYXV0bztcIj5cbiAgICA8IS0tIEJvdHRvbSBMYXlvdXQ6IEN1cnJlbnQgZGVzaWduIHdpdGggc2VsZWN0b3JzIGluIGdyaWQgYW5kIGJ1dHRvbnMgYmVsb3cgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJ1dHRvbkxheW91dCA9PT0gJ2JvdHRvbSdcIj5cbiAgICAgIDxmb3JtIGNsYXNzPVwidHMtZm9ybSBjcWEtZ3JpZCBsZzpjcWEtZ3JpZC1jb2xzLTQgbWQ6Y3FhLWdyaWQtY29scy0yIGNxYS1nYXAtNFwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIihmYWxzZSlcIiBub3ZhbGlkYXRlPVwibm92YWxpZGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjIG9mIGNvbmZpZ1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYy5oaWRkZW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTIgY3FhLWZsZXgtc2hyaW5rLTAgZmlsdGVyLXNlbGVjdG9yLXdpZHRoXCI+XG4gICAgICAgICAgICAgIDwhLS0gU2VsZWN0IC0tPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYy50eXBlID09PSAnc2VsZWN0J1wiPlxuICAgICAgICAgICAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3QgW2Zvcm1dPVwiZm9ybVwiIFtjb25maWddPVwiZ2V0U2VsZWN0Q29uZmlnKGMpXCI+PC9jcWEtZHluYW1pYy1zZWxlY3Q+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgIDwhLS0gRGF0ZSBSYW5nZSAtLT4gXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjLnR5cGUgPT09ICdkYXRlLXJhbmdlJ1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWxhYmVsIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtdGV4dC1bMTRweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1ibG9jayBjcWEtbGVhZGluZy1bMS40XVwiPnt7XG4gICAgICAgICAgICAgICAgICBjLmxhYmVsIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZGF0ZS1jdXN0b21cIiBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlLXJhbmdlLWlucHV0IFtyYW5nZVBpY2tlcl09XCJwaWNrZXJcIiBbZm9ybUdyb3VwXT1cImdldERhdGVHcm91cChjLmtleSlcIiBbbWF4XT1cIm1heERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdFN0YXJ0RGF0ZSBmb3JtQ29udHJvbE5hbWU9XCJzdGFydFwiIFtwbGFjZWhvbGRlcl09XCJjLnBsYWNlaG9sZGVyIHx8ICdTdGFydCBkYXRlJ1wiIFttYXhdPVwibWF4RGF0ZVwiIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIiAoZm9jdXMpPVwicGlja2VyLm9wZW4oKVwiIChjbGljayk9XCJwaWNrZXIub3BlbigpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdEVuZERhdGUgZm9ybUNvbnRyb2xOYW1lPVwiZW5kXCIgW3BsYWNlaG9sZGVyXT1cImMucGxhY2Vob2xkZXIgfHwgJ0VuZCBkYXRlJ1wiIFttYXhdPVwibWF4RGF0ZVwiIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIiAoZm9jdXMpPVwicGlja2VyLm9wZW4oKVwiIChjbGljayk9XCJwaWNrZXIub3BlbigpXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvbWF0LWRhdGUtcmFuZ2UtaW5wdXQ+XG4gICAgICAgICAgICAgICAgICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyICNwaWNrZXIgKGRhdGVDaGFuZ2UpPVwib25EYXRlQ2hhbmdlKCRldmVudCwgYy5rZXkpXCJcbiAgICAgICAgICAgICAgICAgICAgW3BhbmVsQ2xhc3NdPVwiJ2N0Yy1kYXRlLXJhbmdlLXBhbmVsJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItYWN0aW9ucyBjbGFzcz1cImN0Yy1kYXRlLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3RjLWRhdGUtcHJlc2V0c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1tYi0yIGNxYS1mb250LW1lZGl1bVwiPlF1aWNrIFByZXNldHM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwcmVzZXQtYnRuIHRvZGF5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAndG9kYXknKTsgcGlja2VyLmNsb3NlKClcIj5Ub2RheTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInByZXNldC1idG4gbGFzdDdkYXlzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAnbGFzdDdkYXlzJyk7IHBpY2tlci5jbG9zZSgpXCI+TGFzdCA3IGRheXM8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwcmVzZXQtYnRuIGxhc3QzMGRheXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhcHBseVByZXNldFRvR3JvdXAoYy5rZXksICdsYXN0MzBkYXlzJyk7IHBpY2tlci5jbG9zZSgpXCI+TGFzdCAzMCBkYXlzPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicHJlc2V0LWJ0biBsYXN0OTBkYXlzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAnbGFzdDkwZGF5cycpOyBwaWNrZXIuY2xvc2UoKVwiPkxhc3QgOTAgZGF5czwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInByZXNldC1idG4gdGhpc21vbnRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAndGhpc21vbnRoJyk7IHBpY2tlci5jbG9zZSgpXCI+VGhpcyBtb250aDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInByZXNldC1idG4gbGFzdG1vbnRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAnbGFzdG1vbnRoJyk7IHBpY2tlci5jbG9zZSgpXCI+TGFzdCBtb250aDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mb250LW1lZGl1bSBjcWEtbWItMiBjcWEtbXQtWzEwcHhdIGNxYS13LWZ1bGxcIj5DdXN0b20gUmFuZ2U8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIiFjcWEtYmctWyMzZjUxYjVdICFjcWEtdGV4dC13aGl0ZSBjcWEtcC0yIGNxYS1mb250LW1lZGl1bSAhY3FhLW1iLTIgIWNxYS1tdC1bMTBweF0gY3FhLXctW2NhbGMoMTAwJS0zMnB4KV0gIWNxYS1hYnNvbHV0ZSBjcWEtYm90dG9tLVsycHhdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBtYXREYXRlcGlja2VyQXBwbHk+QXBwbHk8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZGF0ZXBpY2tlci1hY3Rpb25zPlxuICAgICAgICAgICAgICAgICAgPC9tYXQtZGF0ZS1yYW5nZS1waWNrZXI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJwaWNrZXIub3BlbigpXCIgY2xhc3M9XCJjcWEtY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01LjMzMzk4IDEuMzMyMDNWMy45OTg3XCIgc3Ryb2tlPVwiIzBBMEEwQVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjY2NiAxLjMzMjAzVjMuOTk4N1wiIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNjY2NyAyLjY2Nzk3SDMuMzMzMzNDMi41OTY5NSAyLjY2Nzk3IDIgMy4yNjQ5MiAyIDQuMDAxM1YxMy4zMzQ2QzIgMTQuMDcxIDIuNTk2OTUgMTQuNjY4IDMuMzMzMzMgMTQuNjY4SDEyLjY2NjdDMTMuNDAzIDE0LjY2OCAxNCAxNC4wNzEgMTQgMTMuMzM0NlY0LjAwMTNDMTQgMy4yNjQ5MiAxMy40MDMgMi42Njc5NyAxMi42NjY3IDIuNjY3OTdaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIgNi42Njc5N0gxNFwiIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8IS0tIFNwZWNpZmljIHZhbGlkYXRpb24gbWVzc2FnZXMgLS0+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImdldERhdGVWYWxpZGF0aW9uRXJyb3IoYy5rZXkpICYmICFwaWNrZXIub3BlbmVkXCI+XG4gICAgICAgICAgICAgICAgICB7eyBnZXREYXRlVmFsaWRhdGlvbkVycm9yKGMua2V5KSB9fVxuICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZm9ybT5cblxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1qdXN0aWZ5LWVuZCBjcWEtaXRlbXMtc3RyZXRjaCBjcWEtZ2FwLTIgY3FhLW10LTRcIj5cbiAgICAgICAgPGNxYS1idXR0b24gdmFyaWFudD1cImZpbGxlZFwiIChjbGlja2VkKT1cImFwcGx5KClcIiBbZGlzYWJsZWRdPVwiIWhhc1NlbGVjdGVkRmlsdGVyc1wiPkFwcGx5IEZpbHRlcjwvY3FhLWJ1dHRvbj5cbiAgICAgICAgPGNxYS1idXR0b24gdmFyaWFudD1cIm91dGxpbmVkXCIgKGNsaWNrZWQpPVwicmVzZXQoKVwiPlJlc2V0PC9jcWEtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIFJpZ2h0IExheW91dDogQnV0dG9ucyBvbiBsZWZ0bW9zdCBzaWRlLCBzZWxlY3RvcnMgb24gcmlnaHRtb3N0IHNpZGUgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJ1dHRvbkxheW91dCA9PT0gJ3JpZ2h0J1wiPlxuICAgICAgPGZvcm0gY2xhc3M9XCJ0cy1mb3JtIGNxYS1mbGV4IGNxYS1mbGV4LXdyYXAgY3FhLWl0ZW1zLWVuZCBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtNFwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIihmYWxzZSlcIiBub3ZhbGlkYXRlPVwibm92YWxpZGF0ZVwiIHN0eWxlPVwiaGVpZ2h0OiBhdXRvO1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLXN0cmV0Y2ggY3FhLWdhcC0yIGNxYS1mbGV4LXNocmluay0wIGNxYS1vcmRlci1maXJzdCBjcWEtbXItYXV0b1wiPlxuICAgICAgICAgIDxjcWEtYnV0dG9uIHZhcmlhbnQ9XCJmaWxsZWRcIiAoY2xpY2tlZCk9XCJhcHBseSgpXCIgW2Rpc2FibGVkXT1cIiFoYXNTZWxlY3RlZEZpbHRlcnNcIj5BcHBseSBGaWx0ZXI8L2NxYS1idXR0b24+XG4gICAgICAgICAgPGNxYS1idXR0b24gdmFyaWFudD1cIm91dGxpbmVkXCIgKGNsaWNrZWQpPVwicmVzZXQoKVwiPlJlc2V0PC9jcWEtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LXdyYXAgY3FhLWl0ZW1zLWVuZCBjcWEtZ2FwLTQgY3FhLWZsZXgtMSBjcWEtanVzdGlmeS1lbmQgY3FhLW9yZGVyLWxhc3QgY3FhLW1sLWF1dG9cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjIG9mIGNvbmZpZ1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYy5oaWRkZW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTIgY3FhLWZsZXgtc2hyaW5rLTAgZmlsdGVyLXNlbGVjdG9yLXdpZHRoXCI+XG4gICAgICAgICAgICAgIDwhLS0gU2VsZWN0IC0tPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYy50eXBlID09PSAnc2VsZWN0J1wiPlxuICAgICAgICAgICAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3QgW2Zvcm1dPVwiZm9ybVwiIFtjb25maWddPVwiZ2V0U2VsZWN0Q29uZmlnKGMpXCI+PC9jcWEtZHluYW1pYy1zZWxlY3Q+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgIDwhLS0gRGF0ZSBSYW5nZSAtLT4gXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjLnR5cGUgPT09ICdkYXRlLXJhbmdlJ1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWxhYmVsIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtdGV4dC1bMTRweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1ibG9jayBjcWEtbGVhZGluZy1bMS40XVwiPnt7XG4gICAgICAgICAgICAgICAgICBjLmxhYmVsIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZGF0ZS1jdXN0b21cIiBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlLXJhbmdlLWlucHV0IFtyYW5nZVBpY2tlcl09XCJwaWNrZXJcIiBbZm9ybUdyb3VwXT1cImdldERhdGVHcm91cChjLmtleSlcIiBbbWF4XT1cIm1heERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdFN0YXJ0RGF0ZSBmb3JtQ29udHJvbE5hbWU9XCJzdGFydFwiIFtwbGFjZWhvbGRlcl09XCJjLnBsYWNlaG9sZGVyIHx8ICdTdGFydCBkYXRlJ1wiIFttYXhdPVwibWF4RGF0ZVwiIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIiAoZm9jdXMpPVwicGlja2VyLm9wZW4oKVwiIChjbGljayk9XCJwaWNrZXIub3BlbigpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdEVuZERhdGUgZm9ybUNvbnRyb2xOYW1lPVwiZW5kXCIgW3BsYWNlaG9sZGVyXT1cImMucGxhY2Vob2xkZXIgfHwgJ0VuZCBkYXRlJ1wiIFttYXhdPVwibWF4RGF0ZVwiIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIiAoZm9jdXMpPVwicGlja2VyLm9wZW4oKVwiIChjbGljayk9XCJwaWNrZXIub3BlbigpXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvbWF0LWRhdGUtcmFuZ2UtaW5wdXQ+XG4gICAgICAgICAgICAgICAgICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyICNwaWNrZXIgKGRhdGVDaGFuZ2UpPVwib25EYXRlQ2hhbmdlKCRldmVudCwgYy5rZXkpXCJcbiAgICAgICAgICAgICAgICAgICAgW3BhbmVsQ2xhc3NdPVwiJ2N0Yy1kYXRlLXJhbmdlLXBhbmVsJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItYWN0aW9ucyBjbGFzcz1cImN0Yy1kYXRlLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3RjLWRhdGUtcHJlc2V0c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1tYi0yIGNxYS1mb250LW1lZGl1bVwiPlF1aWNrIFByZXNldHM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwcmVzZXQtYnRuIHRvZGF5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAndG9kYXknKTsgcGlja2VyLmNsb3NlKClcIj5Ub2RheTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInByZXNldC1idG4gbGFzdDdkYXlzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAnbGFzdDdkYXlzJyk7IHBpY2tlci5jbG9zZSgpXCI+TGFzdCA3IGRheXM8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwcmVzZXQtYnRuIGxhc3QzMGRheXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhcHBseVByZXNldFRvR3JvdXAoYy5rZXksICdsYXN0MzBkYXlzJyk7IHBpY2tlci5jbG9zZSgpXCI+TGFzdCAzMCBkYXlzPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicHJlc2V0LWJ0biBsYXN0OTBkYXlzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAnbGFzdDkwZGF5cycpOyBwaWNrZXIuY2xvc2UoKVwiPkxhc3QgOTAgZGF5czwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInByZXNldC1idG4gdGhpc21vbnRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAndGhpc21vbnRoJyk7IHBpY2tlci5jbG9zZSgpXCI+VGhpcyBtb250aDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInByZXNldC1idG4gbGFzdG1vbnRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAnbGFzdG1vbnRoJyk7IHBpY2tlci5jbG9zZSgpXCI+TGFzdCBtb250aDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mb250LW1lZGl1bSBjcWEtbWItMiBjcWEtbXQtWzEwcHhdIGNxYS13LWZ1bGxcIj5DdXN0b20gUmFuZ2U8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIiFjcWEtYmctWyMzZjUxYjVdICFjcWEtdGV4dC13aGl0ZSBjcWEtcC0yIGNxYS1mb250LW1lZGl1bSAhY3FhLW1iLTIgIWNxYS1tdC1bMTBweF0gY3FhLXctW2NhbGMoMTAwJS0zMnB4KV0gIWNxYS1hYnNvbHV0ZSBjcWEtYm90dG9tLVsycHhdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBtYXREYXRlcGlja2VyQXBwbHk+QXBwbHk8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZGF0ZXBpY2tlci1hY3Rpb25zPlxuICAgICAgICAgICAgICAgICAgPC9tYXQtZGF0ZS1yYW5nZS1waWNrZXI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJwaWNrZXIub3BlbigpXCIgY2xhc3M9XCJjcWEtY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01LjMzMzk4IDEuMzMyMDNWMy45OTg3XCIgc3Ryb2tlPVwiIzBBMEEwQVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjY2NiAxLjMzMjAzVjMuOTk4N1wiIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNjY2NyAyLjY2Nzk3SDMuMzMzMzNDMi41OTY5NSAyLjY2Nzk3IDIgMy4yNjQ5MiAyIDQuMDAxM1YxMy4zMzQ2QzIgMTQuMDcxIDIuNTk2OTUgMTQuNjY4IDMuMzMzMzMgMTQuNjY4SDEyLjY2NjdDMTMuNDAzIDE0LjY2OCAxNCAxNC4wNzEgMTQgMTMuMzM0NlY0LjAwMTNDMTQgMy4yNjQ5MiAxMy40MDMgMi42Njc5NyAxMi42NjY3IDIuNjY3OTdaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIgNi42Njc5N0gxNFwiIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8IS0tIFNwZWNpZmljIHZhbGlkYXRpb24gbWVzc2FnZXMgLS0+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImdldERhdGVWYWxpZGF0aW9uRXJyb3IoYy5rZXkpICYmICFwaWNrZXIub3BlbmVkXCI+XG4gICAgICAgICAgICAgICAgICB7eyBnZXREYXRlVmFsaWRhdGlvbkVycm9yKGMua2V5KSB9fVxuICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIExlZnQgTGF5b3V0OiBTZWxlY3RvcnMgb24gbGVmdG1vc3Qgc2lkZSwgYnV0dG9ucyBvbiByaWdodG1vc3Qgc2lkZSAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnV0dG9uTGF5b3V0ID09PSAnbGVmdCdcIj5cbiAgICAgIDxmb3JtIGNsYXNzPVwidHMtZm9ybSBjcWEtZmxleCBjcWEtZmxleC13cmFwIGNxYS1pdGVtcy1lbmQgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTRcIiBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIoZmFsc2UpXCIgbm92YWxpZGF0ZT1cIm5vdmFsaWRhdGVcIiBzdHlsZT1cImhlaWdodDogYXV0bztcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LXdyYXAgY3FhLWl0ZW1zLWVuZCBjcWEtZ2FwLTQgY3FhLWZsZXgtMSBjcWEtb3JkZXItZmlyc3QgY3FhLW1yLWF1dG9cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjIG9mIGNvbmZpZ1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYy5oaWRkZW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTIgY3FhLWZsZXgtc2hyaW5rLTAgZmlsdGVyLXNlbGVjdG9yLXdpZHRoXCI+XG4gICAgICAgICAgICAgIDwhLS0gU2VsZWN0IC0tPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYy50eXBlID09PSAnc2VsZWN0J1wiPlxuICAgICAgICAgICAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3QgW2Zvcm1dPVwiZm9ybVwiIFtjb25maWddPVwiZ2V0U2VsZWN0Q29uZmlnKGMpXCI+PC9jcWEtZHluYW1pYy1zZWxlY3Q+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgIDwhLS0gRGF0ZSBSYW5nZSAtLT4gXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjLnR5cGUgPT09ICdkYXRlLXJhbmdlJ1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWxhYmVsIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtdGV4dC1bMTRweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1ibG9jayBjcWEtbGVhZGluZy1bMS40XVwiPnt7XG4gICAgICAgICAgICAgICAgICBjLmxhYmVsIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZGF0ZS1jdXN0b21cIiBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlLXJhbmdlLWlucHV0IFtyYW5nZVBpY2tlcl09XCJwaWNrZXJcIiBbZm9ybUdyb3VwXT1cImdldERhdGVHcm91cChjLmtleSlcIiBbbWF4XT1cIm1heERhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdFN0YXJ0RGF0ZSBmb3JtQ29udHJvbE5hbWU9XCJzdGFydFwiIFtwbGFjZWhvbGRlcl09XCJjLnBsYWNlaG9sZGVyIHx8ICdTdGFydCBkYXRlJ1wiIFttYXhdPVwibWF4RGF0ZVwiIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIiAoZm9jdXMpPVwicGlja2VyLm9wZW4oKVwiIChjbGljayk9XCJwaWNrZXIub3BlbigpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IG1hdEVuZERhdGUgZm9ybUNvbnRyb2xOYW1lPVwiZW5kXCIgW3BsYWNlaG9sZGVyXT1cImMucGxhY2Vob2xkZXIgfHwgJ0VuZCBkYXRlJ1wiIFttYXhdPVwibWF4RGF0ZVwiIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIiAoZm9jdXMpPVwicGlja2VyLm9wZW4oKVwiIChjbGljayk9XCJwaWNrZXIub3BlbigpXCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvbWF0LWRhdGUtcmFuZ2UtaW5wdXQ+XG4gICAgICAgICAgICAgICAgICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyICNwaWNrZXIgKGRhdGVDaGFuZ2UpPVwib25EYXRlQ2hhbmdlKCRldmVudCwgYy5rZXkpXCJcbiAgICAgICAgICAgICAgICAgICAgW3BhbmVsQ2xhc3NdPVwiJ2N0Yy1kYXRlLXJhbmdlLXBhbmVsJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItYWN0aW9ucyBjbGFzcz1cImN0Yy1kYXRlLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3RjLWRhdGUtcHJlc2V0c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1tYi0yIGNxYS1mb250LW1lZGl1bVwiPlF1aWNrIFByZXNldHM8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwcmVzZXQtYnRuIHRvZGF5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAndG9kYXknKTsgcGlja2VyLmNsb3NlKClcIj5Ub2RheTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInByZXNldC1idG4gbGFzdDdkYXlzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAnbGFzdDdkYXlzJyk7IHBpY2tlci5jbG9zZSgpXCI+TGFzdCA3IGRheXM8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwcmVzZXQtYnRuIGxhc3QzMGRheXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhcHBseVByZXNldFRvR3JvdXAoYy5rZXksICdsYXN0MzBkYXlzJyk7IHBpY2tlci5jbG9zZSgpXCI+TGFzdCAzMCBkYXlzPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicHJlc2V0LWJ0biBsYXN0OTBkYXlzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAnbGFzdDkwZGF5cycpOyBwaWNrZXIuY2xvc2UoKVwiPkxhc3QgOTAgZGF5czwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInByZXNldC1idG4gdGhpc21vbnRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAndGhpc21vbnRoJyk7IHBpY2tlci5jbG9zZSgpXCI+VGhpcyBtb250aDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInByZXNldC1idG4gbGFzdG1vbnRoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAnbGFzdG1vbnRoJyk7IHBpY2tlci5jbG9zZSgpXCI+TGFzdCBtb250aDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mb250LW1lZGl1bSBjcWEtbWItMiBjcWEtbXQtWzEwcHhdIGNxYS13LWZ1bGxcIj5DdXN0b20gUmFuZ2U8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIiFjcWEtYmctWyMzZjUxYjVdICFjcWEtdGV4dC13aGl0ZSBjcWEtcC0yIGNxYS1mb250LW1lZGl1bSAhY3FhLW1iLTIgIWNxYS1tdC1bMTBweF0gY3FhLXctW2NhbGMoMTAwJS0zMnB4KV0gIWNxYS1hYnNvbHV0ZSBjcWEtYm90dG9tLVsycHhdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBtYXREYXRlcGlja2VyQXBwbHk+QXBwbHk8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZGF0ZXBpY2tlci1hY3Rpb25zPlxuICAgICAgICAgICAgICAgICAgPC9tYXQtZGF0ZS1yYW5nZS1waWNrZXI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJwaWNrZXIub3BlbigpXCIgY2xhc3M9XCJjcWEtY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01LjMzMzk4IDEuMzMyMDNWMy45OTg3XCIgc3Ryb2tlPVwiIzBBMEEwQVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjY2NiAxLjMzMjAzVjMuOTk4N1wiIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNjY2NyAyLjY2Nzk3SDMuMzMzMzNDMi41OTY5NSAyLjY2Nzk3IDIgMy4yNjQ5MiAyIDQuMDAxM1YxMy4zMzQ2QzIgMTQuMDcxIDIuNTk2OTUgMTQuNjY4IDMuMzMzMzMgMTQuNjY4SDEyLjY2NjdDMTMuNDAzIDE0LjY2OCAxNCAxNC4wNzEgMTQgMTMuMzM0NlY0LjAwMTNDMTQgMy4yNjQ5MiAxMy40MDMgMi42Njc5NyAxMi42NjY3IDIuNjY3OTdaXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIgNi42Njc5N0gxNFwiIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICA8IS0tIFNwZWNpZmljIHZhbGlkYXRpb24gbWVzc2FnZXMgLS0+XG4gICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImdldERhdGVWYWxpZGF0aW9uRXJyb3IoYy5rZXkpICYmICFwaWNrZXIub3BlbmVkXCI+XG4gICAgICAgICAgICAgICAgICB7eyBnZXREYXRlVmFsaWRhdGlvbkVycm9yKGMua2V5KSB9fVxuICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtc3RyZXRjaCBjcWEtZ2FwLTIgY3FhLWZsZXgtc2hyaW5rLTAgY3FhLW9yZGVyLWxhc3QgY3FhLW1sLWF1dG9cIj5cbiAgICAgICAgICA8Y3FhLWJ1dHRvbiB2YXJpYW50PVwiZmlsbGVkXCIgKGNsaWNrZWQpPVwiYXBwbHkoKVwiIFtkaXNhYmxlZF09XCIhaGFzU2VsZWN0ZWRGaWx0ZXJzXCI+QXBwbHkgRmlsdGVyPC9jcWEtYnV0dG9uPlxuICAgICAgICAgIDxjcWEtYnV0dG9uIHZhcmlhbnQ9XCJvdXRsaW5lZFwiIChjbGlja2VkKT1cInJlc2V0KClcIj5SZXNldDwvY3FhLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+Il19
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9maWx0ZXJzL2R5bmFtaWMtZmlsdGVyL2R5bmFtaWMtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmlsdGVycy9keW5hbWljLWZpbHRlci9keW5hbWljLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUMxSCxPQUFPLEVBQWUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUEwQ3JFLE1BQU0sT0FBTyxzQkFBc0I7SUFpQmpDLFlBQTZCLEVBQWU7UUFBZixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBaEJuQyxXQUFNLEdBQXdCLEVBQUUsQ0FBQztRQUNqQyxVQUFLLEdBQXdCLEVBQUUsQ0FBQztRQUNoQyxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUNoQyxpQkFBWSxHQUFnQyxRQUFRLENBQUM7UUFDcEQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUN6RCxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBQ3pELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN2Qyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUM3RCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXhELFNBQUksR0FBYyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQyxZQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNyQixvQkFBZSxHQUEyQixFQUFFLENBQUM7UUFD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bUIsQ0FBQztZQUFFLE9BQU8sbUNBQW1DLENBQUM7UUFFeEYsSUFBSSxTQUFTLENBQUMsT0FBTyxFQUFFO1lBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNyRCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDO1NBQ3hFO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOzttSEFyUlUsc0JBQXNCO3VHQUF0QixzQkFBc0IsZ1lDM0NuQyx3aGpCQW9QTTsyRkR6TU8sc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNO2tHQUd0QyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL2R5bmFtaWMtc2VsZWN0L2R5bmFtaWMtc2VsZWN0LWZpZWxkLmNvbXBvbmVudCc7XG5cbnR5cGUgRmlsdGVyVHlwZSA9ICdzZWxlY3QnIHwgJ2RhdGUtcmFuZ2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNGaWx0ZXJPcHRpb24ge1xuICBpZD86IG51bWJlciB8IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgdmFsdWU/OiBhbnk7XG4gIGxhYmVsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNGaWx0ZXJJdGVtIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHR5cGU6IEZpbHRlclR5cGU7XG4gIGtleTogc3RyaW5nO1xuICBvcHRpb25zPzogRHluYW1pY0ZpbHRlck9wdGlvbltdO1xuICBtdWx0aXBsZT86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaGlkZGVuPzogYm9vbGVhbjtcbiAgc2VhcmNoYWJsZT86IGJvb2xlYW47XG4gIG9wdGlvblN0eWxlPzogJ2NoZWNrbWFyaycgfCAnY2hlY2tib3gnO1xuICBzaG93U2VsZWN0QWxsPzogYm9vbGVhbjtcbiAgc2VsZWN0QWxsTGFiZWw/OiBzdHJpbmc7XG4gIHNlbGVjdGVkVmFsdWU/OiBhbnkgfCBhbnlbXTtcbiAgc2VsZWN0ZWRTdGFydERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICBzZWxlY3RlZEVuZERhdGU/OiBEYXRlIHwgc3RyaW5nO1xuICBvbkRhdGVDaGFuZ2U/OiAodmFsdWU6IHsgc3RhcnQ6IERhdGUgfCBudWxsOyBlbmQ6IERhdGUgfCBudWxsIH0sIGV2ZW50PzogTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQ8RGF0ZT4gfCBFdmVudCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRmlsdGVyVmFsdWVzIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcWEtZHluYW1pYy1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgY29uZmlnOiBEeW5hbWljRmlsdGVySXRlbVtdID0gW107XG4gIEBJbnB1dCgpIG1vZGVsOiBEeW5hbWljRmlsdGVyVmFsdWVzID0ge307XG4gIEBJbnB1dCgpIHNob3dGaWx0ZXJQYW5lbDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGJ1dHRvbkxheW91dDogJ2xlZnQnIHwgJ3JpZ2h0JyB8ICdib3R0b20nID0gJ2JvdHRvbSc7XG4gIEBPdXRwdXQoKSBmaWx0ZXJzQXBwbGllZCA9IG5ldyBFdmVudEVtaXR0ZXI8RHluYW1pY0ZpbHRlclZhbHVlcz4oKTtcbiAgQE91dHB1dCgpIGZpbHRlcnNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRmlsdGVyVmFsdWVzPigpO1xuICBAT3V0cHV0KCkgcmVzZXRBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBvbkFwcGx5RmlsdGVyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPER5bmFtaWNGaWx0ZXJWYWx1ZXM+KCk7XG4gIEBPdXRwdXQoKSBvblJlc2V0RmlsdGVyQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgZm9ybTogRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7fSk7XG4gIG1heERhdGUgPSBuZXcgRGF0ZSgpO1xuICBzZWFyY2hUZXh0QnlLZXk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgcHJpdmF0ZSBzZWxlY3RPdXRzaWRlQ2xlYW51cCA9IG5ldyBNYXA8YW55LCAoKSA9PiB2b2lkPigpO1xuICBoYXNTZWxlY3RlZEZpbHRlcnMgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcikge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2NvbmZpZyddIHx8IGNoYW5nZXNbJ21vZGVsJ10pIHtcbiAgICAgIHRoaXMuYnVpbGRGb3JtKCk7XG4gICAgfVxuICB9XG5cbiAgb25EYXRlQ2hhbmdlKGV2ZW50OiBNYXREYXRlcGlja2VySW5wdXRFdmVudDxEYXRlPiB8IEV2ZW50LCBrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaW52b2tlRGF0ZVJhbmdlQ2hhbmdlKGtleSwgZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEZvcm0oKTogdm9pZCB7XG4gICAgY29uc3QgY3RybHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICAodGhpcy5jb25maWcgfHwgW10pLmZvckVhY2goYyA9PiB7XG4gICAgICBpZiAoYy5oaWRkZW4pIHJldHVybjtcbiAgICAgIGlmIChjLnR5cGUgPT09ICdkYXRlLXJhbmdlJykge1xuICAgICAgICBjb25zdCBpbml0aWFsUmFuZ2UgPSB0aGlzLmdldEluaXRpYWxEYXRlUmFuZ2VWYWx1ZShjKTtcbiAgICAgICAgY3RybHNbYy5rZXldID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgc3RhcnQ6IG5ldyBGb3JtQ29udHJvbChpbml0aWFsUmFuZ2Uuc3RhcnQpLFxuICAgICAgICAgIGVuZDogbmV3IEZvcm1Db250cm9sKGluaXRpYWxSYW5nZS5lbmQpLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGluaXRpYWwgPSB0aGlzLnJlc29sdmVJbml0aWFsU2VsZWN0VmFsdWUoYyk7XG4gICAgICAgIGlmIChjLm11bHRpcGxlKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBBcnJheS5pc0FycmF5KGluaXRpYWwpID8gaW5pdGlhbCA6IChpbml0aWFsICE9IG51bGwgPyBbaW5pdGlhbF0gOiBbXSk7XG4gICAgICAgICAgY3RybHNbYy5rZXldID0gbmV3IEZvcm1Db250cm9sKHZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjdHJsc1tjLmtleV0gPSBuZXcgRm9ybUNvbnRyb2wodGhpcy5jb2VyY2VUb1NpbmdsZVZhbHVlKGluaXRpYWwpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoY3RybHMpO1xuICAgIC8vIGluaXRpYWxpemUgYXBwbHkgYnV0dG9uIHN0YXRlIGJhc2VkIG9uIGluaXRpYWwgdmFsdWVzXG4gICAgdGhpcy5oYXNTZWxlY3RlZEZpbHRlcnMgPSBPYmplY3Qua2V5cyh0aGlzLnNlcmlhbGl6ZSgpKS5sZW5ndGggPiAwO1xuICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IHNlcmlhbGl6ZWQgPSB0aGlzLnNlcmlhbGl6ZSgpO1xuICAgICAgdGhpcy5oYXNTZWxlY3RlZEZpbHRlcnMgPSBPYmplY3Qua2V5cyhzZXJpYWxpemVkKS5sZW5ndGggPiAwO1xuICAgICAgdGhpcy5maWx0ZXJzQ2hhbmdlZC5lbWl0KHNlcmlhbGl6ZWQpO1xuICAgIH0pO1xuICB9XG5cbiAgb25TZWxlY3RPcGVuZWRDaGFuZ2Uob3BlbmVkOiBib29sZWFuLCBzZWxlY3Q6IGFueSk6IHZvaWQge1xuICAgIGlmIChvcGVuZWQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBvbkRvY0Rvd24gPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHBhbmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNkay1vdmVybGF5LXBhbmUgLm1hdC1zZWxlY3QtcGFuZWwnKSBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZS50YXJnZXQgYXMgTm9kZSB8IG51bGw7XG4gICAgICAgICAgY29uc3Qgb3JpZ2luRWwgPSAoc2VsZWN0Py5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkgfHwgbnVsbDtcbiAgICAgICAgICBjb25zdCBpbnNpZGVQYW5lbCA9ICEhKHBhbmVsICYmIHRhcmdldCAmJiBwYW5lbC5jb250YWlucyh0YXJnZXQpKTtcbiAgICAgICAgICBjb25zdCBpbnNpZGVPcmlnaW4gPSAhIShvcmlnaW5FbCAmJiB0YXJnZXQgJiYgb3JpZ2luRWwuY29udGFpbnModGFyZ2V0KSk7XG4gICAgICAgICAgaWYgKCFpbnNpZGVQYW5lbCAmJiAhaW5zaWRlT3JpZ2luKSB7XG4gICAgICAgICAgICBzZWxlY3QuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIG9uRG9jRG93biwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuc2VsZWN0T3V0c2lkZUNsZWFudXAuc2V0KHNlbGVjdCwgKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgb25Eb2NEb3duLCB0cnVlKSk7XG4gICAgICB9LCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY2xlYW51cCA9IHRoaXMuc2VsZWN0T3V0c2lkZUNsZWFudXAuZ2V0KHNlbGVjdCk7XG4gICAgICBpZiAoY2xlYW51cCkgY2xlYW51cCgpO1xuICAgICAgdGhpcy5zZWxlY3RPdXRzaWRlQ2xlYW51cC5kZWxldGUoc2VsZWN0KTtcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaChrZXk6IHN0cmluZywgdGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hUZXh0QnlLZXlba2V5XSA9ICh0ZXh0IHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICB9XG5cbiAgZmlsdGVyZWRPcHRpb25zKGl0ZW06IER5bmFtaWNGaWx0ZXJJdGVtKTogRHluYW1pY0ZpbHRlck9wdGlvbltdIHtcbiAgICBjb25zdCBvcHRpb25zID0gaXRlbT8ub3B0aW9ucyB8fCBbXTtcbiAgICBjb25zdCBxID0gKHRoaXMuc2VhcmNoVGV4dEJ5S2V5W2l0ZW0ua2V5XSB8fCAnJykudHJpbSgpO1xuICAgIGlmICghcSkgcmV0dXJuIG9wdGlvbnM7XG4gICAgcmV0dXJuIG9wdGlvbnMuZmlsdGVyKG9wdCA9PiB7XG4gICAgICBjb25zdCBuYW1lID0gKG9wdC5uYW1lID8/IG9wdC5sYWJlbCA/PyBTdHJpbmcob3B0LnZhbHVlID8/ICcnKSkudG9Mb3dlckNhc2UoKTtcbiAgICAgIHJldHVybiBuYW1lLmluY2x1ZGVzKHEpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0RGF0ZUdyb3VwKGtleTogc3RyaW5nKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldChrZXkpIGFzIEZvcm1Hcm91cDtcbiAgfVxuXG4gIGdldFNlbGVjdENvbmZpZyhpdGVtOiBEeW5hbWljRmlsdGVySXRlbSk6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogaXRlbS5rZXksXG4gICAgICBsYWJlbDogaXRlbS5sYWJlbCxcbiAgICAgIHBsYWNlaG9sZGVyOiBpdGVtLnBsYWNlaG9sZGVyLFxuICAgICAgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQsXG4gICAgICBtdWx0aXBsZTogaXRlbS5tdWx0aXBsZSxcbiAgICAgIHNlYXJjaGFibGU6IGl0ZW0uc2VhcmNoYWJsZSxcbiAgICAgIG9wdGlvblN0eWxlOiBpdGVtLm9wdGlvblN0eWxlLFxuICAgICAgc2hvd1NlbGVjdEFsbDogaXRlbS5zaG93U2VsZWN0QWxsLFxuICAgICAgc2VsZWN0QWxsTGFiZWw6IGl0ZW0uc2VsZWN0QWxsTGFiZWwsXG4gICAgICBzZWxlY3RlZFZhbHVlOiBpdGVtLnNlbGVjdGVkVmFsdWUsXG4gICAgICBvcHRpb25zOiBpdGVtLm9wdGlvbnMgfHwgW11cbiAgICB9O1xuICB9XG5cbiAgYXBwbHkoKTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyVmFsdWVzID0gdGhpcy5zZXJpYWxpemUoKTtcbiAgICB0aGlzLmZpbHRlcnNBcHBsaWVkLmVtaXQoZmlsdGVyVmFsdWVzKTtcbiAgICB0aGlzLm9uQXBwbHlGaWx0ZXJDbGljay5lbWl0KGZpbHRlclZhbHVlcyk7XG4gIH1cblxuICByZXNldCgpOiB2b2lkIHtcbiAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm0uY29udHJvbHMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGNvbnN0IGN0cmwgPSB0aGlzLmZvcm0uZ2V0KGtleSk7XG4gICAgICBpZiAoY3RybCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICBjdHJsLmdldCgnc3RhcnQnKT8uc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgICAgY3RybC5nZXQoJ2VuZCcpPy5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICB0aGlzLmludm9rZURhdGVSYW5nZUNoYW5nZShrZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3RybD8uc2V0VmFsdWUodW5kZWZpbmVkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnJlc2V0QWN0aW9uLmVtaXQoKTtcbiAgICB0aGlzLm9uUmVzZXRGaWx0ZXJDbGljay5lbWl0KCk7XG4gICAgY29uc3Qgc2VyaWFsaXplZCA9IHRoaXMuc2VyaWFsaXplKCk7XG4gICAgdGhpcy5oYXNTZWxlY3RlZEZpbHRlcnMgPSBPYmplY3Qua2V5cyhzZXJpYWxpemVkKS5sZW5ndGggPiAwO1xuICAgIHRoaXMuZmlsdGVyc0NoYW5nZWQuZW1pdChzZXJpYWxpemVkKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VyaWFsaXplKCk6IER5bmFtaWNGaWx0ZXJWYWx1ZXMge1xuICAgIGNvbnN0IHJlc3VsdDogRHluYW1pY0ZpbHRlclZhbHVlcyA9IHt9O1xuICAgICh0aGlzLmNvbmZpZyB8fCBbXSkuZm9yRWFjaChjID0+IHtcbiAgICAgIGNvbnN0IGN0cmwgPSB0aGlzLmZvcm0uZ2V0KGMua2V5KTtcbiAgICAgIGlmICghY3RybCkgcmV0dXJuO1xuICAgICAgbGV0IHZhbDogYW55ID0gY3RybCBpbnN0YW5jZW9mIEZvcm1Hcm91cCA/IChjdHJsIGFzIEZvcm1Hcm91cCkuZ2V0UmF3VmFsdWUoKSA6IGN0cmwudmFsdWU7XG4gICAgICBpZiAoYy50eXBlID09PSAnZGF0ZS1yYW5nZScpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSB2YWw/LnN0YXJ0OyBjb25zdCBlbmQgPSB2YWw/LmVuZDtcbiAgICAgICAgaWYgKHN0YXJ0IHx8IGVuZCkgcmVzdWx0W2Mua2V5XSA9IHsgc3RhcnQsIGVuZCB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbCAmJiAoQXJyYXkuaXNBcnJheSh2YWwpID8gdmFsLmxlbmd0aCA+IDAgOiB2YWwgIT09ICcnKSkge1xuICAgICAgICAgIHJlc3VsdFtjLmtleV0gPSB2YWw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlSW5pdGlhbFNlbGVjdFZhbHVlKGl0ZW06IER5bmFtaWNGaWx0ZXJJdGVtKTogYW55IHtcbiAgICBpZiAodGhpcy5tb2RlbCAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5tb2RlbCwgaXRlbS5rZXkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5tb2RlbFtpdGVtLmtleV07XG4gICAgfVxuICAgIGlmIChpdGVtLnNlbGVjdGVkVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGl0ZW0uc2VsZWN0ZWRWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgY29lcmNlVG9TaW5nbGVWYWx1ZSh2YWx1ZTogYW55KTogYW55IHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPyB2YWx1ZVswXSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbml0aWFsRGF0ZVJhbmdlVmFsdWUoaXRlbTogRHluYW1pY0ZpbHRlckl0ZW0pOiB7IHN0YXJ0OiBEYXRlIHwgbnVsbDsgZW5kOiBEYXRlIHwgbnVsbCB9IHtcbiAgICBjb25zdCBtb2RlbFZhbHVlID0gdGhpcy5tb2RlbD8uW2l0ZW0ua2V5XTtcbiAgICBjb25zdCBzdGFydFNvdXJjZSA9IG1vZGVsVmFsdWU/LnN0YXJ0ID8/IGl0ZW0uc2VsZWN0ZWRTdGFydERhdGUgPz8gbnVsbDtcbiAgICBjb25zdCBlbmRTb3VyY2UgPSBtb2RlbFZhbHVlPy5lbmQgPz8gaXRlbS5zZWxlY3RlZEVuZERhdGUgPz8gbnVsbDtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnQ6IHRoaXMubm9ybWFsaXplRGF0ZVZhbHVlKHN0YXJ0U291cmNlKSxcbiAgICAgIGVuZDogdGhpcy5ub3JtYWxpemVEYXRlVmFsdWUoZW5kU291cmNlKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVEYXRlVmFsdWUodmFsdWU6IGFueSk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gbnVsbDtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTih2YWx1ZS5nZXRUaW1lKCkpKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIGNvbnN0IHBhcnNlZCA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICByZXR1cm4gaXNOYU4ocGFyc2VkLmdldFRpbWUoKSkgPyBudWxsIDogcGFyc2VkO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnZva2VEYXRlUmFuZ2VDaGFuZ2Uoa2V5OiBzdHJpbmcsIGV2ZW50PzogTWF0RGF0ZXBpY2tlcklucHV0RXZlbnQ8RGF0ZT4gfCBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW0gPSAodGhpcy5jb25maWcgfHwgW10pLmZpbmQoY2ZnID0+IGNmZy5rZXkgPT09IGtleSk7XG4gICAgaWYgKCFpdGVtPy5vbkRhdGVDaGFuZ2UpIHJldHVybjtcbiAgICBjb25zdCBkYXRlR3JvdXAgPSB0aGlzLmdldERhdGVHcm91cChrZXkpO1xuICAgIGlmICghZGF0ZUdyb3VwKSByZXR1cm47XG4gICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBkYXRlR3JvdXAuZ2V0UmF3VmFsdWUoKSB8fCB7fTtcbiAgICBpdGVtLm9uRGF0ZUNoYW5nZShcbiAgICAgIHtcbiAgICAgICAgc3RhcnQ6IHRoaXMubm9ybWFsaXplRGF0ZVZhbHVlKHN0YXJ0KSxcbiAgICAgICAgZW5kOiB0aGlzLm5vcm1hbGl6ZURhdGVWYWx1ZShlbmQpLFxuICAgICAgfSxcbiAgICAgIGV2ZW50XG4gICAgKTtcbiAgfVxuXG4gIC8vIE1hdCBkYXRlIHJhbmdlIHBpY2tlciBvdmVybGF5IHByZXNldCBoZWxwZXJzXG4gIGFwcGx5UHJlc2V0VG9Hcm91cChrZXk6IHN0cmluZywgcHJlc2V0S2V5OiAndG9kYXknIHwgJ2xhc3Q3ZGF5cycgfCAnbGFzdDMwZGF5cycgfCAnbGFzdDkwZGF5cycgfCAndGhpc21vbnRoJyB8ICdsYXN0bW9udGgnKTogdm9pZCB7XG4gICAgY29uc3QgZGF0ZUdyb3VwID0gdGhpcy5nZXREYXRlR3JvdXAoa2V5KTtcbiAgICBpZiAoIWRhdGVHcm91cCkgcmV0dXJuO1xuICAgIGNvbnN0IHsgc3RhcnQsIGVuZCB9ID0gdGhpcy5nZXRQcmVzZXREYXRlcyhwcmVzZXRLZXkpO1xuICAgIGRhdGVHcm91cC5wYXRjaFZhbHVlKHsgc3RhcnQsIGVuZCB9KTtcbiAgICB0aGlzLmZpbHRlcnNDaGFuZ2VkLmVtaXQodGhpcy5zZXJpYWxpemUoKSk7XG4gICAgdGhpcy5pbnZva2VEYXRlUmFuZ2VDaGFuZ2Uoa2V5KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UHJlc2V0RGF0ZXMocHJlc2V0S2V5OiAndG9kYXknIHwgJ2xhc3Q3ZGF5cycgfCAnbGFzdDMwZGF5cycgfCAnbGFzdDkwZGF5cycgfCAndGhpc21vbnRoJyB8ICdsYXN0bW9udGgnKTogeyBzdGFydDogRGF0ZTsgZW5kOiBEYXRlIH0ge1xuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBjbGFtcFRvRW5kT2ZUb2RheSA9IChkOiBEYXRlKSA9PiB7IGNvbnN0IG5kID0gbmV3IERhdGUoZCk7IG5kLnNldEhvdXJzKDIzLDU5LDU5LDk5OSk7IHJldHVybiBuZDsgfTtcbiAgICBzd2l0Y2ggKHByZXNldEtleSkge1xuICAgICAgY2FzZSAndG9kYXknOlxuICAgICAgICByZXR1cm4geyBzdGFydDogdG9kYXksIGVuZDogdG9kYXkgfTtcbiAgICAgIGNhc2UgJ2xhc3Q3ZGF5cyc6IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSgpOyBzdGFydC5zZXREYXRlKHN0YXJ0LmdldERhdGUoKSAtIDYpO1xuICAgICAgICByZXR1cm4geyBzdGFydCwgZW5kOiB0b2RheSB9O1xuICAgICAgfVxuICAgICAgY2FzZSAnbGFzdDMwZGF5cyc6IHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSgpOyBzdGFydC5zZXREYXRlKHN0YXJ0LmdldERhdGUoKSAtIDI5KTtcbiAgICAgICAgcmV0dXJuIHsgc3RhcnQsIGVuZDogdG9kYXkgfTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2xhc3Q5MGRheXMnOiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUoKTsgc3RhcnQuc2V0RGF0ZShzdGFydC5nZXREYXRlKCkgLSA4OSk7XG4gICAgICAgIHJldHVybiB7IHN0YXJ0LCBlbmQ6IHRvZGF5IH07XG4gICAgICB9XG4gICAgICBjYXNlICd0aGlzbW9udGgnOiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgdG9kYXkuZ2V0TW9udGgoKSwgMSk7XG4gICAgICAgIHJldHVybiB7IHN0YXJ0LCBlbmQ6IHRvZGF5IH07XG4gICAgICB9XG4gICAgICBjYXNlICdsYXN0bW9udGgnOiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgdG9kYXkuZ2V0TW9udGgoKSAtIDEsIDEpO1xuICAgICAgICBjb25zdCBlbmQgPSBuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpLCB0b2RheS5nZXRNb250aCgpLCAwKTtcbiAgICAgICAgcmV0dXJuIHsgc3RhcnQsIGVuZDogY2xhbXBUb0VuZE9mVG9kYXkoZW5kKSB9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBnZXREYXRlVmFsaWRhdGlvbkVycm9yKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgZGF0ZUdyb3VwID0gdGhpcy5nZXREYXRlR3JvdXAoa2V5KTtcbiAgICBpZiAoIWRhdGVHcm91cCkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBzdGFydEN0cmwgPSBkYXRlR3JvdXAuY29udHJvbHNbJ3N0YXJ0J107XG4gICAgY29uc3QgZW5kQ3RybCA9IGRhdGVHcm91cC5jb250cm9sc1snZW5kJ107XG4gICAgY29uc3Qgc3RhcnRWYWwgPSBzdGFydEN0cmw/LnZhbHVlO1xuICAgIGNvbnN0IGVuZFZhbCA9IGVuZEN0cmw/LnZhbHVlO1xuICAgIGNvbnN0IHN0YXJ0UGFyc2VFcnIgPSBzdGFydEN0cmw/LmVycm9ycz8uWydtYXREYXRlcGlja2VyUGFyc2UnXT8udGV4dDtcbiAgICBjb25zdCBlbmRQYXJzZUVyciA9IGVuZEN0cmw/LmVycm9ycz8uWydtYXREYXRlcGlja2VyUGFyc2UnXT8udGV4dDtcblxuICAgIGlmICghc3RhcnRWYWwgJiYgIWVuZFZhbCAmJiAhc3RhcnRQYXJzZUVyciAmJiAhZW5kUGFyc2VFcnIpIHJldHVybiBudWxsO1xuXG4gICAgaWYgKHN0YXJ0UGFyc2VFcnIpIHJldHVybiBgSW52YWxpZCBzdGFydCBkYXRlIGZvcm1hdGA7XG4gICAgaWYgKGVuZFBhcnNlRXJyKSByZXR1cm4gYEludmFsaWQgZW5kIGRhdGUgZm9ybWF0YDtcblxuICAgIGlmIChzdGFydFZhbCAmJiAhZW5kVmFsKSByZXR1cm4gYFBsZWFzZSBzZWxlY3QgYW4gZW5kIGRhdGVgO1xuICAgIGlmICghc3RhcnRWYWwgJiYgZW5kVmFsKSByZXR1cm4gYFBsZWFzZSBzZWxlY3QgYSBzdGFydCBkYXRlYDtcblxuICAgIGlmIChkYXRlR3JvdXAuaGFzRXJyb3IoJ21hdFN0YXJ0RGF0ZUludmFsaWQnKSkgcmV0dXJuIGBTdGFydCBkYXRlIG11c3QgYmUgYmVmb3JlIGVuZCBkYXRlYDtcbiAgICBpZiAoZGF0ZUdyb3VwLmhhc0Vycm9yKCdtYXRFbmREYXRlSW52YWxpZCcpKSByZXR1cm4gYEVuZCBkYXRlIG11c3QgYmUgYWZ0ZXIgc3RhcnQgZGF0ZWA7XG5cbiAgICBpZiAoZGF0ZUdyb3VwLmludmFsaWQpIHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnPy5maW5kKGMgPT4gYy5rZXkgPT09IGtleSk7XG4gICAgICByZXR1cm4gY29uZmlnID8gYCR7Y29uZmlnLmxhYmVsfSBpcyBpbnZhbGlkYCA6ICdEYXRlIHJhbmdlIGlzIGludmFsaWQnO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gRHluYW1pYyBEYXRlIFBpY2tlciBJbnRlZ3JhdGlvbiBNZXRob2RzIHJlbW92ZWQgKGNvbXBvbmVudCBubyBsb25nZXIgdXNlZClcbn1cblxuXG4iLCI8ZGl2IGlkPVwiY3FhLXVpLXJvb3RcIj5cbiAgPGRpdiBjbGFzcz1cImNxYS1maWx0ZXIgY3FhLW1iLVsyOHB4XVwiICpuZ0lmPVwic2hvd0ZpbHRlclBhbmVsXCIgc3R5bGU9XCJoZWlnaHQ6IGF1dG87XCI+XG4gICAgPCEtLSBCb3R0b20gTGF5b3V0OiBDdXJyZW50IGRlc2lnbiB3aXRoIHNlbGVjdG9ycyBpbiBncmlkIGFuZCBidXR0b25zIGJlbG93IC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJidXR0b25MYXlvdXQgPT09ICdib3R0b20nXCI+XG4gICAgICA8Zm9ybSBjbGFzcz1cInRzLWZvcm0gY3FhLWdyaWQgbGc6Y3FhLWdyaWQtY29scy00IG1kOmNxYS1ncmlkLWNvbHMtMiBjcWEtZ2FwLTRcIiBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIoZmFsc2UpXCIgbm92YWxpZGF0ZT1cIm5vdmFsaWRhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYyBvZiBjb25maWdcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWMuaGlkZGVuXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yIGNxYS1mbGV4LXNocmluay0wIGZpbHRlci1zZWxlY3Rvci13aWR0aFwiPlxuICAgICAgICAgICAgICA8IS0tIFNlbGVjdCAtLT5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImMudHlwZSA9PT0gJ3NlbGVjdCdcIj5cbiAgICAgICAgICAgICAgICA8Y3FhLWR5bmFtaWMtc2VsZWN0IFtmb3JtXT1cImZvcm1cIiBbY29uZmlnXT1cImdldFNlbGVjdENvbmZpZyhjKVwiPjwvY3FhLWR5bmFtaWMtc2VsZWN0PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICA8IS0tIERhdGUgUmFuZ2UgLS0+IFxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYy50eXBlID09PSAnZGF0ZS1yYW5nZSdcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1sYWJlbCBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLXRleHQtWzE0cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtYmxvY2sgY3FhLWxlYWRpbmctWzEuNF1cIj57e1xuICAgICAgICAgICAgICAgICAgYy5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWRhdGUtY3VzdG9tXCIgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dCBbcmFuZ2VQaWNrZXJdPVwicGlja2VyXCIgW2Zvcm1Hcm91cF09XCJnZXREYXRlR3JvdXAoYy5rZXkpXCIgW21heF09XCJtYXhEYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRTdGFydERhdGUgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRcIiBbcGxhY2Vob2xkZXJdPVwiYy5wbGFjZWhvbGRlciB8fCAnU3RhcnQgZGF0ZSdcIiBbbWF4XT1cIm1heERhdGVcIiByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCIgKGZvY3VzKT1cInBpY2tlci5vcGVuKClcIiAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRFbmREYXRlIGZvcm1Db250cm9sTmFtZT1cImVuZFwiIFtwbGFjZWhvbGRlcl09XCJjLnBsYWNlaG9sZGVyIHx8ICdFbmQgZGF0ZSdcIiBbbWF4XT1cIm1heERhdGVcIiByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCIgKGZvY3VzKT1cInBpY2tlci5vcGVuKClcIiAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiIC8+XG4gICAgICAgICAgICAgICAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxuICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlLXJhbmdlLXBpY2tlciAjcGlja2VyIChkYXRlQ2hhbmdlKT1cIm9uRGF0ZUNoYW5nZSgkZXZlbnQsIGMua2V5KVwiXG4gICAgICAgICAgICAgICAgICAgIFtwYW5lbENsYXNzXT1cIidjdGMtZGF0ZS1yYW5nZS1wYW5lbCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLWFjdGlvbnMgY2xhc3M9XCJjdGMtZGF0ZS1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN0Yy1kYXRlLXByZXNldHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbWItMiBjcWEtZm9udC1tZWRpdW1cIj5RdWljayBQcmVzZXRzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicHJlc2V0LWJ0biB0b2RheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlc2V0VG9Hcm91cChjLmtleSwgJ3RvZGF5Jyk7IHBpY2tlci5jbG9zZSgpXCI+VG9kYXk8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwcmVzZXQtYnRuIGxhc3Q3ZGF5c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlc2V0VG9Hcm91cChjLmtleSwgJ2xhc3Q3ZGF5cycpOyBwaWNrZXIuY2xvc2UoKVwiPkxhc3QgNyBkYXlzPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicHJlc2V0LWJ0biBsYXN0MzBkYXlzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAnbGFzdDMwZGF5cycpOyBwaWNrZXIuY2xvc2UoKVwiPkxhc3QgMzAgZGF5czwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInByZXNldC1idG4gbGFzdDkwZGF5c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlc2V0VG9Hcm91cChjLmtleSwgJ2xhc3Q5MGRheXMnKTsgcGlja2VyLmNsb3NlKClcIj5MYXN0IDkwIGRheXM8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwcmVzZXQtYnRuIHRoaXNtb250aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlc2V0VG9Hcm91cChjLmtleSwgJ3RoaXNtb250aCcpOyBwaWNrZXIuY2xvc2UoKVwiPlRoaXMgbW9udGg8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwcmVzZXQtYnRuIGxhc3Rtb250aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlc2V0VG9Hcm91cChjLmtleSwgJ2xhc3Rtb250aCcpOyBwaWNrZXIuY2xvc2UoKVwiPkxhc3QgbW9udGg8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZm9udC1tZWRpdW0gY3FhLW1iLTIgY3FhLW10LVsxMHB4XSBjcWEtdy1mdWxsXCI+Q3VzdG9tIFJhbmdlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIhY3FhLWJnLVsjM2Y1MWI1XSAhY3FhLXRleHQtd2hpdGUgY3FhLXAtMiBjcWEtZm9udC1tZWRpdW0gIWNxYS1tYi0yICFjcWEtbXQtWzEwcHhdIGNxYS13LVtjYWxjKDEwMCUtMzJweCldICFjcWEtYWJzb2x1dGUgY3FhLWJvdHRvbS1bMnB4XVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgbWF0RGF0ZXBpY2tlckFwcGx5PkFwcGx5PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWRhdGVwaWNrZXItYWN0aW9ucz5cbiAgICAgICAgICAgICAgICAgIDwvbWF0LWRhdGUtcmFuZ2UtcGlja2VyPlxuICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiIGNsYXNzPVwiY3FhLWN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNS4zMzM5OCAxLjMzMjAzVjMuOTk4N1wiIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC42NjYgMS4zMzIwM1YzLjk5ODdcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjY2NjcgMi42Njc5N0gzLjMzMzMzQzIuNTk2OTUgMi42Njc5NyAyIDMuMjY0OTIgMiA0LjAwMTNWMTMuMzM0NkMyIDE0LjA3MSAyLjU5Njk1IDE0LjY2OCAzLjMzMzMzIDE0LjY2OEgxMi42NjY3QzEzLjQwMyAxNC42NjggMTQgMTQuMDcxIDE0IDEzLjMzNDZWNC4wMDEzQzE0IDMuMjY0OTIgMTMuNDAzIDIuNjY3OTcgMTIuNjY2NyAyLjY2Nzk3WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yIDYuNjY3OTdIMTRcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPCEtLSBTcGVjaWZpYyB2YWxpZGF0aW9uIG1lc3NhZ2VzIC0tPlxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJnZXREYXRlVmFsaWRhdGlvbkVycm9yKGMua2V5KSAmJiAhcGlja2VyLm9wZW5lZFwiPlxuICAgICAgICAgICAgICAgICAge3sgZ2V0RGF0ZVZhbGlkYXRpb25FcnJvcihjLmtleSkgfX1cbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Zvcm0+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtanVzdGlmeS1lbmQgY3FhLWl0ZW1zLXN0cmV0Y2ggY3FhLWdhcC0yIGNxYS1tdC00XCI+XG4gICAgICAgIDxjcWEtYnV0dG9uIHZhcmlhbnQ9XCJmaWxsZWRcIiAoY2xpY2tlZCk9XCJhcHBseSgpXCIgW2Rpc2FibGVkXT1cIiFoYXNTZWxlY3RlZEZpbHRlcnNcIj5BcHBseSBGaWx0ZXI8L2NxYS1idXR0b24+XG4gICAgICAgIDxjcWEtYnV0dG9uIHZhcmlhbnQ9XCJvdXRsaW5lZFwiIChjbGlja2VkKT1cInJlc2V0KClcIj5SZXNldDwvY3FhLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBSaWdodCBMYXlvdXQ6IEJ1dHRvbnMgb24gbGVmdG1vc3Qgc2lkZSwgc2VsZWN0b3JzIG9uIHJpZ2h0bW9zdCBzaWRlIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJidXR0b25MYXlvdXQgPT09ICdyaWdodCdcIj5cbiAgICAgIDxmb3JtIGNsYXNzPVwidHMtZm9ybSBjcWEtZmxleCBjcWEtZmxleC13cmFwIGNxYS1pdGVtcy1lbmQgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTRcIiBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIoZmFsc2UpXCIgbm92YWxpZGF0ZT1cIm5vdmFsaWRhdGVcIiBzdHlsZT1cImhlaWdodDogYXV0bztcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1zdHJldGNoIGNxYS1nYXAtMiBjcWEtZmxleC1zaHJpbmstMCBjcWEtb3JkZXItZmlyc3QgY3FhLW1yLWF1dG9cIj5cbiAgICAgICAgICA8Y3FhLWJ1dHRvbiB2YXJpYW50PVwiZmlsbGVkXCIgKGNsaWNrZWQpPVwiYXBwbHkoKVwiIFtkaXNhYmxlZF09XCIhaGFzU2VsZWN0ZWRGaWx0ZXJzXCI+QXBwbHkgRmlsdGVyPC9jcWEtYnV0dG9uPlxuICAgICAgICAgIDxjcWEtYnV0dG9uIHZhcmlhbnQ9XCJvdXRsaW5lZFwiIChjbGlja2VkKT1cInJlc2V0KClcIj5SZXNldDwvY3FhLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC13cmFwIGNxYS1pdGVtcy1lbmQgY3FhLWdhcC00IGNxYS1mbGV4LTEgY3FhLWp1c3RpZnktZW5kIGNxYS1vcmRlci1sYXN0IGNxYS1tbC1hdXRvXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYyBvZiBjb25maWdcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWMuaGlkZGVuXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yIGNxYS1mbGV4LXNocmluay0wIGZpbHRlci1zZWxlY3Rvci13aWR0aFwiPlxuICAgICAgICAgICAgICA8IS0tIFNlbGVjdCAtLT5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImMudHlwZSA9PT0gJ3NlbGVjdCdcIj5cbiAgICAgICAgICAgICAgICA8Y3FhLWR5bmFtaWMtc2VsZWN0IFtmb3JtXT1cImZvcm1cIiBbY29uZmlnXT1cImdldFNlbGVjdENvbmZpZyhjKVwiPjwvY3FhLWR5bmFtaWMtc2VsZWN0PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICA8IS0tIERhdGUgUmFuZ2UgLS0+IFxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYy50eXBlID09PSAnZGF0ZS1yYW5nZSdcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1sYWJlbCBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLXRleHQtWzE0cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtYmxvY2sgY3FhLWxlYWRpbmctWzEuNF1cIj57e1xuICAgICAgICAgICAgICAgICAgYy5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWRhdGUtY3VzdG9tXCIgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dCBbcmFuZ2VQaWNrZXJdPVwicGlja2VyXCIgW2Zvcm1Hcm91cF09XCJnZXREYXRlR3JvdXAoYy5rZXkpXCIgW21heF09XCJtYXhEYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRTdGFydERhdGUgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRcIiBbcGxhY2Vob2xkZXJdPVwiYy5wbGFjZWhvbGRlciB8fCAnU3RhcnQgZGF0ZSdcIiBbbWF4XT1cIm1heERhdGVcIiByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCIgKGZvY3VzKT1cInBpY2tlci5vcGVuKClcIiAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRFbmREYXRlIGZvcm1Db250cm9sTmFtZT1cImVuZFwiIFtwbGFjZWhvbGRlcl09XCJjLnBsYWNlaG9sZGVyIHx8ICdFbmQgZGF0ZSdcIiBbbWF4XT1cIm1heERhdGVcIiByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCIgKGZvY3VzKT1cInBpY2tlci5vcGVuKClcIiAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiIC8+XG4gICAgICAgICAgICAgICAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxuICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlLXJhbmdlLXBpY2tlciAjcGlja2VyIChkYXRlQ2hhbmdlKT1cIm9uRGF0ZUNoYW5nZSgkZXZlbnQsIGMua2V5KVwiXG4gICAgICAgICAgICAgICAgICAgIFtwYW5lbENsYXNzXT1cIidjdGMtZGF0ZS1yYW5nZS1wYW5lbCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLWFjdGlvbnMgY2xhc3M9XCJjdGMtZGF0ZS1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN0Yy1kYXRlLXByZXNldHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbWItMiBjcWEtZm9udC1tZWRpdW1cIj5RdWljayBQcmVzZXRzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicHJlc2V0LWJ0biB0b2RheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlc2V0VG9Hcm91cChjLmtleSwgJ3RvZGF5Jyk7IHBpY2tlci5jbG9zZSgpXCI+VG9kYXk8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwcmVzZXQtYnRuIGxhc3Q3ZGF5c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlc2V0VG9Hcm91cChjLmtleSwgJ2xhc3Q3ZGF5cycpOyBwaWNrZXIuY2xvc2UoKVwiPkxhc3QgNyBkYXlzPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicHJlc2V0LWJ0biBsYXN0MzBkYXlzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAnbGFzdDMwZGF5cycpOyBwaWNrZXIuY2xvc2UoKVwiPkxhc3QgMzAgZGF5czwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInByZXNldC1idG4gbGFzdDkwZGF5c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlc2V0VG9Hcm91cChjLmtleSwgJ2xhc3Q5MGRheXMnKTsgcGlja2VyLmNsb3NlKClcIj5MYXN0IDkwIGRheXM8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwcmVzZXQtYnRuIHRoaXNtb250aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlc2V0VG9Hcm91cChjLmtleSwgJ3RoaXNtb250aCcpOyBwaWNrZXIuY2xvc2UoKVwiPlRoaXMgbW9udGg8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwcmVzZXQtYnRuIGxhc3Rtb250aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlc2V0VG9Hcm91cChjLmtleSwgJ2xhc3Rtb250aCcpOyBwaWNrZXIuY2xvc2UoKVwiPkxhc3QgbW9udGg8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZm9udC1tZWRpdW0gY3FhLW1iLTIgY3FhLW10LVsxMHB4XSBjcWEtdy1mdWxsXCI+Q3VzdG9tIFJhbmdlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIhY3FhLWJnLVsjM2Y1MWI1XSAhY3FhLXRleHQtd2hpdGUgY3FhLXAtMiBjcWEtZm9udC1tZWRpdW0gIWNxYS1tYi0yICFjcWEtbXQtWzEwcHhdIGNxYS13LVtjYWxjKDEwMCUtMzJweCldICFjcWEtYWJzb2x1dGUgY3FhLWJvdHRvbS1bMnB4XVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgbWF0RGF0ZXBpY2tlckFwcGx5PkFwcGx5PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWRhdGVwaWNrZXItYWN0aW9ucz5cbiAgICAgICAgICAgICAgICAgIDwvbWF0LWRhdGUtcmFuZ2UtcGlja2VyPlxuICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiIGNsYXNzPVwiY3FhLWN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNS4zMzM5OCAxLjMzMjAzVjMuOTk4N1wiIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC42NjYgMS4zMzIwM1YzLjk5ODdcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjY2NjcgMi42Njc5N0gzLjMzMzMzQzIuNTk2OTUgMi42Njc5NyAyIDMuMjY0OTIgMiA0LjAwMTNWMTMuMzM0NkMyIDE0LjA3MSAyLjU5Njk1IDE0LjY2OCAzLjMzMzMzIDE0LjY2OEgxMi42NjY3QzEzLjQwMyAxNC42NjggMTQgMTQuMDcxIDE0IDEzLjMzNDZWNC4wMDEzQzE0IDMuMjY0OTIgMTMuNDAzIDIuNjY3OTcgMTIuNjY2NyAyLjY2Nzk3WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yIDYuNjY3OTdIMTRcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPCEtLSBTcGVjaWZpYyB2YWxpZGF0aW9uIG1lc3NhZ2VzIC0tPlxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJnZXREYXRlVmFsaWRhdGlvbkVycm9yKGMua2V5KSAmJiAhcGlja2VyLm9wZW5lZFwiPlxuICAgICAgICAgICAgICAgICAge3sgZ2V0RGF0ZVZhbGlkYXRpb25FcnJvcihjLmtleSkgfX1cbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb3JtPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBMZWZ0IExheW91dDogU2VsZWN0b3JzIG9uIGxlZnRtb3N0IHNpZGUsIGJ1dHRvbnMgb24gcmlnaHRtb3N0IHNpZGUgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJ1dHRvbkxheW91dCA9PT0gJ2xlZnQnXCI+XG4gICAgICA8Zm9ybSBjbGFzcz1cInRzLWZvcm0gY3FhLWZsZXggY3FhLWZsZXgtd3JhcCBjcWEtaXRlbXMtZW5kIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC00XCIgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiKGZhbHNlKVwiIG5vdmFsaWRhdGU9XCJub3ZhbGlkYXRlXCIgc3R5bGU9XCJoZWlnaHQ6IGF1dG87XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC13cmFwIGNxYS1pdGVtcy1lbmQgY3FhLWdhcC00IGNxYS1mbGV4LTEgY3FhLW9yZGVyLWZpcnN0IGNxYS1tci1hdXRvXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYyBvZiBjb25maWdcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWMuaGlkZGVuXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yIGNxYS1mbGV4LXNocmluay0wIGZpbHRlci1zZWxlY3Rvci13aWR0aFwiPlxuICAgICAgICAgICAgICA8IS0tIFNlbGVjdCAtLT5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImMudHlwZSA9PT0gJ3NlbGVjdCdcIj5cbiAgICAgICAgICAgICAgICA8Y3FhLWR5bmFtaWMtc2VsZWN0IFtmb3JtXT1cImZvcm1cIiBbY29uZmlnXT1cImdldFNlbGVjdENvbmZpZyhjKVwiPjwvY3FhLWR5bmFtaWMtc2VsZWN0PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICA8IS0tIERhdGUgUmFuZ2UgLS0+IFxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYy50eXBlID09PSAnZGF0ZS1yYW5nZSdcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1sYWJlbCBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLXRleHQtWzE0cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtYmxvY2sgY3FhLWxlYWRpbmctWzEuNF1cIj57e1xuICAgICAgICAgICAgICAgICAgYy5sYWJlbCB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibWF0LWRhdGUtY3VzdG9tXCIgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dCBbcmFuZ2VQaWNrZXJdPVwicGlja2VyXCIgW2Zvcm1Hcm91cF09XCJnZXREYXRlR3JvdXAoYy5rZXkpXCIgW21heF09XCJtYXhEYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRTdGFydERhdGUgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRcIiBbcGxhY2Vob2xkZXJdPVwiYy5wbGFjZWhvbGRlciB8fCAnU3RhcnQgZGF0ZSdcIiBbbWF4XT1cIm1heERhdGVcIiByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCIgKGZvY3VzKT1cInBpY2tlci5vcGVuKClcIiAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRFbmREYXRlIGZvcm1Db250cm9sTmFtZT1cImVuZFwiIFtwbGFjZWhvbGRlcl09XCJjLnBsYWNlaG9sZGVyIHx8ICdFbmQgZGF0ZSdcIiBbbWF4XT1cIm1heERhdGVcIiByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCIgKGZvY3VzKT1cInBpY2tlci5vcGVuKClcIiAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiIC8+XG4gICAgICAgICAgICAgICAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxuICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlLXJhbmdlLXBpY2tlciAjcGlja2VyIChkYXRlQ2hhbmdlKT1cIm9uRGF0ZUNoYW5nZSgkZXZlbnQsIGMua2V5KVwiXG4gICAgICAgICAgICAgICAgICAgIFtwYW5lbENsYXNzXT1cIidjdGMtZGF0ZS1yYW5nZS1wYW5lbCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLWFjdGlvbnMgY2xhc3M9XCJjdGMtZGF0ZS1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN0Yy1kYXRlLXByZXNldHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtbWItMiBjcWEtZm9udC1tZWRpdW1cIj5RdWljayBQcmVzZXRzPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicHJlc2V0LWJ0biB0b2RheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlc2V0VG9Hcm91cChjLmtleSwgJ3RvZGF5Jyk7IHBpY2tlci5jbG9zZSgpXCI+VG9kYXk8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwcmVzZXQtYnRuIGxhc3Q3ZGF5c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlc2V0VG9Hcm91cChjLmtleSwgJ2xhc3Q3ZGF5cycpOyBwaWNrZXIuY2xvc2UoKVwiPkxhc3QgNyBkYXlzPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwicHJlc2V0LWJ0biBsYXN0MzBkYXlzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwbHlQcmVzZXRUb0dyb3VwKGMua2V5LCAnbGFzdDMwZGF5cycpOyBwaWNrZXIuY2xvc2UoKVwiPkxhc3QgMzAgZGF5czwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInByZXNldC1idG4gbGFzdDkwZGF5c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlc2V0VG9Hcm91cChjLmtleSwgJ2xhc3Q5MGRheXMnKTsgcGlja2VyLmNsb3NlKClcIj5MYXN0IDkwIGRheXM8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwcmVzZXQtYnRuIHRoaXNtb250aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlc2V0VG9Hcm91cChjLmtleSwgJ3RoaXNtb250aCcpOyBwaWNrZXIuY2xvc2UoKVwiPlRoaXMgbW9udGg8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJwcmVzZXQtYnRuIGxhc3Rtb250aFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcGx5UHJlc2V0VG9Hcm91cChjLmtleSwgJ2xhc3Rtb250aCcpOyBwaWNrZXIuY2xvc2UoKVwiPkxhc3QgbW9udGg8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZm9udC1tZWRpdW0gY3FhLW1iLTIgY3FhLW10LVsxMHB4XSBjcWEtdy1mdWxsXCI+Q3VzdG9tIFJhbmdlPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCIhY3FhLWJnLVsjM2Y1MWI1XSAhY3FhLXRleHQtd2hpdGUgY3FhLXAtMiBjcWEtZm9udC1tZWRpdW0gIWNxYS1tYi0yICFjcWEtbXQtWzEwcHhdIGNxYS13LVtjYWxjKDEwMCUtMzJweCldICFjcWEtYWJzb2x1dGUgY3FhLWJvdHRvbS1bMnB4XVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgbWF0RGF0ZXBpY2tlckFwcGx5PkFwcGx5PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWRhdGVwaWNrZXItYWN0aW9ucz5cbiAgICAgICAgICAgICAgICAgIDwvbWF0LWRhdGUtcmFuZ2UtcGlja2VyPlxuICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiIGNsYXNzPVwiY3FhLWN1cnNvci1wb2ludGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNS4zMzM5OCAxLjMzMjAzVjMuOTk4N1wiIHN0cm9rZT1cIiMwQTBBMEFcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMC42NjYgMS4zMzIwM1YzLjk5ODdcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjY2NjcgMi42Njc5N0gzLjMzMzMzQzIuNTk2OTUgMi42Njc5NyAyIDMuMjY0OTIgMiA0LjAwMTNWMTMuMzM0NkMyIDE0LjA3MSAyLjU5Njk1IDE0LjY2OCAzLjMzMzMzIDE0LjY2OEgxMi42NjY3QzEzLjQwMyAxNC42NjggMTQgMTQuMDcxIDE0IDEzLjMzNDZWNC4wMDEzQzE0IDMuMjY0OTIgMTMuNDAzIDIuNjY3OTcgMTIuNjY2NyAyLjY2Nzk3WlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yIDYuNjY3OTdIMTRcIiBzdHJva2U9XCIjMEEwQTBBXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPCEtLSBTcGVjaWZpYyB2YWxpZGF0aW9uIG1lc3NhZ2VzIC0tPlxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJnZXREYXRlVmFsaWRhdGlvbkVycm9yKGMua2V5KSAmJiAhcGlja2VyLm9wZW5lZFwiPlxuICAgICAgICAgICAgICAgICAge3sgZ2V0RGF0ZVZhbGlkYXRpb25FcnJvcihjLmtleSkgfX1cbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLXN0cmV0Y2ggY3FhLWdhcC0yIGNxYS1mbGV4LXNocmluay0wIGNxYS1vcmRlci1sYXN0IGNxYS1tbC1hdXRvXCI+XG4gICAgICAgICAgPGNxYS1idXR0b24gdmFyaWFudD1cImZpbGxlZFwiIChjbGlja2VkKT1cImFwcGx5KClcIiBbZGlzYWJsZWRdPVwiIWhhc1NlbGVjdGVkRmlsdGVyc1wiPkFwcGx5IEZpbHRlcjwvY3FhLWJ1dHRvbj5cbiAgICAgICAgICA8Y3FhLWJ1dHRvbiB2YXJpYW50PVwib3V0bGluZWRcIiAoY2xpY2tlZCk9XCJyZXNldCgpXCI+UmVzZXQ8L2NxYS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb3JtPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==