@paperless/angular 2.20.0 → 2.21.0
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.
|
@@ -728,7 +728,7 @@ let Table = class Table {
|
|
|
728
728
|
const promises = [];
|
|
729
729
|
for (const cell of cells) {
|
|
730
730
|
if (cell.style.width?.length) {
|
|
731
|
-
cell.style
|
|
731
|
+
cell.setAttribute('style', '');
|
|
732
732
|
}
|
|
733
733
|
promises.push(new Promise(resolve => setTimeout(() => {
|
|
734
734
|
const rect = cell.getBoundingClientRect();
|
|
@@ -1003,4 +1003,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
1003
1003
|
type: HostListener,
|
|
1004
1004
|
args: ['document:visibilitychange', ['$event']]
|
|
1005
1005
|
}] } });
|
|
1006
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGFwZXJsZXNzL3NyYy9saWIvbW9kdWxlcy90YWJsZS9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BhcGVybGVzcy9zcmMvbGliL21vZHVsZXMvdGFibGUvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksR0FDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFDTixFQUFFLEVBQ0YsMEJBQTBCLEVBQzFCLFFBQVEsRUFDUixhQUFhLEVBR2IsS0FBSyxFQUNMLHNCQUFzQixHQUN0QixNQUFNLGlCQUFpQixDQUFDO0FBTXpCLE9BQU8sRUFDTixlQUFlLEVBQ2YsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixNQUFNLEVBRU4sSUFBSSxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFDTiwyQkFBMkIsRUFDM0IsMEJBQTBCLEVBQzFCLHlCQUF5QixHQUN6QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMv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dXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0Q29tcG9uZW50LFxuXHRDb250ZW50Q2hpbGQsXG5cdENvbnRlbnRDaGlsZHJlbixcblx0RWxlbWVudFJlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRIb3N0QmluZGluZyxcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0T25DaGFuZ2VzLFxuXHRPbkluaXQsXG5cdE91dHB1dCxcblx0UXVlcnlMaXN0LFxuXHRTaW1wbGVDaGFuZ2VzLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtcblx0Y24sXG5cdGZsb2F0aW5nTWVudUNvbnRhaW5lckNsYXNzLFxuXHRpc01vYmlsZSxcblx0b25TdGF0ZUNoYW5nZSxcblx0UXVpY2tGaWx0ZXIsXG5cdFJvd0NsaWNrRXZlbnQsXG5cdHN0YXRlLFxuXHR0YWJsZUNvbHVtU2l6ZXNPcHRpb25zLFxufSBmcm9tICdAcGFwZXJsZXNzL2NvcmUnO1xuaW1wb3J0IHtcblx0SWNvblZhcmlhbnQsXG5cdElsbHVzdHJhdGlvblZhcmlhbnQsXG5cdFRhYmxlQ29sdW1uU2l6ZXMsXG59IGZyb20gJ0BwYXBlcmxlc3MvY29yZS9kaXN0L3R5cGVzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcblx0QmVoYXZpb3JTdWJqZWN0LFxuXHRkZWJvdW5jZVRpbWUsXG5cdGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuXHRmaWx0ZXIsXG5cdFN1YnNjcmlwdGlvbixcblx0dGFrZSxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQVGFibGVSb3cgfSBmcm9tICcuLi8uLi8uLi8uLi9zdGVuY2lsL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtcblx0VGFibGVDdXN0b21BY3Rpb25zRGlyZWN0aXZlLFxuXHRUYWJsZUN1c3RvbUZpbHRlckRpcmVjdGl2ZSxcblx0VGFibGVGaWx0ZXJNb2RhbERpcmVjdGl2ZSxcbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBUYWJsZUN1c3RvbVJvd0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcC10YWJsZS1jdXN0b20tcm93LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUYWJsZUNlbGwgfSBmcm9tICcuLi90YWJsZS1jZWxsL3RhYmxlLWNlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vdGFibGUtY29sdW1uL3RhYmxlLWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVFeHRyYUhlYWRlciB9IGZyb20gJy4uL3RhYmxlLWV4dHJhLWhlYWRlci90YWJsZS1leHRyYS1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG5cdEFzeW5jSXRlbSxcblx0VGFibGVSb3dBY3Rpb24sXG5cdFRhYmxlUm93QWN0aW9uUXVlcnlQYXJhbXMsXG5cdFRhYmxlUm93QWN0aW9uUm91dGVyTGluayxcbn0gZnJvbSAnLi4vdGFibGUtcm93LWFjdGlvbi90YWJsZS1yb3ctYWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBkZWZhdWx0U2l6ZSwgZGVmYXVsdFNpemVPcHRpb25zIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5AVW50aWxEZXN0cm95KHsgY2hlY2tQcm9wZXJ0aWVzOiB0cnVlIH0pXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdwLXRhYmxlLW5neCcsXG5cdHRlbXBsYXRlVXJsOiAndGFibGUuY29tcG9uZW50Lmh0bWwnLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG5cdEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzc05hbWUgPSAnZmxleCBmbGV4LWNvbCB6LTAnO1xuXHRASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10aGVtZScpIHRoZW1lID0gc3RhdGUudGhlbWU7XG5cblx0LyoqXG5cdCAqIFRoZSBpdGVtcyB0byBiZSBmZWQgdG8gdGhlIHRhYmxlXG5cdCAqL1xuXHRASW5wdXQoKSBpdGVtcyE6IHN0cmluZyB8IGFueVtdO1xuXG5cdC8qKlxuXHQgKiBXZXRoZXIgZGF0YSBpcyBsb2FkaW5nXG5cdCAqL1xuXHRASW5wdXQoKSBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIFdldGhlciB0aGUgaGVhZGVyIHNob3VsZCBzaG93IGxvYWRpbmcgc3RhdGVcblx0ICovXG5cdEBJbnB1dCgpIGhlYWRlckxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHQvKipcblx0ICogV2V0aGVyIHRoZSBmb290ZXIgc2hvdWxkIHNob3cgbG9hZGluZyBzdGF0ZVxuXHQgKi9cblx0QElucHV0KCkgZm9vdGVyTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBUaGUgYW1vdW50IG9mIGxvYWRpbmcgcm93cyB0byBzaG93XG5cdCAqL1xuXHRASW5wdXQoKSBhbW91bnRPZkxvYWRpbmdSb3dzOiBudW1iZXIgPSA2O1xuXG5cdC8qKlxuXHQgKiBXZXRoZXIgdG8gZW5hYmxlIHNlbGVjdGlvblxuXHQgKi9cblx0QElucHV0KCkgZW5hYmxlUm93U2VsZWN0aW9uOiBib29sZWFuID0gdHJ1ZTtcblxuXHQvKipcblx0ICogQSBsaW1pdCB0byB0aGUgYW1vdW50IG9mIHJvd3MgdGhhdCBjYW4gYmUgc2VsZWN0ZWRcblx0ICovXG5cdEBJbnB1dCgpIHJvd1NlbGVjdGlvbkxpbWl0OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFdldGhlciB0byBlbmFibGUgcm93IGNsaWNraW5nXG5cdCAqL1xuXHRASW5wdXQoKSBlbmFibGVSb3dDbGljazogYm9vbGVhbiA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFRoZSBjdXJyZW50IHNlbGVjdGlvbiBvZiBpdGVtc1xuXHQgKi9cblx0QElucHV0KCkgc2VsZWN0ZWRSb3dzOiBhbnlbXSA9IFtdO1xuXG5cdC8qKlxuXHQgKiBFdmVudCB3aGVuZXZlciB0aGUgY3VycmVudCBzZWxlY3Rpb24gY2hhbmdlc1xuXHQgKi9cblx0QE91dHB1dCgpIHNlbGVjdGVkUm93c0NoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0LyoqXG5cdCAqIFRoZSBrZXkgdG8gZGV0ZXJtaW5lIGlmIGEgcm93IGlzIHNlbGVjdGVkXG5cdCAqL1xuXHRASW5wdXQoKSBzZWxlY3Rpb25LZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogQSBrZXkgdG8gZGV0ZXJtaW5lIGlmIGEgcm93IGNhbiBiZSBzZWxlY3RlZFxuXHQgKi9cblx0QElucHV0KCkgY2FuU2VsZWN0S2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFdldGhlciB0byBlbmFibGUgdGhlIGZsb2F0aW5nIG1lbnVcblx0ICovXG5cdEBJbnB1dCgpIGVuYWJsZUZsb2F0aW5nTWVudTogYm9vbGVhbiA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFRoZSBmbG9hdGluZyBtZW51IGFtb3VudCBpdGVtIHRleHRcblx0ICovXG5cdEBJbnB1dCgpIGZsb2F0aW5nTWVudUFtb3VudFNlbGVjdGVkVGV4dDogc3RyaW5nID0gJzAgaXRlbXMgc2VsZWN0ZWQnO1xuXG5cdC8qKlxuXHQgKiBUaGUgdGVtcGxhdGUgZm9yIGFtb3VudCBzZWxlY3RlZCBpdGVtIGluIHRoZSBmbG9hdGluZyBtZW51XG5cdCAqL1xuXHRASW5wdXQoKSBmbG9hdGluZ01lbnVBbW91bnRTZWxlY3RlZFRlbXBsYXRlOiBhbnk7XG5cblx0LyoqXG5cdCAqIFdldGhlciB0aGUgZmxvYXRpbmcgbWVudSBoYXMgYmVlbiBzaG93biBhdGxlYXN0IG9uY2Vcblx0ICovXG5cdHB1YmxpYyBmbG9hdGluZ01lbnVTaG93biQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuXHQvKipcblx0ICogRXZlbnQgd2hlbmV2ZXIgYSByb3cgaXMgY2xpY2tlZFxuXHQgKi9cblx0QE91dHB1dCgpIHJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8Um93Q2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0LyoqXG5cdCAqIEV2ZW50IHdoZW5ldmVyIGEgcm93IGlzIHNlbGVjdGVkXG5cdCAqL1xuXHRAT3V0cHV0KCkgcm93U2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdC8qKlxuXHQgKiBFdmVudCB3aGVuZXZlciBhIHJvdyBpcyBkZXNlbGVjdGVkXG5cdCAqL1xuXHRAT3V0cHV0KCkgcm93RGVzZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0LyoqIFNUQVJUIEhFQURFUiAqL1xuXG5cdC8qKlxuXHQgKiBXZXRoZXIgdG8gc2hvdyB0aGUgaGVhZGVyXG5cdCAqL1xuXHRASW5wdXQoKSBlbmFibGVIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBRdWljayBmaWx0ZXJzIHRvIHNob3dcblx0ICovXG5cdEBJbnB1dCgpIHF1aWNrRmlsdGVyczogUXVpY2tGaWx0ZXJbXSA9IFtdO1xuXG5cdC8qKlxuXHQgKiBBY3RpdmUgcXVpY2sgZmlsdGVyIGlkZW50aWZpZXJcblx0ICovXG5cdEBJbnB1dCgpIGFjdGl2ZVF1aWNrRmlsdGVySWRlbnRpZmllcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBXZXRoZXIgdG8gc2hvdyB0aGUgc2VhcmNoIGlucHV0XG5cdCAqL1xuXHRASW5wdXQoKSBlbmFibGVTZWFyY2g6IGJvb2xlYW4gPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBUaGUgcXVlcnkgdG8gc2hvdyBpbiB0aGUgc2VhcmNoIGJhclxuXHQgKi9cblx0QElucHV0KCkgcXVlcnk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogV2V0aGVyIHRvIHNob3cgdGhlIGZpbHRlciBidXR0b25cblx0ICovXG5cdEBJbnB1dCgpIGVuYWJsZUZpbHRlcjogYm9vbGVhbiA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFdldGhlciB0byBzaG93IHRoZSBmaWx0ZXIgYnV0dG9uIG9uIGRlc2t0b3Bcblx0ICovXG5cdEBJbnB1dCgpIGVuYWJsZUZpbHRlckRlc2t0b3A6IGJvb2xlYW4gPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBUaGUgYW1vdW50IG9mIGZpbHRlcnMgYmVpbmcgc2VsZWN0ZWRcblx0ICovXG5cdEBJbnB1dCgpIHNlbGVjdGVkRmlsdGVyc0Ftb3VudDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBUaGUgdGVtcGxhdGUgZm9yIHRoZSBmaWx0ZXIgYnV0dG9uIHRleHRcblx0ICovXG5cdEBJbnB1dCgpIGZpbHRlckJ1dHRvblRlbXBsYXRlOiBhbnk7XG5cblx0LyoqXG5cdCAqIFdldGhlciB0byBzaG93IHRoZSBhY3Rpb24gYnV0dG9uXG5cdCAqL1xuXHRASW5wdXQoKSBlbmFibGVBY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuXHQvKipcblx0ICogV2V0aGVyIHRoZSBhY3Rpb24gYnV0dG9uIGlzIGxvYWRpbmdcblx0ICovXG5cdEBJbnB1dCgpIGFjdGlvbkJ1dHRvbkxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHQvKipcblx0ICogVGhlIGFjdGlvbiBidXR0b24gaWNvblxuXHQgKi9cblx0QElucHV0KCkgYWN0aW9uQnV0dG9uSWNvbjogSWNvblZhcmlhbnQgPSAncGVuY2lsJztcblxuXHQvKipcblx0ICogV2V0aGVyIHRoZSBhY3Rpb24gYnV0dG9uIGlzIGVuYWJsZWRcblx0ICovXG5cdEBJbnB1dCgpIGFjdGlvbkJ1dHRvbkVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBUaGUgYWN0aW9uIGJ1dHRvbiB0ZXh0IGlmIGNoYW5nZWRcblx0ICovXG5cdEBJbnB1dCgpIGFjdGlvbkJ1dHRvblRleHQ/OiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIFRoZSB0ZW1wbGF0ZSBmb3IgdGhlIGFjdGlvbiBidXR0b24gdGV4dFxuXHQgKi9cblx0QElucHV0KCkgYWN0aW9uQnV0dG9uVGVtcGxhdGU6IGFueTtcblxuXHQvKipcblx0ICogRXZlbnQgd2hlbiBvbmUgb2YgdGhlIHF1aWNrIGZpbHRlcnMgaXMgY2xpY2tlZFxuXHQgKi9cblx0QE91dHB1dCgpIHF1aWNrRmlsdGVyOiBFdmVudEVtaXR0ZXI8UXVpY2tGaWx0ZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdC8qKlxuXHQgKiBFdmVudCB3aGVuIHRoZSBxdWVyeSBjaGFuZ2VzXG5cdCAqL1xuXHRAT3V0cHV0KCkgcXVlcnlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdC8qKlxuXHQgKiBFdmVudCB3aGVuIHRoZSBmaWx0ZXIgYnV0dG9uIGlzIGNsaWNrZWRcblx0ICovXG5cdEBPdXRwdXQoKSBmaWx0ZXI6IEV2ZW50RW1pdHRlcjxudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHQvKipcblx0ICogRXZlbnQgd2hlbiB0aGUgYWN0aW9uIGJ1dHRvbiBpcyBjbGlja2VkXG5cdCAqL1xuXHRAT3V0cHV0KCkgYWN0aW9uOiBFdmVudEVtaXR0ZXI8bnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0LyoqIFNUQVJUIEZPT1RFUiAqL1xuXG5cdC8qKlxuXHQgKiBXZXRoZXIgdG8gc2hvdyB0aGUgZm9vdGVyXG5cdCAqL1xuXHRASW5wdXQoKSBlbmFibGVGb290ZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBXZXRoZXIgdG8gZW5hYmxlIHBhZ2luYXRpb24gc2l6ZSBzZWxlY3Rcblx0ICovXG5cdEBJbnB1dCgpIGVuYWJsZVBhZ2luYXRpb25TaXplOiBib29sZWFuID0gdHJ1ZTtcblxuXHQvKipcblx0ICogV2V0aGVyIHRvIGVuYWJsZSBwYWdpbmF0aW9uIHBhZ2VzXG5cdCAqL1xuXHRASW5wdXQoKSBlbmFibGVQYWdpbmF0aW9uUGFnZXM6IGJvb2xlYW4gPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBXZXRoZXIgdG8gZW5hYmxlIGV4cG9ydFxuXHQgKi9cblx0QElucHV0KCkgZW5hYmxlRXhwb3J0OiBib29sZWFuID0gdHJ1ZTtcblxuXHQvKipcblx0ICogVGhlIGN1cnJlbnQgcGFnZVxuXHQgKi9cblx0QElucHV0KCkgcGFnZTogbnVtYmVyID0gMTtcblxuXHQvKipcblx0ICogVGhlIHRvdGFsIGFtb3VudCBvZiBpdGVtc1xuXHQgKi9cblx0QElucHV0KCkgdG90YWwhOiBudW1iZXI7XG5cblx0LyoqXG5cdCAqIEV2ZW50IHdoZW5ldmVyIHRoZSBwYWdlIGNoYW5nZXNcblx0ICovXG5cdEBPdXRwdXQoKSBwYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHQvKipcblx0ICogVGhlIGFtb3VudCBvZiBpdGVtcyBwZXIgcGFnZVxuXHQgKi9cblx0QElucHV0KCkgcGFnZVNpemU6IG51bWJlciA9IGRlZmF1bHRTaXplO1xuXG5cdC8qKlxuXHQgKiBUaGUgb3B0aW9ucyBmb3IgdGhlIHBhZ2Ugc2l6ZVxuXHQgKi9cblx0QElucHV0KCkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IGRlZmF1bHRTaXplT3B0aW9ucztcblxuXHQvKipcblx0ICogRXZlbnQgd2hlbmV2ZXIgdGhlIHBhZ2UgY2hhbmdlc1xuXHQgKi9cblx0QE91dHB1dCgpIHBhZ2VTaXplQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHQvKipcblx0ICogRXZlbnQgd2hlbmV2ZXIgdGhlIHBhZ2UgY2hhbmdlc1xuXHQgKi9cblx0QE91dHB1dCgpIGV4cG9ydDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0LyoqXG5cdCAqIFdldGhlciB0byBoaWRlIHdoZW4gdGhlcmUgaXMgb25seSAxIHBhZ2UgYXZhaWxhYmxlXG5cdCAqL1xuXHRASW5wdXQoKSBoaWRlT25TaW5nbGVQYWdlOiBib29sZWFuID0gdHJ1ZTtcblxuXHQvKiBFbXB0eSBzdGF0ZSBzdGFydCAqL1xuXHRASW5wdXQoKSBlbXB0eVN0YXRlVHlwZTogJ25vX2ZpbHRlcicgfCAnZmlsdGVyZWQnID0gJ25vX2ZpbHRlcic7XG5cblx0QElucHV0KCkgZW1wdHlTdGF0ZUlsbHVzdHJhdGlvbjogSWxsdXN0cmF0aW9uVmFyaWFudCA9ICd0YWJsZSc7XG5cdEBJbnB1dCgpIGVtcHR5U3RhdGVIZWFkZXIhOiBzdHJpbmc7XG5cdEBJbnB1dCgpIGVtcHR5U3RhdGVDb250ZW50ITogc3RyaW5nO1xuXHRASW5wdXQoKSBlbXB0eVN0YXRlQWN0aW9uITogc3RyaW5nO1xuXHRASW5wdXQoKSBlbXB0eVN0YXRlQWN0aW9uSWNvbjogSWNvblZhcmlhbnQgPSAncGx1cyc7XG5cblx0QElucHV0KCkgZW5hYmxlRW1wdHlTdGF0ZUFjdGlvbjogYm9vbGVhbiA9IHRydWU7XG5cblx0QElucHV0KCkgZW1wdHlTdGF0ZUZpbHRlcmVkSWxsdXN0cmF0aW9uOiBJbGx1c3RyYXRpb25WYXJpYW50ID0gJ3NlYXJjaCc7XG5cdEBJbnB1dCgpIGVtcHR5U3RhdGVGaWx0ZXJlZEhlYWRlciE6IHN0cmluZztcblx0QElucHV0KCkgZW1wdHlTdGF0ZUZpbHRlcmVkQ29udGVudCE6IHN0cmluZztcblxuXHQvKipcblx0ICogV2V0aGVyIHRvIGVuYWJsZSBzY3JvbGxpbmdcblx0ICovXG5cdEBJbnB1dCgpIGVuYWJsZVNjcm9sbDogYm9vbGVhbiA9IGZhbHNlO1xuXHRAVmlld0NoaWxkcmVuKFBUYWJsZVJvdywgeyByZWFkOiBFbGVtZW50UmVmIH0pIHRhYmxlUm93cyE6IFF1ZXJ5TGlzdDxcblx0XHRFbGVtZW50UmVmPFBUYWJsZVJvdz5cblx0Pjtcblx0QFZpZXdDaGlsZHJlbihUYWJsZUNlbGwsIHsgcmVhZDogRWxlbWVudFJlZiB9KSB0YWJsZUNlbGxzITogUXVlcnlMaXN0PFxuXHRcdEVsZW1lbnRSZWY8VGFibGVDZWxsPlxuXHQ+O1xuXHRAVmlld0NoaWxkKCdzY3JvbGxDb250YWluZXInKSBzY3JvbGxDb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuXHRwdWJsaWMgcmVhY2hlZFNjcm9sbFN0YXJ0JCA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG5cdHB1YmxpYyByZWFjaGVkU2Nyb2xsRW5kJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXHRwcml2YXRlIF90b3RhbFdpZHRoID0gMDtcblx0cHJpdmF0ZSBfY2FsY3VsYXRlQ29sdW1uV2lkdGhzVGltZW91dD86IG51bWJlcjtcblxuXHRwcml2YXRlIF9yb3dDaGFuZ2VzU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXHRwcml2YXRlIF9jZWxsQ2hhbmdlc1N1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuXHQvKipcblx0ICogRXZlbnQgd2hlbmV2ZXIgdGhlIGVtcHR5IHN0YXRlIGlzIGNsaWNrZWRcblx0ICovXG5cdEBPdXRwdXQoKSBlbXB0eVN0YXRlQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHQvKiBFbXB0eSBzdGF0ZSBlbmQgKi9cblxuXHQvKlxuXHQgKiBXZXRoZXIgdG8gc2hvdyB0aGUgc2hhZG93IG9yIG5vdFxuXHQgKi9cblx0QElucHV0KCkgc2hhZG93OiBib29sZWFuID0gdHJ1ZTtcblxuXHRwdWJsaWMgZXh0cmFIZWFkZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10+KFtdKTtcblx0cHVibGljIGNvbHVtbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xuXHRwdWJsaWMgcGFyc2VkSXRlbXM6IGFueVtdID0gW107XG5cdHB1YmxpYyBsb2FkaW5nUm93cyA9IEFycmF5LmZyb20oe1xuXHRcdGxlbmd0aDogdGhpcy5hbW91bnRPZkxvYWRpbmdSb3dzLFxuXHR9KTtcblx0cHJpdmF0ZSBfY3RybERvd24gPSBmYWxzZTtcblxuXHQvLyBBbmd1bGFyIHN0dWZmXG5cdC8vIGN1c3RvbSBmaWx0ZXIgdGVtcGxhdGVcblx0QENvbnRlbnRDaGlsZChUYWJsZUN1c3RvbUZpbHRlckRpcmVjdGl2ZSwge1xuXHRcdHJlYWQ6IFRlbXBsYXRlUmVmLFxuXHRcdHN0YXRpYzogdHJ1ZSxcblx0fSlcblx0cHVibGljIGhlYWRlckN1c3RvbUZpbHRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG5cdC8vIGN1c3RvbSBhY3Rpb25zIHRlbXBsYXRlXG5cdEBDb250ZW50Q2hpbGQoVGFibGVDdXN0b21BY3Rpb25zRGlyZWN0aXZlLCB7XG5cdFx0cmVhZDogVGVtcGxhdGVSZWYsXG5cdFx0c3RhdGljOiB0cnVlLFxuXHR9KVxuXHRwdWJsaWMgaGVhZGVyQ3VzdG9tQWN0aW9uc1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG5cdC8vIGNvbHVtbiB0ZW1wbGF0ZXNcblx0QENvbnRlbnRDaGlsZHJlbihUYWJsZUNvbHVtbikgY29sdW1uRGVmaW5pdGlvbnMhOiBRdWVyeUxpc3Q8VGFibGVDb2x1bW4+O1xuXHRAQ29udGVudENoaWxkcmVuKFRhYmxlRXh0cmFIZWFkZXIpXG5cdGV4dHJhSGVhZGVyRGVmaW5pdGlvbnMhOiBRdWVyeUxpc3Q8VGFibGVFeHRyYUhlYWRlcj47XG5cblx0Ly8gZmlsdGVyIG1vZGFsXG5cdEBDb250ZW50Q2hpbGQoVGFibGVGaWx0ZXJNb2RhbERpcmVjdGl2ZSwge1xuXHRcdHJlYWQ6IFRlbXBsYXRlUmVmLFxuXHRcdHN0YXRpYzogdHJ1ZSxcblx0fSlcblx0cHVibGljIGZpbHRlck1vZGFsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cblx0cHVibGljIGZpbHRlck1vZGFsU2hvdyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuXHQvLyByb3cgYWN0aW9ucyB0ZW1wbGF0ZXNcblx0cHJpdmF0ZSBfcm93QWN0aW9ucyE6IFF1ZXJ5TGlzdDxUYWJsZVJvd0FjdGlvbj47XG5cdHByaXZhdGUgX3Jvd0FjdGlvbnNTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG5cdEBDb250ZW50Q2hpbGRyZW4oVGFibGVSb3dBY3Rpb24pXG5cdHNldCByb3dBY3Rpb25zKHY6IFF1ZXJ5TGlzdDxUYWJsZVJvd0FjdGlvbj4pIHtcblx0XHR0aGlzLl9yb3dBY3Rpb25zID0gdjtcblx0XHR0aGlzLl9zZXRSb3dTZWxlY3Rpb25EYXRhKCk7XG5cdH1cblx0Z2V0IHJvd0FjdGlvbnMoKTogUXVlcnlMaXN0PFRhYmxlUm93QWN0aW9uPiB7XG5cdFx0cmV0dXJuIHRoaXMuX3Jvd0FjdGlvbnM7XG5cdH1cblxuXHQvLyBjdXN0b20gcm93cyB0ZW1wbGF0ZXNcblx0QENvbnRlbnRDaGlsZHJlbihUYWJsZUN1c3RvbVJvd0RpcmVjdGl2ZSlcblx0Y3VzdG9tUm93cyE6IFF1ZXJ5TGlzdDxUYWJsZUN1c3RvbVJvd0RpcmVjdGl2ZT47XG5cblx0QElucHV0KCkgZmlsdGVyTW9kYWxIZWFkZXJUZXh0OiBzdHJpbmcgPSAnRmlsdGVycyc7XG5cdEBJbnB1dCgpIGZpbHRlck1vZGFsU2F2ZVRleHQ6IHN0cmluZyA9ICdTYXZlJztcblx0QElucHV0KCkgZmlsdGVyTW9kYWxDYW5jZWxUZXh0OiBzdHJpbmcgPSAnQ2FuY2VsJztcblx0QElucHV0KCkgZmlsdGVyTW9kYWxSZXNldFRleHQ6IHN0cmluZyA9ICdSZXNldCBmaWx0ZXJzJztcblxuXHRASW5wdXQoKSBmaWx0ZXJNb2RhbFNob3dSZXNldDogYm9vbGVhbiA9IGZhbHNlO1xuXHRASW5wdXQoKSBmaWx0ZXJNb2RhbFNob3dSZXNldE1vYmlsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdEBPdXRwdXQoKSBmaWx0ZXJNb2RhbFNob3c6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblx0QE91dHB1dCgpIGZpbHRlck1vZGFsU2F2ZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXHRAT3V0cHV0KCkgZmlsdGVyTW9kYWxSZXNldDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdHB1YmxpYyByb3dBY3Rpb25zUm93JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVSb3dBY3Rpb25bXT4oW10pO1xuXHRwdWJsaWMgcm93QWN0aW9uc0Zsb2F0aW5nQWxsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVSb3dBY3Rpb25bXT4oW10pO1xuXHRwdWJsaWMgcm93QWN0aW9uc0Zsb2F0aW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVSb3dBY3Rpb25bXT4oW10pO1xuXG5cdHB1YmxpYyBpc01vYmlsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGlzTW9iaWxlKCkpO1xuXG5cdC8vIHN0aWNreSBzZWxmLWNlbnRlclxuXHQvLyBtdC00IC1tYi01IGJvdHRvbS0xMSB6LVszXVxuXHQvLyBteS00IGJvdHRvbS0wXG5cdC8vIHBvaW50ZXItZXZlbnRzLW5vbmUgYW5pbWF0ZS1mbG9hdGluZy1tZW51LWNvbnRhaW5lci1vdXRcblx0Ly8gYW5pbWF0ZS1mbG9hdGluZy1tZW51LWNvbnRhaW5lci1pblxuXHQvLyBoaWRkZW5cblx0Ly8gaW5saW5lLWJsb2NrXG5cdHB1YmxpYyBmbG9hdGluZ01lbnVDb250YWluZXJDbGFzcyA9IGZsb2F0aW5nTWVudUNvbnRhaW5lckNsYXNzO1xuXG5cdHByaXZhdGUgX3Jlc2l6ZVRpbWVvdXQ6IHVua25vd247XG5cdHByaXZhdGUgX2lucHV0RW5hYmxlUm93U2VsZWN0aW9uOiBib29sZWFuID0gdGhpcy5lbmFibGVSb3dTZWxlY3Rpb247XG5cdHByaXZhdGUgX2lucHV0Um93U2VsZWN0aW9uTGltaXQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IHRoaXMucm93U2VsZWN0aW9uTGltaXQ7XG5cblx0cHJpdmF0ZSBfdGhlbWVEZWJvdW5jZT86IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuXG5cdHB1YmxpYyBmb290ZXJIaWRkZW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cblx0cHVibGljIGNuID0gY247XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG5cdG5nT25Jbml0KCkge1xuXHRcdHRoaXMuX3BhcnNlSXRlbXModGhpcy5pdGVtcyk7XG5cblx0XHRvblN0YXRlQ2hhbmdlKCd0aGVtZScsIHZhbHVlID0+IHRoaXMuX2NoZWNrVGhlbWUodmFsdWUpKTtcblxuXHRcdHRoaXMubG9hZGluZ1Jvd3MgPSBBcnJheS5mcm9tKHtcblx0XHRcdGxlbmd0aDogdGhpcy5hbW91bnRPZkxvYWRpbmdSb3dzLFxuXHRcdH0pO1xuXG5cdFx0dGhpcy5maWx0ZXJNb2RhbFNob3ckXG5cdFx0XHQucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcblx0XHRcdC5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy5maWx0ZXJNb2RhbFNob3cubmV4dCh2YWx1ZSkpO1xuXHR9XG5cblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuXHRcdGlmIChjaGFuZ2VzWydpdGVtcyddKSB7XG5cdFx0XHR0aGlzLl9wYXJzZUl0ZW1zKGNoYW5nZXNbJ2l0ZW1zJ10uY3VycmVudFZhbHVlKTtcblx0XHR9XG5cblx0XHRpZiAoY2hhbmdlc1snYW1vdW50T2ZMb2FkaW5nUm93cyddKSB7XG5cdFx0XHR0aGlzLmxvYWRpbmdSb3dzID0gQXJyYXkuZnJvbSh7XG5cdFx0XHRcdGxlbmd0aDogY2hhbmdlc1snYW1vdW50T2ZMb2FkaW5nUm93cyddLmN1cnJlbnRWYWx1ZSxcblx0XHRcdH0pO1xuXHRcdH1cblxuXHRcdGxldCBjYWxjdWxhdGVSb3dTZWxlY3Rpb25EYXRhID0gZmFsc2U7XG5cdFx0aWYgKGNoYW5nZXNbJ2VuYWJsZVJvd1NlbGVjdGlvbiddKSB7XG5cdFx0XHR0aGlzLl9pbnB1dEVuYWJsZVJvd1NlbGVjdGlvbiA9XG5cdFx0XHRcdGNoYW5nZXNbJ2VuYWJsZVJvd1NlbGVjdGlvbiddLmN1cnJlbnRWYWx1ZTtcblx0XHRcdGNhbGN1bGF0ZVJvd1NlbGVjdGlvbkRhdGEgPSB0cnVlO1xuXHRcdH1cblxuXHRcdGlmIChjaGFuZ2VzWydyb3dTZWxlY3Rpb25MaW1pdCddKSB7XG5cdFx0XHR0aGlzLl9pbnB1dFJvd1NlbGVjdGlvbkxpbWl0ID0gY2hhbmdlc1sncm93U2VsZWN0aW9uTGltaXQnXS5jdXJyZW50VmFsdWU7XG5cdFx0XHRjYWxjdWxhdGVSb3dTZWxlY3Rpb25EYXRhID0gdHJ1ZTtcblx0XHR9XG5cblx0XHRpZiAoY2FsY3VsYXRlUm93U2VsZWN0aW9uRGF0YSB8fCBjaGFuZ2VzWydzZWxlY3RlZFJvd3MnXSkge1xuXHRcdFx0dGhpcy5fc2V0Um93U2VsZWN0aW9uRGF0YSgpO1xuXHRcdH1cblxuXHRcdGlmIChjaGFuZ2VzWydlbmFibGVTY3JvbGwnXT8uY3VycmVudFZhbHVlKSB7XG5cdFx0XHR0aGlzLl9jaGVja0NoYW5nZXNTdWJzY3JpcHRpb25zKCk7XG5cdFx0fVxuXHR9XG5cblx0bmdBZnRlclZpZXdJbml0KCkge1xuXHRcdGlmICh0aGlzLmVuYWJsZVNjcm9sbCkge1xuXHRcdFx0dGhpcy5fY2hlY2tDaGFuZ2VzU3Vic2NyaXB0aW9ucygpO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLmNvbHVtbkRlZmluaXRpb25zKSB7XG5cdFx0XHR0aGlzLmNvbHVtbkRlZmluaXRpb25zLmNoYW5nZXNcblx0XHRcdFx0LnBpcGUodW50aWxEZXN0cm95ZWQodGhpcyksIGRlYm91bmNlVGltZSgxMDApKVxuXHRcdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2dlbmVyYXRlQ29sdW1ucygpKTtcblx0XHRcdHRoaXMuX2dlbmVyYXRlQ29sdW1ucygpO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLmV4dHJhSGVhZGVyRGVmaW5pdGlvbnMpIHtcblx0XHRcdHRoaXMuZXh0cmFIZWFkZXJEZWZpbml0aW9ucy5jaGFuZ2VzXG5cdFx0XHRcdC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpLCBkZWJvdW5jZVRpbWUoMTAwKSlcblx0XHRcdFx0LnN1YnNjcmliZSgoKSA9PiB0aGlzLl9nZW5lcmF0ZUV4dHJhSGVhZGVycygpKTtcblx0XHRcdHRoaXMuX2dlbmVyYXRlRXh0cmFIZWFkZXJzKCk7XG5cdFx0fVxuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG5cdG9uUmVzaXplKCkge1xuXHRcdHRoaXMuX3NldFJvd1NlbGVjdGlvbkRhdGEoKTtcblx0XHR0aGlzLl9jYWxjdWxhdGVDb2x1bW5XaWR0aHMoKTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuXHRrZXlEb3duKHsga2V5IH06IHsga2V5OiBzdHJpbmcgfSkge1xuXHRcdGlmIChrZXkgIT09ICdDb250cm9sJyB8fCB0aGlzLl9jdHJsRG93biA9PT0gdHJ1ZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMuX2N0cmxEb3duID0gdHJ1ZTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleXVwJywgWyckZXZlbnQnXSlcblx0a2V5VXAoeyBrZXkgfTogeyBrZXk6IHN0cmluZyB9KSB7XG5cdFx0aWYgKGtleSAhPT0gJ0NvbnRyb2wnIHx8IHRoaXMuX2N0cmxEb3duID09PSBmYWxzZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMuX2N0cmxEb3duID0gZmFsc2U7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdkb2N1bWVudDp2aXNpYmlsaXR5Y2hhbmdlJywgWyckZXZlbnQnXSlcblx0dmlzaWJpbGl0eUNoYW5nZSgpIHtcblx0XHRpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlICE9PSAnaGlkZGVuJyB8fCB0aGlzLl9jdHJsRG93biA9PT0gZmFsc2UpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLl9jdHJsRG93biA9IGZhbHNlO1xuXHR9XG5cblx0b25RdWVyeUNoYW5nZSh7IGRldGFpbCB9OiBhbnkpIHtcblx0XHR0aGlzLnF1ZXJ5Q2hhbmdlLmVtaXQoZGV0YWlsKTtcblx0fVxuXG5cdG9uUXVpY2tGaWx0ZXIoeyBkZXRhaWwgfTogYW55KSB7XG5cdFx0dGhpcy5xdWlja0ZpbHRlci5lbWl0KGRldGFpbCk7XG5cdH1cblxuXHRvblBhZ2VTaXplQ2hhbmdlKHsgZGV0YWlsIH06IGFueSkge1xuXHRcdHRoaXMucGFnZVNpemUgPSBkZXRhaWw7XG5cdFx0dGhpcy5wYWdlU2l6ZUNoYW5nZS5lbWl0KGRldGFpbCk7XG5cdH1cblxuXHRvblBhZ2VDaGFuZ2UoeyBkZXRhaWwgfTogYW55KSB7XG5cdFx0dGhpcy5wYWdlID0gZGV0YWlsO1xuXHRcdHRoaXMucGFnZUNoYW5nZS5lbWl0KGRldGFpbCk7XG5cdH1cblxuXHRvbkZpbHRlck1vZGFsU2F2ZSgpIHtcblx0XHR0aGlzLmZpbHRlck1vZGFsU2F2ZS5uZXh0KCk7XG5cdFx0dGhpcy5maWx0ZXJNb2RhbFNob3ckLm5leHQoZmFsc2UpO1xuXHR9XG5cblx0b25GaWx0ZXJNb2RhbFJlc2V0KHJlc2V0UXVpY2tGaWx0ZXIgPSBmYWxzZSkge1xuXHRcdHRoaXMuZmlsdGVyTW9kYWxSZXNldC5uZXh0KHJlc2V0UXVpY2tGaWx0ZXIpO1xuXHRcdHRoaXMuZmlsdGVyTW9kYWxTaG93JC5uZXh0KGZhbHNlKTtcblx0fVxuXG5cdGVtcHR5U3RhdGVDbGlja2VkKCkge1xuXHRcdGlmICh0aGlzLmVuYWJsZUFjdGlvbikge1xuXHRcdFx0dGhpcy5hY3Rpb24uZW1pdCgpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICghdGhpcy5lbmFibGVFbXB0eVN0YXRlQWN0aW9uKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5lbXB0eVN0YXRlQWN0aW9uQ2xpY2suZW1pdCgpO1xuXHR9XG5cblx0cGFyc2VSb3dBY3Rpb25zUm93KGFjdGlvbnM6IFRhYmxlUm93QWN0aW9uW10gfCBudWxsLCByb3dJbmRleDogbnVtYmVyKSB7XG5cdFx0aWYgKCFhY3Rpb25zPy5sZW5ndGgpIHtcblx0XHRcdHJldHVybiBbXTtcblx0XHR9XG5cblx0XHRyZXR1cm4gYWN0aW9ucy5maWx0ZXIoXG5cdFx0XHRhID0+ICFhLnNob3dGdW5jdGlvbiB8fCBhLnNob3dGdW5jdGlvbih0aGlzLnBhcnNlZEl0ZW1zW3Jvd0luZGV4XSlcblx0XHQpO1xuXHR9XG5cblx0b25Db250YWluZXJYU2Nyb2xsKGV2OiBhbnkpIHtcblx0XHRpZiAoIXRoaXMuZW5hYmxlU2Nyb2xsKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5fY2FsY3VsYXRlU2Nyb2xsUG9zaXRpb24oZXYpO1xuXHR9XG5cblx0cHJpdmF0ZSBfcGFyc2VJdGVtcyhpdGVtczogc3RyaW5nIHwgYW55W10pIHtcblx0XHRpZiAoIWl0ZW1zKSB7XG5cdFx0XHR0aGlzLnBhcnNlZEl0ZW1zID0gW107XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKEFycmF5LmlzQXJyYXkoaXRlbXMpKSB7XG5cdFx0XHR0aGlzLnBhcnNlZEl0ZW1zID0gaXRlbXM7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5wYXJzZWRJdGVtcyA9IEpTT04ucGFyc2UoaXRlbXMpO1xuXHR9XG5cblx0cHJpdmF0ZSBfZ2VuZXJhdGVDb2x1bW5zKCkge1xuXHRcdGxldCBkZWZpbml0aW9uc0FycmF5ID0gQXJyYXkuZnJvbSh0aGlzLmNvbHVtbkRlZmluaXRpb25zKTtcblxuXHRcdGRlZmluaXRpb25zQXJyYXkgPSB0aGlzLl9wYXJzZURlZmluaXRpb25zKFxuXHRcdFx0ZGVmaW5pdGlvbnNBcnJheVxuXHRcdCkgYXMgdW5rbm93biBhcyBUYWJsZUNvbHVtbltdO1xuXG5cdFx0dGhpcy5jb2x1bW5zJC5uZXh0KGRlZmluaXRpb25zQXJyYXkpO1xuXHR9XG5cblx0cHJpdmF0ZSBfZ2VuZXJhdGVFeHRyYUhlYWRlcnMoKSB7XG5cdFx0bGV0IGRlZmluaXRpb25zQXJyYXkgPSBBcnJheS5mcm9tKHRoaXMuZXh0cmFIZWFkZXJEZWZpbml0aW9ucyk7XG5cblx0XHRkZWZpbml0aW9uc0FycmF5ID0gdGhpcy5fcGFyc2VEZWZpbml0aW9ucyhcblx0XHRcdGRlZmluaXRpb25zQXJyYXlcblx0XHQpIGFzIHVua25vd24gYXMgVGFibGVFeHRyYUhlYWRlcltdO1xuXG5cdFx0Zm9yIChjb25zdCBjb2wgb2YgZGVmaW5pdGlvbnNBcnJheSkge1xuXHRcdFx0Y29sLnN0aWNreSA9IGNvbC5zdGlja3kgPT09IHRydWUgPyAnc2Vjb25kYXJ5JyA6IGZhbHNlO1xuXHRcdH1cblxuXHRcdHRoaXMuZXh0cmFIZWFkZXJzJC5uZXh0KGRlZmluaXRpb25zQXJyYXkpO1xuXHR9XG5cblx0cHVibGljIF9jaGVja2JveERpc2FibGVkKGl0ZW06IGFueSwgcm93SW5kZXg6IG51bWJlcikge1xuXHRcdGNvbnN0IHNlbGVjdGlvbkNvbnRhaW5zID0gdGhpcy5fc2VsZWN0aW9uQ29udGFpbnMoaXRlbSwgcm93SW5kZXgpO1xuXHRcdHJldHVybiAoXG5cdFx0XHQodGhpcy5jYW5TZWxlY3RLZXkgJiYgIWl0ZW1bdGhpcy5jYW5TZWxlY3RLZXldKSB8fFxuXHRcdFx0KHRoaXMucm93U2VsZWN0aW9uTGltaXQgIT09IHVuZGVmaW5lZCAmJlxuXHRcdFx0XHQhc2VsZWN0aW9uQ29udGFpbnMgJiZcblx0XHRcdFx0dGhpcy5zZWxlY3RlZFJvd3MubGVuZ3RoID09PSB0aGlzLnJvd1NlbGVjdGlvbkxpbWl0KVxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgX3NlbGVjdEFsbENoYW5nZSgkZXZlbnQ6IGFueSwgZm9yY2VWYWx1ZT86IGJvb2xlYW4pIHtcblx0XHRpZiAoIXRoaXMuZW5hYmxlUm93U2VsZWN0aW9uKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgdmFsdWUgPSBmb3JjZVZhbHVlID09PSB1bmRlZmluZWQgPyAkZXZlbnQuZGV0YWlsIDogZm9yY2VWYWx1ZTtcblxuXHRcdGlmICh2YWx1ZSkge1xuXHRcdFx0Y29uc3QgdG9BZGQgPSBbXTtcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXJzZWRJdGVtcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCByb3cgPSB0aGlzLnBhcnNlZEl0ZW1zW2ldO1xuXHRcdFx0XHRpZiAodGhpcy5jYW5TZWxlY3RLZXkgJiYgIXJvd1t0aGlzLmNhblNlbGVjdEtleV0pIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICh0aGlzLl9zZWxlY3Rpb25Db250YWlucyhyb3csIGkpKSB7XG5cdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHR0b0FkZC5wdXNoKHJvdyk7XG5cdFx0XHRcdHRoaXMucm93U2VsZWN0ZWQuZW1pdChyb3cpO1xuXG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHR0aGlzLnJvd1NlbGVjdGlvbkxpbWl0ICE9PSB1bmRlZmluZWQgJiZcblx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkUm93cy5sZW5ndGggKyB0b0FkZC5sZW5ndGggPT09IHRoaXMucm93U2VsZWN0aW9uTGltaXRcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0dGhpcy5zZWxlY3RlZFJvd3MgPSBbLi4udGhpcy5zZWxlY3RlZFJvd3MsIC4uLnRvQWRkXTtcblx0XHRcdHRoaXMuc2VsZWN0ZWRSb3dzQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFJvd3MpO1xuXG5cdFx0XHRpZiAodGhpcy5lbmFibGVGbG9hdGluZ01lbnUpIHtcblx0XHRcdFx0dGhpcy5fc2hvd0Zsb2F0aW5nTWVudSgpO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNlbGVjdGVkUm93cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3QgdmFsdWUgPSB0aGlzLnNlbGVjdGVkUm93c1tpXTtcblx0XHRcdGNvbnN0IHJvdyA9IHRoaXMucGFyc2VkSXRlbXMuZmluZChcblx0XHRcdFx0ZCA9PiB0aGlzLl9nZXRTZWxlY3Rpb25WYWx1ZShkLCBpKSA9PT0gdGhpcy5fZ2V0U2VsZWN0aW9uVmFsdWUodmFsdWUsIGkpXG5cdFx0XHQpO1xuXG5cdFx0XHRpZiAoIXJvdykge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5yb3dEZXNlbGVjdGVkLmVtaXQocm93KTtcblx0XHR9XG5cblx0XHR0aGlzLnNlbGVjdGVkUm93cyA9IFtdO1xuXHRcdHRoaXMuc2VsZWN0ZWRSb3dzQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFJvd3MpO1xuXHR9XG5cblx0cHVibGljIF9jaGVja2JveENoYW5nZSh0YXJnZXQ6IGFueSwgaW5kZXg6IG51bWJlcikge1xuXHRcdGlmICghdGhpcy5lbmFibGVSb3dTZWxlY3Rpb24pIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCB2YWx1ZSA9IHRoaXMuX2dldENoZWNrZWRWYWx1ZSh0YXJnZXQpO1xuXHRcdGlmIChcblx0XHRcdHZhbHVlICYmXG5cdFx0XHR0aGlzLnJvd1NlbGVjdGlvbkxpbWl0ICE9PSB1bmRlZmluZWQgJiZcblx0XHRcdHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aCA+PSB0aGlzLnJvd1NlbGVjdGlvbkxpbWl0XG5cdFx0KSB7XG5cdFx0XHR0YXJnZXQuY2hlY2tlZCA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IHJvdyA9IHRoaXMucGFyc2VkSXRlbXNbaW5kZXhdO1xuXG5cdFx0aWYgKHRoaXMuY2FuU2VsZWN0S2V5ICYmICFyb3dbdGhpcy5jYW5TZWxlY3RLZXldKSB7XG5cdFx0XHR0YXJnZXQuY2hlY2tlZCA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICh2YWx1ZSkge1xuXHRcdFx0dGhpcy5zZWxlY3RlZFJvd3MgPSBbLi4udGhpcy5zZWxlY3RlZFJvd3MsIHJvd107XG5cdFx0XHR0aGlzLnNlbGVjdGVkUm93c0NoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRSb3dzKTtcblx0XHRcdHRoaXMucm93U2VsZWN0ZWQuZW1pdChyb3cpO1xuXG5cdFx0XHRpZiAodGhpcy5lbmFibGVGbG9hdGluZ01lbnUpIHtcblx0XHRcdFx0dGhpcy5fc2hvd0Zsb2F0aW5nTWVudSgpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IGluZGV4T2ZUb1JlbW92ZSA9IHRoaXMuX3NlbGVjdGlvbkNvbnRhaW5zKHJvdywgaW5kZXgsIHRydWUpO1xuXG5cdFx0Ly8gd2UgbmVlZCB0byBkbyB0aGlzLCBiZWNhdXNlIHNwbGljZSBkb2VzIG5vdCB0cmlnZ2VyIHRoZSBzZWxlY3Rpb24gc2V0dGVyLlxuXHRcdGNvbnN0IHNlbGVjdGlvbiA9IFsuLi50aGlzLnNlbGVjdGVkUm93c107XG5cdFx0c2VsZWN0aW9uLnNwbGljZShpbmRleE9mVG9SZW1vdmUsIDEpO1xuXHRcdHRoaXMuc2VsZWN0ZWRSb3dzID0gc2VsZWN0aW9uO1xuXHRcdHRoaXMuc2VsZWN0ZWRSb3dzQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFJvd3MpO1xuXHRcdHRoaXMucm93RGVzZWxlY3RlZC5lbWl0KHJvdyk7XG5cdH1cblxuXHRwcml2YXRlIF9nZXRDaGVja2VkVmFsdWUodGFyZ2V0OiBhbnkpIHtcblx0XHRyZXR1cm4gdGFyZ2V0Py5jaGVja2VkO1xuXHR9XG5cblx0cHJpdmF0ZSBfZ2V0U2VsZWN0aW9uVmFsdWUocm93OiBhbnksIGluZGV4OiBudW1iZXIpIHtcblx0XHRyZXR1cm4gdGhpcy5zZWxlY3Rpb25LZXkgPyByb3c/Llt0aGlzLnNlbGVjdGlvbktleV0gfHwgaW5kZXggOiBpbmRleDtcblx0fVxuXG5cdHB1YmxpYyBfc2VsZWN0aW9uQ29udGFpbnMocm93OiBhbnksIGluZGV4OiBudW1iZXIsIHJldHVybkluZGV4ID0gZmFsc2UpOiBhbnkge1xuXHRcdGNvbnN0IHJldHVyblZhbHVlID0gdGhpcy5zZWxlY3RlZFJvd3MuZmluZEluZGV4KFxuXHRcdFx0aXRlbSA9PlxuXHRcdFx0XHR0aGlzLl9nZXRTZWxlY3Rpb25WYWx1ZShyb3csIGluZGV4KSA9PT1cblx0XHRcdFx0dGhpcy5fZ2V0U2VsZWN0aW9uVmFsdWUoaXRlbSwgaW5kZXgpXG5cdFx0KTtcblx0XHRyZXR1cm4gIXJldHVybkluZGV4ID8gcmV0dXJuVmFsdWUgPj0gMCA6IHJldHVyblZhbHVlO1xuXHR9XG5cblx0cHVibGljIF9zZWxlY3Rpb25Db250YWluc0FsbCgpIHtcblx0XHRsZXQgcmV0dXJuVmFsdWUgPSB0cnVlO1xuXHRcdGlmICghdGhpcy5wYXJzZWRJdGVtcz8ubGVuZ3RoKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0aWYgKFxuXHRcdFx0dGhpcy5yb3dTZWxlY3Rpb25MaW1pdCAhPT0gdW5kZWZpbmVkICYmXG5cdFx0XHR0aGlzLnNlbGVjdGVkUm93cy5sZW5ndGggPT09IHRoaXMucm93U2VsZWN0aW9uTGltaXRcblx0XHQpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXJzZWRJdGVtcz8ubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IGl0ZW0gPSB0aGlzLnBhcnNlZEl0ZW1zW2ldO1xuXHRcdFx0Y29uc3QgY29udGFpbnMgPSB0aGlzLl9zZWxlY3Rpb25Db250YWlucyhpdGVtLCBpKTtcblxuXHRcdFx0aWYgKCFjb250YWlucykge1xuXHRcdFx0XHRyZXR1cm5WYWx1ZSA9IGZhbHNlO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gcmV0dXJuVmFsdWU7XG5cdH1cblxuXHRwdWJsaWMgX3NlbGVjdGlvbkluZGV0ZXJtaW5hdGUoKSB7XG5cdFx0aWYgKCF0aGlzLnBhcnNlZEl0ZW1zPy5sZW5ndGggfHwgIXRoaXMuc2VsZWN0ZWRSb3dzPy5sZW5ndGgpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRpZiAoXG5cdFx0XHR0aGlzLnJvd1NlbGVjdGlvbkxpbWl0ICE9PSB1bmRlZmluZWQgJiZcblx0XHRcdHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aCA9PT0gdGhpcy5yb3dTZWxlY3Rpb25MaW1pdFxuXHRcdCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdGxldCBjb250YWluc0NvdW50ID0gMDtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGFyc2VkSXRlbXM/Lmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRjb25zdCBpdGVtID0gdGhpcy5wYXJzZWRJdGVtc1tpXTtcblx0XHRcdGNvbnN0IGNvbnRhaW5zID0gdGhpcy5fc2VsZWN0aW9uQ29udGFpbnMoaXRlbSwgaSk7XG5cblx0XHRcdGlmIChjb250YWlucykge1xuXHRcdFx0XHRjb250YWluc0NvdW50Kys7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNvbnRhaW5zQ291bnQgPiAwICYmIGNvbnRhaW5zQ291bnQgIT09IHRoaXMucGFyc2VkSXRlbXMubGVuZ3RoO1xuXHR9XG5cblx0cHVibGljIF9yb3dDbGljaygkZXZlbnQ6IE1vdXNlRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcblx0XHRjb25zdCB0YXJnZXQgPSAkZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG5cdFx0aWYgKFxuXHRcdFx0dGFyZ2V0LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2lucHV0JyB8fFxuXHRcdFx0KHRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS50eXBlID09PSAnY2hlY2tib3gnXG5cdFx0KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3Qgcm93ID0gdGhpcy5fZmluZFJvdyh0YXJnZXQpO1xuXHRcdGNvbnN0IGFjdGlvbiA9IHRoaXMuX2ZpbmRSb3dBY3Rpb24odGFyZ2V0KTtcblxuXHRcdGlmIChhY3Rpb24pIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5lbmFibGVSb3dDbGljaykge1xuXHRcdFx0Y29uc3QgaXRlbSA9IHRoaXMucGFyc2VkSXRlbXNbaW5kZXhdO1xuXHRcdFx0dGhpcy5yb3dDbGljay5lbWl0KHtcblx0XHRcdFx0aXRlbSxcblx0XHRcdFx0Y3RybERvd246IHRoaXMuX2N0cmxEb3duLFxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLmVuYWJsZVJvd1NlbGVjdGlvbikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNoZWNrYm94ID0gcm93Py5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0nKTtcblxuXHRcdGlmICghY2hlY2tib3gpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjaGVja2JveC5jaGVja2VkID0gIWNoZWNrYm94LmNoZWNrZWQ7XG5cdFx0dGhpcy5fY2hlY2tib3hDaGFuZ2UoY2hlY2tib3gsIGluZGV4KTtcblx0fVxuXG5cdHB1YmxpYyBfZ2V0QWN0aW9uUm91dGVyTGluayhcblx0XHRyb3V0ZXJMaW5rOiBUYWJsZVJvd0FjdGlvblJvdXRlckxpbmssXG5cdFx0cm93SW5kZXg6IG51bWJlclxuXHQpOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgYW55W10+IHwgQXN5bmNJdGVtPHN0cmluZyB8IGFueVtdPiB7XG5cdFx0aWYgKHR5cGVvZiByb3V0ZXJMaW5rID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRjb25zdCBpdGVtID0gdGhpcy5wYXJzZWRJdGVtc1tyb3dJbmRleF07XG5cdFx0XHRyZXR1cm4gdGhpcy5fZ2V0QWN0aW9uUm91dGVyTGluayhyb3V0ZXJMaW5rKGl0ZW0pLCByb3dJbmRleCk7XG5cdFx0fVxuXG5cdFx0aWYgKHR5cGVvZiByb3V0ZXJMaW5rID09PSAnc3RyaW5nJyB8fCBBcnJheS5pc0FycmF5KHJvdXRlckxpbmspKSB7XG5cdFx0XHRyZXR1cm4gbmV3IEJlaGF2aW9yU3ViamVjdChyb3V0ZXJMaW5rKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gcm91dGVyTGluaztcblx0fVxuXG5cdHB1YmxpYyBfZ2V0QWN0aW9uUXVlcnlQYXJhbXMoXG5cdFx0cXVlcnlQYXJhbXM6IFRhYmxlUm93QWN0aW9uUXVlcnlQYXJhbXMsXG5cdFx0cm93SW5kZXg6IG51bWJlclxuXHQpOiBCZWhhdmlvclN1YmplY3Q8UGFyYW1zPiB8IEFzeW5jSXRlbTxQYXJhbXM+IHtcblx0XHRpZiAodHlwZW9mIHF1ZXJ5UGFyYW1zID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRjb25zdCBpdGVtID0gdGhpcy5wYXJzZWRJdGVtc1tyb3dJbmRleF07XG5cdFx0XHRyZXR1cm4gdGhpcy5fZ2V0QWN0aW9uUXVlcnlQYXJhbXMocXVlcnlQYXJhbXMoaXRlbSksIHJvd0luZGV4KTtcblx0XHR9XG5cblx0XHRpZiAocXVlcnlQYXJhbXMgaW5zdGFuY2VvZiBPYmplY3QgJiYgcXVlcnlQYXJhbXMuY29uc3RydWN0b3IgPT09IE9iamVjdCkge1xuXHRcdFx0cmV0dXJuIG5ldyBCZWhhdmlvclN1YmplY3QocXVlcnlQYXJhbXMpO1xuXHRcdH1cblxuXHRcdHJldHVybiBxdWVyeVBhcmFtcyBhcyBBc3luY0l0ZW08UGFyYW1zPjtcblx0fVxuXG5cdHB1YmxpYyBfcm93QWN0aW9uQ2xpY2soYWN0aW9uOiBUYWJsZVJvd0FjdGlvbiwgcm93SW5kZXg/OiBudW1iZXIpIHtcblx0XHRpZiAoYWN0aW9uLmRpc2FibGVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKGFjdGlvbi5sb2FkaW5nKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKCFhY3Rpb24uYWN0aW9uKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKFxuXHRcdFx0YWN0aW9uLnR5cGUgPT09ICdtdWx0aScgfHxcblx0XHRcdChhY3Rpb24udHlwZSA9PT0gJ2JvdGgnICYmIHJvd0luZGV4ID09PSB1bmRlZmluZWQpXG5cdFx0KSB7XG5cdFx0XHRhY3Rpb24uYWN0aW9uLmVtaXQoe1xuXHRcdFx0XHRpdGVtczogdGhpcy5zZWxlY3RlZFJvd3MsXG5cdFx0XHRcdG11bHRpOiB0cnVlLFxuXHRcdFx0XHRjdHJsRG93bjogdGhpcy5fY3RybERvd24sXG5cdFx0XHR9KTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoXG5cdFx0XHRhY3Rpb24ucm91dGVyTGluayB8fFxuXHRcdFx0KEFycmF5LmlzQXJyYXkoYWN0aW9uLnJvdXRlckxpbmspICYmIGFjdGlvbi5yb3V0ZXJMaW5rLmxlbmd0aClcblx0XHQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBpdGVtID1cblx0XHRcdHJvd0luZGV4ICE9PSB1bmRlZmluZWRcblx0XHRcdFx0PyB0aGlzLnBhcnNlZEl0ZW1zW3Jvd0luZGV4XVxuXHRcdFx0XHQ6IHRoaXMuc2VsZWN0ZWRSb3dzWzBdO1xuXHRcdGFjdGlvbi5hY3Rpb24uZW1pdCh7XG5cdFx0XHRpdGVtLFxuXHRcdFx0bXVsdGk6IGZhbHNlLFxuXHRcdFx0Y3RybERvd246IHRoaXMuX2N0cmxEb3duLFxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfZmluZFJvdyhlbDogSFRNTEVsZW1lbnQgfCBudWxsKTogYW55IHtcblx0XHRpZiAoIWVsKSB7XG5cdFx0XHRyZXR1cm4gZWw7XG5cdFx0fVxuXG5cdFx0aWYgKGVsPy50YWdOYW1lPy50b0xvd2VyQ2FzZSgpID09PSAncC10YWJsZS1yb3cnKSB7XG5cdFx0XHRyZXR1cm4gZWw7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuX2ZpbmRSb3coZWw/LnBhcmVudEVsZW1lbnQpO1xuXHR9XG5cblx0cHJpdmF0ZSBfZmluZFJvd0FjdGlvbihlbDogSFRNTEVsZW1lbnQgfCBudWxsKTogYW55IHtcblx0XHRpZiAoIWVsKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cblx0XHRpZiAoXG5cdFx0XHRlbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaXMtYWN0aW9uJykgIT09IG51bGwgJiZcblx0XHRcdGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1pcy1hY3Rpb24nKSAhPT0gJ2ZhbHNlJ1xuXHRcdCkge1xuXHRcdFx0cmV0dXJuIGVsO1xuXHRcdH1cblxuXHRcdGlmIChlbD8udGFnTmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gJ3AtdGFibGUtcm93Jykge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuX2ZpbmRSb3dBY3Rpb24oZWw/LnBhcmVudEVsZW1lbnQpO1xuXHR9XG5cblx0cHJpdmF0ZSBfc2V0Um93U2VsZWN0aW9uRGF0YSgpIHtcblx0XHRpZiAodGhpcy5fcmVzaXplVGltZW91dCkge1xuXHRcdFx0Y2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZVRpbWVvdXQgYXMgbnVtYmVyKTtcblx0XHR9XG5cblx0XHQvLyBXZSBhZGQgYSB0aW1lb3V0IGhlcmUgYmVjYXVzZSBpdCdzIGEgbG90IGVhc2llciBvbiB0aGUgbWFjaGluZSB0byBkbyB0aGVzZSB3aGVuIHNvbWVvbmUgaXMgZG9uZVxuXHRcdC8vIHJlc2l6aW5nIGFuZCBwbGF5aW5nIGFyb3VuZCB3aXRoIHRoZWlyIGJyb3dzZXJcblx0XHR0aGlzLl9yZXNpemVUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRjb25zdCBtb2JpbGUgPSBpc01vYmlsZSgpO1xuXHRcdFx0dGhpcy5pc01vYmlsZSQubmV4dChtb2JpbGUpO1xuXG5cdFx0XHRjb25zdCBhY3Rpb25zID0gQXJyYXkuZnJvbSh0aGlzLl9yb3dBY3Rpb25zKSBhcyBUYWJsZVJvd0FjdGlvbltdO1xuXG5cdFx0XHRpZiAodGhpcy5fcm93QWN0aW9uc1N1YnNjcmlwdGlvbnMubGVuZ3RoKSB7XG5cdFx0XHRcdGZvciAobGV0IHN1YnNjcmlwdGlvbiBvZiB0aGlzLl9yb3dBY3Rpb25zU3Vic2NyaXB0aW9ucykge1xuXHRcdFx0XHRcdHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuX3Jvd0FjdGlvbnNTdWJzY3JpcHRpb25zID0gYWN0aW9ucy5tYXAoYWN0aW9uID0+XG5cdFx0XHRcdGFjdGlvbi5fbG9hZGluZ0NoYW5nZWRcblx0XHRcdFx0XHQucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcblx0XHRcdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKSlcblx0XHRcdCk7XG5cblx0XHRcdC8vIHdlIGhhY2sgdGhpcyB0byBhbnlbXSB0byBtYWtlIGl0IHdvcmsuLlxuXHRcdFx0Y29uc3Qgcm93QWN0aW9uc1JvdyA9IGFjdGlvbnMuZmlsdGVyKFxuXHRcdFx0XHRhID0+IGEudHlwZSA9PT0gJ2JvdGgnIHx8IGEudHlwZSA9PT0gJ3NpbmdsZSdcblx0XHRcdCk7XG5cdFx0XHRjb25zdCByb3dBY3Rpb25zRmxvYXRpbmcgPSBhY3Rpb25zLmZpbHRlcihcblx0XHRcdFx0YSA9PlxuXHRcdFx0XHRcdCh0aGlzLl9pbnB1dEVuYWJsZVJvd1NlbGVjdGlvbiAmJlxuXHRcdFx0XHRcdFx0KGEudHlwZSA9PT0gJ2JvdGgnIHx8IGEudHlwZSA9PT0gJ211bHRpJykpIHx8XG5cdFx0XHRcdFx0KG1vYmlsZSAmJiBhLnR5cGUgPT09ICdzaW5nbGUnICYmICFhLnJvdXRlckxpbmspXG5cdFx0XHQpO1xuXG5cdFx0XHRsZXQgcm93U2VsZWN0aW9uTGltaXQgPSB0aGlzLl9pbnB1dFJvd1NlbGVjdGlvbkxpbWl0O1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRtb2JpbGUgJiYgLy8gd2UncmUgbW9iaWxlXG5cdFx0XHRcdHJvd0FjdGlvbnNGbG9hdGluZz8ubGVuZ3RoICYmIC8vIHdlIGhhdmUgYXRsZWFzdCAxIGl0ZW0gaW4gX3Jvd0FjdGlvbnNGbG9hdGluZ1xuXHRcdFx0XHQoKHJvd1NlbGVjdGlvbkxpbWl0ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5lbmFibGVSb3dTZWxlY3Rpb24pIHx8XG5cdFx0XHRcdFx0IXRoaXMuZW5hYmxlUm93U2VsZWN0aW9uKVxuXHRcdFx0KSB7XG5cdFx0XHRcdHJvd1NlbGVjdGlvbkxpbWl0ID0gMTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5yb3dTZWxlY3Rpb25MaW1pdCA9IHJvd1NlbGVjdGlvbkxpbWl0O1xuXG5cdFx0XHRsZXQgZW5hYmxlUm93U2VsZWN0aW9uID0gdGhpcy5faW5wdXRFbmFibGVSb3dTZWxlY3Rpb247XG5cdFx0XHRpZiAoXG5cdFx0XHRcdG1vYmlsZSAmJiAvLyB3ZSdyZSBtb2JpbGVcblx0XHRcdFx0cm93QWN0aW9uc0Zsb2F0aW5nPy5sZW5ndGggJiYgLy8gd2UgaGF2ZSBhdGxlYXN0IDEgaXRlbSBpbiBfcm93QWN0aW9uc0Zsb2F0aW5nXG5cdFx0XHRcdCFlbmFibGVSb3dTZWxlY3Rpb25cblx0XHRcdCkge1xuXHRcdFx0XHRlbmFibGVSb3dTZWxlY3Rpb24gPSB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5lbmFibGVSb3dTZWxlY3Rpb24gPSBlbmFibGVSb3dTZWxlY3Rpb247XG5cblx0XHRcdHRoaXMucm93QWN0aW9uc1JvdyQubmV4dChyb3dBY3Rpb25zUm93KTtcblx0XHRcdHRoaXMucm93QWN0aW9uc0Zsb2F0aW5nQWxsJC5uZXh0KHJvd0FjdGlvbnNGbG9hdGluZyk7XG5cblx0XHRcdHRoaXMuZmxvYXRpbmdNZW51U2hvd24kXG5cdFx0XHRcdC5waXBlKFxuXHRcdFx0XHRcdHRha2UoMSksXG5cdFx0XHRcdFx0ZmlsdGVyKHYgPT4gISF2KVxuXHRcdFx0XHQpXG5cdFx0XHRcdC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fc2hvd0Zsb2F0aW5nTWVudSgpKTtcblx0XHR9LCAyMDApO1xuXHR9XG5cblx0cHJpdmF0ZSBfc2hvd0Zsb2F0aW5nTWVudSgpIHtcblx0XHR0aGlzLnJvd0FjdGlvbnNGbG9hdGluZ0FsbCQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoYWN0aW9ucyA9PiB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdHRoaXMucm93U2VsZWN0aW9uTGltaXQgPT09IDEgJiZcblx0XHRcdFx0YWN0aW9ucy5maW5kSW5kZXgoXG5cdFx0XHRcdFx0YSA9PiAoYS50eXBlID09PSAnc2luZ2xlJyB8fCBhLnR5cGUgPT09ICdib3RoJykgJiYgYS5zaG93RnVuY3Rpb25cblx0XHRcdFx0KSA+PSAwXG5cdFx0XHQpIHtcblx0XHRcdFx0YWN0aW9ucyA9IGFjdGlvbnMuZmlsdGVyKFxuXHRcdFx0XHRcdGEgPT5cblx0XHRcdFx0XHRcdGEudHlwZSA9PT0gJ211bHRpJyB8fFxuXHRcdFx0XHRcdFx0IWEuc2hvd0Z1bmN0aW9uIHx8XG5cdFx0XHRcdFx0XHRhLnNob3dGdW5jdGlvbih0aGlzLnNlbGVjdGVkUm93c1swXSlcblx0XHRcdFx0KTtcblx0XHRcdH1cblxuXHRcdFx0dGhpcy5yb3dBY3Rpb25zRmxvYXRpbmckLm5leHQoYWN0aW9ucyk7XG5cdFx0XHR0aGlzLmZsb2F0aW5nTWVudVNob3duJC5uZXh0KHRydWUpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBfcGFyc2VEZWZpbml0aW9ucyhcblx0XHRkZWZpbml0aW9uc0FycmF5OiBUYWJsZUNvbHVtbltdIHwgVGFibGVFeHRyYUhlYWRlcltdXG5cdCkge1xuXHRcdHJldHVybiBkZWZpbml0aW9uc0FycmF5Lm1hcChkZWZpbml0aW9uID0+XG5cdFx0XHR0aGlzLl9wYXJzZURlZmluaXRpb25TaXplcyhkZWZpbml0aW9uKVxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIF9wYXJzZURlZmluaXRpb25TaXplcyhkZWZpbml0aW9uOiBUYWJsZUNvbHVtbiB8IFRhYmxlRXh0cmFIZWFkZXIpIHtcblx0XHRjb25zdCBkZWZpbml0aW9uQW55ID0gZGVmaW5pdGlvbiBhcyBhbnk7XG5cdFx0bGV0IHBhcnNlZFNpemVzOiBUYWJsZUNvbHVtblNpemVzID0geyBkZWZhdWx0OiAnZnVsbCcgfTtcblxuXHRcdGZvciAoY29uc3QgW2luZGV4LCBzaXplXSBvZiB0YWJsZUNvbHVtU2l6ZXNPcHRpb25zLmVudHJpZXMoKSkge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHRkZWZpbml0aW9uQW55LnNpemVzID09PSAnYXV0bycgfHxcblx0XHRcdFx0ZGVmaW5pdGlvbkFueS5zaXplcyA9PT0gJ2hpZGRlbicgfHxcblx0XHRcdFx0ZGVmaW5pdGlvbkFueS5zaXplcyA9PT0gJ2Z1bGwnIHx8XG5cdFx0XHRcdHR5cGVvZiBkZWZpbml0aW9uQW55LnNpemVzID09PSAnbnVtYmVyJ1xuXHRcdFx0KSB7XG5cdFx0XHRcdHBhcnNlZFNpemVzW3NpemVdID1cblx0XHRcdFx0XHRkZWZpbml0aW9uQW55LnNpemVzID09PSAnYXV0bycgPyAnZnVsbCcgOiBkZWZpbml0aW9uQW55LnNpemVzO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0cGFyc2VkU2l6ZXNbc2l6ZV0gPVxuXHRcdFx0XHRkZWZpbml0aW9uQW55LnNpemVzW3NpemVdID8/XG5cdFx0XHRcdHBhcnNlZFNpemVzW3RhYmxlQ29sdW1TaXplc09wdGlvbnNbaW5kZXggLSAxXV07XG5cdFx0fVxuXG5cdFx0ZGVmaW5pdGlvbi5wYXJzZWRTaXplcyA9IHBhcnNlZFNpemVzO1xuXHRcdHJldHVybiBkZWZpbml0aW9uO1xuXHR9XG5cblx0cHJpdmF0ZSBfY2hlY2tDaGFuZ2VzU3Vic2NyaXB0aW9ucygpIHtcblx0XHRpZiAoIXRoaXMuX3Jvd0NoYW5nZXNTdWJzY3JpcHRpb24gJiYgdGhpcy50YWJsZVJvd3MpIHtcblx0XHRcdHRoaXMuX3Jvd0NoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLnRhYmxlUm93cy5jaGFuZ2VzXG5cdFx0XHRcdC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpLCBkZWJvdW5jZVRpbWUoMTAwKSlcblx0XHRcdFx0LnN1YnNjcmliZSgoKSA9PiB0aGlzLl9jYWxjdWxhdGVDb2x1bW5XaWR0aHMoKSk7XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLl9jZWxsQ2hhbmdlc1N1YnNjcmlwdGlvbiAmJiB0aGlzLnRhYmxlQ2VsbHMpIHtcblx0XHRcdHRoaXMuX2NlbGxDaGFuZ2VzU3Vic2NyaXB0aW9uID0gdGhpcy50YWJsZUNlbGxzLmNoYW5nZXNcblx0XHRcdFx0LnBpcGUodW50aWxEZXN0cm95ZWQodGhpcyksIGRlYm91bmNlVGltZSgxMDApKVxuXHRcdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2NhbGN1bGF0ZUNvbHVtbldpZHRocygpKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIF9jYWxjdWxhdGVDb2x1bW5XaWR0aHMoKSB7XG5cdFx0aWYgKCF0aGlzLmVuYWJsZVNjcm9sbCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICghdGhpcy50YWJsZUNlbGxzIHx8ICF0aGlzLnRhYmxlUm93cykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLl9jYWxjdWxhdGVDb2x1bW5XaWR0aHNUaW1lb3V0KSB7XG5cdFx0XHRjbGVhclRpbWVvdXQodGhpcy5fY2FsY3VsYXRlQ29sdW1uV2lkdGhzVGltZW91dCk7XG5cdFx0XHR0aGlzLl9jYWxjdWxhdGVDb2x1bW5XaWR0aHNUaW1lb3V0ID0gMDtcblx0XHR9XG5cblx0XHRjb25zdCByb3dzID0gdGhpcy50YWJsZVJvd3MubWFwKFxuXHRcdFx0YyA9PiBjLm5hdGl2ZUVsZW1lbnQgYXMgdW5rbm93biBhcyBIVE1MRWxlbWVudFxuXHRcdCk7XG5cdFx0Y29uc3QgY2VsbHMgPSByb3dzLmZsYXRNYXAoXG5cdFx0XHRyb3cgPT5cblx0XHRcdFx0QXJyYXkuZnJvbShyb3cucXVlcnlTZWxlY3RvckFsbCgncC10YWJsZS1jZWxsLW5neCcpKSBhcyBIVE1MRWxlbWVudFtdXG5cdFx0KTtcblxuXHRcdHRoaXMuX2NhbGN1bGF0ZUNvbHVtbldpZHRoc1RpbWVvdXQgPSBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcblx0XHRcdHRoaXMuX3NldFJvd3NXaWR0aChyb3dzKTtcblxuXHRcdFx0Y29uc3QgcHJvbWlzZXM6IFByb21pc2U8dm9pZD5bXSA9IFtdO1xuXHRcdFx0Zm9yIChjb25zdCBjZWxsIG9mIGNlbGxzKSB7XG5cdFx0XHRcdGlmIChjZWxsLnN0eWxlLndpZHRoPy5sZW5ndGgpIHtcblx0XHRcdFx0XHRjZWxsLnN0eWxlLndpZHRoID0gJ3Vuc2V0Jztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHByb21pc2VzLnB1c2goXG5cdFx0XHRcdFx0bmV3IFByb21pc2UocmVzb2x2ZSA9PlxuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHJlY3QgPSBjZWxsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHRcdFx0XHRcdFx0XHRjZWxsLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBgd2lkdGg6ICR7cmVjdC53aWR0aH1weCAhaW1wb3J0YW50YCk7XG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoKTtcblx0XHRcdFx0XHRcdH0sIDEwMClcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cblx0XHRcdGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcblxuXHRcdFx0dGhpcy5fc2V0Um93c1dpZHRoKHJvd3MsICdtaW4tY29udGVudCcpO1xuXG5cdFx0XHR0aGlzLl9yZXNldFNjcm9sbFBvc2l0aW9uKCk7XG5cdFx0fSwgMjAwKSBhcyB1bmtub3duIGFzIG51bWJlcjtcblx0fVxuXG5cdHByaXZhdGUgX3NldFJvd3NXaWR0aChcblx0XHRyb3dzOiBIVE1MRWxlbWVudFtdLFxuXHRcdHZhbHVlOiAnbWluLWNvbnRlbnQnIHwgbnVsbCA9IG51bGxcblx0KSB7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRjb25zdCByb3cgPSByb3dzW2ldO1xuXG5cdFx0XHRjb25zdCBzaGFkb3cgPSByb3cuc2hhZG93Um9vdDtcblx0XHRcdGlmICghc2hhZG93KSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBmaXJzdERpdiA9IHNoYWRvdy5xdWVyeVNlbGVjdG9yKCcqOm50aC1jaGlsZCgxKScpO1xuXHRcdFx0aWYgKCFmaXJzdERpdikge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3Qgc2Vjb25kRGl2ID0gZmlyc3REaXYucXVlcnlTZWxlY3RvcignKjpudGgtY2hpbGQoMSknKTtcblx0XHRcdGlmICghc2Vjb25kRGl2KSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAodmFsdWUgPT09IG51bGwpIHtcblx0XHRcdFx0Zmlyc3REaXYuc2V0QXR0cmlidXRlKCdzdHlsZScsICcnKTtcblx0XHRcdFx0c2Vjb25kRGl2LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnJyk7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRmaXJzdERpdi5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ3dpZHRoOiBtaW4tY29udGVudDsnKTtcblx0XHRcdHNlY29uZERpdi5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ3dpZHRoOiBtaW4tY29udGVudDsnKTtcblxuXHRcdFx0aWYgKGkgPT09IDApIHtcblx0XHRcdFx0dGhpcy5fdG90YWxXaWR0aCA9IGZpcnN0RGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX3Jlc2V0U2Nyb2xsUG9zaXRpb24oKSB7XG5cdFx0aWYgKHRoaXMuc2Nyb2xsQ29udGFpbmVyKSB7XG5cdFx0XHR0aGlzLnNjcm9sbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSAwO1xuXHRcdH1cblxuXHRcdHRoaXMucmVhY2hlZFNjcm9sbFN0YXJ0JC5uZXh0KHRydWUpO1xuXHRcdHRoaXMucmVhY2hlZFNjcm9sbEVuZCQubmV4dChmYWxzZSk7XG5cblx0XHR0aGlzLl9jYWxjdWxhdGVTY3JvbGxQb3NpdGlvbih7XG5cdFx0XHR0YXJnZXQ6IHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9jYWxjdWxhdGVTY3JvbGxQb3NpdGlvbih7IHRhcmdldCB9OiB7IHRhcmdldDogSFRNTERpdkVsZW1lbnQgfSkge1xuXHRcdHRoaXMucmVhY2hlZFNjcm9sbFN0YXJ0JC5uZXh0KHRhcmdldC5zY3JvbGxMZWZ0IDwgMTApO1xuXG5cdFx0Y29uc3QgcmlnaHQgPSB0YXJnZXQuc2Nyb2xsTGVmdCArIHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcblx0XHR0aGlzLnJlYWNoZWRTY3JvbGxFbmQkLm5leHQocmlnaHQgPiB0aGlzLl90b3RhbFdpZHRoIC0gMTApO1xuXHR9XG5cblx0cHJpdmF0ZSBfY2hlY2tUaGVtZSh2YWx1ZTogJ2RhcmsnIHwgJ2xpZ2h0Jykge1xuXHRcdGlmICh0aGlzLl90aGVtZURlYm91bmNlKSB7XG5cdFx0XHRjbGVhclRpbWVvdXQodGhpcy5fdGhlbWVEZWJvdW5jZSk7XG5cdFx0XHR0aGlzLl90aGVtZURlYm91bmNlID0gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdHRoaXMuX3RoZW1lRGVib3VuY2UgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMudGhlbWUgPSB2YWx1ZTtcblx0XHRcdHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcblx0XHR9LCAxMDApO1xuXHR9XG59XG4iLCI8cC10YWJsZS1jb250YWluZXI+XG5cdDxwLXRhYmxlLWhlYWRlclxuXHRcdCpuZ0lmPVwiZW5hYmxlSGVhZGVyXCJcblx0XHRjbGFzcz1cIm1iLThcIlxuXHRcdFtxdWlja0ZpbHRlcnNdPVwicXVpY2tGaWx0ZXJzXCJcblx0XHRbYWN0aXZlUXVpY2tGaWx0ZXJJZGVudGlmaWVyXT1cImFjdGl2ZVF1aWNrRmlsdGVySWRlbnRpZmllclwiXG5cdFx0KHF1aWNrRmlsdGVyKT1cIm9uUXVpY2tGaWx0ZXIoJGV2ZW50KVwiXG5cdFx0W2VuYWJsZVNlYXJjaF09XCJlbmFibGVTZWFyY2hcIlxuXHRcdFtxdWVyeV09XCJxdWVyeVwiXG5cdFx0KHF1ZXJ5Q2hhbmdlKT1cIm9uUXVlcnlDaGFuZ2UoJGV2ZW50KVwiXG5cdFx0W2VuYWJsZUZpbHRlcl09XCJlbmFibGVGaWx0ZXJcIlxuXHRcdFtlbmFibGVGaWx0ZXJEZXNrdG9wXT1cImVuYWJsZUZpbHRlckRlc2t0b3BcIlxuXHRcdFtzZWxlY3RlZEZpbHRlcnNBbW91bnRdPVwic2VsZWN0ZWRGaWx0ZXJzQW1vdW50XCJcblx0XHRbZmlsdGVyQnV0dG9uVGVtcGxhdGVdPVwiZmlsdGVyQnV0dG9uVGVtcGxhdGVcIlxuXHRcdChmaWx0ZXIpPVwiZmlsdGVyTW9kYWxTaG93JC5uZXh0KHRydWUpXCJcblx0XHRbZW5hYmxlQWN0aW9uXT1cImVuYWJsZUFjdGlvblwiXG5cdFx0W2NhblVzZUFjdGlvbl09XCJhY3Rpb25CdXR0b25FbmFibGVkXCJcblx0XHRbYWN0aW9uQnV0dG9uVGVtcGxhdGVdPVwiYWN0aW9uQnV0dG9uVGVtcGxhdGVcIlxuXHRcdFthY3Rpb25Mb2FkaW5nXT1cImFjdGlvbkJ1dHRvbkxvYWRpbmdcIlxuXHRcdFthY3Rpb25UZXh0XT1cImFjdGlvbkJ1dHRvblRleHRcIlxuXHRcdFthY3Rpb25JY29uXT1cImFjdGlvbkJ1dHRvbkljb25cIlxuXHRcdChhY3Rpb24pPVwiYWN0aW9uLmVtaXQoKVwiXG5cdFx0W2l0ZW1zU2VsZWN0ZWRBbW91bnRdPVwic2VsZWN0ZWRSb3dzLmxlbmd0aFwiXG5cdFx0W2VuYWJsZUV4cG9ydF09XCJlbmFibGVFeHBvcnRcIlxuXHRcdChleHBvcnQpPVwiZXhwb3J0LmVtaXQoKVwiXG5cdFx0W2xvYWRpbmddPVwiaGVhZGVyTG9hZGluZ1wiXG5cdD5cblx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyQ3VzdG9tRmlsdGVyVGVtcGxhdGVcIj5cblx0XHRcdDxuZy1jb250YWluZXJcblx0XHRcdFx0Km5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJDdXN0b21GaWx0ZXJUZW1wbGF0ZVwiXG5cdFx0XHQ+PC9uZy1jb250YWluZXI+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cblx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyQ3VzdG9tQWN0aW9uc1RlbXBsYXRlXCI+XG5cdFx0XHQ8bmctY29udGFpbmVyXG5cdFx0XHRcdCpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyQ3VzdG9tQWN0aW9uc1RlbXBsYXRlXCJcblx0XHRcdD48L25nLWNvbnRhaW5lcj5cblx0XHQ8L25nLWNvbnRhaW5lcj5cblx0PC9wLXRhYmxlLWhlYWRlcj5cblxuXHQ8ZGl2XG5cdFx0Y2xhc3M9XCJyZWxhdGl2ZSBmbGV4LTFcIlxuXHRcdCpuZ0lmPVwiZW5hYmxlU2Nyb2xsOyBlbHNlIHJvd3NUZW1wbGF0ZVwiXG5cdD5cblx0XHQ8ZGl2XG5cdFx0XHRjbGFzcz1cImZsZXggZmxleC1jb2wgb3ZlcmZsb3cteC1hdXRvXCJcblx0XHRcdCNzY3JvbGxDb250YWluZXJcblx0XHRcdFtjbGFzc109XCJcblx0XHRcdFx0Y24oXG5cdFx0XHRcdFx0J2JlZm9yZTphYnNvbHV0ZSBiZWZvcmU6dG9wLTAgYmVmb3JlOmxlZnQtMCBiZWZvcmU6ei1bMV0gYmVmb3JlOnBvaW50ZXItZXZlbnRzLW5vbmUnLFxuXHRcdFx0XHRcdCdiZWZvcmU6dy0yNCBiZWZvcmU6aC1mdWxsIGJlZm9yZTp0cmFuc2l0aW9uLW9wYWNpdHknLFxuXHRcdFx0XHRcdCdiZWZvcmU6YmctZ3JhZGllbnQtdG8tciBiZWZvcmU6ZnJvbS13aGl0ZSBkYXJrOmJlZm9yZTpmcm9tLWh1cnJpY2FuZS03MDAgYmVmb3JlOnZpYS13aGl0ZS84MCBkYXJrOmJlZm9yZTp2aWEtaHVycmljYW5lLTcwMC85MCBiZWZvcmU6dG8tdHJhbnNwYXJlbnQnLFxuXHRcdFx0XHRcdCdhZnRlcjphYnNvbHV0ZSBhZnRlcjp0b3AtMCBhZnRlcjpyaWdodC0wIGFmdGVyOnotWzBdIGJlZm9yZTpwb2ludGVyLWV2ZW50cy1ub25lJyxcblx0XHRcdFx0XHQnYWZ0ZXI6dy0yNCBhZnRlcjpoLWZ1bGwgYWZ0ZXI6dHJhbnNpdGlvbi1vcGFjaXR5Jyxcblx0XHRcdFx0XHQnYWZ0ZXI6YmctZ3JhZGllbnQtdG8tbCBhZnRlcjpmcm9tLXdoaXRlIGFmdGVyOmRhcms6ZnJvbS1odXJyaWNhbmUtNzAwIGFmdGVyOnZpYS13aGl0ZS84MCBkYXJrOmFmdGVyOnZpYS1odXJyaWNhbmUtNzAwLzkwIGFmdGVyOnRvLXRyYW5zcGFyZW50Jyxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQnYmVmb3JlOm9wYWNpdHktMCc6IHJlYWNoZWRTY3JvbGxTdGFydCQgfCBhc3luYyxcblx0XHRcdFx0XHRcdCdhZnRlcjpvcGFjaXR5LTAnOiByZWFjaGVkU2Nyb2xsRW5kJCB8IGFzeW5jLFxuXHRcdFx0XHRcdFx0J2JlZm9yZTpvcGFjaXR5LTEwMCc6IChyZWFjaGVkU2Nyb2xsU3RhcnQkIHwgYXN5bmMpID09PSBmYWxzZSxcblx0XHRcdFx0XHRcdCdhZnRlcjpvcGFjaXR5LTEwMCc6IChyZWFjaGVkU2Nyb2xsRW5kJCB8IGFzeW5jKSA9PT0gZmFsc2Vcblx0XHRcdFx0XHR9XG5cdFx0XHRcdClcblx0XHRcdFwiXG5cdFx0XHQoc2Nyb2xsKT1cIm9uQ29udGFpbmVyWFNjcm9sbCgkZXZlbnQpXCJcblx0XHQ+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicm93c1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXG5cdDxuZy1jb250YWluZXIgKm5nSWY9XCJlbmFibGVGbG9hdGluZ01lbnUgJiYgZW5hYmxlUm93U2VsZWN0aW9uXCI+XG5cdFx0PHAtZmxvYXRpbmctbWVudS1jb250YWluZXJcblx0XHRcdFt1c2VkSW5UYWJsZV09XCJ0cnVlXCJcblx0XHRcdFtjbGFzc109XCJcblx0XHRcdFx0ZmxvYXRpbmdNZW51Q29udGFpbmVyQ2xhc3Moe1xuXHRcdFx0XHRcdGhhc0Zvb3RlcjogZW5hYmxlRm9vdGVyICYmIChmb290ZXJIaWRkZW4kIHwgYXN5bmMpID09PSBmYWxzZSxcblx0XHRcdFx0XHRhY3RpdmU6IHNlbGVjdGVkUm93cy5sZW5ndGggPiAwLFxuXHRcdFx0XHRcdHNob3duOiAkYW55KGZsb2F0aW5nTWVudVNob3duJCB8IGFzeW5jKVxuXHRcdFx0XHR9KVxuXHRcdFx0XCJcblx0XHRcdFthbW91bnRdPVwiZmxvYXRpbmdNZW51QW1vdW50U2VsZWN0ZWRUZXh0XCJcblx0XHRcdFtlbmFibGVBbW91bnRTZWxlY3RlZF09XCIhIShyb3dBY3Rpb25zRmxvYXRpbmckIHwgYXN5bmMpPy5sZW5ndGhcIlxuXHRcdFx0KGNsb3NlKT1cIl9zZWxlY3RBbGxDaGFuZ2UobnVsbCwgZmFsc2UpXCJcblx0XHQ+XG5cdFx0XHQ8cC1mbG9hdGluZy1tZW51LWl0ZW1cblx0XHRcdFx0Km5nRm9yPVwibGV0IGFjdGlvbiBvZiByb3dBY3Rpb25zRmxvYXRpbmckIHwgYXN5bmNcIlxuXHRcdFx0XHRzbG90PVwiZmxvYXRpbmctbWVudS1pdGVtXCJcblx0XHRcdFx0W2Rpc2FibGVkXT1cIlxuXHRcdFx0XHRcdChhY3Rpb25bJ3R5cGUnXSA9PT0gJ3NpbmdsZScgJiYgc2VsZWN0ZWRSb3dzLmxlbmd0aCA+IDEpIHx8XG5cdFx0XHRcdFx0YWN0aW9uWydkaXNhYmxlZCddXG5cdFx0XHRcdFwiXG5cdFx0XHRcdFtsb2FkaW5nXT1cImFjdGlvblsnbG9hZGluZyddXCJcblx0XHRcdFx0W2ljb25dPVwiYWN0aW9uWydpY29uJ11cIlxuXHRcdFx0XHRbaWNvblJvdGF0ZV09XCJhY3Rpb25bJ2ljb25Sb3RhdGUnXVwiXG5cdFx0XHRcdFtpY29uRmxpcF09XCJhY3Rpb25bJ2ljb25GbGlwJ11cIlxuXHRcdFx0XHQoY2xpY2spPVwiX3Jvd0FjdGlvbkNsaWNrKGFjdGlvbilcIlxuXHRcdFx0PlxuXHRcdFx0XHR7eyBhY3Rpb25bJ2xhYmVsJ10gfX1cblx0XHRcdDwvcC1mbG9hdGluZy1tZW51LWl0ZW0+XG5cdFx0PC9wLWZsb2F0aW5nLW1lbnUtY29udGFpbmVyPlxuXHQ8L25nLWNvbnRhaW5lcj5cblxuXHQ8cC10YWJsZS1mb290ZXJcblx0XHQqbmdJZj1cImVuYWJsZUZvb3RlclwiXG5cdFx0W2hpZGVPblNpbmdsZVBhZ2VdPVwiaGlkZU9uU2luZ2xlUGFnZVwiXG5cdFx0W2VuYWJsZVBhZ2luYXRpb25TaXplXT1cImVuYWJsZVBhZ2luYXRpb25TaXplXCJcblx0XHRbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuXHRcdFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnZVNpemVPcHRpb25zXCJcblx0XHQocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCJcblx0XHRbZW5hYmxlUGFnaW5hdGlvblBhZ2VzXT1cImVuYWJsZVBhZ2luYXRpb25QYWdlc1wiXG5cdFx0W3BhZ2VdPVwicGFnZVwiXG5cdFx0W3RvdGFsXT1cInRvdGFsXCJcblx0XHQocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG5cdFx0W2xvYWRpbmddPVwiZm9vdGVyTG9hZGluZ1wiXG5cdFx0KGhpZGRlbkNoYW5nZSk9XCJmb290ZXJIaWRkZW4kLm5leHQoJGV2ZW50LmRldGFpbClcIlxuXHRcdFt0YWJsZUhlYWRlckhhc0FjdGlvbl09XCJlbmFibGVIZWFkZXIgJiYgZW5hYmxlQWN0aW9uICYmIGFjdGlvbkJ1dHRvbkVuYWJsZWRcIlxuXHQ+PC9wLXRhYmxlLWZvb3Rlcj5cbjwvcC10YWJsZS1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjcm93c1RlbXBsYXRlPlxuXHQ8cC10YWJsZS1yb3dcblx0XHQqbmdJZj1cIihleHRyYUhlYWRlcnMkIHwgYXN5bmMpPy5sZW5ndGhcIlxuXHRcdHZhcmlhbnQ9XCJoZWFkZXItc2Vjb25kYXJ5XCJcblx0XHRjbGFzcz1cInotWzJdXCJcblx0XHRbaXNMYXN0XT1cInRydWVcIlxuXHQ+XG5cdFx0PG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGV4dHJhSGVhZGVycyQgfCBhc3luYzsgbGV0IGluZGV4ID0gaW5kZXhcIj5cblx0XHRcdDxwLXRhYmxlLWNlbGwtbmd4XG5cdFx0XHRcdFtkZWZpbml0aW9uXT1cImNvbFwiXG5cdFx0XHRcdHZhcmlhbnQ9XCJoZWFkZXItc2Vjb25kYXJ5XCJcblx0XHRcdFx0W2luZGV4XT1cImluZGV4XCJcblx0XHRcdFx0W2NoZWNrYm94T2Zmc2V0XT1cImluZGV4ID09PSAwICYmIGVuYWJsZVJvd1NlbGVjdGlvblwiXG5cdFx0XHRcdFtzY3JvbGxhYmxlXT1cInRoaXMuZW5hYmxlU2Nyb2xsXCJcblx0XHRcdD5cblx0XHRcdFx0PGI+e3sgY29sLm5hbWUgfX08L2I+XG5cdFx0XHQ8L3AtdGFibGUtY2VsbC1uZ3g+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cdDwvcC10YWJsZS1yb3c+XG5cblx0PHAtdGFibGUtcm93IHZhcmlhbnQ9XCJoZWFkZXJcIj5cblx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1ucyQgfCBhc3luYzsgbGV0IGluZGV4ID0gaW5kZXhcIj5cblx0XHRcdDxwLXRhYmxlLWNlbGwtbmd4XG5cdFx0XHRcdFtkZWZpbml0aW9uXT1cImNvbFwiXG5cdFx0XHRcdFt2YWx1ZV09XCJjb2wubmFtZVwiXG5cdFx0XHRcdHZhcmlhbnQ9XCJoZWFkZXJcIlxuXHRcdFx0XHRbaW5kZXhdPVwiaW5kZXhcIlxuXHRcdFx0XHRbY2hlY2tib3hdPVwiXG5cdFx0XHRcdFx0KGluZGV4ID09PSAwIHx8IGNvbC5oYXNDaGVja2JveCkgJiYgZW5hYmxlUm93U2VsZWN0aW9uXG5cdFx0XHRcdFx0XHQ/IGNoZWNrYm94VGVtcGxhdGVcblx0XHRcdFx0XHRcdDogdW5kZWZpbmVkXG5cdFx0XHRcdFwiXG5cdFx0XHRcdFtzY3JvbGxhYmxlXT1cInRoaXMuZW5hYmxlU2Nyb2xsXCJcblx0XHRcdD48L3AtdGFibGUtY2VsbC1uZ3g+XG5cdFx0XHQ8bmctdGVtcGxhdGUgI2NoZWNrYm94VGVtcGxhdGU+XG5cdFx0XHRcdDxwLWNoZWNrYm94XG5cdFx0XHRcdFx0KGNoZWNrZWRDaGFuZ2UpPVwiX3NlbGVjdEFsbENoYW5nZSgkZXZlbnQpXCJcblx0XHRcdFx0XHRbY2hlY2tlZF09XCJfc2VsZWN0aW9uQ29udGFpbnNBbGwoKVwiXG5cdFx0XHRcdFx0W2luZGV0ZXJtaW5hdGVdPVwiX3NlbGVjdGlvbkluZGV0ZXJtaW5hdGUoKVwiXG5cdFx0XHRcdFx0W2NsYXNzLm9wYWNpdHktMF09XCJyb3dTZWxlY3Rpb25MaW1pdCAhPT0gdW5kZWZpbmVkXCJcblx0XHRcdFx0XHRbZGlzYWJsZWRdPVwicm93U2VsZWN0aW9uTGltaXQgIT09IHVuZGVmaW5lZFwiXG5cdFx0XHRcdD48L3AtY2hlY2tib3g+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDwvbmctY29udGFpbmVyPlxuXHQ8L3AtdGFibGUtcm93PlxuXG5cdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMSBmbGV4LWNvbFwiPlxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nOyBlbHNlIGNvbnRlbnRUZW1wbGF0ZVwiPlxuXHRcdFx0PHAtdGFibGUtcm93XG5cdFx0XHRcdCpuZ0Zvcj1cImxldCByIG9mIGxvYWRpbmdSb3dzOyBsZXQgcm93SW5kZXggPSBpbmRleFwiXG5cdFx0XHRcdGNsYXNzPVwiZ3JvdXBcIlxuXHRcdFx0XHRbZW5hYmxlSG92ZXJdPVwiZW5hYmxlUm93U2VsZWN0aW9uIHx8IGVuYWJsZVJvd0NsaWNrXCJcblx0XHRcdFx0W2lzTGFzdF09XCJyb3dJbmRleCA9PT0gbG9hZGluZ1Jvd3MubGVuZ3RoIC0gMVwiXG5cdFx0XHQ+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zJCB8IGFzeW5jOyBsZXQgaW5kZXggPSBpbmRleFwiPlxuXHRcdFx0XHRcdDxwLXRhYmxlLWNlbGwtbmd4XG5cdFx0XHRcdFx0XHRbZGVmaW5pdGlvbl09XCJjb2xcIlxuXHRcdFx0XHRcdFx0dmFyaWFudD1cImxvYWRpbmdcIlxuXHRcdFx0XHRcdFx0W2NoZWNrYm94XT1cIlxuXHRcdFx0XHRcdFx0XHQoaW5kZXggPT09IDAgfHwgY29sLmhhc0NoZWNrYm94KSAmJiBlbmFibGVSb3dTZWxlY3Rpb25cblx0XHRcdFx0XHRcdFx0XHQ/IGNoZWNrYm94VGVtcGxhdGVcblx0XHRcdFx0XHRcdFx0XHQ6IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0XCJcblx0XHRcdFx0XHRcdFtpbmRleF09XCJpbmRleFwiXG5cdFx0XHRcdFx0XHRbcm93SW5kZXhdPVwicm93SW5kZXhcIlxuXHRcdFx0XHRcdFx0W3Njcm9sbGFibGVdPVwidGhpcy5lbmFibGVTY3JvbGxcIlxuXHRcdFx0XHRcdD48L3AtdGFibGUtY2VsbC1uZ3g+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNjaGVja2JveFRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0PHAtbG9hZGVyXG5cdFx0XHRcdFx0XHRcdHZhcmlhbnQ9XCJnaG9zdFwiXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiaC02IHctNiByb3VuZGVkXCJcblx0XHRcdFx0XHRcdD48L3AtbG9hZGVyPlxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0PC9wLXRhYmxlLXJvdz5cblx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdDxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcnNlZEl0ZW1zPy5sZW5ndGg7IGVsc2UgZW1wdHlTdGF0ZVRlbXBsYXRlXCI+XG5cdFx0XHRcdDxwLXRhYmxlLXJvd1xuXHRcdFx0XHRcdCpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhcnNlZEl0ZW1zOyBsZXQgcm93SW5kZXggPSBpbmRleFwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJncm91cFwiXG5cdFx0XHRcdFx0W2VuYWJsZUhvdmVyXT1cImVuYWJsZVJvd1NlbGVjdGlvbiB8fCBlbmFibGVSb3dDbGlja1wiXG5cdFx0XHRcdFx0W2NoZWNrZWRdPVwiX3NlbGVjdGlvbkNvbnRhaW5zKGl0ZW0sIHJvd0luZGV4KVwiXG5cdFx0XHRcdFx0W2lzTGFzdF09XCJyb3dJbmRleCA9PT0gcGFyc2VkSXRlbXMubGVuZ3RoIC0gMVwiXG5cdFx0XHRcdFx0KGNsaWNrKT1cIl9yb3dDbGljaygkZXZlbnQsIHJvd0luZGV4KVwiXG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyXG5cdFx0XHRcdFx0XHQqbmdJZj1cIlxuXHRcdFx0XHRcdFx0XHRwYXJzZVJvd0FjdGlvbnNSb3coXG5cdFx0XHRcdFx0XHRcdFx0cm93QWN0aW9uc1JvdyQgfCBhc3luYyxcblx0XHRcdFx0XHRcdFx0XHRyb3dJbmRleFxuXHRcdFx0XHRcdFx0XHQpIGFzIHJvd0FjdGlvbnNSb3dcblx0XHRcdFx0XHRcdFwiXG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lclxuXHRcdFx0XHRcdFx0XHQqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnMkIHwgYXN5bmM7IGxldCBpbmRleCA9IGluZGV4XCJcblx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0PHAtdGFibGUtY2VsbC1uZ3hcblx0XHRcdFx0XHRcdFx0XHRbZGVmaW5pdGlvbl09XCJjb2xcIlxuXHRcdFx0XHRcdFx0XHRcdFtpdGVtXT1cIml0ZW1cIlxuXHRcdFx0XHRcdFx0XHRcdFtjaGVja2JveF09XCJcblx0XHRcdFx0XHRcdFx0XHRcdChpbmRleCA9PT0gMCB8fCBjb2wuaGFzQ2hlY2tib3gpICYmIGVuYWJsZVJvd1NlbGVjdGlvblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ/IGNoZWNrYm94VGVtcGxhdGVcblx0XHRcdFx0XHRcdFx0XHRcdFx0OiB1bmRlZmluZWRcblx0XHRcdFx0XHRcdFx0XHRcIlxuXHRcdFx0XHRcdFx0XHRcdFtpbmRleF09XCJpbmRleFwiXG5cdFx0XHRcdFx0XHRcdFx0W3Jvd0luZGV4XT1cInJvd0luZGV4XCJcblx0XHRcdFx0XHRcdFx0XHRbdGVtcGxhdGVdPVwiY29sLnRlbXBsYXRlXCJcblx0XHRcdFx0XHRcdFx0XHRbc2Nyb2xsYWJsZV09XCJ0aGlzLmVuYWJsZVNjcm9sbFwiXG5cdFx0XHRcdFx0XHRcdD48L3AtdGFibGUtY2VsbC1uZ3g+XG5cblx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNjaGVja2JveFRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0XHRcdDxwLWNoZWNrYm94XG5cdFx0XHRcdFx0XHRcdFx0XHQoY2hlY2tlZENoYW5nZSk9XCJfY2hlY2tib3hDaGFuZ2UoJGV2ZW50LnRhcmdldCwgcm93SW5kZXgpXCJcblx0XHRcdFx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJfY2hlY2tib3hEaXNhYmxlZChpdGVtLCByb3dJbmRleClcIlxuXHRcdFx0XHRcdFx0XHRcdFx0W2NoZWNrZWRdPVwiX3NlbGVjdGlvbkNvbnRhaW5zKGl0ZW0sIHJvd0luZGV4KVwiXG5cdFx0XHRcdFx0XHRcdFx0PjwvcC1jaGVja2JveD5cblx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXG5cdFx0XHRcdFx0XHQ8cC10YWJsZS1yb3ctYWN0aW9ucy1jb250YWluZXJcblx0XHRcdFx0XHRcdFx0Km5nSWY9XCIhIXJvd0FjdGlvbnNSb3c/Lmxlbmd0aCAmJiAhKGlzTW9iaWxlJCB8IGFzeW5jKVwiXG5cdFx0XHRcdFx0XHRcdFtjaGVja2VkXT1cIl9zZWxlY3Rpb25Db250YWlucyhpdGVtLCByb3dJbmRleClcIlxuXHRcdFx0XHRcdFx0XHRzbG90PVwiYWN0aW9uc1wiXG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiByb3dBY3Rpb25zUm93XCI+XG5cdFx0XHRcdFx0XHRcdFx0PHAtdG9vbHRpcFxuXHRcdFx0XHRcdFx0XHRcdFx0Km5nSWY9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0YWN0aW9uLnNob3dGdW5jdGlvblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD8gYWN0aW9uLnNob3dGdW5jdGlvbihwYXJzZWRJdGVtc1tyb3dJbmRleF0pXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0OiB0cnVlXG5cdFx0XHRcdFx0XHRcdFx0XHRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0W2NvbnRlbnRdPVwiYWN0aW9uWydsYWJlbCddXCJcblx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8cC1idXR0b25cblx0XHRcdFx0XHRcdFx0XHRcdFx0ZGF0YS1pcy1hY3Rpb25cblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyaWFudD1cInNlY29uZGFyeVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNsb3Q9XCJ0cmlnZ2VyXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0W2ljb25dPVwiYWN0aW9uWydpY29uJ11cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRbaWNvblJvdGF0ZV09XCJhY3Rpb25bJ2ljb25Sb3RhdGUnXVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGljb25GbGlwPVwiYWN0aW9uLmljb25GbGlwXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWNvbk9ubHk9XCJ0cnVlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0c2l6ZT1cInNtXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0W2xvYWRpbmddPVwiYWN0aW9uWydsb2FkaW5nJ11cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRbZGlzYWJsZWRdPVwiYWN0aW9uWydkaXNhYmxlZCddXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0W3JvdXRlckxpbmtdPVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0YWN0aW9uLnJvdXRlckxpbmtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdD8gKF9nZXRBY3Rpb25Sb3V0ZXJMaW5rKGFjdGlvbi5yb3V0ZXJMaW5rLCByb3dJbmRleClcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgfCBhc3luYylcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDogbnVsbFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRbcXVlcnlQYXJhbXNdPVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0YWN0aW9uLnF1ZXJ5UGFyYW1zXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ/IChfZ2V0QWN0aW9uUXVlcnlQYXJhbXMoYWN0aW9uLnF1ZXJ5UGFyYW1zLCByb3dJbmRleClcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgfCBhc3luYylcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDogbnVsbFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQob25DbGljayk9XCJfcm93QWN0aW9uQ2xpY2soYWN0aW9uLCByb3dJbmRleClcIlxuXHRcdFx0XHRcdFx0XHRcdFx0PjwvcC1idXR0b24+XG5cdFx0XHRcdFx0XHRcdFx0PC9wLXRvb2x0aXA+XG5cdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdFx0PC9wLXRhYmxlLXJvdy1hY3Rpb25zLWNvbnRhaW5lcj5cblx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0PC9wLXRhYmxlLXJvdz5cblx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cblx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjdXN0b21Sb3cgb2YgY3VzdG9tUm93c1wiPlxuXHRcdFx0PHAtdGFibGUtcm93XG5cdFx0XHRcdFt2YXJpYW50XT1cImN1c3RvbVJvdy52YXJpYW50XCJcblx0XHRcdFx0W2NsYXNzXT1cIntcblx0XHRcdFx0XHQnei1bMl0nOiBjdXN0b21Sb3cudmFyaWFudCA9PT0gJ3NlY29uZGFyeSdcblx0XHRcdFx0fVwiXG5cdFx0XHQ+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21Sb3cudGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdDwvcC10YWJsZS1yb3c+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cdDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlck1vZGFsVGVtcGxhdGVcIj5cblx0PHAtbW9kYWxcblx0XHRbaGVhZGVyXT1cImZpbHRlck1vZGFsSGVhZGVyVGV4dFwiXG5cdFx0W3Nob3ddPVwiZmlsdGVyTW9kYWxTaG93JCB8IGFzeW5jXCJcblx0XHQoY2xvc2VkKT1cImZpbHRlck1vZGFsU2hvdyQubmV4dChmYWxzZSlcIlxuXHQ+XG5cdFx0PGRpdlxuXHRcdFx0c2xvdD1cImNvbnRlbnRcIlxuXHRcdFx0Y2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC02XCJcblx0XHQ+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsdGVyTW9kYWxUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXZcblx0XHRcdHNsb3Q9XCJmb290ZXJcIlxuXHRcdFx0Y2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWJldHdlZW4gZ2FwLTRcIlxuXHRcdD5cblx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHQqbmdJZj1cImZpbHRlck1vZGFsU2hvd1Jlc2V0TW9iaWxlXCJcblx0XHRcdFx0Y2xhc3M9XCJmbGV4IHctZnVsbCB0YWJsZXQ6dy1hdXRvIGRlc2t0b3AteHM6aGlkZGVuXCJcblx0XHRcdFx0dmFyaWFudD1cInNlY29uZGFyeVwiXG5cdFx0XHRcdChvbkNsaWNrKT1cIm9uRmlsdGVyTW9kYWxSZXNldCh0cnVlKVwiXG5cdFx0XHQ+XG5cdFx0XHRcdHt7IGZpbHRlck1vZGFsUmVzZXRUZXh0IH19XG5cdFx0XHQ8L3AtYnV0dG9uPlxuXHRcdFx0PHAtYnV0dG9uXG5cdFx0XHRcdCpuZ0lmPVwiZmlsdGVyTW9kYWxTaG93UmVzZXRcIlxuXHRcdFx0XHRjbGFzcz1cImhpZGRlbiB3LWZ1bGwgdGFibGV0OnctYXV0byBkZXNrdG9wLXhzOmZsZXhcIlxuXHRcdFx0XHR2YXJpYW50PVwic2Vjb25kYXJ5XCJcblx0XHRcdFx0KG9uQ2xpY2spPVwib25GaWx0ZXJNb2RhbFJlc2V0KClcIlxuXHRcdFx0PlxuXHRcdFx0XHR7eyBmaWx0ZXJNb2RhbFJlc2V0VGV4dCB9fVxuXHRcdFx0PC9wLWJ1dHRvbj5cblx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRjbGFzcz1cIm1sLWF1dG8gdy1mdWxsIHRhYmxldDp3LWF1dG9cIlxuXHRcdFx0XHRpY29uPVwiY2hlY2ttYXJrXCJcblx0XHRcdFx0KG9uQ2xpY2spPVwib25GaWx0ZXJNb2RhbFNhdmUoKVwiXG5cdFx0XHQ+XG5cdFx0XHRcdHt7IGZpbHRlck1vZGFsU2F2ZVRleHQgfX1cblx0XHRcdDwvcC1idXR0b24+XG5cdFx0PC9kaXY+XG5cdDwvcC1tb2RhbD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5U3RhdGVUZW1wbGF0ZT5cblx0PHAtZW1wdHktc3RhdGVcblx0XHQqbmdJZj1cImVtcHR5U3RhdGVUeXBlID09PSAnZmlsdGVyZWQnOyBlbHNlIGVtcHR5U3RhdGVOb25GaWx0ZXJUZW1wbGF0ZVwiXG5cdFx0Y2xhc3M9XCJteS0xNiBzZWxmLWNlbnRlclwiXG5cdFx0W2lsbHVzdHJhdGlvbl09XCJlbXB0eVN0YXRlRmlsdGVyZWRJbGx1c3RyYXRpb25cIlxuXHRcdFtoZWFkZXJdPVwiZW1wdHlTdGF0ZUZpbHRlcmVkSGVhZGVyXCJcblx0XHRbY29udGVudF09XCJlbXB0eVN0YXRlRmlsdGVyZWRDb250ZW50XCJcblx0XHRbZW5hYmxlQWN0aW9uXT1cImZhbHNlXCJcblx0PjwvcC1lbXB0eS1zdGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlTdGF0ZU5vbkZpbHRlclRlbXBsYXRlPlxuXHQ8cC1lbXB0eS1zdGF0ZVxuXHRcdGNsYXNzPVwibXktMTYgc2VsZi1jZW50ZXJcIlxuXHRcdFtpbGx1c3RyYXRpb25dPVwiZW1wdHlTdGF0ZUlsbHVzdHJhdGlvblwiXG5cdFx0W2hlYWRlcl09XCJlbXB0eVN0YXRlSGVhZGVyXCJcblx0XHRbY29udGVudF09XCJlbXB0eVN0YXRlQ29udGVudFwiXG5cdFx0W2VuYWJsZUFjdGlvbl09XCJlbmFibGVFbXB0eVN0YXRlQWN0aW9uXCJcblx0XHRbYWN0aW9uVGV4dF09XCJlbXB0eVN0YXRlQWN0aW9uXCJcblx0XHRbYWN0aW9uSWNvbl09XCJlbXB0eVN0YXRlQWN0aW9uSWNvblwiXG5cdFx0KGFjdGlvbik9XCJlbXB0eVN0YXRlQ2xpY2tlZCgpXCJcblx0PjwvcC1lbXB0eS1zdGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
1006
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGFwZXJsZXNzL3NyYy9saWIvbW9kdWxlcy90YWJsZS9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BhcGVybGVzcy9zcmMvbGliL21vZHVsZXMvdGFibGUvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksR0FDWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFDTixFQUFFLEVBQ0YsMEJBQTBCLEVBQzFCLFFBQVEsRUFDUixhQUFhLEVBR2IsS0FBSyxFQUNMLHNCQUFzQixHQUN0QixNQUFNLGlCQUFpQixDQUFDO0FBTXpCLE9BQU8sRUFDTixlQUFlLEVBQ2YsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixNQUFNLEVBRU4sSUFBSSxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFDTiwyQkFBMkIsRUFDM0IsMEJBQTBCLEVBQzFCLHlCQUF5QixHQUN6QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMv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Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb21wb25lbnQsXG5cdENvbnRlbnRDaGlsZCxcblx0Q29udGVudENoaWxkcmVuLFxuXHRFbGVtZW50UmVmLFxuXHRFdmVudEVtaXR0ZXIsXG5cdEhvc3RCaW5kaW5nLFxuXHRIb3N0TGlzdGVuZXIsXG5cdElucHV0LFxuXHRPbkNoYW5nZXMsXG5cdE9uSW5pdCxcblx0T3V0cHV0LFxuXHRRdWVyeUxpc3QsXG5cdFNpbXBsZUNoYW5nZXMsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q2hpbGQsXG5cdFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge1xuXHRjbixcblx0ZmxvYXRpbmdNZW51Q29udGFpbmVyQ2xhc3MsXG5cdGlzTW9iaWxlLFxuXHRvblN0YXRlQ2hhbmdlLFxuXHRRdWlja0ZpbHRlcixcblx0Um93Q2xpY2tFdmVudCxcblx0c3RhdGUsXG5cdHRhYmxlQ29sdW1TaXplc09wdGlvbnMsXG59IGZyb20gJ0BwYXBlcmxlc3MvY29yZSc7XG5pbXBvcnQge1xuXHRJY29uVmFyaWFudCxcblx0SWxsdXN0cmF0aW9uVmFyaWFudCxcblx0VGFibGVDb2x1bW5TaXplcyxcbn0gZnJvbSAnQHBhcGVybGVzcy9jb3JlL2Rpc3QvdHlwZXMvY29tcG9uZW50cyc7XG5pbXBvcnQge1xuXHRCZWhhdmlvclN1YmplY3QsXG5cdGRlYm91bmNlVGltZSxcblx0ZGlzdGluY3RVbnRpbENoYW5nZWQsXG5cdGZpbHRlcixcblx0U3Vic2NyaXB0aW9uLFxuXHR0YWtlLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBUYWJsZVJvdyB9IGZyb20gJy4uLy4uLy4uLy4uL3N0ZW5jaWwvY29tcG9uZW50cyc7XG5pbXBvcnQge1xuXHRUYWJsZUN1c3RvbUFjdGlvbnNEaXJlY3RpdmUsXG5cdFRhYmxlQ3VzdG9tRmlsdGVyRGlyZWN0aXZlLFxuXHRUYWJsZUZpbHRlck1vZGFsRGlyZWN0aXZlLFxufSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFRhYmxlQ3VzdG9tUm93RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9wLXRhYmxlLWN1c3RvbS1yb3cuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRhYmxlQ2VsbCB9IGZyb20gJy4uL3RhYmxlLWNlbGwvdGFibGUtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi90YWJsZS1jb2x1bW4vdGFibGUtY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZUV4dHJhSGVhZGVyIH0gZnJvbSAnLi4vdGFibGUtZXh0cmEtaGVhZGVyL3RhYmxlLWV4dHJhLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcblx0QXN5bmNJdGVtLFxuXHRUYWJsZVJvd0FjdGlvbixcblx0VGFibGVSb3dBY3Rpb25RdWVyeVBhcmFtcyxcblx0VGFibGVSb3dBY3Rpb25Sb3V0ZXJMaW5rLFxufSBmcm9tICcuLi90YWJsZS1yb3ctYWN0aW9uL3RhYmxlLXJvdy1hY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IGRlZmF1bHRTaXplLCBkZWZhdWx0U2l6ZU9wdGlvbnMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbkBVbnRpbERlc3Ryb3koeyBjaGVja1Byb3BlcnRpZXM6IHRydWUgfSlcbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ3AtdGFibGUtbmd4Jyxcblx0dGVtcGxhdGVVcmw6ICd0YWJsZS5jb21wb25lbnQuaHRtbCcsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblx0QEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzTmFtZSA9ICdmbGV4IGZsZXgtY29sIHotMCc7XG5cdEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXRoZW1lJykgdGhlbWUgPSBzdGF0ZS50aGVtZTtcblxuXHQvKipcblx0ICogVGhlIGl0ZW1zIHRvIGJlIGZlZCB0byB0aGUgdGFibGVcblx0ICovXG5cdEBJbnB1dCgpIGl0ZW1zITogc3RyaW5nIHwgYW55W107XG5cblx0LyoqXG5cdCAqIFdldGhlciBkYXRhIGlzIGxvYWRpbmdcblx0ICovXG5cdEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHQvKipcblx0ICogV2V0aGVyIHRoZSBoZWFkZXIgc2hvdWxkIHNob3cgbG9hZGluZyBzdGF0ZVxuXHQgKi9cblx0QElucHV0KCkgaGVhZGVyTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBXZXRoZXIgdGhlIGZvb3RlciBzaG91bGQgc2hvdyBsb2FkaW5nIHN0YXRlXG5cdCAqL1xuXHRASW5wdXQoKSBmb290ZXJMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIFRoZSBhbW91bnQgb2YgbG9hZGluZyByb3dzIHRvIHNob3dcblx0ICovXG5cdEBJbnB1dCgpIGFtb3VudE9mTG9hZGluZ1Jvd3M6IG51bWJlciA9IDY7XG5cblx0LyoqXG5cdCAqIFdldGhlciB0byBlbmFibGUgc2VsZWN0aW9uXG5cdCAqL1xuXHRASW5wdXQoKSBlbmFibGVSb3dTZWxlY3Rpb246IGJvb2xlYW4gPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBBIGxpbWl0IHRvIHRoZSBhbW91bnQgb2Ygcm93cyB0aGF0IGNhbiBiZSBzZWxlY3RlZFxuXHQgKi9cblx0QElucHV0KCkgcm93U2VsZWN0aW9uTGltaXQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogV2V0aGVyIHRvIGVuYWJsZSByb3cgY2xpY2tpbmdcblx0ICovXG5cdEBJbnB1dCgpIGVuYWJsZVJvd0NsaWNrOiBib29sZWFuID0gdHJ1ZTtcblxuXHQvKipcblx0ICogVGhlIGN1cnJlbnQgc2VsZWN0aW9uIG9mIGl0ZW1zXG5cdCAqL1xuXHRASW5wdXQoKSBzZWxlY3RlZFJvd3M6IGFueVtdID0gW107XG5cblx0LyoqXG5cdCAqIEV2ZW50IHdoZW5ldmVyIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBjaGFuZ2VzXG5cdCAqL1xuXHRAT3V0cHV0KCkgc2VsZWN0ZWRSb3dzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHQvKipcblx0ICogVGhlIGtleSB0byBkZXRlcm1pbmUgaWYgYSByb3cgaXMgc2VsZWN0ZWRcblx0ICovXG5cdEBJbnB1dCgpIHNlbGVjdGlvbktleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBBIGtleSB0byBkZXRlcm1pbmUgaWYgYSByb3cgY2FuIGJlIHNlbGVjdGVkXG5cdCAqL1xuXHRASW5wdXQoKSBjYW5TZWxlY3RLZXk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuXHQvKipcblx0ICogV2V0aGVyIHRvIGVuYWJsZSB0aGUgZmxvYXRpbmcgbWVudVxuXHQgKi9cblx0QElucHV0KCkgZW5hYmxlRmxvYXRpbmdNZW51OiBib29sZWFuID0gdHJ1ZTtcblxuXHQvKipcblx0ICogVGhlIGZsb2F0aW5nIG1lbnUgYW1vdW50IGl0ZW0gdGV4dFxuXHQgKi9cblx0QElucHV0KCkgZmxvYXRpbmdNZW51QW1vdW50U2VsZWN0ZWRUZXh0OiBzdHJpbmcgPSAnMCBpdGVtcyBzZWxlY3RlZCc7XG5cblx0LyoqXG5cdCAqIFRoZSB0ZW1wbGF0ZSBmb3IgYW1vdW50IHNlbGVjdGVkIGl0ZW0gaW4gdGhlIGZsb2F0aW5nIG1lbnVcblx0ICovXG5cdEBJbnB1dCgpIGZsb2F0aW5nTWVudUFtb3VudFNlbGVjdGVkVGVtcGxhdGU6IGFueTtcblxuXHQvKipcblx0ICogV2V0aGVyIHRoZSBmbG9hdGluZyBtZW51IGhhcyBiZWVuIHNob3duIGF0bGVhc3Qgb25jZVxuXHQgKi9cblx0cHVibGljIGZsb2F0aW5nTWVudVNob3duJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG5cdC8qKlxuXHQgKiBFdmVudCB3aGVuZXZlciBhIHJvdyBpcyBjbGlja2VkXG5cdCAqL1xuXHRAT3V0cHV0KCkgcm93Q2xpY2s6IEV2ZW50RW1pdHRlcjxSb3dDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHQvKipcblx0ICogRXZlbnQgd2hlbmV2ZXIgYSByb3cgaXMgc2VsZWN0ZWRcblx0ICovXG5cdEBPdXRwdXQoKSByb3dTZWxlY3RlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0LyoqXG5cdCAqIEV2ZW50IHdoZW5ldmVyIGEgcm93IGlzIGRlc2VsZWN0ZWRcblx0ICovXG5cdEBPdXRwdXQoKSByb3dEZXNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHQvKiogU1RBUlQgSEVBREVSICovXG5cblx0LyoqXG5cdCAqIFdldGhlciB0byBzaG93IHRoZSBoZWFkZXJcblx0ICovXG5cdEBJbnB1dCgpIGVuYWJsZUhlYWRlcjogYm9vbGVhbiA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFF1aWNrIGZpbHRlcnMgdG8gc2hvd1xuXHQgKi9cblx0QElucHV0KCkgcXVpY2tGaWx0ZXJzOiBRdWlja0ZpbHRlcltdID0gW107XG5cblx0LyoqXG5cdCAqIEFjdGl2ZSBxdWljayBmaWx0ZXIgaWRlbnRpZmllclxuXHQgKi9cblx0QElucHV0KCkgYWN0aXZlUXVpY2tGaWx0ZXJJZGVudGlmaWVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFdldGhlciB0byBzaG93IHRoZSBzZWFyY2ggaW5wdXRcblx0ICovXG5cdEBJbnB1dCgpIGVuYWJsZVNlYXJjaDogYm9vbGVhbiA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFRoZSBxdWVyeSB0byBzaG93IGluIHRoZSBzZWFyY2ggYmFyXG5cdCAqL1xuXHRASW5wdXQoKSBxdWVyeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG5cdC8qKlxuXHQgKiBXZXRoZXIgdG8gc2hvdyB0aGUgZmlsdGVyIGJ1dHRvblxuXHQgKi9cblx0QElucHV0KCkgZW5hYmxlRmlsdGVyOiBib29sZWFuID0gdHJ1ZTtcblxuXHQvKipcblx0ICogV2V0aGVyIHRvIHNob3cgdGhlIGZpbHRlciBidXR0b24gb24gZGVza3RvcFxuXHQgKi9cblx0QElucHV0KCkgZW5hYmxlRmlsdGVyRGVza3RvcDogYm9vbGVhbiA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFRoZSBhbW91bnQgb2YgZmlsdGVycyBiZWluZyBzZWxlY3RlZFxuXHQgKi9cblx0QElucHV0KCkgc2VsZWN0ZWRGaWx0ZXJzQW1vdW50OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cblx0LyoqXG5cdCAqIFRoZSB0ZW1wbGF0ZSBmb3IgdGhlIGZpbHRlciBidXR0b24gdGV4dFxuXHQgKi9cblx0QElucHV0KCkgZmlsdGVyQnV0dG9uVGVtcGxhdGU6IGFueTtcblxuXHQvKipcblx0ICogV2V0aGVyIHRvIHNob3cgdGhlIGFjdGlvbiBidXR0b25cblx0ICovXG5cdEBJbnB1dCgpIGVuYWJsZUFjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBXZXRoZXIgdGhlIGFjdGlvbiBidXR0b24gaXMgbG9hZGluZ1xuXHQgKi9cblx0QElucHV0KCkgYWN0aW9uQnV0dG9uTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBUaGUgYWN0aW9uIGJ1dHRvbiBpY29uXG5cdCAqL1xuXHRASW5wdXQoKSBhY3Rpb25CdXR0b25JY29uOiBJY29uVmFyaWFudCA9ICdwZW5jaWwnO1xuXG5cdC8qKlxuXHQgKiBXZXRoZXIgdGhlIGFjdGlvbiBidXR0b24gaXMgZW5hYmxlZFxuXHQgKi9cblx0QElucHV0KCkgYWN0aW9uQnV0dG9uRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFRoZSBhY3Rpb24gYnV0dG9uIHRleHQgaWYgY2hhbmdlZFxuXHQgKi9cblx0QElucHV0KCkgYWN0aW9uQnV0dG9uVGV4dD86IHN0cmluZztcblxuXHQvKipcblx0ICogVGhlIHRlbXBsYXRlIGZvciB0aGUgYWN0aW9uIGJ1dHRvbiB0ZXh0XG5cdCAqL1xuXHRASW5wdXQoKSBhY3Rpb25CdXR0b25UZW1wbGF0ZTogYW55O1xuXG5cdC8qKlxuXHQgKiBFdmVudCB3aGVuIG9uZSBvZiB0aGUgcXVpY2sgZmlsdGVycyBpcyBjbGlja2VkXG5cdCAqL1xuXHRAT3V0cHV0KCkgcXVpY2tGaWx0ZXI6IEV2ZW50RW1pdHRlcjxRdWlja0ZpbHRlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0LyoqXG5cdCAqIEV2ZW50IHdoZW4gdGhlIHF1ZXJ5IGNoYW5nZXNcblx0ICovXG5cdEBPdXRwdXQoKSBxdWVyeUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0LyoqXG5cdCAqIEV2ZW50IHdoZW4gdGhlIGZpbHRlciBidXR0b24gaXMgY2xpY2tlZFxuXHQgKi9cblx0QE91dHB1dCgpIGZpbHRlcjogRXZlbnRFbWl0dGVyPG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdC8qKlxuXHQgKiBFdmVudCB3aGVuIHRoZSBhY3Rpb24gYnV0dG9uIGlzIGNsaWNrZWRcblx0ICovXG5cdEBPdXRwdXQoKSBhY3Rpb246IEV2ZW50RW1pdHRlcjxudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHQvKiogU1RBUlQgRk9PVEVSICovXG5cblx0LyoqXG5cdCAqIFdldGhlciB0byBzaG93IHRoZSBmb290ZXJcblx0ICovXG5cdEBJbnB1dCgpIGVuYWJsZUZvb3RlcjogYm9vbGVhbiA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFdldGhlciB0byBlbmFibGUgcGFnaW5hdGlvbiBzaXplIHNlbGVjdFxuXHQgKi9cblx0QElucHV0KCkgZW5hYmxlUGFnaW5hdGlvblNpemU6IGJvb2xlYW4gPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBXZXRoZXIgdG8gZW5hYmxlIHBhZ2luYXRpb24gcGFnZXNcblx0ICovXG5cdEBJbnB1dCgpIGVuYWJsZVBhZ2luYXRpb25QYWdlczogYm9vbGVhbiA9IHRydWU7XG5cblx0LyoqXG5cdCAqIFdldGhlciB0byBlbmFibGUgZXhwb3J0XG5cdCAqL1xuXHRASW5wdXQoKSBlbmFibGVFeHBvcnQ6IGJvb2xlYW4gPSB0cnVlO1xuXG5cdC8qKlxuXHQgKiBUaGUgY3VycmVudCBwYWdlXG5cdCAqL1xuXHRASW5wdXQoKSBwYWdlOiBudW1iZXIgPSAxO1xuXG5cdC8qKlxuXHQgKiBUaGUgdG90YWwgYW1vdW50IG9mIGl0ZW1zXG5cdCAqL1xuXHRASW5wdXQoKSB0b3RhbCE6IG51bWJlcjtcblxuXHQvKipcblx0ICogRXZlbnQgd2hlbmV2ZXIgdGhlIHBhZ2UgY2hhbmdlc1xuXHQgKi9cblx0QE91dHB1dCgpIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdC8qKlxuXHQgKiBUaGUgYW1vdW50IG9mIGl0ZW1zIHBlciBwYWdlXG5cdCAqL1xuXHRASW5wdXQoKSBwYWdlU2l6ZTogbnVtYmVyID0gZGVmYXVsdFNpemU7XG5cblx0LyoqXG5cdCAqIFRoZSBvcHRpb25zIGZvciB0aGUgcGFnZSBzaXplXG5cdCAqL1xuXHRASW5wdXQoKSBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gZGVmYXVsdFNpemVPcHRpb25zO1xuXG5cdC8qKlxuXHQgKiBFdmVudCB3aGVuZXZlciB0aGUgcGFnZSBjaGFuZ2VzXG5cdCAqL1xuXHRAT3V0cHV0KCkgcGFnZVNpemVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdC8qKlxuXHQgKiBFdmVudCB3aGVuZXZlciB0aGUgcGFnZSBjaGFuZ2VzXG5cdCAqL1xuXHRAT3V0cHV0KCkgZXhwb3J0OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHQvKipcblx0ICogV2V0aGVyIHRvIGhpZGUgd2hlbiB0aGVyZSBpcyBvbmx5IDEgcGFnZSBhdmFpbGFibGVcblx0ICovXG5cdEBJbnB1dCgpIGhpZGVPblNpbmdsZVBhZ2U6IGJvb2xlYW4gPSB0cnVlO1xuXG5cdC8qIEVtcHR5IHN0YXRlIHN0YXJ0ICovXG5cdEBJbnB1dCgpIGVtcHR5U3RhdGVUeXBlOiAnbm9fZmlsdGVyJyB8ICdmaWx0ZXJlZCcgPSAnbm9fZmlsdGVyJztcblxuXHRASW5wdXQoKSBlbXB0eVN0YXRlSWxsdXN0cmF0aW9uOiBJbGx1c3RyYXRpb25WYXJpYW50ID0gJ3RhYmxlJztcblx0QElucHV0KCkgZW1wdHlTdGF0ZUhlYWRlciE6IHN0cmluZztcblx0QElucHV0KCkgZW1wdHlTdGF0ZUNvbnRlbnQhOiBzdHJpbmc7XG5cdEBJbnB1dCgpIGVtcHR5U3RhdGVBY3Rpb24hOiBzdHJpbmc7XG5cdEBJbnB1dCgpIGVtcHR5U3RhdGVBY3Rpb25JY29uOiBJY29uVmFyaWFudCA9ICdwbHVzJztcblxuXHRASW5wdXQoKSBlbmFibGVFbXB0eVN0YXRlQWN0aW9uOiBib29sZWFuID0gdHJ1ZTtcblxuXHRASW5wdXQoKSBlbXB0eVN0YXRlRmlsdGVyZWRJbGx1c3RyYXRpb246IElsbHVzdHJhdGlvblZhcmlhbnQgPSAnc2VhcmNoJztcblx0QElucHV0KCkgZW1wdHlTdGF0ZUZpbHRlcmVkSGVhZGVyITogc3RyaW5nO1xuXHRASW5wdXQoKSBlbXB0eVN0YXRlRmlsdGVyZWRDb250ZW50ITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBXZXRoZXIgdG8gZW5hYmxlIHNjcm9sbGluZ1xuXHQgKi9cblx0QElucHV0KCkgZW5hYmxlU2Nyb2xsOiBib29sZWFuID0gZmFsc2U7XG5cdEBWaWV3Q2hpbGRyZW4oUFRhYmxlUm93LCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgdGFibGVSb3dzITogUXVlcnlMaXN0PFxuXHRcdEVsZW1lbnRSZWY8UFRhYmxlUm93PlxuXHQ+O1xuXHRAVmlld0NoaWxkcmVuKFRhYmxlQ2VsbCwgeyByZWFkOiBFbGVtZW50UmVmIH0pIHRhYmxlQ2VsbHMhOiBRdWVyeUxpc3Q8XG5cdFx0RWxlbWVudFJlZjxUYWJsZUNlbGw+XG5cdD47XG5cdEBWaWV3Q2hpbGQoJ3Njcm9sbENvbnRhaW5lcicpIHNjcm9sbENvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG5cdHB1YmxpYyByZWFjaGVkU2Nyb2xsU3RhcnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcblx0cHVibGljIHJlYWNoZWRTY3JvbGxFbmQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cdHByaXZhdGUgX3RvdGFsV2lkdGggPSAwO1xuXHRwcml2YXRlIF9jYWxjdWxhdGVDb2x1bW5XaWR0aHNUaW1lb3V0PzogbnVtYmVyO1xuXG5cdHByaXZhdGUgX3Jvd0NoYW5nZXNTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cdHByaXZhdGUgX2NlbGxDaGFuZ2VzU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG5cdC8qKlxuXHQgKiBFdmVudCB3aGVuZXZlciB0aGUgZW1wdHkgc3RhdGUgaXMgY2xpY2tlZFxuXHQgKi9cblx0QE91dHB1dCgpIGVtcHR5U3RhdGVBY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdC8qIEVtcHR5IHN0YXRlIGVuZCAqL1xuXG5cdC8qXG5cdCAqIFdldGhlciB0byBzaG93IHRoZSBzaGFkb3cgb3Igbm90XG5cdCAqL1xuXHRASW5wdXQoKSBzaGFkb3c6IGJvb2xlYW4gPSB0cnVlO1xuXG5cdHB1YmxpYyBleHRyYUhlYWRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xuXHRwdWJsaWMgY29sdW1ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XG5cdHB1YmxpYyBwYXJzZWRJdGVtczogYW55W10gPSBbXTtcblx0cHVibGljIGxvYWRpbmdSb3dzID0gQXJyYXkuZnJvbSh7XG5cdFx0bGVuZ3RoOiB0aGlzLmFtb3VudE9mTG9hZGluZ1Jvd3MsXG5cdH0pO1xuXHRwcml2YXRlIF9jdHJsRG93biA9IGZhbHNlO1xuXG5cdC8vIEFuZ3VsYXIgc3R1ZmZcblx0Ly8gY3VzdG9tIGZpbHRlciB0ZW1wbGF0ZVxuXHRAQ29udGVudENoaWxkKFRhYmxlQ3VzdG9tRmlsdGVyRGlyZWN0aXZlLCB7XG5cdFx0cmVhZDogVGVtcGxhdGVSZWYsXG5cdFx0c3RhdGljOiB0cnVlLFxuXHR9KVxuXHRwdWJsaWMgaGVhZGVyQ3VzdG9tRmlsdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cblx0Ly8gY3VzdG9tIGFjdGlvbnMgdGVtcGxhdGVcblx0QENvbnRlbnRDaGlsZChUYWJsZUN1c3RvbUFjdGlvbnNEaXJlY3RpdmUsIHtcblx0XHRyZWFkOiBUZW1wbGF0ZVJlZixcblx0XHRzdGF0aWM6IHRydWUsXG5cdH0pXG5cdHB1YmxpYyBoZWFkZXJDdXN0b21BY3Rpb25zVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XG5cblx0Ly8gY29sdW1uIHRlbXBsYXRlc1xuXHRAQ29udGVudENoaWxkcmVuKFRhYmxlQ29sdW1uKSBjb2x1bW5EZWZpbml0aW9ucyE6IFF1ZXJ5TGlzdDxUYWJsZUNvbHVtbj47XG5cdEBDb250ZW50Q2hpbGRyZW4oVGFibGVFeHRyYUhlYWRlcilcblx0ZXh0cmFIZWFkZXJEZWZpbml0aW9ucyE6IFF1ZXJ5TGlzdDxUYWJsZUV4dHJhSGVhZGVyPjtcblxuXHQvLyBmaWx0ZXIgbW9kYWxcblx0QENvbnRlbnRDaGlsZChUYWJsZUZpbHRlck1vZGFsRGlyZWN0aXZlLCB7XG5cdFx0cmVhZDogVGVtcGxhdGVSZWYsXG5cdFx0c3RhdGljOiB0cnVlLFxuXHR9KVxuXHRwdWJsaWMgZmlsdGVyTW9kYWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuXHRwdWJsaWMgZmlsdGVyTW9kYWxTaG93JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG5cdC8vIHJvdyBhY3Rpb25zIHRlbXBsYXRlc1xuXHRwcml2YXRlIF9yb3dBY3Rpb25zITogUXVlcnlMaXN0PFRhYmxlUm93QWN0aW9uPjtcblx0cHJpdmF0ZSBfcm93QWN0aW9uc1N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cblx0QENvbnRlbnRDaGlsZHJlbihUYWJsZVJvd0FjdGlvbilcblx0c2V0IHJvd0FjdGlvbnModjogUXVlcnlMaXN0PFRhYmxlUm93QWN0aW9uPikge1xuXHRcdHRoaXMuX3Jvd0FjdGlvbnMgPSB2O1xuXHRcdHRoaXMuX3NldFJvd1NlbGVjdGlvbkRhdGEoKTtcblx0fVxuXHRnZXQgcm93QWN0aW9ucygpOiBRdWVyeUxpc3Q8VGFibGVSb3dBY3Rpb24+IHtcblx0XHRyZXR1cm4gdGhpcy5fcm93QWN0aW9ucztcblx0fVxuXG5cdC8vIGN1c3RvbSByb3dzIHRlbXBsYXRlc1xuXHRAQ29udGVudENoaWxkcmVuKFRhYmxlQ3VzdG9tUm93RGlyZWN0aXZlKVxuXHRjdXN0b21Sb3dzITogUXVlcnlMaXN0PFRhYmxlQ3VzdG9tUm93RGlyZWN0aXZlPjtcblxuXHRASW5wdXQoKSBmaWx0ZXJNb2RhbEhlYWRlclRleHQ6IHN0cmluZyA9ICdGaWx0ZXJzJztcblx0QElucHV0KCkgZmlsdGVyTW9kYWxTYXZlVGV4dDogc3RyaW5nID0gJ1NhdmUnO1xuXHRASW5wdXQoKSBmaWx0ZXJNb2RhbENhbmNlbFRleHQ6IHN0cmluZyA9ICdDYW5jZWwnO1xuXHRASW5wdXQoKSBmaWx0ZXJNb2RhbFJlc2V0VGV4dDogc3RyaW5nID0gJ1Jlc2V0IGZpbHRlcnMnO1xuXG5cdEBJbnB1dCgpIGZpbHRlck1vZGFsU2hvd1Jlc2V0OiBib29sZWFuID0gZmFsc2U7XG5cdEBJbnB1dCgpIGZpbHRlck1vZGFsU2hvd1Jlc2V0TW9iaWxlOiBib29sZWFuID0gZmFsc2U7XG5cblx0QE91dHB1dCgpIGZpbHRlck1vZGFsU2hvdzogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXHRAT3V0cHV0KCkgZmlsdGVyTW9kYWxTYXZlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cdEBPdXRwdXQoKSBmaWx0ZXJNb2RhbFJlc2V0OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0cHVibGljIHJvd0FjdGlvbnNSb3ckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZVJvd0FjdGlvbltdPihbXSk7XG5cdHB1YmxpYyByb3dBY3Rpb25zRmxvYXRpbmdBbGwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZVJvd0FjdGlvbltdPihbXSk7XG5cdHB1YmxpYyByb3dBY3Rpb25zRmxvYXRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZVJvd0FjdGlvbltdPihbXSk7XG5cblx0cHVibGljIGlzTW9iaWxlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoaXNNb2JpbGUoKSk7XG5cblx0Ly8gc3RpY2t5IHNlbGYtY2VudGVyXG5cdC8vIG10LTQgLW1iLTUgYm90dG9tLTExIHotWzNdXG5cdC8vIG15LTQgYm90dG9tLTBcblx0Ly8gcG9pbnRlci1ldmVudHMtbm9uZSBhbmltYXRlLWZsb2F0aW5nLW1lbnUtY29udGFpbmVyLW91dFxuXHQvLyBhbmltYXRlLWZsb2F0aW5nLW1lbnUtY29udGFpbmVyLWluXG5cdC8vIGhpZGRlblxuXHQvLyBpbmxpbmUtYmxvY2tcblx0cHVibGljIGZsb2F0aW5nTWVudUNvbnRhaW5lckNsYXNzID0gZmxvYXRpbmdNZW51Q29udGFpbmVyQ2xhc3M7XG5cblx0cHJpdmF0ZSBfcmVzaXplVGltZW91dDogdW5rbm93bjtcblx0cHJpdmF0ZSBfaW5wdXRFbmFibGVSb3dTZWxlY3Rpb246IGJvb2xlYW4gPSB0aGlzLmVuYWJsZVJvd1NlbGVjdGlvbjtcblx0cHJpdmF0ZSBfaW5wdXRSb3dTZWxlY3Rpb25MaW1pdDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdGhpcy5yb3dTZWxlY3Rpb25MaW1pdDtcblxuXHRwcml2YXRlIF90aGVtZURlYm91bmNlPzogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG5cblx0cHVibGljIGZvb3RlckhpZGRlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuXHRwdWJsaWMgY24gPSBjbjtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5fcGFyc2VJdGVtcyh0aGlzLml0ZW1zKTtcblxuXHRcdG9uU3RhdGVDaGFuZ2UoJ3RoZW1lJywgdmFsdWUgPT4gdGhpcy5fY2hlY2tUaGVtZSh2YWx1ZSkpO1xuXG5cdFx0dGhpcy5sb2FkaW5nUm93cyA9IEFycmF5LmZyb20oe1xuXHRcdFx0bGVuZ3RoOiB0aGlzLmFtb3VudE9mTG9hZGluZ1Jvd3MsXG5cdFx0fSk7XG5cblx0XHR0aGlzLmZpbHRlck1vZGFsU2hvdyRcblx0XHRcdC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuXHRcdFx0LnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLmZpbHRlck1vZGFsU2hvdy5uZXh0KHZhbHVlKSk7XG5cdH1cblxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG5cdFx0aWYgKGNoYW5nZXNbJ2l0ZW1zJ10pIHtcblx0XHRcdHRoaXMuX3BhcnNlSXRlbXMoY2hhbmdlc1snaXRlbXMnXS5jdXJyZW50VmFsdWUpO1xuXHRcdH1cblxuXHRcdGlmIChjaGFuZ2VzWydhbW91bnRPZkxvYWRpbmdSb3dzJ10pIHtcblx0XHRcdHRoaXMubG9hZGluZ1Jvd3MgPSBBcnJheS5mcm9tKHtcblx0XHRcdFx0bGVuZ3RoOiBjaGFuZ2VzWydhbW91bnRPZkxvYWRpbmdSb3dzJ10uY3VycmVudFZhbHVlLFxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0bGV0IGNhbGN1bGF0ZVJvd1NlbGVjdGlvbkRhdGEgPSBmYWxzZTtcblx0XHRpZiAoY2hhbmdlc1snZW5hYmxlUm93U2VsZWN0aW9uJ10pIHtcblx0XHRcdHRoaXMuX2lucHV0RW5hYmxlUm93U2VsZWN0aW9uID1cblx0XHRcdFx0Y2hhbmdlc1snZW5hYmxlUm93U2VsZWN0aW9uJ10uY3VycmVudFZhbHVlO1xuXHRcdFx0Y2FsY3VsYXRlUm93U2VsZWN0aW9uRGF0YSA9IHRydWU7XG5cdFx0fVxuXG5cdFx0aWYgKGNoYW5nZXNbJ3Jvd1NlbGVjdGlvbkxpbWl0J10pIHtcblx0XHRcdHRoaXMuX2lucHV0Um93U2VsZWN0aW9uTGltaXQgPSBjaGFuZ2VzWydyb3dTZWxlY3Rpb25MaW1pdCddLmN1cnJlbnRWYWx1ZTtcblx0XHRcdGNhbGN1bGF0ZVJvd1NlbGVjdGlvbkRhdGEgPSB0cnVlO1xuXHRcdH1cblxuXHRcdGlmIChjYWxjdWxhdGVSb3dTZWxlY3Rpb25EYXRhIHx8IGNoYW5nZXNbJ3NlbGVjdGVkUm93cyddKSB7XG5cdFx0XHR0aGlzLl9zZXRSb3dTZWxlY3Rpb25EYXRhKCk7XG5cdFx0fVxuXG5cdFx0aWYgKGNoYW5nZXNbJ2VuYWJsZVNjcm9sbCddPy5jdXJyZW50VmFsdWUpIHtcblx0XHRcdHRoaXMuX2NoZWNrQ2hhbmdlc1N1YnNjcmlwdGlvbnMoKTtcblx0XHR9XG5cdH1cblxuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0aWYgKHRoaXMuZW5hYmxlU2Nyb2xsKSB7XG5cdFx0XHR0aGlzLl9jaGVja0NoYW5nZXNTdWJzY3JpcHRpb25zKCk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuY29sdW1uRGVmaW5pdGlvbnMpIHtcblx0XHRcdHRoaXMuY29sdW1uRGVmaW5pdGlvbnMuY2hhbmdlc1xuXHRcdFx0XHQucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSwgZGVib3VuY2VUaW1lKDEwMCkpXG5cdFx0XHRcdC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fZ2VuZXJhdGVDb2x1bW5zKCkpO1xuXHRcdFx0dGhpcy5fZ2VuZXJhdGVDb2x1bW5zKCk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuZXh0cmFIZWFkZXJEZWZpbml0aW9ucykge1xuXHRcdFx0dGhpcy5leHRyYUhlYWRlckRlZmluaXRpb25zLmNoYW5nZXNcblx0XHRcdFx0LnBpcGUodW50aWxEZXN0cm95ZWQodGhpcyksIGRlYm91bmNlVGltZSgxMDApKVxuXHRcdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2dlbmVyYXRlRXh0cmFIZWFkZXJzKCkpO1xuXHRcdFx0dGhpcy5fZ2VuZXJhdGVFeHRyYUhlYWRlcnMoKTtcblx0XHR9XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcblx0b25SZXNpemUoKSB7XG5cdFx0dGhpcy5fc2V0Um93U2VsZWN0aW9uRGF0YSgpO1xuXHRcdHRoaXMuX2NhbGN1bGF0ZUNvbHVtbldpZHRocygpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG5cdGtleURvd24oeyBrZXkgfTogeyBrZXk6IHN0cmluZyB9KSB7XG5cdFx0aWYgKGtleSAhPT0gJ0NvbnRyb2wnIHx8IHRoaXMuX2N0cmxEb3duID09PSB0cnVlKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5fY3RybERvd24gPSB0cnVlO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5dXAnLCBbJyRldmVudCddKVxuXHRrZXlVcCh7IGtleSB9OiB7IGtleTogc3RyaW5nIH0pIHtcblx0XHRpZiAoa2V5ICE9PSAnQ29udHJvbCcgfHwgdGhpcy5fY3RybERvd24gPT09IGZhbHNlKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5fY3RybERvd24gPSBmYWxzZTtcblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OnZpc2liaWxpdHljaGFuZ2UnLCBbJyRldmVudCddKVxuXHR2aXNpYmlsaXR5Q2hhbmdlKCkge1xuXHRcdGlmIChkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgIT09ICdoaWRkZW4nIHx8IHRoaXMuX2N0cmxEb3duID09PSBmYWxzZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMuX2N0cmxEb3duID0gZmFsc2U7XG5cdH1cblxuXHRvblF1ZXJ5Q2hhbmdlKHsgZGV0YWlsIH06IGFueSkge1xuXHRcdHRoaXMucXVlcnlDaGFuZ2UuZW1pdChkZXRhaWwpO1xuXHR9XG5cblx0b25RdWlja0ZpbHRlcih7IGRldGFpbCB9OiBhbnkpIHtcblx0XHR0aGlzLnF1aWNrRmlsdGVyLmVtaXQoZGV0YWlsKTtcblx0fVxuXG5cdG9uUGFnZVNpemVDaGFuZ2UoeyBkZXRhaWwgfTogYW55KSB7XG5cdFx0dGhpcy5wYWdlU2l6ZSA9IGRldGFpbDtcblx0XHR0aGlzLnBhZ2VTaXplQ2hhbmdlLmVtaXQoZGV0YWlsKTtcblx0fVxuXG5cdG9uUGFnZUNoYW5nZSh7IGRldGFpbCB9OiBhbnkpIHtcblx0XHR0aGlzLnBhZ2UgPSBkZXRhaWw7XG5cdFx0dGhpcy5wYWdlQ2hhbmdlLmVtaXQoZGV0YWlsKTtcblx0fVxuXG5cdG9uRmlsdGVyTW9kYWxTYXZlKCkge1xuXHRcdHRoaXMuZmlsdGVyTW9kYWxTYXZlLm5leHQoKTtcblx0XHR0aGlzLmZpbHRlck1vZGFsU2hvdyQubmV4dChmYWxzZSk7XG5cdH1cblxuXHRvbkZpbHRlck1vZGFsUmVzZXQocmVzZXRRdWlja0ZpbHRlciA9IGZhbHNlKSB7XG5cdFx0dGhpcy5maWx0ZXJNb2RhbFJlc2V0Lm5leHQocmVzZXRRdWlja0ZpbHRlcik7XG5cdFx0dGhpcy5maWx0ZXJNb2RhbFNob3ckLm5leHQoZmFsc2UpO1xuXHR9XG5cblx0ZW1wdHlTdGF0ZUNsaWNrZWQoKSB7XG5cdFx0aWYgKHRoaXMuZW5hYmxlQWN0aW9uKSB7XG5cdFx0XHR0aGlzLmFjdGlvbi5lbWl0KCk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLmVuYWJsZUVtcHR5U3RhdGVBY3Rpb24pIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLmVtcHR5U3RhdGVBY3Rpb25DbGljay5lbWl0KCk7XG5cdH1cblxuXHRwYXJzZVJvd0FjdGlvbnNSb3coYWN0aW9uczogVGFibGVSb3dBY3Rpb25bXSB8IG51bGwsIHJvd0luZGV4OiBudW1iZXIpIHtcblx0XHRpZiAoIWFjdGlvbnM/Lmxlbmd0aCkge1xuXHRcdFx0cmV0dXJuIFtdO1xuXHRcdH1cblxuXHRcdHJldHVybiBhY3Rpb25zLmZpbHRlcihcblx0XHRcdGEgPT4gIWEuc2hvd0Z1bmN0aW9uIHx8IGEuc2hvd0Z1bmN0aW9uKHRoaXMucGFyc2VkSXRlbXNbcm93SW5kZXhdKVxuXHRcdCk7XG5cdH1cblxuXHRvbkNvbnRhaW5lclhTY3JvbGwoZXY6IGFueSkge1xuXHRcdGlmICghdGhpcy5lbmFibGVTY3JvbGwpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLl9jYWxjdWxhdGVTY3JvbGxQb3NpdGlvbihldik7XG5cdH1cblxuXHRwcml2YXRlIF9wYXJzZUl0ZW1zKGl0ZW1zOiBzdHJpbmcgfCBhbnlbXSkge1xuXHRcdGlmICghaXRlbXMpIHtcblx0XHRcdHRoaXMucGFyc2VkSXRlbXMgPSBbXTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoQXJyYXkuaXNBcnJheShpdGVtcykpIHtcblx0XHRcdHRoaXMucGFyc2VkSXRlbXMgPSBpdGVtcztcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLnBhcnNlZEl0ZW1zID0gSlNPTi5wYXJzZShpdGVtcyk7XG5cdH1cblxuXHRwcml2YXRlIF9nZW5lcmF0ZUNvbHVtbnMoKSB7XG5cdFx0bGV0IGRlZmluaXRpb25zQXJyYXkgPSBBcnJheS5mcm9tKHRoaXMuY29sdW1uRGVmaW5pdGlvbnMpO1xuXG5cdFx0ZGVmaW5pdGlvbnNBcnJheSA9IHRoaXMuX3BhcnNlRGVmaW5pdGlvbnMoXG5cdFx0XHRkZWZpbml0aW9uc0FycmF5XG5cdFx0KSBhcyB1bmtub3duIGFzIFRhYmxlQ29sdW1uW107XG5cblx0XHR0aGlzLmNvbHVtbnMkLm5leHQoZGVmaW5pdGlvbnNBcnJheSk7XG5cdH1cblxuXHRwcml2YXRlIF9nZW5lcmF0ZUV4dHJhSGVhZGVycygpIHtcblx0XHRsZXQgZGVmaW5pdGlvbnNBcnJheSA9IEFycmF5LmZyb20odGhpcy5leHRyYUhlYWRlckRlZmluaXRpb25zKTtcblxuXHRcdGRlZmluaXRpb25zQXJyYXkgPSB0aGlzLl9wYXJzZURlZmluaXRpb25zKFxuXHRcdFx0ZGVmaW5pdGlvbnNBcnJheVxuXHRcdCkgYXMgdW5rbm93biBhcyBUYWJsZUV4dHJhSGVhZGVyW107XG5cblx0XHRmb3IgKGNvbnN0IGNvbCBvZiBkZWZpbml0aW9uc0FycmF5KSB7XG5cdFx0XHRjb2wuc3RpY2t5ID0gY29sLnN0aWNreSA9PT0gdHJ1ZSA/ICdzZWNvbmRhcnknIDogZmFsc2U7XG5cdFx0fVxuXG5cdFx0dGhpcy5leHRyYUhlYWRlcnMkLm5leHQoZGVmaW5pdGlvbnNBcnJheSk7XG5cdH1cblxuXHRwdWJsaWMgX2NoZWNrYm94RGlzYWJsZWQoaXRlbTogYW55LCByb3dJbmRleDogbnVtYmVyKSB7XG5cdFx0Y29uc3Qgc2VsZWN0aW9uQ29udGFpbnMgPSB0aGlzLl9zZWxlY3Rpb25Db250YWlucyhpdGVtLCByb3dJbmRleCk7XG5cdFx0cmV0dXJuIChcblx0XHRcdCh0aGlzLmNhblNlbGVjdEtleSAmJiAhaXRlbVt0aGlzLmNhblNlbGVjdEtleV0pIHx8XG5cdFx0XHQodGhpcy5yb3dTZWxlY3Rpb25MaW1pdCAhPT0gdW5kZWZpbmVkICYmXG5cdFx0XHRcdCFzZWxlY3Rpb25Db250YWlucyAmJlxuXHRcdFx0XHR0aGlzLnNlbGVjdGVkUm93cy5sZW5ndGggPT09IHRoaXMucm93U2VsZWN0aW9uTGltaXQpXG5cdFx0KTtcblx0fVxuXG5cdHB1YmxpYyBfc2VsZWN0QWxsQ2hhbmdlKCRldmVudDogYW55LCBmb3JjZVZhbHVlPzogYm9vbGVhbikge1xuXHRcdGlmICghdGhpcy5lbmFibGVSb3dTZWxlY3Rpb24pIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCB2YWx1ZSA9IGZvcmNlVmFsdWUgPT09IHVuZGVmaW5lZCA/ICRldmVudC5kZXRhaWwgOiBmb3JjZVZhbHVlO1xuXG5cdFx0aWYgKHZhbHVlKSB7XG5cdFx0XHRjb25zdCB0b0FkZCA9IFtdO1xuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhcnNlZEl0ZW1zLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IHJvdyA9IHRoaXMucGFyc2VkSXRlbXNbaV07XG5cdFx0XHRcdGlmICh0aGlzLmNhblNlbGVjdEtleSAmJiAhcm93W3RoaXMuY2FuU2VsZWN0S2V5XSkge1xuXHRcdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHRoaXMuX3NlbGVjdGlvbkNvbnRhaW5zKHJvdywgaSkpIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHRvQWRkLnB1c2gocm93KTtcblx0XHRcdFx0dGhpcy5yb3dTZWxlY3RlZC5lbWl0KHJvdyk7XG5cblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdHRoaXMucm93U2VsZWN0aW9uTGltaXQgIT09IHVuZGVmaW5lZCAmJlxuXHRcdFx0XHRcdHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aCArIHRvQWRkLmxlbmd0aCA9PT0gdGhpcy5yb3dTZWxlY3Rpb25MaW1pdFxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnNlbGVjdGVkUm93cyA9IFsuLi50aGlzLnNlbGVjdGVkUm93cywgLi4udG9BZGRdO1xuXHRcdFx0dGhpcy5zZWxlY3RlZFJvd3NDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkUm93cyk7XG5cblx0XHRcdGlmICh0aGlzLmVuYWJsZUZsb2F0aW5nTWVudSkge1xuXHRcdFx0XHR0aGlzLl9zaG93RmxvYXRpbmdNZW51KCk7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRjb25zdCB2YWx1ZSA9IHRoaXMuc2VsZWN0ZWRSb3dzW2ldO1xuXHRcdFx0Y29uc3Qgcm93ID0gdGhpcy5wYXJzZWRJdGVtcy5maW5kKFxuXHRcdFx0XHRkID0+IHRoaXMuX2dldFNlbGVjdGlvblZhbHVlKGQsIGkpID09PSB0aGlzLl9nZXRTZWxlY3Rpb25WYWx1ZSh2YWx1ZSwgaSlcblx0XHRcdCk7XG5cblx0XHRcdGlmICghcm93KSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnJvd0Rlc2VsZWN0ZWQuZW1pdChyb3cpO1xuXHRcdH1cblxuXHRcdHRoaXMuc2VsZWN0ZWRSb3dzID0gW107XG5cdFx0dGhpcy5zZWxlY3RlZFJvd3NDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkUm93cyk7XG5cdH1cblxuXHRwdWJsaWMgX2NoZWNrYm94Q2hhbmdlKHRhcmdldDogYW55LCBpbmRleDogbnVtYmVyKSB7XG5cdFx0aWYgKCF0aGlzLmVuYWJsZVJvd1NlbGVjdGlvbikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IHZhbHVlID0gdGhpcy5fZ2V0Q2hlY2tlZFZhbHVlKHRhcmdldCk7XG5cdFx0aWYgKFxuXHRcdFx0dmFsdWUgJiZcblx0XHRcdHRoaXMucm93U2VsZWN0aW9uTGltaXQgIT09IHVuZGVmaW5lZCAmJlxuXHRcdFx0dGhpcy5zZWxlY3RlZFJvd3MubGVuZ3RoID49IHRoaXMucm93U2VsZWN0aW9uTGltaXRcblx0XHQpIHtcblx0XHRcdHRhcmdldC5jaGVja2VkID0gZmFsc2U7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3Qgcm93ID0gdGhpcy5wYXJzZWRJdGVtc1tpbmRleF07XG5cblx0XHRpZiAodGhpcy5jYW5TZWxlY3RLZXkgJiYgIXJvd1t0aGlzLmNhblNlbGVjdEtleV0pIHtcblx0XHRcdHRhcmdldC5jaGVja2VkID0gZmFsc2U7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKHZhbHVlKSB7XG5cdFx0XHR0aGlzLnNlbGVjdGVkUm93cyA9IFsuLi50aGlzLnNlbGVjdGVkUm93cywgcm93XTtcblx0XHRcdHRoaXMuc2VsZWN0ZWRSb3dzQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFJvd3MpO1xuXHRcdFx0dGhpcy5yb3dTZWxlY3RlZC5lbWl0KHJvdyk7XG5cblx0XHRcdGlmICh0aGlzLmVuYWJsZUZsb2F0aW5nTWVudSkge1xuXHRcdFx0XHR0aGlzLl9zaG93RmxvYXRpbmdNZW51KCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgaW5kZXhPZlRvUmVtb3ZlID0gdGhpcy5fc2VsZWN0aW9uQ29udGFpbnMocm93LCBpbmRleCwgdHJ1ZSk7XG5cblx0XHQvLyB3ZSBuZWVkIHRvIGRvIHRoaXMsIGJlY2F1c2Ugc3BsaWNlIGRvZXMgbm90IHRyaWdnZXIgdGhlIHNlbGVjdGlvbiBzZXR0ZXIuXG5cdFx0Y29uc3Qgc2VsZWN0aW9uID0gWy4uLnRoaXMuc2VsZWN0ZWRSb3dzXTtcblx0XHRzZWxlY3Rpb24uc3BsaWNlKGluZGV4T2ZUb1JlbW92ZSwgMSk7XG5cdFx0dGhpcy5zZWxlY3RlZFJvd3MgPSBzZWxlY3Rpb247XG5cdFx0dGhpcy5zZWxlY3RlZFJvd3NDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkUm93cyk7XG5cdFx0dGhpcy5yb3dEZXNlbGVjdGVkLmVtaXQocm93KTtcblx0fVxuXG5cdHByaXZhdGUgX2dldENoZWNrZWRWYWx1ZSh0YXJnZXQ6IGFueSkge1xuXHRcdHJldHVybiB0YXJnZXQ/LmNoZWNrZWQ7XG5cdH1cblxuXHRwcml2YXRlIF9nZXRTZWxlY3Rpb25WYWx1ZShyb3c6IGFueSwgaW5kZXg6IG51bWJlcikge1xuXHRcdHJldHVybiB0aGlzLnNlbGVjdGlvbktleSA/IHJvdz8uW3RoaXMuc2VsZWN0aW9uS2V5XSB8fCBpbmRleCA6IGluZGV4O1xuXHR9XG5cblx0cHVibGljIF9zZWxlY3Rpb25Db250YWlucyhyb3c6IGFueSwgaW5kZXg6IG51bWJlciwgcmV0dXJuSW5kZXggPSBmYWxzZSk6IGFueSB7XG5cdFx0Y29uc3QgcmV0dXJuVmFsdWUgPSB0aGlzLnNlbGVjdGVkUm93cy5maW5kSW5kZXgoXG5cdFx0XHRpdGVtID0+XG5cdFx0XHRcdHRoaXMuX2dldFNlbGVjdGlvblZhbHVlKHJvdywgaW5kZXgpID09PVxuXHRcdFx0XHR0aGlzLl9nZXRTZWxlY3Rpb25WYWx1ZShpdGVtLCBpbmRleClcblx0XHQpO1xuXHRcdHJldHVybiAhcmV0dXJuSW5kZXggPyByZXR1cm5WYWx1ZSA+PSAwIDogcmV0dXJuVmFsdWU7XG5cdH1cblxuXHRwdWJsaWMgX3NlbGVjdGlvbkNvbnRhaW5zQWxsKCkge1xuXHRcdGxldCByZXR1cm5WYWx1ZSA9IHRydWU7XG5cdFx0aWYgKCF0aGlzLnBhcnNlZEl0ZW1zPy5sZW5ndGgpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRpZiAoXG5cdFx0XHR0aGlzLnJvd1NlbGVjdGlvbkxpbWl0ICE9PSB1bmRlZmluZWQgJiZcblx0XHRcdHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aCA9PT0gdGhpcy5yb3dTZWxlY3Rpb25MaW1pdFxuXHRcdCkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhcnNlZEl0ZW1zPy5sZW5ndGg7IGkrKykge1xuXHRcdFx0Y29uc3QgaXRlbSA9IHRoaXMucGFyc2VkSXRlbXNbaV07XG5cdFx0XHRjb25zdCBjb250YWlucyA9IHRoaXMuX3NlbGVjdGlvbkNvbnRhaW5zKGl0ZW0sIGkpO1xuXG5cdFx0XHRpZiAoIWNvbnRhaW5zKSB7XG5cdFx0XHRcdHJldHVyblZhbHVlID0gZmFsc2U7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiByZXR1cm5WYWx1ZTtcblx0fVxuXG5cdHB1YmxpYyBfc2VsZWN0aW9uSW5kZXRlcm1pbmF0ZSgpIHtcblx0XHRpZiAoIXRoaXMucGFyc2VkSXRlbXM/Lmxlbmd0aCB8fCAhdGhpcy5zZWxlY3RlZFJvd3M/Lmxlbmd0aCkge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblxuXHRcdGlmIChcblx0XHRcdHRoaXMucm93U2VsZWN0aW9uTGltaXQgIT09IHVuZGVmaW5lZCAmJlxuXHRcdFx0dGhpcy5zZWxlY3RlZFJvd3MubGVuZ3RoID09PSB0aGlzLnJvd1NlbGVjdGlvbkxpbWl0XG5cdFx0KSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXG5cdFx0bGV0IGNvbnRhaW5zQ291bnQgPSAwO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXJzZWRJdGVtcz8ubGVuZ3RoOyBpKyspIHtcblx0XHRcdGNvbnN0IGl0ZW0gPSB0aGlzLnBhcnNlZEl0ZW1zW2ldO1xuXHRcdFx0Y29uc3QgY29udGFpbnMgPSB0aGlzLl9zZWxlY3Rpb25Db250YWlucyhpdGVtLCBpKTtcblxuXHRcdFx0aWYgKGNvbnRhaW5zKSB7XG5cdFx0XHRcdGNvbnRhaW5zQ291bnQrKztcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gY29udGFpbnNDb3VudCA+IDAgJiYgY29udGFpbnNDb3VudCAhPT0gdGhpcy5wYXJzZWRJdGVtcy5sZW5ndGg7XG5cdH1cblxuXHRwdWJsaWMgX3Jvd0NsaWNrKCRldmVudDogTW91c2VFdmVudCwgaW5kZXg6IG51bWJlcikge1xuXHRcdGNvbnN0IHRhcmdldCA9ICRldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cblx0XHRpZiAoXG5cdFx0XHR0YXJnZXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnIHx8XG5cdFx0XHQodGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnR5cGUgPT09ICdjaGVja2JveCdcblx0XHQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCByb3cgPSB0aGlzLl9maW5kUm93KHRhcmdldCk7XG5cdFx0Y29uc3QgYWN0aW9uID0gdGhpcy5fZmluZFJvd0FjdGlvbih0YXJnZXQpO1xuXG5cdFx0aWYgKGFjdGlvbikge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLmVuYWJsZVJvd0NsaWNrKSB7XG5cdFx0XHRjb25zdCBpdGVtID0gdGhpcy5wYXJzZWRJdGVtc1tpbmRleF07XG5cdFx0XHR0aGlzLnJvd0NsaWNrLmVtaXQoe1xuXHRcdFx0XHRpdGVtLFxuXHRcdFx0XHRjdHJsRG93bjogdGhpcy5fY3RybERvd24sXG5cdFx0XHR9KTtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuZW5hYmxlUm93U2VsZWN0aW9uKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29uc3QgY2hlY2tib3ggPSByb3c/LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9XCJjaGVja2JveFwiXScpO1xuXG5cdFx0aWYgKCFjaGVja2JveCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNoZWNrYm94LmNoZWNrZWQgPSAhY2hlY2tib3guY2hlY2tlZDtcblx0XHR0aGlzLl9jaGVja2JveENoYW5nZShjaGVja2JveCwgaW5kZXgpO1xuXHR9XG5cblx0cHVibGljIF9nZXRBY3Rpb25Sb3V0ZXJMaW5rKFxuXHRcdHJvdXRlckxpbms6IFRhYmxlUm93QWN0aW9uUm91dGVyTGluayxcblx0XHRyb3dJbmRleDogbnVtYmVyXG5cdCk6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBhbnlbXT4gfCBBc3luY0l0ZW08c3RyaW5nIHwgYW55W10+IHtcblx0XHRpZiAodHlwZW9mIHJvdXRlckxpbmsgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGNvbnN0IGl0ZW0gPSB0aGlzLnBhcnNlZEl0ZW1zW3Jvd0luZGV4XTtcblx0XHRcdHJldHVybiB0aGlzLl9nZXRBY3Rpb25Sb3V0ZXJMaW5rKHJvdXRlckxpbmsoaXRlbSksIHJvd0luZGV4KTtcblx0XHR9XG5cblx0XHRpZiAodHlwZW9mIHJvdXRlckxpbmsgPT09ICdzdHJpbmcnIHx8IEFycmF5LmlzQXJyYXkocm91dGVyTGluaykpIHtcblx0XHRcdHJldHVybiBuZXcgQmVoYXZpb3JTdWJqZWN0KHJvdXRlckxpbmspO1xuXHRcdH1cblxuXHRcdHJldHVybiByb3V0ZXJMaW5rO1xuXHR9XG5cblx0cHVibGljIF9nZXRBY3Rpb25RdWVyeVBhcmFtcyhcblx0XHRxdWVyeVBhcmFtczogVGFibGVSb3dBY3Rpb25RdWVyeVBhcmFtcyxcblx0XHRyb3dJbmRleDogbnVtYmVyXG5cdCk6IEJlaGF2aW9yU3ViamVjdDxQYXJhbXM+IHwgQXN5bmNJdGVtPFBhcmFtcz4ge1xuXHRcdGlmICh0eXBlb2YgcXVlcnlQYXJhbXMgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGNvbnN0IGl0ZW0gPSB0aGlzLnBhcnNlZEl0ZW1zW3Jvd0luZGV4XTtcblx0XHRcdHJldHVybiB0aGlzLl9nZXRBY3Rpb25RdWVyeVBhcmFtcyhxdWVyeVBhcmFtcyhpdGVtKSwgcm93SW5kZXgpO1xuXHRcdH1cblxuXHRcdGlmIChxdWVyeVBhcmFtcyBpbnN0YW5jZW9mIE9iamVjdCAmJiBxdWVyeVBhcmFtcy5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0KSB7XG5cdFx0XHRyZXR1cm4gbmV3IEJlaGF2aW9yU3ViamVjdChxdWVyeVBhcmFtcyk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHF1ZXJ5UGFyYW1zIGFzIEFzeW5jSXRlbTxQYXJhbXM+O1xuXHR9XG5cblx0cHVibGljIF9yb3dBY3Rpb25DbGljayhhY3Rpb246IFRhYmxlUm93QWN0aW9uLCByb3dJbmRleD86IG51bWJlcikge1xuXHRcdGlmIChhY3Rpb24uZGlzYWJsZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoYWN0aW9uLmxvYWRpbmcpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoIWFjdGlvbi5hY3Rpb24pIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoXG5cdFx0XHRhY3Rpb24udHlwZSA9PT0gJ211bHRpJyB8fFxuXHRcdFx0KGFjdGlvbi50eXBlID09PSAnYm90aCcgJiYgcm93SW5kZXggPT09IHVuZGVmaW5lZClcblx0XHQpIHtcblx0XHRcdGFjdGlvbi5hY3Rpb24uZW1pdCh7XG5cdFx0XHRcdGl0ZW1zOiB0aGlzLnNlbGVjdGVkUm93cyxcblx0XHRcdFx0bXVsdGk6IHRydWUsXG5cdFx0XHRcdGN0cmxEb3duOiB0aGlzLl9jdHJsRG93bixcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmIChcblx0XHRcdGFjdGlvbi5yb3V0ZXJMaW5rIHx8XG5cdFx0XHQoQXJyYXkuaXNBcnJheShhY3Rpb24ucm91dGVyTGluaykgJiYgYWN0aW9uLnJvdXRlckxpbmsubGVuZ3RoKVxuXHRcdCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGNvbnN0IGl0ZW0gPVxuXHRcdFx0cm93SW5kZXggIT09IHVuZGVmaW5lZFxuXHRcdFx0XHQ/IHRoaXMucGFyc2VkSXRlbXNbcm93SW5kZXhdXG5cdFx0XHRcdDogdGhpcy5zZWxlY3RlZFJvd3NbMF07XG5cdFx0YWN0aW9uLmFjdGlvbi5lbWl0KHtcblx0XHRcdGl0ZW0sXG5cdFx0XHRtdWx0aTogZmFsc2UsXG5cdFx0XHRjdHJsRG93bjogdGhpcy5fY3RybERvd24sXG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9maW5kUm93KGVsOiBIVE1MRWxlbWVudCB8IG51bGwpOiBhbnkge1xuXHRcdGlmICghZWwpIHtcblx0XHRcdHJldHVybiBlbDtcblx0XHR9XG5cblx0XHRpZiAoZWw/LnRhZ05hbWU/LnRvTG93ZXJDYXNlKCkgPT09ICdwLXRhYmxlLXJvdycpIHtcblx0XHRcdHJldHVybiBlbDtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5fZmluZFJvdyhlbD8ucGFyZW50RWxlbWVudCk7XG5cdH1cblxuXHRwcml2YXRlIF9maW5kUm93QWN0aW9uKGVsOiBIVE1MRWxlbWVudCB8IG51bGwpOiBhbnkge1xuXHRcdGlmICghZWwpIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH1cblxuXHRcdGlmIChcblx0XHRcdGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1pcy1hY3Rpb24nKSAhPT0gbnVsbCAmJlxuXHRcdFx0ZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWlzLWFjdGlvbicpICE9PSAnZmFsc2UnXG5cdFx0KSB7XG5cdFx0XHRyZXR1cm4gZWw7XG5cdFx0fVxuXG5cdFx0aWYgKGVsPy50YWdOYW1lPy50b0xvd2VyQ2FzZSgpID09PSAncC10YWJsZS1yb3cnKSB7XG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5fZmluZFJvd0FjdGlvbihlbD8ucGFyZW50RWxlbWVudCk7XG5cdH1cblxuXHRwcml2YXRlIF9zZXRSb3dTZWxlY3Rpb25EYXRhKCkge1xuXHRcdGlmICh0aGlzLl9yZXNpemVUaW1lb3V0KSB7XG5cdFx0XHRjbGVhclRpbWVvdXQodGhpcy5fcmVzaXplVGltZW91dCBhcyBudW1iZXIpO1xuXHRcdH1cblxuXHRcdC8vIFdlIGFkZCBhIHRpbWVvdXQgaGVyZSBiZWNhdXNlIGl0J3MgYSBsb3QgZWFzaWVyIG9uIHRoZSBtYWNoaW5lIHRvIGRvIHRoZXNlIHdoZW4gc29tZW9uZSBpcyBkb25lXG5cdFx0Ly8gcmVzaXppbmcgYW5kIHBsYXlpbmcgYXJvdW5kIHdpdGggdGhlaXIgYnJvd3NlclxuXHRcdHRoaXMuX3Jlc2l6ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdGNvbnN0IG1vYmlsZSA9IGlzTW9iaWxlKCk7XG5cdFx0XHR0aGlzLmlzTW9iaWxlJC5uZXh0KG1vYmlsZSk7XG5cblx0XHRcdGNvbnN0IGFjdGlvbnMgPSBBcnJheS5mcm9tKHRoaXMuX3Jvd0FjdGlvbnMpIGFzIFRhYmxlUm93QWN0aW9uW107XG5cblx0XHRcdGlmICh0aGlzLl9yb3dBY3Rpb25zU3Vic2NyaXB0aW9ucy5sZW5ndGgpIHtcblx0XHRcdFx0Zm9yIChsZXQgc3Vic2NyaXB0aW9uIG9mIHRoaXMuX3Jvd0FjdGlvbnNTdWJzY3JpcHRpb25zKSB7XG5cdFx0XHRcdFx0c3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0dGhpcy5fcm93QWN0aW9uc1N1YnNjcmlwdGlvbnMgPSBhY3Rpb25zLm1hcChhY3Rpb24gPT5cblx0XHRcdFx0YWN0aW9uLl9sb2FkaW5nQ2hhbmdlZFxuXHRcdFx0XHRcdC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuXHRcdFx0XHRcdC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpKVxuXHRcdFx0KTtcblxuXHRcdFx0Ly8gd2UgaGFjayB0aGlzIHRvIGFueVtdIHRvIG1ha2UgaXQgd29yay4uXG5cdFx0XHRjb25zdCByb3dBY3Rpb25zUm93ID0gYWN0aW9ucy5maWx0ZXIoXG5cdFx0XHRcdGEgPT4gYS50eXBlID09PSAnYm90aCcgfHwgYS50eXBlID09PSAnc2luZ2xlJ1xuXHRcdFx0KTtcblx0XHRcdGNvbnN0IHJvd0FjdGlvbnNGbG9hdGluZyA9IGFjdGlvbnMuZmlsdGVyKFxuXHRcdFx0XHRhID0+XG5cdFx0XHRcdFx0KHRoaXMuX2lucHV0RW5hYmxlUm93U2VsZWN0aW9uICYmXG5cdFx0XHRcdFx0XHQoYS50eXBlID09PSAnYm90aCcgfHwgYS50eXBlID09PSAnbXVsdGknKSkgfHxcblx0XHRcdFx0XHQobW9iaWxlICYmIGEudHlwZSA9PT0gJ3NpbmdsZScgJiYgIWEucm91dGVyTGluaylcblx0XHRcdCk7XG5cblx0XHRcdGxldCByb3dTZWxlY3Rpb25MaW1pdCA9IHRoaXMuX2lucHV0Um93U2VsZWN0aW9uTGltaXQ7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdG1vYmlsZSAmJiAvLyB3ZSdyZSBtb2JpbGVcblx0XHRcdFx0cm93QWN0aW9uc0Zsb2F0aW5nPy5sZW5ndGggJiYgLy8gd2UgaGF2ZSBhdGxlYXN0IDEgaXRlbSBpbiBfcm93QWN0aW9uc0Zsb2F0aW5nXG5cdFx0XHRcdCgocm93U2VsZWN0aW9uTGltaXQgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmVuYWJsZVJvd1NlbGVjdGlvbikgfHxcblx0XHRcdFx0XHQhdGhpcy5lbmFibGVSb3dTZWxlY3Rpb24pXG5cdFx0XHQpIHtcblx0XHRcdFx0cm93U2VsZWN0aW9uTGltaXQgPSAxO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnJvd1NlbGVjdGlvbkxpbWl0ID0gcm93U2VsZWN0aW9uTGltaXQ7XG5cblx0XHRcdGxldCBlbmFibGVSb3dTZWxlY3Rpb24gPSB0aGlzLl9pbnB1dEVuYWJsZVJvd1NlbGVjdGlvbjtcblx0XHRcdGlmIChcblx0XHRcdFx0bW9iaWxlICYmIC8vIHdlJ3JlIG1vYmlsZVxuXHRcdFx0XHRyb3dBY3Rpb25zRmxvYXRpbmc/Lmxlbmd0aCAmJiAvLyB3ZSBoYXZlIGF0bGVhc3QgMSBpdGVtIGluIF9yb3dBY3Rpb25zRmxvYXRpbmdcblx0XHRcdFx0IWVuYWJsZVJvd1NlbGVjdGlvblxuXHRcdFx0KSB7XG5cdFx0XHRcdGVuYWJsZVJvd1NlbGVjdGlvbiA9IHRydWU7XG5cdFx0XHR9XG5cdFx0XHR0aGlzLmVuYWJsZVJvd1NlbGVjdGlvbiA9IGVuYWJsZVJvd1NlbGVjdGlvbjtcblxuXHRcdFx0dGhpcy5yb3dBY3Rpb25zUm93JC5uZXh0KHJvd0FjdGlvbnNSb3cpO1xuXHRcdFx0dGhpcy5yb3dBY3Rpb25zRmxvYXRpbmdBbGwkLm5leHQocm93QWN0aW9uc0Zsb2F0aW5nKTtcblxuXHRcdFx0dGhpcy5mbG9hdGluZ01lbnVTaG93biRcblx0XHRcdFx0LnBpcGUoXG5cdFx0XHRcdFx0dGFrZSgxKSxcblx0XHRcdFx0XHRmaWx0ZXIodiA9PiAhIXYpXG5cdFx0XHRcdClcblx0XHRcdFx0LnN1YnNjcmliZSgoKSA9PiB0aGlzLl9zaG93RmxvYXRpbmdNZW51KCkpO1xuXHRcdH0sIDIwMCk7XG5cdH1cblxuXHRwcml2YXRlIF9zaG93RmxvYXRpbmdNZW51KCkge1xuXHRcdHRoaXMucm93QWN0aW9uc0Zsb2F0aW5nQWxsJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShhY3Rpb25zID0+IHtcblx0XHRcdGlmIChcblx0XHRcdFx0dGhpcy5yb3dTZWxlY3Rpb25MaW1pdCA9PT0gMSAmJlxuXHRcdFx0XHRhY3Rpb25zLmZpbmRJbmRleChcblx0XHRcdFx0XHRhID0+IChhLnR5cGUgPT09ICdzaW5nbGUnIHx8IGEudHlwZSA9PT0gJ2JvdGgnKSAmJiBhLnNob3dGdW5jdGlvblxuXHRcdFx0XHQpID49IDBcblx0XHRcdCkge1xuXHRcdFx0XHRhY3Rpb25zID0gYWN0aW9ucy5maWx0ZXIoXG5cdFx0XHRcdFx0YSA9PlxuXHRcdFx0XHRcdFx0YS50eXBlID09PSAnbXVsdGknIHx8XG5cdFx0XHRcdFx0XHQhYS5zaG93RnVuY3Rpb24gfHxcblx0XHRcdFx0XHRcdGEuc2hvd0Z1bmN0aW9uKHRoaXMuc2VsZWN0ZWRSb3dzWzBdKVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnJvd0FjdGlvbnNGbG9hdGluZyQubmV4dChhY3Rpb25zKTtcblx0XHRcdHRoaXMuZmxvYXRpbmdNZW51U2hvd24kLm5leHQodHJ1ZSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9wYXJzZURlZmluaXRpb25zKFxuXHRcdGRlZmluaXRpb25zQXJyYXk6IFRhYmxlQ29sdW1uW10gfCBUYWJsZUV4dHJhSGVhZGVyW11cblx0KSB7XG5cdFx0cmV0dXJuIGRlZmluaXRpb25zQXJyYXkubWFwKGRlZmluaXRpb24gPT5cblx0XHRcdHRoaXMuX3BhcnNlRGVmaW5pdGlvblNpemVzKGRlZmluaXRpb24pXG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgX3BhcnNlRGVmaW5pdGlvblNpemVzKGRlZmluaXRpb246IFRhYmxlQ29sdW1uIHwgVGFibGVFeHRyYUhlYWRlcikge1xuXHRcdGNvbnN0IGRlZmluaXRpb25BbnkgPSBkZWZpbml0aW9uIGFzIGFueTtcblx0XHRsZXQgcGFyc2VkU2l6ZXM6IFRhYmxlQ29sdW1uU2l6ZXMgPSB7IGRlZmF1bHQ6ICdmdWxsJyB9O1xuXG5cdFx0Zm9yIChjb25zdCBbaW5kZXgsIHNpemVdIG9mIHRhYmxlQ29sdW1TaXplc09wdGlvbnMuZW50cmllcygpKSB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdGRlZmluaXRpb25Bbnkuc2l6ZXMgPT09ICdhdXRvJyB8fFxuXHRcdFx0XHRkZWZpbml0aW9uQW55LnNpemVzID09PSAnaGlkZGVuJyB8fFxuXHRcdFx0XHRkZWZpbml0aW9uQW55LnNpemVzID09PSAnZnVsbCcgfHxcblx0XHRcdFx0dHlwZW9mIGRlZmluaXRpb25Bbnkuc2l6ZXMgPT09ICdudW1iZXInXG5cdFx0XHQpIHtcblx0XHRcdFx0cGFyc2VkU2l6ZXNbc2l6ZV0gPVxuXHRcdFx0XHRcdGRlZmluaXRpb25Bbnkuc2l6ZXMgPT09ICdhdXRvJyA/ICdmdWxsJyA6IGRlZmluaXRpb25Bbnkuc2l6ZXM7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRwYXJzZWRTaXplc1tzaXplXSA9XG5cdFx0XHRcdGRlZmluaXRpb25Bbnkuc2l6ZXNbc2l6ZV0gPz9cblx0XHRcdFx0cGFyc2VkU2l6ZXNbdGFibGVDb2x1bVNpemVzT3B0aW9uc1tpbmRleCAtIDFdXTtcblx0XHR9XG5cblx0XHRkZWZpbml0aW9uLnBhcnNlZFNpemVzID0gcGFyc2VkU2l6ZXM7XG5cdFx0cmV0dXJuIGRlZmluaXRpb247XG5cdH1cblxuXHRwcml2YXRlIF9jaGVja0NoYW5nZXNTdWJzY3JpcHRpb25zKCkge1xuXHRcdGlmICghdGhpcy5fcm93Q2hhbmdlc1N1YnNjcmlwdGlvbiAmJiB0aGlzLnRhYmxlUm93cykge1xuXHRcdFx0dGhpcy5fcm93Q2hhbmdlc1N1YnNjcmlwdGlvbiA9IHRoaXMudGFibGVSb3dzLmNoYW5nZXNcblx0XHRcdFx0LnBpcGUodW50aWxEZXN0cm95ZWQodGhpcyksIGRlYm91bmNlVGltZSgxMDApKVxuXHRcdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2NhbGN1bGF0ZUNvbHVtbldpZHRocygpKTtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuX2NlbGxDaGFuZ2VzU3Vic2NyaXB0aW9uICYmIHRoaXMudGFibGVDZWxscykge1xuXHRcdFx0dGhpcy5fY2VsbENoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLnRhYmxlQ2VsbHMuY2hhbmdlc1xuXHRcdFx0XHQucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSwgZGVib3VuY2VUaW1lKDEwMCkpXG5cdFx0XHRcdC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fY2FsY3VsYXRlQ29sdW1uV2lkdGhzKCkpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX2NhbGN1bGF0ZUNvbHVtbldpZHRocygpIHtcblx0XHRpZiAoIXRoaXMuZW5hYmxlU2Nyb2xsKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLnRhYmxlQ2VsbHMgfHwgIXRoaXMudGFibGVSb3dzKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuX2NhbGN1bGF0ZUNvbHVtbldpZHRoc1RpbWVvdXQpIHtcblx0XHRcdGNsZWFyVGltZW91dCh0aGlzLl9jYWxjdWxhdGVDb2x1bW5XaWR0aHNUaW1lb3V0KTtcblx0XHRcdHRoaXMuX2NhbGN1bGF0ZUNvbHVtbldpZHRoc1RpbWVvdXQgPSAwO1xuXHRcdH1cblxuXHRcdGNvbnN0IHJvd3MgPSB0aGlzLnRhYmxlUm93cy5tYXAoXG5cdFx0XHRjID0+IGMubmF0aXZlRWxlbWVudCBhcyB1bmtub3duIGFzIEhUTUxFbGVtZW50XG5cdFx0KTtcblx0XHRjb25zdCBjZWxscyA9IHJvd3MuZmxhdE1hcChcblx0XHRcdHJvdyA9PlxuXHRcdFx0XHRBcnJheS5mcm9tKHJvdy5xdWVyeVNlbGVjdG9yQWxsKCdwLXRhYmxlLWNlbGwtbmd4JykpIGFzIEhUTUxFbGVtZW50W11cblx0XHQpO1xuXG5cdFx0dGhpcy5fY2FsY3VsYXRlQ29sdW1uV2lkdGhzVGltZW91dCA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuXHRcdFx0dGhpcy5fc2V0Um93c1dpZHRoKHJvd3MpO1xuXG5cdFx0XHRjb25zdCBwcm9taXNlczogUHJvbWlzZTx2b2lkPltdID0gW107XG5cdFx0XHRmb3IgKGNvbnN0IGNlbGwgb2YgY2VsbHMpIHtcblx0XHRcdFx0aWYgKGNlbGwuc3R5bGUud2lkdGg/Lmxlbmd0aCkge1xuXHRcdFx0XHRcdGNlbGwuc2V0QXR0cmlidXRlKCdzdHlsZScsICcnKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHByb21pc2VzLnB1c2goXG5cdFx0XHRcdFx0bmV3IFByb21pc2UocmVzb2x2ZSA9PlxuXHRcdFx0XHRcdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHJlY3QgPSBjZWxsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHRcdFx0XHRcdFx0XHRjZWxsLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBgd2lkdGg6ICR7cmVjdC53aWR0aH1weCAhaW1wb3J0YW50YCk7XG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoKTtcblx0XHRcdFx0XHRcdH0sIDEwMClcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cblx0XHRcdGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcblxuXHRcdFx0dGhpcy5fc2V0Um93c1dpZHRoKHJvd3MsICdtaW4tY29udGVudCcpO1xuXG5cdFx0XHR0aGlzLl9yZXNldFNjcm9sbFBvc2l0aW9uKCk7XG5cdFx0fSwgMjAwKSBhcyB1bmtub3duIGFzIG51bWJlcjtcblx0fVxuXG5cdHByaXZhdGUgX3NldFJvd3NXaWR0aChcblx0XHRyb3dzOiBIVE1MRWxlbWVudFtdLFxuXHRcdHZhbHVlOiAnbWluLWNvbnRlbnQnIHwgbnVsbCA9IG51bGxcblx0KSB7XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCByb3dzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRjb25zdCByb3cgPSByb3dzW2ldO1xuXG5cdFx0XHRjb25zdCBzaGFkb3cgPSByb3cuc2hhZG93Um9vdDtcblx0XHRcdGlmICghc2hhZG93KSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBmaXJzdERpdiA9IHNoYWRvdy5xdWVyeVNlbGVjdG9yKCcqOm50aC1jaGlsZCgxKScpO1xuXHRcdFx0aWYgKCFmaXJzdERpdikge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3Qgc2Vjb25kRGl2ID0gZmlyc3REaXYucXVlcnlTZWxlY3RvcignKjpudGgtY2hpbGQoMSknKTtcblx0XHRcdGlmICghc2Vjb25kRGl2KSB7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAodmFsdWUgPT09IG51bGwpIHtcblx0XHRcdFx0Zmlyc3REaXYuc2V0QXR0cmlidXRlKCdzdHlsZScsICcnKTtcblx0XHRcdFx0c2Vjb25kRGl2LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnJyk7XG5cdFx0XHRcdGNvbnRpbnVlO1xuXHRcdFx0fVxuXG5cdFx0XHRmaXJzdERpdi5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ3dpZHRoOiBtaW4tY29udGVudDsnKTtcblx0XHRcdHNlY29uZERpdi5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ3dpZHRoOiBtaW4tY29udGVudDsnKTtcblxuXHRcdFx0aWYgKGkgPT09IDApIHtcblx0XHRcdFx0dGhpcy5fdG90YWxXaWR0aCA9IGZpcnN0RGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX3Jlc2V0U2Nyb2xsUG9zaXRpb24oKSB7XG5cdFx0aWYgKHRoaXMuc2Nyb2xsQ29udGFpbmVyKSB7XG5cdFx0XHR0aGlzLnNjcm9sbENvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSAwO1xuXHRcdH1cblxuXHRcdHRoaXMucmVhY2hlZFNjcm9sbFN0YXJ0JC5uZXh0KHRydWUpO1xuXHRcdHRoaXMucmVhY2hlZFNjcm9sbEVuZCQubmV4dChmYWxzZSk7XG5cblx0XHR0aGlzLl9jYWxjdWxhdGVTY3JvbGxQb3NpdGlvbih7XG5cdFx0XHR0YXJnZXQ6IHRoaXMuc2Nyb2xsQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIF9jYWxjdWxhdGVTY3JvbGxQb3NpdGlvbih7IHRhcmdldCB9OiB7IHRhcmdldDogSFRNTERpdkVsZW1lbnQgfSkge1xuXHRcdHRoaXMucmVhY2hlZFNjcm9sbFN0YXJ0JC5uZXh0KHRhcmdldC5zY3JvbGxMZWZ0IDwgMTApO1xuXG5cdFx0Y29uc3QgcmlnaHQgPSB0YXJnZXQuc2Nyb2xsTGVmdCArIHRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcblx0XHR0aGlzLnJlYWNoZWRTY3JvbGxFbmQkLm5leHQocmlnaHQgPiB0aGlzLl90b3RhbFdpZHRoIC0gMTApO1xuXHR9XG5cblx0cHJpdmF0ZSBfY2hlY2tUaGVtZSh2YWx1ZTogJ2RhcmsnIHwgJ2xpZ2h0Jykge1xuXHRcdGlmICh0aGlzLl90aGVtZURlYm91bmNlKSB7XG5cdFx0XHRjbGVhclRpbWVvdXQodGhpcy5fdGhlbWVEZWJvdW5jZSk7XG5cdFx0XHR0aGlzLl90aGVtZURlYm91bmNlID0gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdHRoaXMuX3RoZW1lRGVib3VuY2UgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMudGhlbWUgPSB2YWx1ZTtcblx0XHRcdHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcblx0XHR9LCAxMDApO1xuXHR9XG59XG4iLCI8cC10YWJsZS1jb250YWluZXI+XG5cdDxwLXRhYmxlLWhlYWRlclxuXHRcdCpuZ0lmPVwiZW5hYmxlSGVhZGVyXCJcblx0XHRjbGFzcz1cIm1iLThcIlxuXHRcdFtxdWlja0ZpbHRlcnNdPVwicXVpY2tGaWx0ZXJzXCJcblx0XHRbYWN0aXZlUXVpY2tGaWx0ZXJJZGVudGlmaWVyXT1cImFjdGl2ZVF1aWNrRmlsdGVySWRlbnRpZmllclwiXG5cdFx0KHF1aWNrRmlsdGVyKT1cIm9uUXVpY2tGaWx0ZXIoJGV2ZW50KVwiXG5cdFx0W2VuYWJsZVNlYXJjaF09XCJlbmFibGVTZWFyY2hcIlxuXHRcdFtxdWVyeV09XCJxdWVyeVwiXG5cdFx0KHF1ZXJ5Q2hhbmdlKT1cIm9uUXVlcnlDaGFuZ2UoJGV2ZW50KVwiXG5cdFx0W2VuYWJsZUZpbHRlcl09XCJlbmFibGVGaWx0ZXJcIlxuXHRcdFtlbmFibGVGaWx0ZXJEZXNrdG9wXT1cImVuYWJsZUZpbHRlckRlc2t0b3BcIlxuXHRcdFtzZWxlY3RlZEZpbHRlcnNBbW91bnRdPVwic2VsZWN0ZWRGaWx0ZXJzQW1vdW50XCJcblx0XHRbZmlsdGVyQnV0dG9uVGVtcGxhdGVdPVwiZmlsdGVyQnV0dG9uVGVtcGxhdGVcIlxuXHRcdChmaWx0ZXIpPVwiZmlsdGVyTW9kYWxTaG93JC5uZXh0KHRydWUpXCJcblx0XHRbZW5hYmxlQWN0aW9uXT1cImVuYWJsZUFjdGlvblwiXG5cdFx0W2NhblVzZUFjdGlvbl09XCJhY3Rpb25CdXR0b25FbmFibGVkXCJcblx0XHRbYWN0aW9uQnV0dG9uVGVtcGxhdGVdPVwiYWN0aW9uQnV0dG9uVGVtcGxhdGVcIlxuXHRcdFthY3Rpb25Mb2FkaW5nXT1cImFjdGlvbkJ1dHRvbkxvYWRpbmdcIlxuXHRcdFthY3Rpb25UZXh0XT1cImFjdGlvbkJ1dHRvblRleHRcIlxuXHRcdFthY3Rpb25JY29uXT1cImFjdGlvbkJ1dHRvbkljb25cIlxuXHRcdChhY3Rpb24pPVwiYWN0aW9uLmVtaXQoKVwiXG5cdFx0W2l0ZW1zU2VsZWN0ZWRBbW91bnRdPVwic2VsZWN0ZWRSb3dzLmxlbmd0aFwiXG5cdFx0W2VuYWJsZUV4cG9ydF09XCJlbmFibGVFeHBvcnRcIlxuXHRcdChleHBvcnQpPVwiZXhwb3J0LmVtaXQoKVwiXG5cdFx0W2xvYWRpbmddPVwiaGVhZGVyTG9hZGluZ1wiXG5cdD5cblx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyQ3VzdG9tRmlsdGVyVGVtcGxhdGVcIj5cblx0XHRcdDxuZy1jb250YWluZXJcblx0XHRcdFx0Km5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJDdXN0b21GaWx0ZXJUZW1wbGF0ZVwiXG5cdFx0XHQ+PC9uZy1jb250YWluZXI+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cblx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGVyQ3VzdG9tQWN0aW9uc1RlbXBsYXRlXCI+XG5cdFx0XHQ8bmctY29udGFpbmVyXG5cdFx0XHRcdCpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyQ3VzdG9tQWN0aW9uc1RlbXBsYXRlXCJcblx0XHRcdD48L25nLWNvbnRhaW5lcj5cblx0XHQ8L25nLWNvbnRhaW5lcj5cblx0PC9wLXRhYmxlLWhlYWRlcj5cblxuXHQ8ZGl2XG5cdFx0Y2xhc3M9XCJyZWxhdGl2ZSBmbGV4LTFcIlxuXHRcdCpuZ0lmPVwiZW5hYmxlU2Nyb2xsOyBlbHNlIHJvd3NUZW1wbGF0ZVwiXG5cdD5cblx0XHQ8ZGl2XG5cdFx0XHRjbGFzcz1cImZsZXggZmxleC1jb2wgb3ZlcmZsb3cteC1hdXRvXCJcblx0XHRcdCNzY3JvbGxDb250YWluZXJcblx0XHRcdFtjbGFzc109XCJcblx0XHRcdFx0Y24oXG5cdFx0XHRcdFx0J2JlZm9yZTphYnNvbHV0ZSBiZWZvcmU6dG9wLTAgYmVmb3JlOmxlZnQtMCBiZWZvcmU6ei1bMV0gYmVmb3JlOnBvaW50ZXItZXZlbnRzLW5vbmUnLFxuXHRcdFx0XHRcdCdiZWZvcmU6dy0yNCBiZWZvcmU6aC1mdWxsIGJlZm9yZTp0cmFuc2l0aW9uLW9wYWNpdHknLFxuXHRcdFx0XHRcdCdiZWZvcmU6YmctZ3JhZGllbnQtdG8tciBiZWZvcmU6ZnJvbS13aGl0ZSBkYXJrOmJlZm9yZTpmcm9tLWh1cnJpY2FuZS03MDAgYmVmb3JlOnZpYS13aGl0ZS84MCBkYXJrOmJlZm9yZTp2aWEtaHVycmljYW5lLTcwMC85MCBiZWZvcmU6dG8tdHJhbnNwYXJlbnQnLFxuXHRcdFx0XHRcdCdhZnRlcjphYnNvbHV0ZSBhZnRlcjp0b3AtMCBhZnRlcjpyaWdodC0wIGFmdGVyOnotWzBdIGJlZm9yZTpwb2ludGVyLWV2ZW50cy1ub25lJyxcblx0XHRcdFx0XHQnYWZ0ZXI6dy0yNCBhZnRlcjpoLWZ1bGwgYWZ0ZXI6dHJhbnNpdGlvbi1vcGFjaXR5Jyxcblx0XHRcdFx0XHQnYWZ0ZXI6YmctZ3JhZGllbnQtdG8tbCBhZnRlcjpmcm9tLXdoaXRlIGFmdGVyOmRhcms6ZnJvbS1odXJyaWNhbmUtNzAwIGFmdGVyOnZpYS13aGl0ZS84MCBkYXJrOmFmdGVyOnZpYS1odXJyaWNhbmUtNzAwLzkwIGFmdGVyOnRvLXRyYW5zcGFyZW50Jyxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQnYmVmb3JlOm9wYWNpdHktMCc6IHJlYWNoZWRTY3JvbGxTdGFydCQgfCBhc3luYyxcblx0XHRcdFx0XHRcdCdhZnRlcjpvcGFjaXR5LTAnOiByZWFjaGVkU2Nyb2xsRW5kJCB8IGFzeW5jLFxuXHRcdFx0XHRcdFx0J2JlZm9yZTpvcGFjaXR5LTEwMCc6IChyZWFjaGVkU2Nyb2xsU3RhcnQkIHwgYXN5bmMpID09PSBmYWxzZSxcblx0XHRcdFx0XHRcdCdhZnRlcjpvcGFjaXR5LTEwMCc6IChyZWFjaGVkU2Nyb2xsRW5kJCB8IGFzeW5jKSA9PT0gZmFsc2Vcblx0XHRcdFx0XHR9XG5cdFx0XHRcdClcblx0XHRcdFwiXG5cdFx0XHQoc2Nyb2xsKT1cIm9uQ29udGFpbmVyWFNjcm9sbCgkZXZlbnQpXCJcblx0XHQ+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicm93c1RlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXG5cdDxuZy1jb250YWluZXIgKm5nSWY9XCJlbmFibGVGbG9hdGluZ01lbnUgJiYgZW5hYmxlUm93U2VsZWN0aW9uXCI+XG5cdFx0PHAtZmxvYXRpbmctbWVudS1jb250YWluZXJcblx0XHRcdFt1c2VkSW5UYWJsZV09XCJ0cnVlXCJcblx0XHRcdFtjbGFzc109XCJcblx0XHRcdFx0ZmxvYXRpbmdNZW51Q29udGFpbmVyQ2xhc3Moe1xuXHRcdFx0XHRcdGhhc0Zvb3RlcjogZW5hYmxlRm9vdGVyICYmIChmb290ZXJIaWRkZW4kIHwgYXN5bmMpID09PSBmYWxzZSxcblx0XHRcdFx0XHRhY3RpdmU6IHNlbGVjdGVkUm93cy5sZW5ndGggPiAwLFxuXHRcdFx0XHRcdHNob3duOiAkYW55KGZsb2F0aW5nTWVudVNob3duJCB8IGFzeW5jKVxuXHRcdFx0XHR9KVxuXHRcdFx0XCJcblx0XHRcdFthbW91bnRdPVwiZmxvYXRpbmdNZW51QW1vdW50U2VsZWN0ZWRUZXh0XCJcblx0XHRcdFtlbmFibGVBbW91bnRTZWxlY3RlZF09XCIhIShyb3dBY3Rpb25zRmxvYXRpbmckIHwgYXN5bmMpPy5sZW5ndGhcIlxuXHRcdFx0KGNsb3NlKT1cIl9zZWxlY3RBbGxDaGFuZ2UobnVsbCwgZmFsc2UpXCJcblx0XHQ+XG5cdFx0XHQ8cC1mbG9hdGluZy1tZW51LWl0ZW1cblx0XHRcdFx0Km5nRm9yPVwibGV0IGFjdGlvbiBvZiByb3dBY3Rpb25zRmxvYXRpbmckIHwgYXN5bmNcIlxuXHRcdFx0XHRzbG90PVwiZmxvYXRpbmctbWVudS1pdGVtXCJcblx0XHRcdFx0W2Rpc2FibGVkXT1cIlxuXHRcdFx0XHRcdChhY3Rpb25bJ3R5cGUnXSA9PT0gJ3NpbmdsZScgJiYgc2VsZWN0ZWRSb3dzLmxlbmd0aCA+IDEpIHx8XG5cdFx0XHRcdFx0YWN0aW9uWydkaXNhYmxlZCddXG5cdFx0XHRcdFwiXG5cdFx0XHRcdFtsb2FkaW5nXT1cImFjdGlvblsnbG9hZGluZyddXCJcblx0XHRcdFx0W2ljb25dPVwiYWN0aW9uWydpY29uJ11cIlxuXHRcdFx0XHRbaWNvblJvdGF0ZV09XCJhY3Rpb25bJ2ljb25Sb3RhdGUnXVwiXG5cdFx0XHRcdFtpY29uRmxpcF09XCJhY3Rpb25bJ2ljb25GbGlwJ11cIlxuXHRcdFx0XHQoY2xpY2spPVwiX3Jvd0FjdGlvbkNsaWNrKGFjdGlvbilcIlxuXHRcdFx0PlxuXHRcdFx0XHR7eyBhY3Rpb25bJ2xhYmVsJ10gfX1cblx0XHRcdDwvcC1mbG9hdGluZy1tZW51LWl0ZW0+XG5cdFx0PC9wLWZsb2F0aW5nLW1lbnUtY29udGFpbmVyPlxuXHQ8L25nLWNvbnRhaW5lcj5cblxuXHQ8cC10YWJsZS1mb290ZXJcblx0XHQqbmdJZj1cImVuYWJsZUZvb3RlclwiXG5cdFx0W2hpZGVPblNpbmdsZVBhZ2VdPVwiaGlkZU9uU2luZ2xlUGFnZVwiXG5cdFx0W2VuYWJsZVBhZ2luYXRpb25TaXplXT1cImVuYWJsZVBhZ2luYXRpb25TaXplXCJcblx0XHRbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuXHRcdFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnZVNpemVPcHRpb25zXCJcblx0XHQocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCJcblx0XHRbZW5hYmxlUGFnaW5hdGlvblBhZ2VzXT1cImVuYWJsZVBhZ2luYXRpb25QYWdlc1wiXG5cdFx0W3BhZ2VdPVwicGFnZVwiXG5cdFx0W3RvdGFsXT1cInRvdGFsXCJcblx0XHQocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG5cdFx0W2xvYWRpbmddPVwiZm9vdGVyTG9hZGluZ1wiXG5cdFx0KGhpZGRlbkNoYW5nZSk9XCJmb290ZXJIaWRkZW4kLm5leHQoJGV2ZW50LmRldGFpbClcIlxuXHRcdFt0YWJsZUhlYWRlckhhc0FjdGlvbl09XCJlbmFibGVIZWFkZXIgJiYgZW5hYmxlQWN0aW9uICYmIGFjdGlvbkJ1dHRvbkVuYWJsZWRcIlxuXHQ+PC9wLXRhYmxlLWZvb3Rlcj5cbjwvcC10YWJsZS1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjcm93c1RlbXBsYXRlPlxuXHQ8cC10YWJsZS1yb3dcblx0XHQqbmdJZj1cIihleHRyYUhlYWRlcnMkIHwgYXN5bmMpPy5sZW5ndGhcIlxuXHRcdHZhcmlhbnQ9XCJoZWFkZXItc2Vjb25kYXJ5XCJcblx0XHRjbGFzcz1cInotWzJdXCJcblx0XHRbaXNMYXN0XT1cInRydWVcIlxuXHQ+XG5cdFx0PG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGV4dHJhSGVhZGVycyQgfCBhc3luYzsgbGV0IGluZGV4ID0gaW5kZXhcIj5cblx0XHRcdDxwLXRhYmxlLWNlbGwtbmd4XG5cdFx0XHRcdFtkZWZpbml0aW9uXT1cImNvbFwiXG5cdFx0XHRcdHZhcmlhbnQ9XCJoZWFkZXItc2Vjb25kYXJ5XCJcblx0XHRcdFx0W2luZGV4XT1cImluZGV4XCJcblx0XHRcdFx0W2NoZWNrYm94T2Zmc2V0XT1cImluZGV4ID09PSAwICYmIGVuYWJsZVJvd1NlbGVjdGlvblwiXG5cdFx0XHRcdFtzY3JvbGxhYmxlXT1cInRoaXMuZW5hYmxlU2Nyb2xsXCJcblx0XHRcdD5cblx0XHRcdFx0PGI+e3sgY29sLm5hbWUgfX08L2I+XG5cdFx0XHQ8L3AtdGFibGUtY2VsbC1uZ3g+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cdDwvcC10YWJsZS1yb3c+XG5cblx0PHAtdGFibGUtcm93IHZhcmlhbnQ9XCJoZWFkZXJcIj5cblx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1ucyQgfCBhc3luYzsgbGV0IGluZGV4ID0gaW5kZXhcIj5cblx0XHRcdDxwLXRhYmxlLWNlbGwtbmd4XG5cdFx0XHRcdFtkZWZpbml0aW9uXT1cImNvbFwiXG5cdFx0XHRcdFt2YWx1ZV09XCJjb2wubmFtZVwiXG5cdFx0XHRcdHZhcmlhbnQ9XCJoZWFkZXJcIlxuXHRcdFx0XHRbaW5kZXhdPVwiaW5kZXhcIlxuXHRcdFx0XHRbY2hlY2tib3hdPVwiXG5cdFx0XHRcdFx0KGluZGV4ID09PSAwIHx8IGNvbC5oYXNDaGVja2JveCkgJiYgZW5hYmxlUm93U2VsZWN0aW9uXG5cdFx0XHRcdFx0XHQ/IGNoZWNrYm94VGVtcGxhdGVcblx0XHRcdFx0XHRcdDogdW5kZWZpbmVkXG5cdFx0XHRcdFwiXG5cdFx0XHRcdFtzY3JvbGxhYmxlXT1cInRoaXMuZW5hYmxlU2Nyb2xsXCJcblx0XHRcdD48L3AtdGFibGUtY2VsbC1uZ3g+XG5cdFx0XHQ8bmctdGVtcGxhdGUgI2NoZWNrYm94VGVtcGxhdGU+XG5cdFx0XHRcdDxwLWNoZWNrYm94XG5cdFx0XHRcdFx0KGNoZWNrZWRDaGFuZ2UpPVwiX3NlbGVjdEFsbENoYW5nZSgkZXZlbnQpXCJcblx0XHRcdFx0XHRbY2hlY2tlZF09XCJfc2VsZWN0aW9uQ29udGFpbnNBbGwoKVwiXG5cdFx0XHRcdFx0W2luZGV0ZXJtaW5hdGVdPVwiX3NlbGVjdGlvbkluZGV0ZXJtaW5hdGUoKVwiXG5cdFx0XHRcdFx0W2NsYXNzLm9wYWNpdHktMF09XCJyb3dTZWxlY3Rpb25MaW1pdCAhPT0gdW5kZWZpbmVkXCJcblx0XHRcdFx0XHRbZGlzYWJsZWRdPVwicm93U2VsZWN0aW9uTGltaXQgIT09IHVuZGVmaW5lZFwiXG5cdFx0XHRcdD48L3AtY2hlY2tib3g+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDwvbmctY29udGFpbmVyPlxuXHQ8L3AtdGFibGUtcm93PlxuXG5cdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtMSBmbGV4LWNvbFwiPlxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nOyBlbHNlIGNvbnRlbnRUZW1wbGF0ZVwiPlxuXHRcdFx0PHAtdGFibGUtcm93XG5cdFx0XHRcdCpuZ0Zvcj1cImxldCByIG9mIGxvYWRpbmdSb3dzOyBsZXQgcm93SW5kZXggPSBpbmRleFwiXG5cdFx0XHRcdGNsYXNzPVwiZ3JvdXBcIlxuXHRcdFx0XHRbZW5hYmxlSG92ZXJdPVwiZW5hYmxlUm93U2VsZWN0aW9uIHx8IGVuYWJsZVJvd0NsaWNrXCJcblx0XHRcdFx0W2lzTGFzdF09XCJyb3dJbmRleCA9PT0gbG9hZGluZ1Jvd3MubGVuZ3RoIC0gMVwiXG5cdFx0XHQ+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zJCB8IGFzeW5jOyBsZXQgaW5kZXggPSBpbmRleFwiPlxuXHRcdFx0XHRcdDxwLXRhYmxlLWNlbGwtbmd4XG5cdFx0XHRcdFx0XHRbZGVmaW5pdGlvbl09XCJjb2xcIlxuXHRcdFx0XHRcdFx0dmFyaWFudD1cImxvYWRpbmdcIlxuXHRcdFx0XHRcdFx0W2NoZWNrYm94XT1cIlxuXHRcdFx0XHRcdFx0XHQoaW5kZXggPT09IDAgfHwgY29sLmhhc0NoZWNrYm94KSAmJiBlbmFibGVSb3dTZWxlY3Rpb25cblx0XHRcdFx0XHRcdFx0XHQ/IGNoZWNrYm94VGVtcGxhdGVcblx0XHRcdFx0XHRcdFx0XHQ6IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0XCJcblx0XHRcdFx0XHRcdFtpbmRleF09XCJpbmRleFwiXG5cdFx0XHRcdFx0XHRbcm93SW5kZXhdPVwicm93SW5kZXhcIlxuXHRcdFx0XHRcdFx0W3Njcm9sbGFibGVdPVwidGhpcy5lbmFibGVTY3JvbGxcIlxuXHRcdFx0XHRcdD48L3AtdGFibGUtY2VsbC1uZ3g+XG5cdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNjaGVja2JveFRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0PHAtbG9hZGVyXG5cdFx0XHRcdFx0XHRcdHZhcmlhbnQ9XCJnaG9zdFwiXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwiaC02IHctNiByb3VuZGVkXCJcblx0XHRcdFx0XHRcdD48L3AtbG9hZGVyPlxuXHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0PC9wLXRhYmxlLXJvdz5cblx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdDxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInBhcnNlZEl0ZW1zPy5sZW5ndGg7IGVsc2UgZW1wdHlTdGF0ZVRlbXBsYXRlXCI+XG5cdFx0XHRcdDxwLXRhYmxlLXJvd1xuXHRcdFx0XHRcdCpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhcnNlZEl0ZW1zOyBsZXQgcm93SW5kZXggPSBpbmRleFwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJncm91cFwiXG5cdFx0XHRcdFx0W2VuYWJsZUhvdmVyXT1cImVuYWJsZVJvd1NlbGVjdGlvbiB8fCBlbmFibGVSb3dDbGlja1wiXG5cdFx0XHRcdFx0W2NoZWNrZWRdPVwiX3NlbGVjdGlvbkNvbnRhaW5zKGl0ZW0sIHJvd0luZGV4KVwiXG5cdFx0XHRcdFx0W2lzTGFzdF09XCJyb3dJbmRleCA9PT0gcGFyc2VkSXRlbXMubGVuZ3RoIC0gMVwiXG5cdFx0XHRcdFx0KGNsaWNrKT1cIl9yb3dDbGljaygkZXZlbnQsIHJvd0luZGV4KVwiXG5cdFx0XHRcdD5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyXG5cdFx0XHRcdFx0XHQqbmdJZj1cIlxuXHRcdFx0XHRcdFx0XHRwYXJzZVJvd0FjdGlvbnNSb3coXG5cdFx0XHRcdFx0XHRcdFx0cm93QWN0aW9uc1JvdyQgfCBhc3luYyxcblx0XHRcdFx0XHRcdFx0XHRyb3dJbmRleFxuXHRcdFx0XHRcdFx0XHQpIGFzIHJvd0FjdGlvbnNSb3dcblx0XHRcdFx0XHRcdFwiXG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lclxuXHRcdFx0XHRcdFx0XHQqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnMkIHwgYXN5bmM7IGxldCBpbmRleCA9IGluZGV4XCJcblx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0PHAtdGFibGUtY2VsbC1uZ3hcblx0XHRcdFx0XHRcdFx0XHRbZGVmaW5pdGlvbl09XCJjb2xcIlxuXHRcdFx0XHRcdFx0XHRcdFtpdGVtXT1cIml0ZW1cIlxuXHRcdFx0XHRcdFx0XHRcdFtjaGVja2JveF09XCJcblx0XHRcdFx0XHRcdFx0XHRcdChpbmRleCA9PT0gMCB8fCBjb2wuaGFzQ2hlY2tib3gpICYmIGVuYWJsZVJvd1NlbGVjdGlvblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ/IGNoZWNrYm94VGVtcGxhdGVcblx0XHRcdFx0XHRcdFx0XHRcdFx0OiB1bmRlZmluZWRcblx0XHRcdFx0XHRcdFx0XHRcIlxuXHRcdFx0XHRcdFx0XHRcdFtpbmRleF09XCJpbmRleFwiXG5cdFx0XHRcdFx0XHRcdFx0W3Jvd0luZGV4XT1cInJvd0luZGV4XCJcblx0XHRcdFx0XHRcdFx0XHRbdGVtcGxhdGVdPVwiY29sLnRlbXBsYXRlXCJcblx0XHRcdFx0XHRcdFx0XHRbc2Nyb2xsYWJsZV09XCJ0aGlzLmVuYWJsZVNjcm9sbFwiXG5cdFx0XHRcdFx0XHRcdD48L3AtdGFibGUtY2VsbC1uZ3g+XG5cblx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNjaGVja2JveFRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0XHRcdDxwLWNoZWNrYm94XG5cdFx0XHRcdFx0XHRcdFx0XHQoY2hlY2tlZENoYW5nZSk9XCJfY2hlY2tib3hDaGFuZ2UoJGV2ZW50LnRhcmdldCwgcm93SW5kZXgpXCJcblx0XHRcdFx0XHRcdFx0XHRcdFtkaXNhYmxlZF09XCJfY2hlY2tib3hEaXNhYmxlZChpdGVtLCByb3dJbmRleClcIlxuXHRcdFx0XHRcdFx0XHRcdFx0W2NoZWNrZWRdPVwiX3NlbGVjdGlvbkNvbnRhaW5zKGl0ZW0sIHJvd0luZGV4KVwiXG5cdFx0XHRcdFx0XHRcdFx0PjwvcC1jaGVja2JveD5cblx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXG5cdFx0XHRcdFx0XHQ8cC10YWJsZS1yb3ctYWN0aW9ucy1jb250YWluZXJcblx0XHRcdFx0XHRcdFx0Km5nSWY9XCIhIXJvd0FjdGlvbnNSb3c/Lmxlbmd0aCAmJiAhKGlzTW9iaWxlJCB8IGFzeW5jKVwiXG5cdFx0XHRcdFx0XHRcdFtjaGVja2VkXT1cIl9zZWxlY3Rpb25Db250YWlucyhpdGVtLCByb3dJbmRleClcIlxuXHRcdFx0XHRcdFx0XHRzbG90PVwiYWN0aW9uc1wiXG5cdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiByb3dBY3Rpb25zUm93XCI+XG5cdFx0XHRcdFx0XHRcdFx0PHAtdG9vbHRpcFxuXHRcdFx0XHRcdFx0XHRcdFx0Km5nSWY9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0YWN0aW9uLnNob3dGdW5jdGlvblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD8gYWN0aW9uLnNob3dGdW5jdGlvbihwYXJzZWRJdGVtc1tyb3dJbmRleF0pXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0OiB0cnVlXG5cdFx0XHRcdFx0XHRcdFx0XHRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0W2NvbnRlbnRdPVwiYWN0aW9uWydsYWJlbCddXCJcblx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8cC1idXR0b25cblx0XHRcdFx0XHRcdFx0XHRcdFx0ZGF0YS1pcy1hY3Rpb25cblx0XHRcdFx0XHRcdFx0XHRcdFx0dmFyaWFudD1cInNlY29uZGFyeVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHNsb3Q9XCJ0cmlnZ2VyXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0W2ljb25dPVwiYWN0aW9uWydpY29uJ11cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRbaWNvblJvdGF0ZV09XCJhY3Rpb25bJ2ljb25Sb3RhdGUnXVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGljb25GbGlwPVwiYWN0aW9uLmljb25GbGlwXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0aWNvbk9ubHk9XCJ0cnVlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0c2l6ZT1cInNtXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0W2xvYWRpbmddPVwiYWN0aW9uWydsb2FkaW5nJ11cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRbZGlzYWJsZWRdPVwiYWN0aW9uWydkaXNhYmxlZCddXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0W3JvdXRlckxpbmtdPVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0YWN0aW9uLnJvdXRlckxpbmtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdD8gKF9nZXRBY3Rpb25Sb3V0ZXJMaW5rKGFjdGlvbi5yb3V0ZXJMaW5rLCByb3dJbmRleClcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgfCBhc3luYylcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDogbnVsbFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRbcXVlcnlQYXJhbXNdPVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0YWN0aW9uLnF1ZXJ5UGFyYW1zXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ/IChfZ2V0QWN0aW9uUXVlcnlQYXJhbXMoYWN0aW9uLnF1ZXJ5UGFyYW1zLCByb3dJbmRleClcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCAgfCBhc3luYylcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDogbnVsbFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQob25DbGljayk9XCJfcm93QWN0aW9uQ2xpY2soYWN0aW9uLCByb3dJbmRleClcIlxuXHRcdFx0XHRcdFx0XHRcdFx0PjwvcC1idXR0b24+XG5cdFx0XHRcdFx0XHRcdFx0PC9wLXRvb2x0aXA+XG5cdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHRcdFx0PC9wLXRhYmxlLXJvdy1hY3Rpb25zLWNvbnRhaW5lcj5cblx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0PC9wLXRhYmxlLXJvdz5cblx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cblx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjdXN0b21Sb3cgb2YgY3VzdG9tUm93c1wiPlxuXHRcdFx0PHAtdGFibGUtcm93XG5cdFx0XHRcdFt2YXJpYW50XT1cImN1c3RvbVJvdy52YXJpYW50XCJcblx0XHRcdFx0W2NsYXNzXT1cIntcblx0XHRcdFx0XHQnei1bMl0nOiBjdXN0b21Sb3cudmFyaWFudCA9PT0gJ3NlY29uZGFyeSdcblx0XHRcdFx0fVwiXG5cdFx0XHQ+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21Sb3cudGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdDwvcC10YWJsZS1yb3c+XG5cdFx0PC9uZy1jb250YWluZXI+XG5cdDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpbHRlck1vZGFsVGVtcGxhdGVcIj5cblx0PHAtbW9kYWxcblx0XHRbaGVhZGVyXT1cImZpbHRlck1vZGFsSGVhZGVyVGV4dFwiXG5cdFx0W3Nob3ddPVwiZmlsdGVyTW9kYWxTaG93JCB8IGFzeW5jXCJcblx0XHQoY2xvc2VkKT1cImZpbHRlck1vZGFsU2hvdyQubmV4dChmYWxzZSlcIlxuXHQ+XG5cdFx0PGRpdlxuXHRcdFx0c2xvdD1cImNvbnRlbnRcIlxuXHRcdFx0Y2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC02XCJcblx0XHQ+XG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsdGVyTW9kYWxUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXZcblx0XHRcdHNsb3Q9XCJmb290ZXJcIlxuXHRcdFx0Y2xhc3M9XCJmbGV4IHctZnVsbCBqdXN0aWZ5LWJldHdlZW4gZ2FwLTRcIlxuXHRcdD5cblx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHQqbmdJZj1cImZpbHRlck1vZGFsU2hvd1Jlc2V0TW9iaWxlXCJcblx0XHRcdFx0Y2xhc3M9XCJmbGV4IHctZnVsbCB0YWJsZXQ6dy1hdXRvIGRlc2t0b3AteHM6aGlkZGVuXCJcblx0XHRcdFx0dmFyaWFudD1cInNlY29uZGFyeVwiXG5cdFx0XHRcdChvbkNsaWNrKT1cIm9uRmlsdGVyTW9kYWxSZXNldCh0cnVlKVwiXG5cdFx0XHQ+XG5cdFx0XHRcdHt7IGZpbHRlck1vZGFsUmVzZXRUZXh0IH19XG5cdFx0XHQ8L3AtYnV0dG9uPlxuXHRcdFx0PHAtYnV0dG9uXG5cdFx0XHRcdCpuZ0lmPVwiZmlsdGVyTW9kYWxTaG93UmVzZXRcIlxuXHRcdFx0XHRjbGFzcz1cImhpZGRlbiB3LWZ1bGwgdGFibGV0OnctYXV0byBkZXNrdG9wLXhzOmZsZXhcIlxuXHRcdFx0XHR2YXJpYW50PVwic2Vjb25kYXJ5XCJcblx0XHRcdFx0KG9uQ2xpY2spPVwib25GaWx0ZXJNb2RhbFJlc2V0KClcIlxuXHRcdFx0PlxuXHRcdFx0XHR7eyBmaWx0ZXJNb2RhbFJlc2V0VGV4dCB9fVxuXHRcdFx0PC9wLWJ1dHRvbj5cblx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRjbGFzcz1cIm1sLWF1dG8gdy1mdWxsIHRhYmxldDp3LWF1dG9cIlxuXHRcdFx0XHRpY29uPVwiY2hlY2ttYXJrXCJcblx0XHRcdFx0KG9uQ2xpY2spPVwib25GaWx0ZXJNb2RhbFNhdmUoKVwiXG5cdFx0XHQ+XG5cdFx0XHRcdHt7IGZpbHRlck1vZGFsU2F2ZVRleHQgfX1cblx0XHRcdDwvcC1idXR0b24+XG5cdFx0PC9kaXY+XG5cdDwvcC1tb2RhbD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5U3RhdGVUZW1wbGF0ZT5cblx0PHAtZW1wdHktc3RhdGVcblx0XHQqbmdJZj1cImVtcHR5U3RhdGVUeXBlID09PSAnZmlsdGVyZWQnOyBlbHNlIGVtcHR5U3RhdGVOb25GaWx0ZXJUZW1wbGF0ZVwiXG5cdFx0Y2xhc3M9XCJteS0xNiBzZWxmLWNlbnRlclwiXG5cdFx0W2lsbHVzdHJhdGlvbl09XCJlbXB0eVN0YXRlRmlsdGVyZWRJbGx1c3RyYXRpb25cIlxuXHRcdFtoZWFkZXJdPVwiZW1wdHlTdGF0ZUZpbHRlcmVkSGVhZGVyXCJcblx0XHRbY29udGVudF09XCJlbXB0eVN0YXRlRmlsdGVyZWRDb250ZW50XCJcblx0XHRbZW5hYmxlQWN0aW9uXT1cImZhbHNlXCJcblx0PjwvcC1lbXB0eS1zdGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlTdGF0ZU5vbkZpbHRlclRlbXBsYXRlPlxuXHQ8cC1lbXB0eS1zdGF0ZVxuXHRcdGNsYXNzPVwibXktMTYgc2VsZi1jZW50ZXJcIlxuXHRcdFtpbGx1c3RyYXRpb25dPVwiZW1wdHlTdGF0ZUlsbHVzdHJhdGlvblwiXG5cdFx0W2hlYWRlcl09XCJlbXB0eVN0YXRlSGVhZGVyXCJcblx0XHRbY29udGVudF09XCJlbXB0eVN0YXRlQ29udGVudFwiXG5cdFx0W2VuYWJsZUFjdGlvbl09XCJlbmFibGVFbXB0eVN0YXRlQWN0aW9uXCJcblx0XHRbYWN0aW9uVGV4dF09XCJlbXB0eVN0YXRlQWN0aW9uXCJcblx0XHRbYWN0aW9uSWNvbl09XCJlbXB0eVN0YXRlQWN0aW9uSWNvblwiXG5cdFx0KGFjdGlvbik9XCJlbXB0eVN0YXRlQ2xpY2tlZCgpXCJcblx0PjwvcC1lbXB0eS1zdGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -4333,7 +4333,7 @@ let Table = class Table {
|
|
|
4333
4333
|
const promises = [];
|
|
4334
4334
|
for (const cell of cells) {
|
|
4335
4335
|
if ((_a = cell.style.width) === null || _a === void 0 ? void 0 : _a.length) {
|
|
4336
|
-
cell.style
|
|
4336
|
+
cell.setAttribute('style', '');
|
|
4337
4337
|
}
|
|
4338
4338
|
promises.push(new Promise(resolve => setTimeout(() => {
|
|
4339
4339
|
const rect = cell.getBoundingClientRect();
|