@leanix/components 0.3.98 → 0.3.100

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.
@@ -252,4 +252,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
252
252
  type: ViewChild,
253
253
  args: ['dropdown', { static: true }]
254
254
  }] } });
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLElBQUksbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pJLE9BQU8sRUFBRSxtQkFBbUIsRUFBWSxNQUFNLG9DQUFv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VSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0dBb0RRLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUVxRSxnQkFBZ0I7c0JBQTNGLFlBQVk7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRW5CLFVBQVU7c0JBQWhFLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNaLGdCQUFnQjtzQkFBeEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaWx0ZXIgYXMgX2ZpbHRlciwgZmluZEluZGV4LCBpbmNsdWRlcywgbGFzdCB9IGZyb20gJ2xvZGFzaC9mcCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQgYXMgb2JzZXJ2YWJsZUZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNlbGVjdERyb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zZWxlY3QtZHJvcGRvd24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEFSUk9XX0RPV04sIEFSUk9XX0xFRlQsIEFSUk9XX1JJR0hULCBBUlJPV19VUCwgQkFDS1NQQUNFLCBFTlRFUiwgRVNDQVBFLCBUQUIgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2tleS1jb2Rlcy5jb25zdGFudHMnO1xuaW1wb3J0IHsgQmFzZVNlbGVjdERpcmVjdGl2ZSwgRXZlbnRTZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvYmFzZS1zZWxlY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IEtleWJvYXJkU2VsZWN0QWN0aW9uIH0gZnJvbSAnLi4va2V5Ym9hcmQtc2VsZWN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZXNwb25zaXZlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9yZXNwb25zaXZlLWlucHV0L3Jlc3BvbnNpdmUtaW5wdXQuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgTXVsdGlTZWxlY3RTaXplID0gJ2RlZmF1bHQnIHwgJ3NtYWxsJztcblxuZXhwb3J0IHR5cGUgTXVsdGlTZWxlY3RSZW1vdmVJdGVtRXZlbnQgPSB7XG4gIGl0ZW06IGFueTtcbiAgLyoqXG4gICAqIElzIHRydWUgd2hlbiB0aGUgaXRlbSB3YXMgbm90IHJlbW92ZWQgYnkgcHJlc3NpbmcgYmFja3NwYWNlIG9uIHRoZSBrZXlib2FyZCByYXRoZXIgdGhhbiBjbGlja2luZyB0aGUgJ3gnLlxuICAgKi9cbiAgaXNNb3VzZTogYm9vbGVhbjtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LW11bHRpLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnbXVsdGktc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ211bHRpLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE11bHRpU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZVNlbGVjdERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHVibGljIHN0YXRpYyBpc1N0aWxsUG9zc2libGVNb3ZlVG9MZWZ0KGV2ZW50U2V0OiBFdmVudFNldCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhKFxuICAgICAgICBldmVudFNldC52aXJ0dWFsQ3Vyc29yUG9zaXRpb24gPT09IDAgJiZcbiAgICAgICAgZXZlbnRTZXQuaW5wdXRDdXJzb3JQb3NpdGlvbiA9PT0gMCAmJlxuICAgICAgICBldmVudFNldC5ldmVudC5rZXlDb2RlID09PSBBUlJPV19MRUZUICYmXG4gICAgICAgIGV2ZW50U2V0LnNlbGVjdGlvbkxlbmd0aCA9PT0gMFxuICAgICAgKSAmJlxuICAgICAgIShcbiAgICAgICAgZXZlbnRTZXQuZXZlbnQua2V5Q29kZSA9PT0gQVJST1dfTEVGVCAmJlxuICAgICAgICB0eXBlb2YgZXZlbnRTZXQuc2VsZWN0aW9uTGVuZ3RoID09PSAnbnVtYmVyJyAmJlxuICAgICAgICBldmVudFNldC5zZWxlY3Rpb25MZW5ndGggPiAwICYmXG4gICAgICAgIE1hdGguYWJzKGV2ZW50U2V0LnZpcnR1YWxDdXJzb3JQb3NpdGlvbikgPT09IGV2ZW50U2V0LnNlbGVjdGlvbkxlbmd0aFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzTW92aW5nZnJvbVplcm9Ub1JpZ2h0KGV2ZW50U2V0OiBFdmVudFNldCkge1xuICAgIHJldHVybiBldmVudFNldC52aXJ0dWFsQ3Vyc29yUG9zaXRpb24gPT09IDAgJiYgZXZlbnRTZXQuaW5wdXRDdXJzb3JQb3NpdGlvbiA9PT0gMCAmJiBldmVudFNldC5ldmVudC5rZXlDb2RlID09PSBBUlJPV19SSUdIVDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY2FsY3VsYXRlTmV3Q3Vyc29yUG9zdGlvbk9uS2V5Ym9hcmROYXZpZ2F0aW9uKGN1cnNvclBvc2l0aW9uOiBudW1iZXIsIGtleUNvZGU6IG51bWJlcikge1xuICAgIHN3aXRjaCAoa2V5Q29kZSkge1xuICAgICAgY2FzZSBBUlJPV19MRUZUOlxuICAgICAgICBjdXJzb3JQb3NpdGlvbi0tO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQVJST1dfUklHSFQ6XG4gICAgICAgIGN1cnNvclBvc2l0aW9uKys7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gY3Vyc29yUG9zaXRpb247XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldEtleWJvYXJkU2VsZWN0QWN0aW9uKGN1cnNvclBvc2l0aW9uOiBudW1iZXIsIGtleUNvZGU6IG51bWJlcik6IEtleWJvYXJkU2VsZWN0QWN0aW9uIHwgbnVsbCB7XG4gICAgaWYgKGN1cnNvclBvc2l0aW9uIDw9IC0xICYmIGtleUNvZGUgPT09IEFSUk9XX1JJR0hUKSB7XG4gICAgICByZXR1cm4gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uTkVYVDtcbiAgICB9XG4gICAgaWYgKGN1cnNvclBvc2l0aW9uID09PSAtMSAmJiBrZXlDb2RlID09PSBBUlJPV19MRUZUKSB7XG4gICAgICByZXR1cm4gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uTEFTVDtcbiAgICB9XG4gICAgaWYgKGN1cnNvclBvc2l0aW9uIDwgLTEgJiYga2V5Q29kZSA9PT0gQVJST1dfTEVGVCkge1xuICAgICAgcmV0dXJuIEtleWJvYXJkU2VsZWN0QWN0aW9uLlBSRVY7XG4gICAgfVxuICAgIGlmIChjdXJzb3JQb3NpdGlvbiA8PSAtMSAmJiBrZXlDb2RlID09PSBCQUNLU1BBQ0UpIHtcbiAgICAgIHJldHVybiBLZXlib2FyZFNlbGVjdEFjdGlvbi5FWEVDVVRFO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIEBJbnB1dCgpIG1hcmtJbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlbGVjdGlvbj86IGFueVtdIHwgbnVsbCA9IFtdO1xuICBASW5wdXQoKSBzaXplOiBNdWx0aVNlbGVjdFNpemUgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIGRyb3Bkb3duV2lkdGhTY2FsZTogJzF4JyB8ICcxLjV4JyB8ICcyeCcgPSAnMXgnO1xuXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAQ29udGVudENoaWxkKFNlbGVjdERyb3Bkb3duRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgZXhwbGljaXREcm9wZG93bj86IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZChSZXNwb25zaXZlSW5wdXRDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHF1ZXJ5SW5wdXQhOiBSZXNwb25zaXZlSW5wdXRDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJywgeyBzdGF0aWM6IHRydWUgfSkgaW1wbGljaXREcm9wZG93biE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZ2V0IGRyb3Bkb3duVG1wbCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHBsaWNpdERyb3Bkb3duIHx8IHRoaXMuaW1wbGljaXREcm9wZG93bjtcbiAgfVxuXG4gIG92ZXJyaWRlIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBpc0lucHV0Rm9jdXNlZFZpYVRhYiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldCBkcm9wZG93bldpZHRoKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgc3dpdGNoICh0aGlzLmRyb3Bkb3duV2lkdGhTY2FsZSkge1xuICAgICAgY2FzZSAnMXgnOlxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgY2FzZSAnMS41eCc6XG4gICAgICAgIHJldHVybiAnMTUwJSc7XG4gICAgICBjYXNlICcyeCc6XG4gICAgICAgIHJldHVybiAnMjAwJSc7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRJbnB1dCgpIHtcbiAgICB0aGlzLnF1ZXJ5SW5wdXQucmVzZXRJbnB1dCgpO1xuICAgIHRoaXMucXVlcnlDb250cm9sLnNldFZhbHVlKCcnKTtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMucXVlcnlJbnB1dC5mb2N1c0lucHV0KCk7XG4gIH1cblxuICBmb2N1c0FuZE9wZW4oKSB7XG4gICAgdGhpcy5xdWVyeUlucHV0LmZvY3VzSW5wdXQoKTtcbiAgICB0aGlzLm9wZW4ubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcblxuICAgIHRoaXMub3BlblxuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIGZpbHRlcigob3BlbikgPT4gb3BlbiksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RGaXJzdE9wdGlvbigpO1xuICAgICAgfSk7XG5cbiAgICAvLyBrZXlib2FyZCBldmVudCBoYW5kbGluZ1xuICAgIGNvbnN0IHNvdXJjZUVsZW1lbnQgPSB0aGlzLnF1ZXJ5SW5wdXQucmVzcG9uc2l2ZUlucHV0Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBvYnNlcnZhYmxlRnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHNvdXJjZUVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBpbmNsdWRlcyhldmVudC5rZXlDb2RlLCBbQVJST1dfRE9XTl0pKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vcGVuLm5leHQodHJ1ZSkpO1xuXG4gICAgLy8gaGFuZGxlIGtleWJvYXJkIG5hdmlnYXRpb24gZm9yIHRoZSBzZWxlY3Rpb25cbiAgICBvYnNlcnZhYmxlRnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHNvdXJjZUVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGV2ZW50KSA9PlxuICAgICAgICAgIHRoaXMubWFwVG9FdmVudFNldChcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgdGhpcy5xdWVyeUlucHV0LnJlc3BvbnNpdmVJbnB1dC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsQ3Vyc29yUG9zaXRpb24sXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA/IHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA6IDBcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIGZpbHRlcigoZXZlbnRTZXQpID0+IHtcbiAgICAgICAgICByZXR1cm4gIU11bHRpU2VsZWN0Q29tcG9uZW50LmlzTW92aW5nZnJvbVplcm9Ub1JpZ2h0KGV2ZW50U2V0KSAmJiBNdWx0aVNlbGVjdENvbXBvbmVudC5pc1N0aWxsUG9zc2libGVNb3ZlVG9MZWZ0KGV2ZW50U2V0KTtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgoZXZlbnRTZXQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBldmVudFNldC52aXJ0dWFsQ3Vyc29yUG9zaXRpb24gPT09IDAgJiZcbiAgICAgICAgICAgIGV2ZW50U2V0LmlucHV0Q3Vyc29yUG9zaXRpb24gPT09IDAgJiZcbiAgICAgICAgICAgIGV2ZW50U2V0LmV2ZW50LmtleUNvZGUgPT09IEJBQ0tTUEFDRSAmJlxuICAgICAgICAgICAgdHlwZW9mIGV2ZW50U2V0LnNlbGVjdGlvbkxlbmd0aCA9PT0gJ251bWJlcicgJiZcbiAgICAgICAgICAgIGV2ZW50U2V0LnNlbGVjdGlvbkxlbmd0aCA+IDBcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IGxhc3RJdGVtID0gbGFzdCh0aGlzLnNlbGVjdGlvbik7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUl0ZW0oeyBpdGVtOiBsYXN0SXRlbSwgaXNNb3VzZTogZmFsc2UgfSk7XG4gICAgICAgICAgICBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID0gdW5kZWZpbmVkOyAvLyBzZXQgdG8gbnVsbCB0byBwcmV2ZW50IGNvbnRpbnVpbmcgaW4gdGhlIHN0cmVhbVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIGV2ZW50U2V0LmlucHV0Q3Vyc29yUG9zaXRpb24gPT09ICdudW1iZXInICYmIGV2ZW50U2V0LmlucHV0Q3Vyc29yUG9zaXRpb24gPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgfSBlbHNlIGlmIChldmVudFNldC52aXJ0dWFsQ3Vyc29yUG9zaXRpb24gPT09IC0xICYmIGV2ZW50U2V0LmV2ZW50LmtleUNvZGUgPT09IEFSUk9XX1JJR0hUKSB7XG4gICAgICAgICAgICBldmVudFNldC5ldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25LZXlib2FyZFNlbGVjdEFjdGlvbiQubmV4dChLZXlib2FyZFNlbGVjdEFjdGlvbi5VTlNFTEVDVCk7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgICBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID0gdW5kZWZpbmVkOyAvLyBzZXQgdG8gbnVsbCB0byBwcmV2ZW50IGNvbnRpbnVpbmcgaW4gdGhlIHN0cmVhbVxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGZpbHRlcigoZXZlbnRTZXQpID0+IGV2ZW50U2V0LmlucHV0Q3Vyc29yUG9zaXRpb24gPT09IDApLFxuICAgICAgICBtYXAoKGV2ZW50U2V0KSA9PiBldmVudFNldC5ldmVudCksXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGluY2x1ZGVzKGV2ZW50LmtleUNvZGUsIFtBUlJPV19SSUdIVCwgQVJST1dfTEVGVCwgQkFDS1NQQUNFXSkpLFxuICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy52aXJ0dWFsQ3Vyc29yUG9zaXRpb24gPSBNdWx0aVNlbGVjdENvbXBvbmVudC5jYWxjdWxhdGVOZXdDdXJzb3JQb3N0aW9uT25LZXlib2FyZE5hdmlnYXRpb24oXG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbixcbiAgICAgICAgICAgIGV2ZW50LmtleUNvZGVcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjdXJzb3JQb3NpdGlvbjogdGhpcy52aXJ0dWFsQ3Vyc29yUG9zaXRpb24sXG4gICAgICAgICAgICBldmVudFxuICAgICAgICAgIH07XG4gICAgICAgIH0pLFxuICAgICAgICBtYXAoKHBvc2l0aW9uU2V0KSA9PiB7XG4gICAgICAgICAgY29uc3QgYWN0aW9uID0gTXVsdGlTZWxlY3RDb21wb25lbnQuZ2V0S2V5Ym9hcmRTZWxlY3RBY3Rpb24ocG9zaXRpb25TZXQuY3Vyc29yUG9zaXRpb24sIHBvc2l0aW9uU2V0LmV2ZW50LmtleUNvZGUpO1xuICAgICAgICAgIGlmIChhY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLk5FWFQpIHtcbiAgICAgICAgICAgIC8vIHByZXZlbnQgY3Vyc29yIGZyb20gbW92aW5nIGluIHRoZSBpbnB1dCBmaWVsZCwgd2hpbGUgd2UgYXJlIHN0aWxsIGluIHRoZSBzZWxlY3Rpb24gaXRlbXNcbiAgICAgICAgICAgIHBvc2l0aW9uU2V0LmV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY3Rpb247XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLnNlbGVjdGlvbktleWJvYXJkU2VsZWN0QWN0aW9uJCk7XG5cbiAgICBjb25zdCBpbnB1dEtleWJvYXJkRXZlbnRzJCA9IG9ic2VydmFibGVGcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4oc291cmNlRWxlbWVudCwgJ2tleWRvd24nKTtcblxuICAgIGlucHV0S2V5Ym9hcmRFdmVudHMkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gaW5jbHVkZXMoZXZlbnQua2V5Q29kZSwgW0FSUk9XX1VQLCBBUlJPV19ET1dOXSkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH0pO1xuXG4gICAgaW5wdXRLZXlib2FyZEV2ZW50cyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudC5rZXlDb2RlID09PSBFU0NBUEUgfHwgZXZlbnQua2V5Q29kZSA9PT0gVEFCKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSBFU0NBUEUgJiYgdGhpcy5kcm9wZG93bk9wZW4pIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3Blbi5uZXh0KGZhbHNlKTtcbiAgICAgIH0pO1xuXG4gICAgaW5wdXRLZXlib2FyZEV2ZW50cyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBpbmNsdWRlcyhldmVudC5rZXlDb2RlLCBbRU5URVIsIEFSUk9XX1VQLCBBUlJPV19ET1dOXSkpLFxuICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChldmVudC5rZXlDb2RlKSB7XG4gICAgICAgICAgICBjYXNlIEVOVEVSOlxuICAgICAgICAgICAgICByZXR1cm4gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uRVhFQ1VURTtcbiAgICAgICAgICAgIGNhc2UgQVJST1dfVVA6XG4gICAgICAgICAgICAgIHJldHVybiBLZXlib2FyZFNlbGVjdEFjdGlvbi5QUkVWO1xuICAgICAgICAgICAgY2FzZSBBUlJPV19ET1dOOlxuICAgICAgICAgICAgICByZXR1cm4gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uTkVYVDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMub3B0aW9uc0tleWJvYXJkU2VsZWN0QWN0aW9uJCk7XG5cbiAgICBpbnB1dEtleWJvYXJkRXZlbnRzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGluY2x1ZGVzKGV2ZW50LmtleUNvZGUsIFtFTlRFUiwgQVJST1dfRE9XTl0pKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vcGVuLm5leHQodHJ1ZSkpO1xuICB9XG5cbiAgYWRkSXRlbVRvU2VsZWN0aW9uKG9wdGlvbjogYW55KSB7XG4gICAgaWYgKG9wdGlvbiAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5zZWxlY3Rpb24gPSBbLi4uKHRoaXMuc2VsZWN0aW9uIHx8IFtdKV0uY29uY2F0KG9wdGlvbik7XG4gICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KFsuLi50aGlzLnNlbGVjdGlvbl0pO1xuICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UoWy4uLnRoaXMuc2VsZWN0aW9uXSk7XG4gICAgfVxuICAgIHRoaXMucmVzZXRTZWxlY3RTdGF0ZSgpO1xuICB9XG5cbiAgcmVtb3ZlSXRlbShvcHRpb25Ub1JlbW92ZTogTXVsdGlTZWxlY3RSZW1vdmVJdGVtRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwcmV2T3B0aW9uSW5kZXggPSBmaW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uID09PSBvcHRpb25Ub1JlbW92ZS5pdGVtLCB0aGlzLnNlbGVjdGlvbik7XG4gICAgY29uc3QgcHJldlNlbGVjdGlvbkxlbmdodCA9IHRoaXMuc2VsZWN0aW9uPy5sZW5ndGggPz8gMDtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IF9maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uICE9PSBvcHRpb25Ub1JlbW92ZS5pdGVtLCB0aGlzLnNlbGVjdGlvbik7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KFsuLi50aGlzLnNlbGVjdGlvbl0pO1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKFsuLi50aGlzLnNlbGVjdGlvbl0pO1xuXG4gICAgaWYgKHByZXZPcHRpb25JbmRleCA9PT0gcHJldlNlbGVjdGlvbkxlbmdodCAtIDEgfHwgb3B0aW9uVG9SZW1vdmUuaXNNb3VzZSkge1xuICAgICAgdGhpcy5yZXNldFNlbGVjdFN0YXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uKys7XG4gICAgfVxuICB9XG5cbiAgcHJvcGFnYXRlQ2hhbmdlKF92YWx1ZTogYW55W10pIHt9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55W10pIHtcbiAgICB0aGlzLnNlbGVjdGlvbiA9IHZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKF9mbjogYW55KSB7fVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgZm9jdXNlZFZpYVRhYigpIHtcbiAgICB0aGlzLmlzSW5wdXRGb2N1c2VkVmlhVGFiID0gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImRyb3Bkb3duT3BlblwiIGNsYXNzPVwiYmFja2Ryb3BcIiAoY2xpY2spPVwiaGFuZGxlQmFja2Ryb3BDbGljaygkZXZlbnQpXCI+PC9kaXY+XG48ZGl2XG4gIFtseE1hcmtJbnZhbGlkXT1cIm1hcmtJbnZhbGlkXCJcbiAgY2xhc3M9XCJzZWxlY3RDb250YWluZXJcIlxuICBbY2xhc3Mub3Blbl09XCJkcm9wZG93bk9wZW5cIlxuICBbY2xhc3MudG9wXT1cIihkcm9wZG93bkRpcmVjdGlvbiQgfCBhc3luYykgPT09ICdUT1AnXCJcbiAgW2NsYXNzLmJvdHRvbV09XCIoZHJvcGRvd25EaXJlY3Rpb24kIHwgYXN5bmMpID09PSAnQk9UVE9NJ1wiXG4gIFtjbGFzcy5mb2N1c2VkXT1cImlzSW5wdXRGb2N1c2VkXCJcbiAgW2NsYXNzLmZvY3VzZWRWaXNpYmxlXT1cImlzSW5wdXRGb2N1c2VkVmlhVGFiXCJcbiAgW2NsYXNzLmhhc1NlbGVjdGlvbl09XCJzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLmxlbmd0aCA+IDBcIlxuICBbY2xhc3Muc21hbGxTaXplXT1cInNpemUgPT09ICdzbWFsbCdcIlxuICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAoY2xpY2spPVwiaGFuZGxlQ2xpY2soJGV2ZW50LnRhcmdldCA9PT0gdG9nZ2xlKVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJzZWxlY3RlZENob2ljZXNDb250YWluZXJcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiKHNlbGVjdGlvbj8ubGVuZ3RoID09PSAwIHx8ICFzZWxlY3Rpb24pICYmICFxdWVyeUNvbnRyb2w/LnZhbHVlXCIgY2xhc3M9XCJwbGFjZWhvbGRlclwiIFthdHRyLnRpdGxlXT1cInBsYWNlaG9sZGVyXCI+XG4gICAgICB7eyBwbGFjZWhvbGRlciB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3Rpb25cIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIi5waWxsc1wiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bHgtcmVzcG9uc2l2ZS1pbnB1dFxuICAgICAgKGZvY3VzKT1cImlzSW5wdXRGb2N1c2VkID0gdHJ1ZVwiXG4gICAgICAoYmx1cik9XCJpc0lucHV0Rm9jdXNlZCA9IGZhbHNlOyBpc0lucHV0Rm9jdXNlZFZpYVRhYiA9IGZhbHNlOyBibHVyLmVtaXQoKVwiXG4gICAgICAoZm9jdXNWaWFUYWIpPVwiZm9jdXNlZFZpYVRhYigpXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJxdWVyeUNvbnRyb2xcIlxuICAgICAgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgID48L2x4LXJlc3BvbnNpdmUtaW5wdXQ+XG4gICAgPGkgI3RvZ2dsZSBbaGlkZGVuXT1cImRpc2FibGVkXCIgY2xhc3M9XCJmYXMgZmEtYW5nbGUtZG93blwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvcHRpb25zQ29udGFpbmVyXCIgW3N0eWxlLndpZHRoXT1cImRyb3Bkb3duV2lkdGhcIiAjb3B0aW9uc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZHJvcGRvd25PcGVuXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcGRvd25UbXBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZHJvcGRvd24+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIi5kcm9wZG93bkNvbXBvbmVudFwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLElBQUksbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pJLE9BQU8sRUFBRSxtQkFBbUIsRUFBWSxNQUFNLG9DQUFv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VSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0dBb0RRLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUVxRSxnQkFBZ0I7c0JBQTNGLFlBQVk7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRW5CLFVBQVU7c0JBQWhFLFNBQVM7dUJBQUMsd0JBQXdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNaLGdCQUFnQjtzQkFBeEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaWx0ZXIgYXMgX2ZpbHRlciwgZmluZEluZGV4LCBpbmNsdWRlcywgbGFzdCB9IGZyb20gJ2xvZGFzaC9mcCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQgYXMgb2JzZXJ2YWJsZUZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNlbGVjdERyb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zZWxlY3QtZHJvcGRvd24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEFSUk9XX0RPV04sIEFSUk9XX0xFRlQsIEFSUk9XX1JJR0hULCBBUlJPV19VUCwgQkFDS1NQQUNFLCBFTlRFUiwgRVNDQVBFLCBUQUIgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2tleS1jb2Rlcy5jb25zdGFudHMnO1xuaW1wb3J0IHsgQmFzZVNlbGVjdERpcmVjdGl2ZSwgRXZlbnRTZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvYmFzZS1zZWxlY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IEtleWJvYXJkU2VsZWN0QWN0aW9uIH0gZnJvbSAnLi4va2V5Ym9hcmQtc2VsZWN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZXNwb25zaXZlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9yZXNwb25zaXZlLWlucHV0L3Jlc3BvbnNpdmUtaW5wdXQuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgTXVsdGlTZWxlY3RTaXplID0gJ2RlZmF1bHQnIHwgJ3NtYWxsJyB8ICdsYXJnZScgfCAnc2VsZWN0Mic7XG5cbmV4cG9ydCB0eXBlIE11bHRpU2VsZWN0UmVtb3ZlSXRlbUV2ZW50ID0ge1xuICBpdGVtOiBhbnk7XG4gIC8qKlxuICAgKiBJcyB0cnVlIHdoZW4gdGhlIGl0ZW0gd2FzIG5vdCByZW1vdmVkIGJ5IHByZXNzaW5nIGJhY2tzcGFjZSBvbiB0aGUga2V5Ym9hcmQgcmF0aGVyIHRoYW4gY2xpY2tpbmcgdGhlICd4Jy5cbiAgICovXG4gIGlzTW91c2U6IGJvb2xlYW47XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1tdWx0aS1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJ211bHRpLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydtdWx0aS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNdWx0aVNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWxlY3REaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIHB1YmxpYyBzdGF0aWMgaXNTdGlsbFBvc3NpYmxlTW92ZVRvTGVmdChldmVudFNldDogRXZlbnRTZXQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgIShcbiAgICAgICAgZXZlbnRTZXQudmlydHVhbEN1cnNvclBvc2l0aW9uID09PSAwICYmXG4gICAgICAgIGV2ZW50U2V0LmlucHV0Q3Vyc29yUG9zaXRpb24gPT09IDAgJiZcbiAgICAgICAgZXZlbnRTZXQuZXZlbnQua2V5Q29kZSA9PT0gQVJST1dfTEVGVCAmJlxuICAgICAgICBldmVudFNldC5zZWxlY3Rpb25MZW5ndGggPT09IDBcbiAgICAgICkgJiZcbiAgICAgICEoXG4gICAgICAgIGV2ZW50U2V0LmV2ZW50LmtleUNvZGUgPT09IEFSUk9XX0xFRlQgJiZcbiAgICAgICAgdHlwZW9mIGV2ZW50U2V0LnNlbGVjdGlvbkxlbmd0aCA9PT0gJ251bWJlcicgJiZcbiAgICAgICAgZXZlbnRTZXQuc2VsZWN0aW9uTGVuZ3RoID4gMCAmJlxuICAgICAgICBNYXRoLmFicyhldmVudFNldC52aXJ0dWFsQ3Vyc29yUG9zaXRpb24pID09PSBldmVudFNldC5zZWxlY3Rpb25MZW5ndGhcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc01vdmluZ2Zyb21aZXJvVG9SaWdodChldmVudFNldDogRXZlbnRTZXQpIHtcbiAgICByZXR1cm4gZXZlbnRTZXQudmlydHVhbEN1cnNvclBvc2l0aW9uID09PSAwICYmIGV2ZW50U2V0LmlucHV0Q3Vyc29yUG9zaXRpb24gPT09IDAgJiYgZXZlbnRTZXQuZXZlbnQua2V5Q29kZSA9PT0gQVJST1dfUklHSFQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNhbGN1bGF0ZU5ld0N1cnNvclBvc3Rpb25PbktleWJvYXJkTmF2aWdhdGlvbihjdXJzb3JQb3NpdGlvbjogbnVtYmVyLCBrZXlDb2RlOiBudW1iZXIpIHtcbiAgICBzd2l0Y2ggKGtleUNvZGUpIHtcbiAgICAgIGNhc2UgQVJST1dfTEVGVDpcbiAgICAgICAgY3Vyc29yUG9zaXRpb24tLTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEFSUk9XX1JJR0hUOlxuICAgICAgICBjdXJzb3JQb3NpdGlvbisrO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIGN1cnNvclBvc2l0aW9uO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRLZXlib2FyZFNlbGVjdEFjdGlvbihjdXJzb3JQb3NpdGlvbjogbnVtYmVyLCBrZXlDb2RlOiBudW1iZXIpOiBLZXlib2FyZFNlbGVjdEFjdGlvbiB8IG51bGwge1xuICAgIGlmIChjdXJzb3JQb3NpdGlvbiA8PSAtMSAmJiBrZXlDb2RlID09PSBBUlJPV19SSUdIVCkge1xuICAgICAgcmV0dXJuIEtleWJvYXJkU2VsZWN0QWN0aW9uLk5FWFQ7XG4gICAgfVxuICAgIGlmIChjdXJzb3JQb3NpdGlvbiA9PT0gLTEgJiYga2V5Q29kZSA9PT0gQVJST1dfTEVGVCkge1xuICAgICAgcmV0dXJuIEtleWJvYXJkU2VsZWN0QWN0aW9uLkxBU1Q7XG4gICAgfVxuICAgIGlmIChjdXJzb3JQb3NpdGlvbiA8IC0xICYmIGtleUNvZGUgPT09IEFSUk9XX0xFRlQpIHtcbiAgICAgIHJldHVybiBLZXlib2FyZFNlbGVjdEFjdGlvbi5QUkVWO1xuICAgIH1cbiAgICBpZiAoY3Vyc29yUG9zaXRpb24gPD0gLTEgJiYga2V5Q29kZSA9PT0gQkFDS1NQQUNFKSB7XG4gICAgICByZXR1cm4gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uRVhFQ1VURTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBASW5wdXQoKSBtYXJrSW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWxlY3Rpb24/OiBhbnlbXSB8IG51bGwgPSBbXTtcbiAgQElucHV0KCkgc2l6ZTogTXVsdGlTZWxlY3RTaXplID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBkcm9wZG93bldpZHRoU2NhbGU6ICcxeCcgfCAnMS41eCcgfCAnMngnID0gJzF4JztcblxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChTZWxlY3REcm9wZG93bkRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pIGV4cGxpY2l0RHJvcGRvd24/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoUmVzcG9uc2l2ZUlucHV0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBxdWVyeUlucHV0ITogUmVzcG9uc2l2ZUlucHV0Q29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdkcm9wZG93bicsIHsgc3RhdGljOiB0cnVlIH0pIGltcGxpY2l0RHJvcGRvd24hOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGdldCBkcm9wZG93blRtcGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwbGljaXREcm9wZG93biB8fCB0aGlzLmltcGxpY2l0RHJvcGRvd247XG4gIH1cblxuICBvdmVycmlkZSByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgaXNJbnB1dEZvY3VzZWRWaWFUYWIgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZXQgZHJvcGRvd25XaWR0aCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHN3aXRjaCAodGhpcy5kcm9wZG93bldpZHRoU2NhbGUpIHtcbiAgICAgIGNhc2UgJzF4JzpcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIGNhc2UgJzEuNXgnOlxuICAgICAgICByZXR1cm4gJzE1MCUnO1xuICAgICAgY2FzZSAnMngnOlxuICAgICAgICByZXR1cm4gJzIwMCUnO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0SW5wdXQoKSB7XG4gICAgdGhpcy5xdWVyeUlucHV0LnJlc2V0SW5wdXQoKTtcbiAgICB0aGlzLnF1ZXJ5Q29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICB0aGlzLnF1ZXJ5SW5wdXQuZm9jdXNJbnB1dCgpO1xuICB9XG5cbiAgZm9jdXNBbmRPcGVuKCkge1xuICAgIHRoaXMucXVlcnlJbnB1dC5mb2N1c0lucHV0KCk7XG4gICAgdGhpcy5vcGVuLm5leHQodHJ1ZSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICB0aGlzLm9wZW5cbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBmaWx0ZXIoKG9wZW4pID0+IG9wZW4pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0Rmlyc3RPcHRpb24oKTtcbiAgICAgIH0pO1xuXG4gICAgLy8ga2V5Ym9hcmQgZXZlbnQgaGFuZGxpbmdcbiAgICBjb25zdCBzb3VyY2VFbGVtZW50ID0gdGhpcy5xdWVyeUlucHV0LnJlc3BvbnNpdmVJbnB1dC5uYXRpdmVFbGVtZW50O1xuXG4gICAgb2JzZXJ2YWJsZUZyb21FdmVudDxLZXlib2FyZEV2ZW50Pihzb3VyY2VFbGVtZW50LCAna2V5ZG93bicpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gaW5jbHVkZXMoZXZlbnQua2V5Q29kZSwgW0FSUk9XX0RPV05dKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMub3Blbi5uZXh0KHRydWUpKTtcblxuICAgIC8vIGhhbmRsZSBrZXlib2FyZCBuYXZpZ2F0aW9uIGZvciB0aGUgc2VsZWN0aW9uXG4gICAgb2JzZXJ2YWJsZUZyb21FdmVudDxLZXlib2FyZEV2ZW50Pihzb3VyY2VFbGVtZW50LCAna2V5ZG93bicpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChldmVudCkgPT5cbiAgICAgICAgICB0aGlzLm1hcFRvRXZlbnRTZXQoXG4gICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgIHRoaXMucXVlcnlJbnB1dC5yZXNwb25zaXZlSW5wdXQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24gPyB0aGlzLnNlbGVjdGlvbi5sZW5ndGggOiAwXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBmaWx0ZXIoKGV2ZW50U2V0KSA9PiB7XG4gICAgICAgICAgcmV0dXJuICFNdWx0aVNlbGVjdENvbXBvbmVudC5pc01vdmluZ2Zyb21aZXJvVG9SaWdodChldmVudFNldCkgJiYgTXVsdGlTZWxlY3RDb21wb25lbnQuaXNTdGlsbFBvc3NpYmxlTW92ZVRvTGVmdChldmVudFNldCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAoKGV2ZW50U2V0KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnRTZXQudmlydHVhbEN1cnNvclBvc2l0aW9uID09PSAwICYmXG4gICAgICAgICAgICBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID09PSAwICYmXG4gICAgICAgICAgICBldmVudFNldC5ldmVudC5rZXlDb2RlID09PSBCQUNLU1BBQ0UgJiZcbiAgICAgICAgICAgIHR5cGVvZiBldmVudFNldC5zZWxlY3Rpb25MZW5ndGggPT09ICdudW1iZXInICYmXG4gICAgICAgICAgICBldmVudFNldC5zZWxlY3Rpb25MZW5ndGggPiAwXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBsYXN0SXRlbSA9IGxhc3QodGhpcy5zZWxlY3Rpb24pO1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVJdGVtKHsgaXRlbTogbGFzdEl0ZW0sIGlzTW91c2U6IGZhbHNlIH0pO1xuICAgICAgICAgICAgZXZlbnRTZXQuaW5wdXRDdXJzb3JQb3NpdGlvbiA9IHVuZGVmaW5lZDsgLy8gc2V0IHRvIG51bGwgdG8gcHJldmVudCBjb250aW51aW5nIGluIHRoZSBzdHJlYW1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHR5cGVvZiBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID09PSAnbnVtYmVyJyAmJiBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID4gMCkge1xuICAgICAgICAgICAgdGhpcy52aXJ0dWFsQ3Vyc29yUG9zaXRpb24gPSAwO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnRTZXQudmlydHVhbEN1cnNvclBvc2l0aW9uID09PSAtMSAmJiBldmVudFNldC5ldmVudC5rZXlDb2RlID09PSBBUlJPV19SSUdIVCkge1xuICAgICAgICAgICAgZXZlbnRTZXQuZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uS2V5Ym9hcmRTZWxlY3RBY3Rpb24kLm5leHQoS2V5Ym9hcmRTZWxlY3RBY3Rpb24uVU5TRUxFQ1QpO1xuICAgICAgICAgICAgdGhpcy52aXJ0dWFsQ3Vyc29yUG9zaXRpb24gPSAwO1xuICAgICAgICAgICAgZXZlbnRTZXQuaW5wdXRDdXJzb3JQb3NpdGlvbiA9IHVuZGVmaW5lZDsgLy8gc2V0IHRvIG51bGwgdG8gcHJldmVudCBjb250aW51aW5nIGluIHRoZSBzdHJlYW1cbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBmaWx0ZXIoKGV2ZW50U2V0KSA9PiBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID09PSAwKSxcbiAgICAgICAgbWFwKChldmVudFNldCkgPT4gZXZlbnRTZXQuZXZlbnQpLFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBpbmNsdWRlcyhldmVudC5rZXlDb2RlLCBbQVJST1dfUklHSFQsIEFSUk9XX0xFRlQsIEJBQ0tTUEFDRV0pKSxcbiAgICAgICAgbWFwKChldmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uID0gTXVsdGlTZWxlY3RDb21wb25lbnQuY2FsY3VsYXRlTmV3Q3Vyc29yUG9zdGlvbk9uS2V5Ym9hcmROYXZpZ2F0aW9uKFxuICAgICAgICAgICAgdGhpcy52aXJ0dWFsQ3Vyc29yUG9zaXRpb24sXG4gICAgICAgICAgICBldmVudC5rZXlDb2RlXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY3Vyc29yUG9zaXRpb246IHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uLFxuICAgICAgICAgICAgZXZlbnRcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKChwb3NpdGlvblNldCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IE11bHRpU2VsZWN0Q29tcG9uZW50LmdldEtleWJvYXJkU2VsZWN0QWN0aW9uKHBvc2l0aW9uU2V0LmN1cnNvclBvc2l0aW9uLCBwb3NpdGlvblNldC5ldmVudC5rZXlDb2RlKTtcbiAgICAgICAgICBpZiAoYWN0aW9uID09PSBLZXlib2FyZFNlbGVjdEFjdGlvbi5ORVhUKSB7XG4gICAgICAgICAgICAvLyBwcmV2ZW50IGN1cnNvciBmcm9tIG1vdmluZyBpbiB0aGUgaW5wdXQgZmllbGQsIHdoaWxlIHdlIGFyZSBzdGlsbCBpbiB0aGUgc2VsZWN0aW9uIGl0ZW1zXG4gICAgICAgICAgICBwb3NpdGlvblNldC5ldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWN0aW9uO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5zZWxlY3Rpb25LZXlib2FyZFNlbGVjdEFjdGlvbiQpO1xuXG4gICAgY29uc3QgaW5wdXRLZXlib2FyZEV2ZW50cyQgPSBvYnNlcnZhYmxlRnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHNvdXJjZUVsZW1lbnQsICdrZXlkb3duJyk7XG5cbiAgICBpbnB1dEtleWJvYXJkRXZlbnRzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGluY2x1ZGVzKGV2ZW50LmtleUNvZGUsIFtBUlJPV19VUCwgQVJST1dfRE9XTl0pKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9KTtcblxuICAgIGlucHV0S2V5Ym9hcmRFdmVudHMkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFIHx8IGV2ZW50LmtleUNvZGUgPT09IFRBQiksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFICYmIHRoaXMuZHJvcGRvd25PcGVuKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wZW4ubmV4dChmYWxzZSk7XG4gICAgICB9KTtcblxuICAgIGlucHV0S2V5Ym9hcmRFdmVudHMkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChldmVudCkgPT4gaW5jbHVkZXMoZXZlbnQua2V5Q29kZSwgW0VOVEVSLCBBUlJPV19VUCwgQVJST1dfRE9XTl0pKSxcbiAgICAgICAgbWFwKChldmVudCkgPT4ge1xuICAgICAgICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xuICAgICAgICAgICAgY2FzZSBFTlRFUjpcbiAgICAgICAgICAgICAgcmV0dXJuIEtleWJvYXJkU2VsZWN0QWN0aW9uLkVYRUNVVEU7XG4gICAgICAgICAgICBjYXNlIEFSUk9XX1VQOlxuICAgICAgICAgICAgICByZXR1cm4gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uUFJFVjtcbiAgICAgICAgICAgIGNhc2UgQVJST1dfRE9XTjpcbiAgICAgICAgICAgICAgcmV0dXJuIEtleWJvYXJkU2VsZWN0QWN0aW9uLk5FWFQ7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLm9wdGlvbnNLZXlib2FyZFNlbGVjdEFjdGlvbiQpO1xuXG4gICAgaW5wdXRLZXlib2FyZEV2ZW50cyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBpbmNsdWRlcyhldmVudC5rZXlDb2RlLCBbRU5URVIsIEFSUk9XX0RPV05dKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMub3Blbi5uZXh0KHRydWUpKTtcbiAgfVxuXG4gIGFkZEl0ZW1Ub1NlbGVjdGlvbihvcHRpb246IGFueSkge1xuICAgIGlmIChvcHRpb24gIT09IG51bGwpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gWy4uLih0aGlzLnNlbGVjdGlvbiB8fCBbXSldLmNvbmNhdChvcHRpb24pO1xuICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChbLi4udGhpcy5zZWxlY3Rpb25dKTtcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKFsuLi50aGlzLnNlbGVjdGlvbl0pO1xuICAgIH1cbiAgICB0aGlzLnJlc2V0U2VsZWN0U3RhdGUoKTtcbiAgfVxuXG4gIHJlbW92ZUl0ZW0ob3B0aW9uVG9SZW1vdmU6IE11bHRpU2VsZWN0UmVtb3ZlSXRlbUV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcHJldk9wdGlvbkluZGV4ID0gZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbiA9PT0gb3B0aW9uVG9SZW1vdmUuaXRlbSwgdGhpcy5zZWxlY3Rpb24pO1xuICAgIGNvbnN0IHByZXZTZWxlY3Rpb25MZW5naHQgPSB0aGlzLnNlbGVjdGlvbj8ubGVuZ3RoID8/IDA7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBfZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbiAhPT0gb3B0aW9uVG9SZW1vdmUuaXRlbSwgdGhpcy5zZWxlY3Rpb24pO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChbLi4udGhpcy5zZWxlY3Rpb25dKTtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShbLi4udGhpcy5zZWxlY3Rpb25dKTtcblxuICAgIGlmIChwcmV2T3B0aW9uSW5kZXggPT09IHByZXZTZWxlY3Rpb25MZW5naHQgLSAxIHx8IG9wdGlvblRvUmVtb3ZlLmlzTW91c2UpIHtcbiAgICAgIHRoaXMucmVzZXRTZWxlY3RTdGF0ZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbisrO1xuICAgIH1cbiAgfVxuXG4gIHByb3BhZ2F0ZUNoYW5nZShfdmFsdWU6IGFueVtdKSB7fVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueVtdKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChfZm46IGFueSkge31cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIGZvY3VzZWRWaWFUYWIoKSB7XG4gICAgdGhpcy5pc0lucHV0Rm9jdXNlZFZpYVRhYiA9IHRydWU7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJkcm9wZG93bk9wZW5cIiBjbGFzcz1cImJhY2tkcm9wXCIgKGNsaWNrKT1cImhhbmRsZUJhY2tkcm9wQ2xpY2soJGV2ZW50KVwiPjwvZGl2PlxuPGRpdlxuICBbbHhNYXJrSW52YWxpZF09XCJtYXJrSW52YWxpZFwiXG4gIGNsYXNzPVwic2VsZWN0Q29udGFpbmVyXCJcbiAgW2NsYXNzLm9wZW5dPVwiZHJvcGRvd25PcGVuXCJcbiAgW2NsYXNzLnRvcF09XCIoZHJvcGRvd25EaXJlY3Rpb24kIHwgYXN5bmMpID09PSAnVE9QJ1wiXG4gIFtjbGFzcy5ib3R0b21dPVwiKGRyb3Bkb3duRGlyZWN0aW9uJCB8IGFzeW5jKSA9PT0gJ0JPVFRPTSdcIlxuICBbY2xhc3MuZm9jdXNlZF09XCJpc0lucHV0Rm9jdXNlZFwiXG4gIFtjbGFzcy5mb2N1c2VkVmlzaWJsZV09XCJpc0lucHV0Rm9jdXNlZFZpYVRhYlwiXG4gIFtjbGFzcy5oYXNTZWxlY3Rpb25dPVwic2VsZWN0aW9uICYmIHNlbGVjdGlvbi5sZW5ndGggPiAwXCJcbiAgW2NsYXNzLnNtYWxsU2l6ZV09XCJzaXplID09PSAnc21hbGwnXCJcbiAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudC50YXJnZXQgPT09IHRvZ2dsZSlcIlxuPlxuICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRDaG9pY2VzQ29udGFpbmVyXCI+XG4gICAgPGRpdiAqbmdJZj1cIihzZWxlY3Rpb24/Lmxlbmd0aCA9PT0gMCB8fCAhc2VsZWN0aW9uKSAmJiAhcXVlcnlDb250cm9sPy52YWx1ZVwiIGNsYXNzPVwicGxhY2Vob2xkZXJcIiBbYXR0ci50aXRsZV09XCJwbGFjZWhvbGRlclwiPlxuICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2VsZWN0aW9uXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCIucGlsbHNcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGx4LXJlc3BvbnNpdmUtaW5wdXRcbiAgICAgIChmb2N1cyk9XCJpc0lucHV0Rm9jdXNlZCA9IHRydWVcIlxuICAgICAgKGJsdXIpPVwiaXNJbnB1dEZvY3VzZWQgPSBmYWxzZTsgaXNJbnB1dEZvY3VzZWRWaWFUYWIgPSBmYWxzZTsgYmx1ci5lbWl0KClcIlxuICAgICAgKGZvY3VzVmlhVGFiKT1cImZvY3VzZWRWaWFUYWIoKVwiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwicXVlcnlDb250cm9sXCJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICA+PC9seC1yZXNwb25zaXZlLWlucHV0PlxuICAgIDxpICN0b2dnbGUgW2hpZGRlbl09XCJkaXNhYmxlZFwiIGNsYXNzPVwiZmFzIGZhLWFuZ2xlLWRvd25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwib3B0aW9uc0NvbnRhaW5lclwiIFtzdHlsZS53aWR0aF09XCJkcm9wZG93bldpZHRoXCIgI29wdGlvbnNDb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRyb3Bkb3duT3BlblwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRyb3Bkb3duVG1wbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCIuZHJvcGRvd25Db21wb25lbnRcIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19