@frontegg/angular 7.0.0-alpha.10404160156 → 7.0.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.
@@ -443,8 +443,7 @@ export class FronteggAuthService {
443
443
  }
444
444
  dispatchAction(type, payload) {
445
445
  const store = this.fronteggAppService.fronteggApp.store;
446
- // @ts-ignore
447
- store.dispatch({ type: `${authStoreName}/${type}`, payload });
446
+ store.dispatch({ type: `auth/${type}`, payload });
448
447
  }
449
448
  isHostedLoginCallbackRoute() {
450
449
  const path = this.fronteggAppService.router.url;
@@ -467,4 +466,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
467
466
  providedIn: 'root',
468
467
  }]
469
468
  }], ctorParameters: function () { return [{ type: i1.FronteggAppService }, { type: i2.Router }, { type: i3.FronteggUserSubscriptionService }]; } });
470
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlZ2ctYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnJvbnRlZ2ctYXBwL3NyYy9saWIvZnJvbnRlZ2ctYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBaUMsTUFBTSxNQUFNLENBQUM7QUFFdEUsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBMkg1QyxNQUFNLE9BQU8sbUJBQW1CO0lBdVA5QixZQUNVLGtCQUFzQyxFQUN0QyxNQUFjLEVBQ2QsK0JBQWdFO1FBRmhFLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBaUM7UUF4UDFFLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFZLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFlLENBQUMsQ0FBQztRQUM1RyxpQ0FBNEIsR0FBRyxJQUFJLGVBQWUsQ0FBcUMsRUFBd0MsQ0FBQyxDQUFDO1FBQ2pJLGdDQUEyQixHQUFHLElBQUksZUFBZSxDQUFvQyxFQUF1QyxDQUFDLENBQUM7UUFDOUgsZ0NBQTJCLEdBQUcsSUFBSSxlQUFlLENBQW9DLEVBQXVDLENBQUMsQ0FBQztRQUM5SCwwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBOEIsRUFBaUMsQ0FBQyxDQUFDO1FBQzVHLCtCQUEwQixHQUFHLElBQUksZUFBZSxDQUFtQyxFQUFzQyxDQUFDLENBQUM7UUFDM0gsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQTBCLEVBQTZCLENBQUMsQ0FBQztRQUNoRyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUF3QixFQUEyQixDQUFDLENBQUM7UUFDMUYsd0JBQW1CLEdBQUcs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QUFJLEVBQUUsR0FBRyxhQUFhLElBQUksSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBR00sMEJBQTBCO1FBQy9CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO1FBQ2hELE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLGFBQXRCLHNCQUFzQixjQUF0QixzQkFBc0IsR0FBSSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZLENBQUMsUUFBa0MsRUFBRSxPQUE0QjtRQUNsRixPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyw4QkFBOEIsQ0FDeEUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQzlELFFBQVEsQ0FDVCxDQUFDO0lBQ0osQ0FBQzs7aUhBalhVLG1CQUFtQjtxSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgUGFydGlhbE9ic2VydmVyLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZyb250ZWdnQXBwU2VydmljZSB9IGZyb20gJy4vZnJvbnRlZ2ctYXBwLnNlcnZpY2UnO1xuaW1wb3J0IEZhc3REZWVwRXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsJztcbmltcG9ydCB7XG4gIFJvbGVzU3RhdGUsXG4gIFRlbmFudHNTdGF0ZSxcbiAgQWNjb3VudFNldHRpbmdzU3RhdGUsXG4gIFNhdmVTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeVBheWxvYWQsXG4gIFNhdmVTZWN1cml0eVBvbGljeUxvY2tvdXRQYXlsb2FkLFxuICBTYXZlU2VjdXJpdHlQb2xpY3lNZmFQYXlsb2FkLFxuICBQYXNzd29yZFBvbGljeVN0YXRlLFxuICBQYXNzd29yZEhpc3RvcnlQb2xpY3lTdGF0ZSxcbiAgTWZhUG9saWN5U3RhdGUsXG4gIENhcHRjaGFQb2xpY3lTdGF0ZSxcbiAgTG9ja291dFBvbGljeVN0YXRlLFxuICBQdWJsaWNQb2xpY3lTdGF0ZSxcbiAgR2xvYmFsUG9saWN5U3RhdGUsXG4gIFNlY3VyaXR5UG9saWN5U3RhdGUsXG4gIEFkZFVzZXJBcGlUb2tlblBheWxvYWQsXG4gIEFkZFRlbmFudEFwaVRva2VuUGF5bG9hZCxcbiAgQXBpVG9rZW5UeXBlLFxuICBBcGlUb2tlbnNTdGF0ZSxcbiAgQXBpU3RhdGVJbmRpY2F0b3IsXG4gIElTZXREZWxldGVVc2VyRGlhbG9nLFxuICBJU2V0QWRkVXNlckRpYWxvZyxcbiAgTG9hZFJvbGVzQW5kUGVybWlzc2lvbnNQYXlsb2FkLFxuICBUZWFtU3RhdGUsXG4gIFRlYW1TdGF0ZUluZGljYXRvcixcbiAgTUZBU3RhdGUsXG4gIFNhdmVTU09Db25maWd1cmF0aW9uUGF5bG9hZCxcbiAgU1NPU3RhdGUsXG4gIFByb2ZpbGVTdGF0ZSxcbiAgU2F2ZVNTT0NvbmZpZ3VyYXRpb25GaWxlUGF5bG9hZCxcbiAgVXBkYXRlU1NPQXV0aG9yaXphdGlvblJvbGVzUGF5bG9hZCxcbiAgRGVsZXRlU2FtbEdyb3VwUGF5bG9hZCxcbiAgQ3JlYXRlU2FtbEdyb3VwUGF5bG9hZCxcbiAgU2F2ZVByb2ZpbGVQYXlsb2FkLFxuICBTaWduVXBTdGF0ZSxcbiAgRm9yZ290UGFzc3dvcmRTdGF0ZSxcbiAgQWNjZXB0SW52aXRhdGlvblN0YXRlLFxuICBBdXRoU3RhdGUsXG4gIFVzZXIsXG4gIExvZ2luU3RhdGUsXG4gIEFjdGl2YXRlQWNjb3VudFN0cmF0ZWd5U3RhdGUsXG4gIElzU3RlcHBlZFVwT3B0aW9ucyxcbiAgU3RlcFVwT3B0aW9ucyxcbn0gZnJvbSAnQGZyb250ZWdnL3JlZHV4LXN0b3JlJztcbmltcG9ydCB7XG4gIElMb2dpbixcbiAgSUxvZ2luV2l0aE1mYSxcbiAgSVBvc3RMb2dpbixcbiAgSVByZUxvZ2luLFxuICBJUmVjb3Zlck1GQVRva2VuLFxuICBJQWN0aXZhdGVBY2NvdW50LFxuICBJTG9naW5WaWFTb2NpYWxMb2dpbixcbiAgSVNldFNvY2lhbExvZ2luRXJyb3IsXG4gIElSZXNlbmRBY3RpdmF0aW9uRW1haWwsXG4gIElHZXRBY3RpdmF0ZUFjY291bnRTdHJhdGVneSxcbiAgSUdldEFjdGl2YXRlQWNjb3VudFN0cmF0ZWd5UmVzcG9uc2UsXG4gIElBY2NlcHRJbnZpdGF0aW9uLFxuICBJRm9yZ290UGFzc3dvcmQsXG4gIElSZXNldFBhc3N3b3JkLFxuICBJR2V0VXNlclBhc3N3b3JkQ29uZmlnLFxuICBJU2lnblVwVXNlcixcbiAgSUNoYW5nZVBhc3N3b3JkLFxuICBJT2lkY1Bvc3RMb2dpbixcbiAgSVZlcmlmeU1mYSxcbiAgSURpc2FibGVNZmEsXG4gIElMb2FkVXNlcnMsXG4gIElUZWFtVXNlcixcbiAgSUFkZFVzZXIsXG4gIElVcGRhdGVVc2VyLFxuICBJRGVsZXRlVXNlcixcbiAgSVJlc2VuZEFjdGl2YXRpb25MaW5rLFxuICBJU2V0dGluZ3NSZXNwb25zZSxcbiAgSVN3aXRjaFRlbmFudCxcbiAgSVRlbmFudHNSZXNwb25zZSxcbiAgSUFkZFJvbGUsXG4gIElSb2xlLFxuICBJVXBkYXRlUm9sZSxcbiAgSURlbGV0ZVJvbGUsXG4gIElBdHRhY2hQZXJtaXNzaW9uc1RvUm9sZSxcbiAgSVJlc2VuZEludml0YXRpb25MaW5rLFxuICBJUm9sZVBlcm1pc3Npb24sXG4gIFJlZGlyZWN0T3B0aW9ucyxcbn0gZnJvbSAnQGZyb250ZWdnL3Jlc3QtYXBpJztcbmltcG9ydCB0eXBlIHsgRnJvbnRlZ2dTdGF0ZSwgQWN0aXZhdGVBY2NvdW50U3RhdGUsIFNvY2lhbExvZ2luU3RhdGUgfSBmcm9tICdAZnJvbnRlZ2cvcmVkdXgtc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExvZ2luRGlyZWN0QWN0aW9uIH0gZnJvbSAnQGZyb250ZWdnL3JlZHV4LXN0b3JlL2F1dGgvTG9naW5TdGF0ZS9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEZyb250ZWdnVXNlclN1YnNjcmlwdGlvblNlcnZpY2UgfSBmcm9tICcuL2Zyb250ZWdnLXVzZXItc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbnRlcmZhY2UgQXV0aFN1YlN0YXRlcyB7XG4gIGZpZWxkOiBQYXJ0aWFsPGtleW9mIEF1dGhTdGF0ZT47XG4gIHN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+O1xufVxuXG5leHBvcnQgdHlwZSBXaXRoQ2FsbGJhY2s8VCA9IHt9LCBSID0gYm9vbGVhbj4gPSBUICYge1xuICBjYWxsYmFjaz86IChkYXRhOiBSIHwgbnVsbCwgZXJyb3I/OiBzdHJpbmcpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBXaXRoU2lsZW50TG9hZDxUPiA9IFQgJiB7XG4gIHNpbGVudExvYWRpbmc/OiBib29sZWFuO1xufTtcblxudHlwZSBQYXRoID0gKHN0cmluZyB8IHN5bWJvbClbXTtcbnR5cGUgT3AgPVxuICBbIG9wOiAnc2V0JywgcGF0aDogUGF0aCwgdmFsdWU6IHVua25vd24sIHByZXZWYWx1ZTogdW5rbm93biBdXG4gIHwgWyBvcDogJ2RlbGV0ZScsIHBhdGg6IFBhdGgsIHByZXZWYWx1ZTogdW5rbm93biBdXG4gIHwgWyBvcDogJ3Jlc29sdmUnLCBwYXRoOiBQYXRoLCB2YWx1ZTogdW5rbm93biBdXG4gIHwgWyBvcDogJ3JlamVjdCcsIHBhdGg6IFBhdGgsIGVycm9yOiB1bmtub3duIF07XG5cblxudHlwZSBTdWJqZWN0U3RhdGU8VD4gPSB7XG4gIFtLIGluIGtleW9mIFQgYXMgYCR7RXh0cmFjdDxLLCBzdHJpbmc+fVN1YmplY3RgXTogVFtLXVxufVxudHlwZSBBdXRoU3RhdGVPYnNlcnZhYmxlID0ge1xuICBbSyBpbiBrZXlvZiBBdXRoU3RhdGVdOiBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlW0tdPlxufVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGcm9udGVnZ0F1dGhTZXJ2aWNlIGltcGxlbWVudHMgU3ViamVjdFN0YXRlPFBhcnRpYWw8QXV0aFN0YXRlT2JzZXJ2YWJsZT4+IHtcblxuICBhdXRoU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGU+KHsgaXNBdXRoZW50aWNhdGVkOiBmYWxzZSwgaXNMb2FkaW5nOiB0cnVlIH0gYXMgQXV0aFN0YXRlKTtcbiAgYWNjZXB0SW52aXRhdGlvblN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydhY2NlcHRJbnZpdGF0aW9uU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydhY2NlcHRJbnZpdGF0aW9uU3RhdGUnXSk7XG4gIGFjY291bnRTZXR0aW5nc1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydhY2NvdW50U2V0dGluZ3NTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ2FjY291bnRTZXR0aW5nc1N0YXRlJ10pO1xuICBhY3RpdmF0ZUFjY291bnRTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnYWN0aXZhdGVBY2NvdW50U3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydhY3RpdmF0ZUFjY291bnRTdGF0ZSddKTtcbiAgYXBpVG9rZW5zU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2FwaVRva2Vuc1N0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnYXBpVG9rZW5zU3RhdGUnXSk7XG4gIGZvcmdvdFBhc3N3b3JkU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2ZvcmdvdFBhc3N3b3JkU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydmb3Jnb3RQYXNzd29yZFN0YXRlJ10pO1xuICBsb2dpblN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydsb2dpblN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnbG9naW5TdGF0ZSddKTtcbiAgbWZhU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ21mYVN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnbWZhU3RhdGUnXSk7XG4gIHByb2ZpbGVTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsncHJvZmlsZVN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsncHJvZmlsZVN0YXRlJ10pO1xuICByb2xlc1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydyb2xlc1N0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsncm9sZXNTdGF0ZSddKTtcbiAgcm91dGVzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydyb3V0ZXMnXT4oe30gYXMgQXV0aFN0YXRlWydyb3V0ZXMnXSk7XG4gIHNlY3VyaXR5UG9saWN5U3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3NlY3VyaXR5UG9saWN5U3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzZWN1cml0eVBvbGljeVN0YXRlJ10pO1xuICBzaWduVXBTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnc2lnblVwU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzaWduVXBTdGF0ZSddKTtcbiAgc29jaWFsTG9naW5TdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnc29jaWFsTG9naW5TdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3NvY2lhbExvZ2luU3RhdGUnXSk7XG4gIHNzb1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzc29TdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3Nzb1N0YXRlJ10pO1xuICB0ZWFtU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3RlYW1TdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3RlYW1TdGF0ZSddKTtcbiAgdGVuYW50c1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWyd0ZW5hbnRzU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWyd0ZW5hbnRzU3RhdGUnXSk7XG4gIHVzZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3VzZXInXT4oe30gYXMgQXV0aFN0YXRlWyd1c2VyJ10pO1xuICBpc0F1dGhlbnRpY2F0ZWRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2lzQXV0aGVudGljYXRlZCddPihmYWxzZSk7XG4gIGlzTG9hZGluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnaXNMb2FkaW5nJ10+KHRydWUpO1xuICBpc1NTT0F1dGhTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2lzU1NPQXV0aCddPihmYWxzZSk7XG4gIHNzb0FDU1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnc3NvQUNTJ10+KCcnKTtcbiAgY3VzdG9tTG9naW5TdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnY3VzdG9tTG9naW5TdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ2N1c3RvbUxvZ2luU3RhdGUnXSk7XG4gIGdyb3Vwc1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydncm91cHNTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ2dyb3Vwc1N0YXRlJ10pO1xuICBncm91cHNEaWFsb2dzU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2dyb3Vwc0RpYWxvZ3NTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ2dyb3Vwc0RpYWxvZ3NTdGF0ZSddKTtcbiAgaW1wZXJzb25hdGVTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnaW1wZXJzb25hdGVTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ2ltcGVyc29uYXRlU3RhdGUnXSk7XG4gIGFsbEFjY291bnRzU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2FsbEFjY291bnRzU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydhbGxBY2NvdW50c1N0YXRlJ10pO1xuICBhbGxBY2NvdW50c0RpYWxvZ3NTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnYWxsQWNjb3VudHNEaWFsb2dzU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydhbGxBY2NvdW50c0RpYWxvZ3NTdGF0ZSddKTtcbiAgcGFzc2tleXNTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsncGFzc2tleXNTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3Bhc3NrZXlzU3RhdGUnXSk7XG4gIHByb3Zpc2lvbmluZ1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydwcm92aXNpb25pbmdTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3Byb3Zpc2lvbmluZ1N0YXRlJ10pO1xuICByZXNldFBob25lTnVtYmVyU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3Jlc2V0UGhvbmVOdW1iZXJTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3Jlc2V0UGhvbmVOdW1iZXJTdGF0ZSddKTtcbiAgcmVzdHJpY3Rpb25zU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3Jlc3RyaWN0aW9uc1N0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsncmVzdHJpY3Rpb25zU3RhdGUnXSk7XG4gIHNlY3VyaXR5Q2VudGVyU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3NlY3VyaXR5Q2VudGVyU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzZWN1cml0eUNlbnRlclN0YXRlJ10pO1xuICBzZXNzaW9uc1BvbGljeVN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzZXNzaW9uc1BvbGljeVN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnc2Vzc2lvbnNQb2xpY3lTdGF0ZSddKTtcbiAgc2Vzc2lvbnNTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnc2Vzc2lvbnNTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3Nlc3Npb25zU3RhdGUnXSk7XG4gIHNtc1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzbXNTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3Ntc1N0YXRlJ10pO1xuICBzdGVwVXBTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnc3RlcFVwU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzdGVwVXBTdGF0ZSddKTtcbiAgYXBwbGljYXRpb25zU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2FwcGxpY2F0aW9uc1N0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnYXBwbGljYXRpb25zU3RhdGUnXSk7XG4gIHVzZXJJcFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsndXNlcklwJ10+KHVuZGVmaW5lZCk7XG4gIGtlZXBTZXNzaW9uQWxpdmVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2tlZXBTZXNzaW9uQWxpdmUnXT4odW5kZWZpbmVkKTtcbiAgc29jaWFsTG9naW5PcHRpb25zU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzb2NpYWxMb2dpbk9wdGlvbnMnXT4odW5kZWZpbmVkKTtcbiAgaW5jbHVkZVF1ZXJ5UGFyYW1TdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2luY2x1ZGVRdWVyeVBhcmFtJ10+KHVuZGVmaW5lZCk7XG4gIGhvc3RlZExvZ2luQm94U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydob3N0ZWRMb2dpbkJveCddPih1bmRlZmluZWQpO1xuICBkaXNhYmxlU2lsZW50UmVmcmVzaFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnZGlzYWJsZVNpbGVudFJlZnJlc2gnXT4odW5kZWZpbmVkKTtcbiAgZW5mb3JjZVJlZGlyZWN0VG9TYW1lU2l0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnZW5mb3JjZVJlZGlyZWN0VG9TYW1lU2l0ZSddPih1bmRlZmluZWQpO1xuICBhbGxvd2VkUmVkaXJlY3RPcmlnaW5zU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydhbGxvd2VkUmVkaXJlY3RPcmlnaW5zJ10+KHVuZGVmaW5lZCk7XG5cblxuICBnZXRBdXRoU3RhdGUoKTogQXV0aFN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2UuZnJvbnRlZ2dBcHAuc3RvcmUuZ2V0U3RhdGUoKS5hdXRoO1xuICB9XG5cbiAgZ2V0IGF1dGhTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5hdXRoU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGFjY2VwdEludml0YXRpb25TdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2FjY2VwdEludml0YXRpb25TdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuYWNjZXB0SW52aXRhdGlvblN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBhY2NvdW50U2V0dGluZ3NTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2FjY291bnRTZXR0aW5nc1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5hY2NvdW50U2V0dGluZ3NTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgYWN0aXZhdGVTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2FjdGl2YXRlQWNjb3VudFN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmF0ZUFjY291bnRTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgYXBpVG9rZW5zU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydhcGlUb2tlbnNTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuYXBpVG9rZW5zU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGZvcmdvdFBhc3N3b3JkU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydmb3Jnb3RQYXNzd29yZFN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5mb3Jnb3RQYXNzd29yZFN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBsb2dpblN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnbG9naW5TdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMubG9naW5TdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgbWZhU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydtZmFTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMubWZhU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHByb2ZpbGVTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3Byb2ZpbGVTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvZmlsZVN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCByb2xlc1N0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsncm9sZXNTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMucm9sZXNTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgcm91dGVzU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydyb3V0ZXMnXT4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc2VjdXJpdHlQb2xpY3lTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3NlY3VyaXR5UG9saWN5U3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnNlY3VyaXR5UG9saWN5U3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNpZ25VcFN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnc2lnblVwU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnNpZ25VcFN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzb2NpYWxMb2dpblN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnc29jaWFsTG9naW5TdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuc29jaWFsTG9naW5TdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc3NvU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydzc29TdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuc3NvU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHRlYW1TdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3RlYW1TdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMudGVhbVN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCB0ZW5hbnRzU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWyd0ZW5hbnRzU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnRlbmFudHNTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgdXNlciQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3VzZXInXT4ge1xuICAgIHJldHVybiB0aGlzLnVzZXJTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHVzZXIoKTogQXV0aFN0YXRlWyd1c2VyJ10ge1xuICAgIHJldHVybiB0aGlzLmZyb250ZWdnQXBwU2VydmljZS5mcm9udGVnZ0FwcC5zdG9yZS5nZXRTdGF0ZSgpLmF1dGgudXNlcjtcbiAgfVxuXG5cbiAgZ2V0IGlzQXV0aGVudGljYXRlZCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2lzQXV0aGVudGljYXRlZCddPiB7XG4gICAgcmV0dXJuIHRoaXMuaXNBdXRoZW50aWNhdGVkU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBpc0F1dGhlbnRpY2F0ZWQoKTogQXV0aFN0YXRlWydpc0F1dGhlbnRpY2F0ZWQnXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlLmdldFN0YXRlKCkuYXV0aC5pc0F1dGhlbnRpY2F0ZWQ7XG4gIH1cblxuICBnZXQgaXNMb2FkaW5nJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnaXNMb2FkaW5nJ10+IHtcbiAgICByZXR1cm4gdGhpcy5pc0xvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGlzU1NPQXV0aCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2lzU1NPQXV0aCddPiB7XG4gICAgcmV0dXJuIHRoaXMuaXNTU09BdXRoU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzc29BQ1MkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydzc29BQ1MnXT4ge1xuICAgIHJldHVybiB0aGlzLnNzb0FDU1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgY3VzdG9tTG9naW5TdGF0ZVN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydjdXN0b21Mb2dpblN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5jdXN0b21Mb2dpblN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBncm91cHNTdGF0ZVN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydncm91cHNTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuZ3JvdXBzU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGdyb3Vwc0RpYWxvZ3NTdGF0ZVN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydncm91cHNEaWFsb2dzU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmdyb3Vwc0RpYWxvZ3NTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgaW1wZXJzb25hdGVTdGF0ZVN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydpbXBlcnNvbmF0ZVN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5pbXBlcnNvbmF0ZVN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBhbGxBY2NvdW50c1N0YXRlU3ViamVjdCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2FsbEFjY291bnRzU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmFsbEFjY291bnRzU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGFsbEFjY291bnRzRGlhbG9nc1N0YXRlU3ViamVjdCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2FsbEFjY291bnRzRGlhbG9nc1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxBY2NvdW50c0RpYWxvZ3NTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgcGFzc2tleXNTdGF0ZVN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydwYXNza2V5c1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5wYXNza2V5c1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBwcm92aXNpb25pbmdTdGF0ZVN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydwcm92aXNpb25pbmdTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvdmlzaW9uaW5nU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHJlc2V0UGhvbmVOdW1iZXJTdGF0ZVN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydyZXNldFBob25lTnVtYmVyU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnJlc2V0UGhvbmVOdW1iZXJTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgcmVzdHJpY3Rpb25zU3RhdGVTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsncmVzdHJpY3Rpb25zU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnJlc3RyaWN0aW9uc1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzZWN1cml0eUNlbnRlclN0YXRlU3ViamVjdCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3NlY3VyaXR5Q2VudGVyU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnNlY3VyaXR5Q2VudGVyU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNlc3Npb25zUG9saWN5U3RhdGVTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnc2Vzc2lvbnNQb2xpY3lTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbnNQb2xpY3lTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc2Vzc2lvbnNTdGF0ZVN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydzZXNzaW9uc1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uc1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzbXNTdGF0ZVN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydzbXNTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuc21zU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHN0ZXBVcFN0YXRlU3ViamVjdCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3N0ZXBVcFN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5zdGVwVXBTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgYXBwbGljYXRpb25zU3RhdGVTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnYXBwbGljYXRpb25zU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmFwcGxpY2F0aW9uc1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCB1c2VySXBTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsndXNlcklwJ10+IHtcbiAgICByZXR1cm4gdGhpcy51c2VySXBTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGtlZXBTZXNzaW9uQWxpdmVTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsna2VlcFNlc3Npb25BbGl2ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMua2VlcFNlc3Npb25BbGl2ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc29jaWFsTG9naW5PcHRpb25zU3ViamVjdCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3NvY2lhbExvZ2luT3B0aW9ucyddPiB7XG4gICAgcmV0dXJuIHRoaXMuc29jaWFsTG9naW5PcHRpb25zU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBpbmNsdWRlUXVlcnlQYXJhbVN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydpbmNsdWRlUXVlcnlQYXJhbSddPiB7XG4gICAgcmV0dXJuIHRoaXMuaW5jbHVkZVF1ZXJ5UGFyYW1TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGhvc3RlZExvZ2luQm94U3ViamVjdCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2hvc3RlZExvZ2luQm94J10+IHtcbiAgICByZXR1cm4gdGhpcy5ob3N0ZWRMb2dpbkJveFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgZGlzYWJsZVNpbGVudFJlZnJlc2hTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnZGlzYWJsZVNpbGVudFJlZnJlc2gnXT4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVTaWxlbnRSZWZyZXNoU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBlbmZvcmNlUmVkaXJlY3RUb1NhbWVTaXRlU3ViamVjdCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2VuZm9yY2VSZWRpcmVjdFRvU2FtZVNpdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmVuZm9yY2VSZWRpcmVjdFRvU2FtZVNpdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGFsbG93ZWRSZWRpcmVjdE9yaWdpbnNTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnYWxsb3dlZFJlZGlyZWN0T3JpZ2lucyddPiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsb3dlZFJlZGlyZWN0T3JpZ2luc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZyb250ZWdnQXBwU2VydmljZTogRnJvbnRlZ2dBcHBTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBmcm9udGVnZ1VzZXJTdWJzY3JpcHRpb25TZXJ2aWNlOiBGcm9udGVnZ1VzZXJTdWJzY3JpcHRpb25TZXJ2aWNlLFxuICApIHtcbiAgICBjb25zdCBhdXRoU3ViU3RhdGVzOiBBdXRoU3ViU3RhdGVzW10gPSBbXG4gICAgICB7IGZpZWxkOiAnYWNjZXB0SW52aXRhdGlvblN0YXRlJywgc3ViamVjdDogdGhpcy5hY2NlcHRJbnZpdGF0aW9uU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnYWNjb3VudFNldHRpbmdzU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmFjY291bnRTZXR0aW5nc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2FjdGl2YXRlQWNjb3VudFN0YXRlJywgc3ViamVjdDogdGhpcy5hY3RpdmF0ZUFjY291bnRTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdhcGlUb2tlbnNTdGF0ZScsIHN1YmplY3Q6IHRoaXMuYXBpVG9rZW5zU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnZm9yZ290UGFzc3dvcmRTdGF0ZScsIHN1YmplY3Q6IHRoaXMuZm9yZ290UGFzc3dvcmRTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICd0ZW5hbnRzU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnRlbmFudHNTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdsb2dpblN0YXRlJywgc3ViamVjdDogdGhpcy5sb2dpblN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ21mYVN0YXRlJywgc3ViamVjdDogdGhpcy5tZmFTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdwcm9maWxlU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnByb2ZpbGVTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdyb2xlc1N0YXRlJywgc3ViamVjdDogdGhpcy5yb2xlc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3JvdXRlcycsIHN1YmplY3Q6IHRoaXMucm91dGVzU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3NlY3VyaXR5UG9saWN5U3RhdGUnLCBzdWJqZWN0OiB0aGlzLnNlY3VyaXR5UG9saWN5U3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnc2lnblVwU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnNpZ25VcFN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3NvY2lhbExvZ2luU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnNvY2lhbExvZ2luU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnc3NvU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnNzb1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3RlYW1TdGF0ZScsIHN1YmplY3Q6IHRoaXMudGVhbVN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3VzZXInLCBzdWJqZWN0OiB0aGlzLnVzZXJTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnaXNTU09BdXRoJywgc3ViamVjdDogdGhpcy5pc1NTT0F1dGhTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnc3NvQUNTJywgc3ViamVjdDogdGhpcy5zc29BQ1NTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnY3VzdG9tTG9naW5TdGF0ZScsIHN1YmplY3Q6IHRoaXMuY3VzdG9tTG9naW5TdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdncm91cHNTdGF0ZScsIHN1YmplY3Q6IHRoaXMuZ3JvdXBzU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnZ3JvdXBzRGlhbG9nc1N0YXRlJywgc3ViamVjdDogdGhpcy5ncm91cHNEaWFsb2dzU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnaW1wZXJzb25hdGVTdGF0ZScsIHN1YmplY3Q6IHRoaXMuaW1wZXJzb25hdGVTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdhbGxBY2NvdW50c1N0YXRlJywgc3ViamVjdDogdGhpcy5hbGxBY2NvdW50c1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2FsbEFjY291bnRzRGlhbG9nc1N0YXRlJywgc3ViamVjdDogdGhpcy5hbGxBY2NvdW50c0RpYWxvZ3NTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdwYXNza2V5c1N0YXRlJywgc3ViamVjdDogdGhpcy5wYXNza2V5c1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3Byb3Zpc2lvbmluZ1N0YXRlJywgc3ViamVjdDogdGhpcy5wcm92aXNpb25pbmdTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdyZXNldFBob25lTnVtYmVyU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnJlc2V0UGhvbmVOdW1iZXJTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdyZXN0cmljdGlvbnNTdGF0ZScsIHN1YmplY3Q6IHRoaXMucmVzdHJpY3Rpb25zU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnc2VjdXJpdHlDZW50ZXJTdGF0ZScsIHN1YmplY3Q6IHRoaXMuc2VjdXJpdHlDZW50ZXJTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdzZXNzaW9uc1BvbGljeVN0YXRlJywgc3ViamVjdDogdGhpcy5zZXNzaW9uc1BvbGljeVN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3Nlc3Npb25zU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnNlc3Npb25zU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnc21zU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnNtc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3N0ZXBVcFN0YXRlJywgc3ViamVjdDogdGhpcy5zdGVwVXBTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdhcHBsaWNhdGlvbnNTdGF0ZScsIHN1YmplY3Q6IHRoaXMuYXBwbGljYXRpb25zU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAndXNlcklwJywgc3ViamVjdDogdGhpcy51c2VySXBTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAna2VlcFNlc3Npb25BbGl2ZScsIHN1YmplY3Q6IHRoaXMua2VlcFNlc3Npb25BbGl2ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdzb2NpYWxMb2dpbk9wdGlvbnMnLCBzdWJqZWN0OiB0aGlzLnNvY2lhbExvZ2luT3B0aW9uc1N1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdpbmNsdWRlUXVlcnlQYXJhbScsIHN1YmplY3Q6IHRoaXMuaW5jbHVkZVF1ZXJ5UGFyYW1TdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnaG9zdGVkTG9naW5Cb3gnLCBzdWJqZWN0OiB0aGlzLmhvc3RlZExvZ2luQm94U3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2Rpc2FibGVTaWxlbnRSZWZyZXNoJywgc3ViamVjdDogdGhpcy5kaXNhYmxlU2lsZW50UmVmcmVzaFN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdlbmZvcmNlUmVkaXJlY3RUb1NhbWVTaXRlJywgc3ViamVjdDogdGhpcy5lbmZvcmNlUmVkaXJlY3RUb1NhbWVTaXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2FsbG93ZWRSZWRpcmVjdE9yaWdpbnMnLCBzdWJqZWN0OiB0aGlzLmFsbG93ZWRSZWRpcmVjdE9yaWdpbnNTdWJqZWN0IH0sXG4gICAgXTtcblxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2UuZnJvbnRlZ2dBcHAuc3RvcmUuZ2V0U3RhdGUoKSBhcyBGcm9udGVnZ1N0YXRlO1xuICAgIHRoaXMudXBkYXRlU3RhdGUoc3RhdGUuYXV0aCwgYXV0aFN1YlN0YXRlcyk7XG5cbiAgICBjb25zdCBjYWxsYmFjazogYW55ID0gKG9wOiBPcFtdKSA9PiB7XG5cbiAgICAgIGNvbnN0IG5ld1N0YXRlID0gdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2UuZnJvbnRlZ2dBcHAuc3RvcmUuZ2V0U3RhdGUoKSBhcyBGcm9udGVnZ1N0YXRlO1xuICAgICAgdGhpcy51cGRhdGVTdGF0ZShuZXdTdGF0ZS5hdXRoLCBhdXRoU3ViU3RhdGVzKTtcblxuICAgICAgLy8gdGhpcy51cGRhdGVEZWVwU3RhdGUob3ApO1xuICAgIH07XG4gICAgdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2UuZnJvbnRlZ2dBcHAuc3RvcmUuc3Vic2NyaWJlKGNhbGxiYWNrKTtcbiAgfVxuXG5cbiAgLy8gLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnR5cGVkZWZcbiAgLy8gcHJpdmF0ZSB1cGRhdGVEZWVwU3RhdGUob3BzOiBPcFtdKSB7XG4gIC8vICAgb3BzLmZpbHRlcihvcCA9PiBvcFswXSA9PT0gJ3NldCcpLmZvckVhY2goKG9wKSA9PiB7XG4gIC8vICAgICBjb25zdCBbIGFjdGlvbiwgcGF0aCwgdmFsdWUgXSA9IG9wO1xuICAvLyAgICAgY29uc3Qgc3RhdGUgPSBwYXRoWzBdO1xuICAvLyAgICAgY29uc3Qgc3ViU3RhdGUgPSBwYXRoWzFdO1xuICAvLyAgICAgY29uc3QgZGVlcFBhdGggPSBwYXRoLnNsaWNlKDIpO1xuICAvLyAgICAgY29uc29sZS5sb2coc3RhdGUsIHN1YlN0YXRlLCBkZWVwUGF0aCwgdmFsdWUpO1xuICAvLyAgICAgc3dpdGNoIChzdGF0ZSkge1xuICAvLyAgICAgICBjYXNlICdhdXRoJzpcbiAgLy8gICAgICAgICBpZih0aGlzLmF1dGhTdGF0ZVN1YmplY3QudmFsdWUgKVxuICAvLyAgICAgICAgIGJyZWFrO1xuICAvLyAgICAgfVxuICAvLyAgIH0pO1xuICAvLyB9XG5cblxuICBwcml2YXRlIHVwZGF0ZVN0YXRlKGF1dGhTdGF0ZTogQXV0aFN0YXRlLCBhdXRoU3ViU3RhdGVzOiBBdXRoU3ViU3RhdGVzW10pOiB2b2lkIHtcblxuICAgIGlmICh0aGlzLmF1dGhTdGF0ZVN1YmplY3QudmFsdWUgIT09IGF1dGhTdGF0ZSkge1xuICAgICAgdGhpcy5hdXRoU3RhdGVTdWJqZWN0Lm5leHQoYXV0aFN0YXRlKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBhdXRoU3ViU3RhdGUgb2YgYXV0aFN1YlN0YXRlcykge1xuICAgICAgaWYgKCFGYXN0RGVlcEVxdWFsKGF1dGhTdWJTdGF0ZS5zdWJqZWN0LnZhbHVlLCBhdXRoU3RhdGVbYXV0aFN1YlN0YXRlLmZpZWxkXSkpIHtcbiAgICAgICAgYXV0aFN1YlN0YXRlLnN1YmplY3QubmV4dChhdXRoU3RhdGVbYXV0aFN1YlN0YXRlLmZpZWxkXSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QudmFsdWUgIT09IGF1dGhTdGF0ZS5pc0F1dGhlbnRpY2F0ZWQpIHtcbiAgICAgIHRoaXMuaXNBdXRoZW50aWNhdGVkU3ViamVjdC5uZXh0KGF1dGhTdGF0ZS5pc0F1dGhlbnRpY2F0ZWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0xvYWRpbmdTdWJqZWN0LnZhbHVlICE9PSBhdXRoU3RhdGUuaXNMb2FkaW5nKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZ1N1YmplY3QubmV4dChhdXRoU3RhdGUuaXNMb2FkaW5nKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRpc3BhdGNoQWN0aW9uKHR5cGU6IHN0cmluZywgcGF5bG9hZD86IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHN0b3JlID0gdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2UuZnJvbnRlZ2dBcHAuc3RvcmU7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHN0b3JlLmRpc3BhdGNoKHsgdHlwZTogYCR7YXV0aFN0b3JlTmFtZX0vJHt0eXBlfWAsIHBheWxvYWQgfSk7XG4gIH1cblxuXG4gIHB1YmxpYyBpc0hvc3RlZExvZ2luQ2FsbGJhY2tSb3V0ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2Uucm91dGVyLnVybDtcbiAgICBjb25zdCBob3N0ZWRMb2dpblJlZGlyZWN0VXJsID0gdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2UuYXV0aFJvdXRlcy5ob3N0ZWRMb2dpblJlZGlyZWN0VXJsO1xuICAgIHJldHVybiBwYXRoLnN0YXJ0c1dpdGgoaG9zdGVkTG9naW5SZWRpcmVjdFVybCA/PyAnL29hdXRoL2NhbGxiYWNrJyk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIG9wdGlvbnMubWF4QWdlIG9wdGlvbmFsIG1heCBhZ2VcbiAgICogQHJldHVybnMgQSBzdWJzY3JpcHRpb24gZm9yIHN0ZXAgdXAgc3RhdGUgLSB0cnVlIHdoZW4gdXNlciBpcyBzdGVwcGVkIHVwLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHB1YmxpYyBpc1N0ZXBwZWRVcCQob2JzZXJ2ZXI6IFBhcnRpYWxPYnNlcnZlcjxib29sZWFuPiwgb3B0aW9ucz86IElzU3RlcHBlZFVwT3B0aW9ucyk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRlZ2dVc2VyU3Vic2NyaXB0aW9uU2VydmljZS5nZXRVc2VyTWFuaXB1bGF0b3JTdWJzY3JpcHRpb248Ym9vbGVhbj4oXG4gICAgICAoKSA9PiB0aGlzLmZyb250ZWdnQXBwU2VydmljZS5mcm9udGVnZ0FwcC5pc1N0ZXBwZWRVcChvcHRpb25zKSxcbiAgICAgIG9ic2VydmVyLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgc3RlcCB1cCBmbG93XG4gICAqIEBwYXJhbSBvcHRpb25zLm1heEFnZSBvcHRpb25hbCBtYXggYWdlXG4gICAqL1xuICBwdWJsaWMgc3RlcFVwID0gKG9wdGlvbnM/OiBTdGVwVXBPcHRpb25zKSA9PiB0aGlzLmZyb250ZWdnQXBwU2VydmljZS5mcm9udGVnZ0FwcC5zdGVwVXAob3B0aW9ucyk7XG5cblxuICAvLyBSb290IEFjdGlvbnNcbiAgc2V0U3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8QXV0aFN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0U3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFN0YXRlJyk7XG4gIHNldFVzZXIgPSAodXNlcjogVXNlcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0VXNlcicsIHVzZXIpO1xuXG4gIC8vIExvZ2luIEFjdGlvbnNcbiAgc2V0TG9naW5TdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxMb2dpblN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0TG9naW5TdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRMb2dpblN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRMb2dpblN0YXRlJyk7XG4gIHJlcXVlc3RBdXRob3JpemUgPSAoZmlyc3RUaW1lPzogYm9vbGVhbikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVxdWVzdEF1dGhvcml6ZScsIGZpcnN0VGltZSk7XG5cbiAgbG9naW5XaXRoUmVkaXJlY3QgPSAocGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkUmVkaXJlY3RUb0xvZ2luPzogYm9vbGVhbixcbiAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RUaW1lPzogYm9vbGVhbixcbiAgICAgICAgICAgICAgICAgICAgICAgbG9naW5EaXJlY3RBY3Rpb24/OiBMb2dpbkRpcmVjdEFjdGlvbikgPT4ge1xuICAgIGlmICh0aGlzLmlzSG9zdGVkTG9naW5DYWxsYmFja1JvdXRlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbigncmVxdWVzdEhvc3RlZExvZ2luQXV0aG9yaXplVjInLCB7XG4gICAgICBhZGRpdGlvbmFsUGFyYW1zOiBwYXJhbXMsXG4gICAgICBzaG91bGRSZWRpcmVjdFRvTG9naW46IHNob3VsZFJlZGlyZWN0VG9Mb2dpbiA/PyB0cnVlLFxuICAgICAgZmlyc3RUaW1lOiBmaXJzdFRpbWUgPz8gZmFsc2UsXG4gICAgICBsb2dpbkRpcmVjdEFjdGlvbixcbiAgICB9KTtcbiAgICB0aGlzLnNldFN0YXRlKHsgaXNMb2FkaW5nOiB0cnVlIH0pO1xuICB9O1xuICBwcmVMb2dpbiA9IChwYXlsb2FkOiBJUHJlTG9naW4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3ByZUxvZ2luJywgcGF5bG9hZCk7XG4gIHBvc3RMb2dpbiA9IChwYXlsb2FkOiBJUG9zdExvZ2luKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdwb3N0TG9naW4nLCBwYXlsb2FkKTtcbiAgbG9naW4gPSAocGF5bG9hZDogSUxvZ2luKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2dpbicsIHBheWxvYWQpO1xuICBsb2dpbldpdGhNZmEgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElMb2dpbldpdGhNZmE+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2dpbldpdGhNZmEnLCBwYXlsb2FkKTtcbiAgcmVjb3Zlck1mYSA9IChwYXlsb2FkOiBJUmVjb3Zlck1GQVRva2VuKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZWNvdmVyTWZhJywgcGF5bG9hZCk7XG4gIGxvZ291dCA9IChjYWxsYmFjaz86ICgpID0+IHZvaWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvZ291dCcsIGNhbGxiYWNrKTtcbiAgc2lsZW50TG9nb3V0ID0gKGNhbGxiYWNrPzogKCkgPT4gdm9pZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2lsZW50TG9nb3V0JywgY2FsbGJhY2spO1xuICBjaGVja0lmQWxsb3dUb1JlbWVtYmVyTWZhRGV2aWNlID0gKHBheWxvYWQ6IHsgbWZhVG9rZW46IHN0cmluZyB9KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2NoZWNrSWZBbGxvd1RvUmVtZW1iZXJNZmFEZXZpY2UnLCBwYXlsb2FkKTtcblxuICAvLyBTb2NpYWwgTG9naW5zIEFjdGlvbnNcbiAgc2V0U29jaWFsTG9naW5zU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8U29jaWFsTG9naW5TdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNvY2lhbExvZ2luc1N0YXRlJywgc3RhdGUpO1xuICByZXNldFNvY2lhbExvZ2luc1N0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRTb2NpYWxMb2dpbnNTdGF0ZScpO1xuICBsb2FkU29jaWFsTG9naW5zQ29uZmlndXJhdGlvbiA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRTb2NpYWxMb2dpbnNDb25maWd1cmF0aW9uJyk7XG4gIGxvZ2luVmlhU29jaWFsTG9naW4gPSAocGF5bG9hZDogSUxvZ2luVmlhU29jaWFsTG9naW4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvZ2luVmlhU29jaWFsTG9naW4nLCBwYXlsb2FkKTtcbiAgc2V0U29jaWFsTG9naW5FcnJvciA9IChwYXlsb2FkOiBJU2V0U29jaWFsTG9naW5FcnJvcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U29jaWFsTG9naW5FcnJvcicsIHBheWxvYWQpO1xuXG4gIC8vIEFjdGl2YXRlIEFjY291bnQgQWN0aW9uc1xuICBzZXRBY3RpdmF0ZVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEFjdGl2YXRlQWNjb3VudFN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0QWN0aXZhdGVTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRBY3RpdmF0ZVN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRBY3RpdmF0ZVN0YXRlJyk7XG4gIHNldEFjdGl2YXRlU3RyYXRlZ3lTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxBY3RpdmF0ZUFjY291bnRTdHJhdGVneVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRBY3RpdmF0ZVN0cmF0ZWd5U3RhdGUnLCBzdGF0ZSk7XG4gIGFjdGl2YXRlQWNjb3VudCA9IChwYXlsb2FkOiBJQWN0aXZhdGVBY2NvdW50KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhY3RpdmF0ZUFjY291bnQnLCBwYXlsb2FkKTtcbiAgcmVzZW5kQWN0aXZhdGlvbkVtYWlsID0gKHBheWxvYWQ6IElSZXNlbmRBY3RpdmF0aW9uRW1haWwpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2VuZEFjdGl2YXRpb25FbWFpbCcsIHBheWxvYWQpO1xuICBnZXRBY3RpdmF0ZUFjY291bnRTdHJhdGVneSA9IChcbiAgICBwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUdldEFjdGl2YXRlQWNjb3VudFN0cmF0ZWd5LCBJR2V0QWN0aXZhdGVBY2NvdW50U3RyYXRlZ3lSZXNwb25zZT4sXG4gICkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZ2V0QWN0aXZhdGVBY2NvdW50U3RyYXRlZ3knLCBwYXlsb2FkKTtcblxuICAvLyBBY2NlcHQgSW52aXRhdGlvbiBBY3Rpb25zXG4gIHNldEFjY2VwdEludml0YXRpb25TdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxBY2NlcHRJbnZpdGF0aW9uU3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldEFjY2VwdEludml0YXRpb25TdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRBY2NlcHRJbnZpdGF0aW9uU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldEFjY2VwdEludml0YXRpb25TdGF0ZScpO1xuICBhY2NlcHRJbnZpdGF0aW9uID0gKHBheWxvYWQ6IElBY2NlcHRJbnZpdGF0aW9uKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhY2NlcHRJbnZpdGF0aW9uJywgcGF5bG9hZCk7XG5cbiAgLy8gRm9yZ290IFBhc3N3b3JkIEFjdGlvbnNcbiAgc2V0Rm9yZ290UGFzc3dvcmRTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxGb3Jnb3RQYXNzd29yZFN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRGb3Jnb3RQYXNzd29yZFN0YXRlJywgc3RhdGUpO1xuICByZXNldEZvcmdvdFBhc3N3b3JkU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldEZvcmdvdFBhc3N3b3JkU3RhdGUnKTtcbiAgZm9yZ290UGFzc3dvcmQgPSAocGF5bG9hZDogSUZvcmdvdFBhc3N3b3JkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdmb3Jnb3RQYXNzd29yZCcsIHBheWxvYWQpO1xuICByZXNldFBhc3N3b3JkID0gKHBheWxvYWQ6IElSZXNldFBhc3N3b3JkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFBhc3N3b3JkJywgcGF5bG9hZCk7XG4gIGxvYWRQYXNzd29yZENvbmZpZyA9IChwYXlsb2FkPzogSUdldFVzZXJQYXNzd29yZENvbmZpZykgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFBhc3N3b3JkQ29uZmlnJywgcGF5bG9hZCk7XG5cbiAgLy8gU2lnbiBVcCBBY3Rpb25zXG4gIHNldFNpZ25VcFN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFNpZ25VcFN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U2lnblVwU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0U2lnblVwU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFNpZ25VcFN0YXRlJyk7XG4gIHNpZ25VcFVzZXIgPSAocGF5bG9hZDogSVNpZ25VcFVzZXIpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NpZ25VcFVzZXInLCBwYXlsb2FkKTtcbiAgcmVzZXRTaWduVXBTdGF0ZVNvZnQgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFNpZ25VcFN0YXRlU29mdCcpO1xuXG4gIC8vIFByb2ZpbGUgQWN0aW9uc1xuICBzZXRQcm9maWxlU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8UHJvZmlsZVN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0UHJvZmlsZVN0YXRlJywgc3RhdGUpO1xuICByZXNldFByb2ZpbGVTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0UHJvZmlsZVN0YXRlJyk7XG4gIGxvYWRQcm9maWxlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFByb2ZpbGUnKTtcbiAgc2F2ZVByb2ZpbGUgPSAocGF5bG9hZDogU2F2ZVByb2ZpbGVQYXlsb2FkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzYXZlUHJvZmlsZScsIHBheWxvYWQpO1xuICBjaGFuZ2VQYXNzd29yZCA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUNoYW5nZVBhc3N3b3JkPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignY2hhbmdlUGFzc3dvcmQnLCBwYXlsb2FkKTtcblxuICAvLyBTU08gYWN0aW9uc1xuICBzZXRTU09TdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxTU09TdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNTT1N0YXRlJywgc3RhdGUpO1xuICByZXNldFNTT1N0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRTU09TdGF0ZScpO1xuICBsb2FkU1NPQ29uZmlndXJhdGlvbnMgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkU1NPQ29uZmlndXJhdGlvbnMnKTtcbiAgbG9hZFNTT0F1dGhvcml6YXRpb25Sb2xlcyA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRTU09BdXRob3JpemF0aW9uUm9sZXMnKTtcbiAgc2F2ZVNTT0NvbmZpZ3VyYXRpb25zID0gKHBheWxvYWQ6IFNhdmVTU09Db25maWd1cmF0aW9uUGF5bG9hZCkgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzYXZlU1NPQ29uZmlndXJhdGlvbnMnLCBwYXlsb2FkKTtcbiAgc2F2ZVNTT0NvbmZpZ3VyYXRpb25zRmlsZSA9IChwYXlsb2FkOiBGaWxlW10pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTU09Db25maWd1cmF0aW9uc0ZpbGUnLCBwYXlsb2FkKTtcbiAgc2F2ZVNTT0NvbmZpZ3VyYXRpb25zRmlsZVdpdGhDYWxsYmFjayA9IChwYXlsb2FkOiBTYXZlU1NPQ29uZmlndXJhdGlvbkZpbGVQYXlsb2FkKSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTU09Db25maWd1cmF0aW9uc0ZpbGVXaXRoQ2FsbGJhY2snLCBwYXlsb2FkKTtcbiAgdmFsaWRhdGVTU09Eb21haW4gPSAocGF5bG9hZD86IFdpdGhDYWxsYmFjaykgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigndmFsaWRhdGVTU09Eb21haW4nLCBwYXlsb2FkKTtcbiAgdXBkYXRlU1NPQXV0aG9yaXphdGlvblJvbGVzID0gKHBheWxvYWQ6IFVwZGF0ZVNTT0F1dGhvcml6YXRpb25Sb2xlc1BheWxvYWQpID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbigndXBkYXRlU1NPQXV0aG9yaXphdGlvblJvbGVzJywgcGF5bG9hZCk7XG4gIGRlbGV0ZVNhbWxHcm91cCA9IChwYXlsb2FkOiBEZWxldGVTYW1sR3JvdXBQYXlsb2FkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdkZWxldGVTYW1sR3JvdXAnLCBwYXlsb2FkKTtcbiAgY3JlYXRlU2FtbEdyb3VwID0gKHBheWxvYWQ6IENyZWF0ZVNhbWxHcm91cFBheWxvYWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2NyZWF0ZVNhbWxHcm91cCcsIHBheWxvYWQpO1xuICBvaWRjUG9zdGxvZ2luID0gKHBheWxvYWQ6IElPaWRjUG9zdExvZ2luKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdvaWRjUG9zdGxvZ2luJywgcGF5bG9hZCk7XG5cbiAgLy8gTWZhIGFjdGlvbnNcbiAgc2V0TWZhU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8TUZBU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRNZmFTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRNZmFTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0TWZhU3RhdGUnKTtcbiAgZW5yb2xsTWZhID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZW5yb2xsTWZhJyk7XG4gIHZlcmlmeU1mYSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SVZlcmlmeU1mYSwgc3RyaW5nIHwgdW5kZWZpbmVkPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigndmVyaWZ5TWZhJywgcGF5bG9hZCk7XG4gIHZlcmlmeU1mYUFmdGVyRm9yY2UgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElMb2dpbldpdGhNZmEsIHN0cmluZyB8IHVuZGVmaW5lZD4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbigndmVyaWZ5TWZhQWZ0ZXJGb3JjZScsIHBheWxvYWQpO1xuICBkaXNhYmxlTWZhID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJRGlzYWJsZU1mYT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2Rpc2FibGVNZmEnLCBwYXlsb2FkKTtcblxuICAvLyBUZWFtIGFjdGlvbnNcbiAgc2V0VGVhbUxvYWRlciA9IChwYXlsb2FkOiBUZWFtU3RhdGVJbmRpY2F0b3IpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFRlYW1Mb2FkZXInLCBwYXlsb2FkKTtcbiAgc2V0VGVhbUVycm9yID0gKHBheWxvYWQ6IFRlYW1TdGF0ZUluZGljYXRvcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0VGVhbUVycm9yJywgcGF5bG9hZCk7XG4gIHNldFRlYW1TdGF0ZSA9IChwYXlsb2FkOiBQYXJ0aWFsPFRlYW1TdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFRlYW1TdGF0ZScsIHBheWxvYWQpO1xuICByZXNldFRlYW1TdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0VGVhbVN0YXRlJyk7XG4gIGxvYWRVc2VycyA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8V2l0aFNpbGVudExvYWQ8SUxvYWRVc2Vycz4sIElUZWFtVXNlcltdPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkVXNlcnMnLCBwYXlsb2FkKTtcbiAgbG9hZFJvbGVzID0gKHBheWxvYWQ/OiBMb2FkUm9sZXNBbmRQZXJtaXNzaW9uc1BheWxvYWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRSb2xlcycsIHBheWxvYWQpO1xuICBhZGRVc2VyID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJQWRkVXNlciwgSVRlYW1Vc2VyPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignYWRkVXNlcicsIHBheWxvYWQpO1xuICB1cGRhdGVVc2VyID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJVXBkYXRlVXNlciwgSVRlYW1Vc2VyPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigndXBkYXRlVXNlcicsIHBheWxvYWQpO1xuICBkZWxldGVVc2VyID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJRGVsZXRlVXNlcj4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2RlbGV0ZVVzZXInLCBwYXlsb2FkKTtcbiAgcmVzZW5kQWN0aXZhdGlvbkxpbmsgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElSZXNlbmRBY3RpdmF0aW9uTGluaz4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZW5kQWN0aXZhdGlvbkxpbmsnLCBwYXlsb2FkKTtcbiAgcmVzZW5kSW52aXRhdGlvbkxpbmsgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElSZXNlbmRJbnZpdGF0aW9uTGluaz4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZW5kSW52aXRhdGlvbkxpbmsnLCBwYXlsb2FkKTtcbiAgb3BlbkFkZFVzZXJEaWFsb2cgPSAocGF5bG9hZD86IElTZXRBZGRVc2VyRGlhbG9nKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdvcGVuQWRkVXNlckRpYWxvZycsIHBheWxvYWQpO1xuICBjbG9zZUFkZFVzZXJEaWFsb2cgPSAocGF5bG9hZD86IGFueSkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignY2xvc2VBZGRVc2VyRGlhbG9nJywgcGF5bG9hZCk7XG4gIG9wZW5EZWxldGVVc2VyRGlhbG9nID0gKHBheWxvYWQ/OiBJU2V0RGVsZXRlVXNlckRpYWxvZykgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignb3BlbkRlbGV0ZVVzZXJEaWFsb2cnLCBwYXlsb2FkKTtcbiAgY2xvc2VEZWxldGVVc2VyRGlhbG9nID0gKHBheWxvYWQ/OiBhbnkpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2Nsb3NlRGVsZXRlVXNlckRpYWxvZycsIHBheWxvYWQpO1xuXG4gIC8vIEFQSSBUb2tlbiBBY3Rpb25zXG4gIHNldEFwaVRva2Vuc0xvYWRlciA9IChwYXlsb2FkOiBBcGlTdGF0ZUluZGljYXRvcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0QXBpVG9rZW5zTG9hZGVyJywgcGF5bG9hZCk7XG4gIHNldEFwaVRva2Vuc0Vycm9yID0gKHBheWxvYWQ6IEFwaVN0YXRlSW5kaWNhdG9yKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRBcGlUb2tlbnNFcnJvcicsIHBheWxvYWQpO1xuICBzZXRBcGlUb2tlbnNTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxBcGlUb2tlbnNTdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldEFwaVRva2Vuc1N0YXRlJywgc3RhdGUpO1xuICByZXNldEFwaVRva2Vuc1N0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRBcGlUb2tlbnNTdGF0ZScpO1xuICBsb2FkQXBpVG9rZW5zID0gKHBheWxvYWQ/OiBXaXRoU2lsZW50TG9hZDxXaXRoQ2FsbGJhY2s+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkQXBpVG9rZW5zJywgcGF5bG9hZCk7XG4gIGluaXRBcGlUb2tlbnNEYXRhID0gKHBheWxvYWQ6IEFwaVRva2VuVHlwZSkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignaW5pdEFwaVRva2Vuc0RhdGEnLCBwYXlsb2FkKTtcbiAgYWRkVGVuYW50QXBpVG9rZW4gPSAocGF5bG9hZDogQWRkVGVuYW50QXBpVG9rZW5QYXlsb2FkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhZGRUZW5hbnRBcGlUb2tlbicsIHBheWxvYWQpO1xuICBhZGRVc2VyQXBpVG9rZW4gPSAocGF5bG9hZDogQWRkVXNlckFwaVRva2VuUGF5bG9hZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignYWRkVXNlckFwaVRva2VuJywgcGF5bG9hZCk7XG4gIGRlbGV0ZVVzZXJBcGlUb2tlbiA9IChwYXlsb2FkOiBzdHJpbmcpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2RlbGV0ZVVzZXJBcGlUb2tlbicsIHBheWxvYWQpO1xuICBkZWxldGVUZW5hbnRBcGlUb2tlbiA9IChwYXlsb2FkOiBzdHJpbmcpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2RlbGV0ZVRlbmFudEFwaVRva2VuJywgcGF5bG9hZCk7XG5cbiAgLy8gU2VjdXJpdHkgUG9saWN5IEFjdGlvbnNcbiAgc2V0U2VjdXJpdHlQb2xpY3lTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxTZWN1cml0eVBvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeVN0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeUdsb2JhbFN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEdsb2JhbFBvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeUdsb2JhbFN0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeVB1YmxpY1N0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFB1YmxpY1BvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeVB1YmxpY1N0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeU1mYVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPE1mYVBvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeU1mYVN0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeUxvY2tvdXRTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxMb2Nrb3V0UG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5TG9ja291dFN0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeUNhcHRjaGFTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxDYXB0Y2hhUG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5Q2FwdGNoYVN0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFBhc3N3b3JkSGlzdG9yeVBvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeVN0YXRlJywgc3RhdGUpO1xuICByZXNldFNlY3VyaXR5UG9saWN5U3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFNlY3VyaXR5UG9saWN5U3RhdGUnKTtcbiAgc2V0U2VjdXJpdHlQb2xpY3lQYXNzd29yZFN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFBhc3N3b3JkUG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5UGFzc3dvcmRTdGF0ZScsIHN0YXRlKTtcbiAgbG9hZFNlY3VyaXR5UG9saWN5ID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNlY3VyaXR5UG9saWN5Jyk7XG4gIGxvYWRQdWJsaWNTZWN1cml0eVBvbGljeSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRQdWJsaWNTZWN1cml0eVBvbGljeScpO1xuICBsb2FkVmVuZG9yUGFzc3dvcmRDb25maWcgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkVmVuZG9yUGFzc3dvcmRDb25maWcnKTtcbiAgbG9hZFNlY3VyaXR5UG9saWN5TWZhID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNlY3VyaXR5UG9saWN5TWZhJyk7XG4gIHNhdmVTZWN1cml0eVBvbGljeU1mYSA9IChwYXlsb2FkOiBTYXZlU2VjdXJpdHlQb2xpY3lNZmFQYXlsb2FkKSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTZWN1cml0eVBvbGljeU1mYScsIHBheWxvYWQpO1xuICBsb2FkU2VjdXJpdHlQb2xpY3lMb2Nrb3V0ID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNlY3VyaXR5UG9saWN5TG9ja291dCcpO1xuICBzYXZlU2VjdXJpdHlQb2xpY3lMb2Nrb3V0ID0gKHBheWxvYWQ6IFNhdmVTZWN1cml0eVBvbGljeUxvY2tvdXRQYXlsb2FkKSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTZWN1cml0eVBvbGljeUxvY2tvdXQnLCBwYXlsb2FkKTtcbiAgbG9hZFNlY3VyaXR5UG9saWN5Q2FwdGNoYSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRTZWN1cml0eVBvbGljeUNhcHRjaGEnKTtcbiAgbG9hZFNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5ID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5Jyk7XG4gIHNhdmVTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeSA9IChwYXlsb2FkOiBTYXZlU2VjdXJpdHlQb2xpY3lQYXNzd29yZEhpc3RvcnlQYXlsb2FkKSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeScsIHBheWxvYWQpO1xuXG4gIC8vIEFjY291bnQgU2V0dGluZ3MgQWN0aW9uc1xuICBzZXRBY2NvdW50U2V0dGluZ3NTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxBY2NvdW50U2V0dGluZ3NTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0QWNjb3VudFNldHRpbmdzU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0QWNjb3VudFNldHRpbmdzU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldEFjY291bnRTZXR0aW5nc1N0YXRlJyk7XG4gIGxvYWRBY2NvdW50U2V0dGluZ3MgPSAocGF5bG9hZD86IFdpdGhDYWxsYmFjazxXaXRoU2lsZW50TG9hZDx7fT4+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRBY2NvdW50U2V0dGluZ3MnLCBwYXlsb2FkKTtcbiAgc2F2ZUFjY291bnRTZXR0aW5ncyA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SVNldHRpbmdzUmVzcG9uc2UsIElTZXR0aW5nc1Jlc3BvbnNlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzYXZlQWNjb3VudFNldHRpbmdzJywgcGF5bG9hZCk7XG5cbiAgLy8gVGVuYW50cyBBY3Rpb25zXG4gIHNldFRlbmFudHNTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxUZW5hbnRzU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRUZW5hbnRzU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0VGVuYW50c1N0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRUZW5hbnRzU3RhdGUnKTtcbiAgc3dpdGNoVGVuYW50ID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJU3dpdGNoVGVuYW50PikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc3dpdGNoVGVuYW50JywgcGF5bG9hZCk7XG4gIGxvYWRUZW5hbnRzID0gKHBheWxvYWQ/OiBXaXRoQ2FsbGJhY2s8e30sIElUZW5hbnRzUmVzcG9uc2VbXT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRUZW5hbnRzJywgcGF5bG9hZCk7XG5cbiAgLy8gUm9sZXMgQWN0aW9uc1xuICBzZXRSb2xlc1N0YXRlID0gKHN0YXRlOiBSb2xlc1N0YXRlKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRSb2xlc1N0YXRlJywgc3RhdGUpO1xuICByZXNldFJvbGVzU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFJvbGVzU3RhdGUnKTtcbiAgbG9hZFJvbGVzQW5kUGVybWlzc2lvbnMgPSAocGF5bG9hZD86IFdpdGhTaWxlbnRMb2FkPHt9PikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFJvbGVzQW5kUGVybWlzc2lvbnMnLCBwYXlsb2FkKTtcbiAgYWRkUm9sZSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUFkZFJvbGUsIElSb2xlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignYWRkUm9sZScsIHBheWxvYWQpO1xuICB1cGRhdGVSb2xlID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJVXBkYXRlUm9sZSwgSVJvbGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCd1cGRhdGVSb2xlJywgcGF5bG9hZCk7XG4gIGRlbGV0ZVJvbGUgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElEZWxldGVSb2xlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZGVsZXRlUm9sZScsIHBheWxvYWQpO1xuICBhdHRhY2hQZXJtaXNzaW9uc1RvUm9sZSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUF0dGFjaFBlcm1pc3Npb25zVG9Sb2xlLCBJUm9sZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignYXR0YWNoUGVybWlzc2lvbnNUb1JvbGUnLCBwYXlsb2FkKTtcblxuICBhdHRhY2hQZXJtaXNzaW9uVG9Sb2xlcyA9IChcbiAgICBwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8e1xuICAgICAgcGVybWlzc2lvbklkOiBzdHJpbmc7XG4gICAgICByb2xlSWRzOiBzdHJpbmdbXTtcbiAgICB9LFxuICAgICAgSVJvbGVQZXJtaXNzaW9uPixcbiAgKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhdHRhY2hQZXJtaXNzaW9uVG9Sb2xlcycsIHBheWxvYWQpO1xufVxuIl19
469
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlZ2ctYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnJvbnRlZ2ctYXBwL3NyYy9saWIvZnJvbnRlZ2ctYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBaUMsTUFBTSxNQUFNLENBQUM7QUFFdEUsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBMEg1QyxNQUFNLE9BQU8sbUJBQW1CO0lBdVA5QixZQUNVLGtCQUFzQyxFQUN0QyxNQUFjLEVBQ2QsK0JBQWdFO1FBRmhFLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBaUM7UUF4UDFFLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFZLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFlLENBQUMsQ0FBQztRQUM1RyxpQ0FBNEIsR0FBRyxJQUFJLGVBQWUsQ0FBcUMsRUFBd0MsQ0FBQyxDQUFDO1FBQ2pJLGdDQUEyQixHQUFHLElBQUksZUFBZSxDQUFvQyxFQUF1QyxDQUFDLENBQUM7UUFDOUgsZ0NBQTJCLEdBQUcsSUFBSSxlQUFlLENBQW9DLEVBQXVDLENBQUMsQ0FBQztRQUM5SCwwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBOEIsRUFBaUMsQ0FBQyxDQUFDO1FBQzVHLCtCQUEwQixHQUFHLElBQUksZUFBZSxDQUFtQyxFQUFzQyxDQUFDLENBQUM7UUFDM0gsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQTBCLEVBQTZCLENBQUMsQ0FBQztRQUNoRyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUF3QixFQUEyQixDQUFDLENBQUM7UUFDMUYsd0JBQW1CLEdBQUcs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QUFRLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUdNLDBCQUEwQjtRQUMvQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUNoRCxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUM7UUFDekYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixhQUF0QixzQkFBc0IsY0FBdEIsc0JBQXNCLEdBQUksaUJBQWlCLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksWUFBWSxDQUFDLFFBQWtDLEVBQUUsT0FBNEI7UUFDbEYsT0FBTyxJQUFJLENBQUMsK0JBQStCLENBQUMsOEJBQThCLENBQ3hFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUM5RCxRQUFRLENBQ1QsQ0FBQztJQUNKLENBQUM7O2lIQWhYVSxtQkFBbUI7cUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFBhcnRpYWxPYnNlcnZlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGcm9udGVnZ0FwcFNlcnZpY2UgfSBmcm9tICcuL2Zyb250ZWdnLWFwcC5zZXJ2aWNlJztcbmltcG9ydCBGYXN0RGVlcEVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQge1xuICBSb2xlc1N0YXRlLFxuICBUZW5hbnRzU3RhdGUsXG4gIEFjY291bnRTZXR0aW5nc1N0YXRlLFxuICBTYXZlU2VjdXJpdHlQb2xpY3lQYXNzd29yZEhpc3RvcnlQYXlsb2FkLFxuICBTYXZlU2VjdXJpdHlQb2xpY3lMb2Nrb3V0UGF5bG9hZCxcbiAgU2F2ZVNlY3VyaXR5UG9saWN5TWZhUGF5bG9hZCxcbiAgUGFzc3dvcmRQb2xpY3lTdGF0ZSxcbiAgUGFzc3dvcmRIaXN0b3J5UG9saWN5U3RhdGUsXG4gIE1mYVBvbGljeVN0YXRlLFxuICBDYXB0Y2hhUG9saWN5U3RhdGUsXG4gIExvY2tvdXRQb2xpY3lTdGF0ZSxcbiAgUHVibGljUG9saWN5U3RhdGUsXG4gIEdsb2JhbFBvbGljeVN0YXRlLFxuICBTZWN1cml0eVBvbGljeVN0YXRlLFxuICBBZGRVc2VyQXBpVG9rZW5QYXlsb2FkLFxuICBBZGRUZW5hbnRBcGlUb2tlblBheWxvYWQsXG4gIEFwaVRva2VuVHlwZSxcbiAgQXBpVG9rZW5zU3RhdGUsXG4gIEFwaVN0YXRlSW5kaWNhdG9yLFxuICBJU2V0RGVsZXRlVXNlckRpYWxvZyxcbiAgSVNldEFkZFVzZXJEaWFsb2csXG4gIExvYWRSb2xlc0FuZFBlcm1pc3Npb25zUGF5bG9hZCxcbiAgVGVhbVN0YXRlLFxuICBUZWFtU3RhdGVJbmRpY2F0b3IsXG4gIE1GQVN0YXRlLFxuICBTYXZlU1NPQ29uZmlndXJhdGlvblBheWxvYWQsXG4gIFNTT1N0YXRlLFxuICBQcm9maWxlU3RhdGUsXG4gIFNhdmVTU09Db25maWd1cmF0aW9uRmlsZVBheWxvYWQsXG4gIFVwZGF0ZVNTT0F1dGhvcml6YXRpb25Sb2xlc1BheWxvYWQsXG4gIERlbGV0ZVNhbWxHcm91cFBheWxvYWQsXG4gIENyZWF0ZVNhbWxHcm91cFBheWxvYWQsXG4gIFNhdmVQcm9maWxlUGF5bG9hZCxcbiAgU2lnblVwU3RhdGUsXG4gIEZvcmdvdFBhc3N3b3JkU3RhdGUsXG4gIEFjY2VwdEludml0YXRpb25TdGF0ZSxcbiAgQXV0aFN0YXRlLFxuICBVc2VyLFxuICBMb2dpblN0YXRlLFxuICBBY3RpdmF0ZUFjY291bnRTdHJhdGVneVN0YXRlLFxuICBJc1N0ZXBwZWRVcE9wdGlvbnMsXG4gIFN0ZXBVcE9wdGlvbnMsXG59IGZyb20gJ0Bmcm9udGVnZy9yZWR1eC1zdG9yZSc7XG5pbXBvcnQge1xuICBJTG9naW4sXG4gIElMb2dpbldpdGhNZmEsXG4gIElQb3N0TG9naW4sXG4gIElQcmVMb2dpbixcbiAgSVJlY292ZXJNRkFUb2tlbixcbiAgSUFjdGl2YXRlQWNjb3VudCxcbiAgSUxvZ2luVmlhU29jaWFsTG9naW4sXG4gIElTZXRTb2NpYWxMb2dpbkVycm9yLFxuICBJUmVzZW5kQWN0aXZhdGlvbkVtYWlsLFxuICBJR2V0QWN0aXZhdGVBY2NvdW50U3RyYXRlZ3ksXG4gIElHZXRBY3RpdmF0ZUFjY291bnRTdHJhdGVneVJlc3BvbnNlLFxuICBJQWNjZXB0SW52aXRhdGlvbixcbiAgSUZvcmdvdFBhc3N3b3JkLFxuICBJUmVzZXRQYXNzd29yZCxcbiAgSUdldFVzZXJQYXNzd29yZENvbmZpZyxcbiAgSVNpZ25VcFVzZXIsXG4gIElDaGFuZ2VQYXNzd29yZCxcbiAgSU9pZGNQb3N0TG9naW4sXG4gIElWZXJpZnlNZmEsXG4gIElEaXNhYmxlTWZhLFxuICBJTG9hZFVzZXJzLFxuICBJVGVhbVVzZXIsXG4gIElBZGRVc2VyLFxuICBJVXBkYXRlVXNlcixcbiAgSURlbGV0ZVVzZXIsXG4gIElSZXNlbmRBY3RpdmF0aW9uTGluayxcbiAgSVNldHRpbmdzUmVzcG9uc2UsXG4gIElTd2l0Y2hUZW5hbnQsXG4gIElUZW5hbnRzUmVzcG9uc2UsXG4gIElBZGRSb2xlLFxuICBJUm9sZSxcbiAgSVVwZGF0ZVJvbGUsXG4gIElEZWxldGVSb2xlLFxuICBJQXR0YWNoUGVybWlzc2lvbnNUb1JvbGUsXG4gIElSZXNlbmRJbnZpdGF0aW9uTGluayxcbiAgSVJvbGVQZXJtaXNzaW9uLFxuICBSZWRpcmVjdE9wdGlvbnMsXG59IGZyb20gJ0Bmcm9udGVnZy9yZXN0LWFwaSc7XG5pbXBvcnQgdHlwZSB7IEZyb250ZWdnU3RhdGUsIEFjdGl2YXRlQWNjb3VudFN0YXRlLCBTb2NpYWxMb2dpblN0YXRlIH0gZnJvbSAnQGZyb250ZWdnL3JlZHV4LXN0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMb2dpbkRpcmVjdEFjdGlvbiB9IGZyb20gJ0Bmcm9udGVnZy9yZWR1eC1zdG9yZS9hdXRoL0xvZ2luU3RhdGUvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBGcm9udGVnZ1VzZXJTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnLi9mcm9udGVnZy11c2VyLXN1YnNjcmlwdGlvbi5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIEF1dGhTdWJTdGF0ZXMge1xuICBmaWVsZDogUGFydGlhbDxrZXlvZiBBdXRoU3RhdGU+O1xuICBzdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8YW55Pjtcbn1cblxuZXhwb3J0IHR5cGUgV2l0aENhbGxiYWNrPFQgPSB7fSwgUiA9IGJvb2xlYW4+ID0gVCAmIHtcbiAgY2FsbGJhY2s/OiAoZGF0YTogUiB8IG51bGwsIGVycm9yPzogc3RyaW5nKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgV2l0aFNpbGVudExvYWQ8VD4gPSBUICYge1xuICBzaWxlbnRMb2FkaW5nPzogYm9vbGVhbjtcbn07XG5cbnR5cGUgUGF0aCA9IChzdHJpbmcgfCBzeW1ib2wpW107XG50eXBlIE9wID1cbiAgWyBvcDogJ3NldCcsIHBhdGg6IFBhdGgsIHZhbHVlOiB1bmtub3duLCBwcmV2VmFsdWU6IHVua25vd24gXVxuICB8IFsgb3A6ICdkZWxldGUnLCBwYXRoOiBQYXRoLCBwcmV2VmFsdWU6IHVua25vd24gXVxuICB8IFsgb3A6ICdyZXNvbHZlJywgcGF0aDogUGF0aCwgdmFsdWU6IHVua25vd24gXVxuICB8IFsgb3A6ICdyZWplY3QnLCBwYXRoOiBQYXRoLCBlcnJvcjogdW5rbm93biBdO1xuXG5cbnR5cGUgU3ViamVjdFN0YXRlPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUIGFzIGAke0V4dHJhY3Q8Sywgc3RyaW5nPn1TdWJqZWN0YF06IFRbS11cbn1cbnR5cGUgQXV0aFN0YXRlT2JzZXJ2YWJsZSA9IHtcbiAgW0sgaW4ga2V5b2YgQXV0aFN0YXRlXTogQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVtLXT5cbn1cblxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRnJvbnRlZ2dBdXRoU2VydmljZSBpbXBsZW1lbnRzIFN1YmplY3RTdGF0ZTxQYXJ0aWFsPEF1dGhTdGF0ZU9ic2VydmFibGU+PiB7XG5cbiAgYXV0aFN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlPih7IGlzQXV0aGVudGljYXRlZDogZmFsc2UsIGlzTG9hZGluZzogdHJ1ZSB9IGFzIEF1dGhTdGF0ZSk7XG4gIGFjY2VwdEludml0YXRpb25TdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnYWNjZXB0SW52aXRhdGlvblN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnYWNjZXB0SW52aXRhdGlvblN0YXRlJ10pO1xuICBhY2NvdW50U2V0dGluZ3NTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnYWNjb3VudFNldHRpbmdzU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydhY2NvdW50U2V0dGluZ3NTdGF0ZSddKTtcbiAgYWN0aXZhdGVBY2NvdW50U3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2FjdGl2YXRlQWNjb3VudFN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnYWN0aXZhdGVBY2NvdW50U3RhdGUnXSk7XG4gIGFwaVRva2Vuc1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydhcGlUb2tlbnNTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ2FwaVRva2Vuc1N0YXRlJ10pO1xuICBmb3Jnb3RQYXNzd29yZFN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydmb3Jnb3RQYXNzd29yZFN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnZm9yZ290UGFzc3dvcmRTdGF0ZSddKTtcbiAgbG9naW5TdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnbG9naW5TdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ2xvZ2luU3RhdGUnXSk7XG4gIG1mYVN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydtZmFTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ21mYVN0YXRlJ10pO1xuICBwcm9maWxlU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3Byb2ZpbGVTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3Byb2ZpbGVTdGF0ZSddKTtcbiAgcm9sZXNTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsncm9sZXNTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3JvbGVzU3RhdGUnXSk7XG4gIHJvdXRlc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsncm91dGVzJ10+KHt9IGFzIEF1dGhTdGF0ZVsncm91dGVzJ10pO1xuICBzZWN1cml0eVBvbGljeVN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzZWN1cml0eVBvbGljeVN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnc2VjdXJpdHlQb2xpY3lTdGF0ZSddKTtcbiAgc2lnblVwU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3NpZ25VcFN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnc2lnblVwU3RhdGUnXSk7XG4gIHNvY2lhbExvZ2luU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3NvY2lhbExvZ2luU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzb2NpYWxMb2dpblN0YXRlJ10pO1xuICBzc29TdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnc3NvU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzc29TdGF0ZSddKTtcbiAgdGVhbVN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWyd0ZWFtU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWyd0ZWFtU3RhdGUnXSk7XG4gIHRlbmFudHNTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsndGVuYW50c1N0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsndGVuYW50c1N0YXRlJ10pO1xuICB1c2VyU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWyd1c2VyJ10+KHt9IGFzIEF1dGhTdGF0ZVsndXNlciddKTtcbiAgaXNBdXRoZW50aWNhdGVkU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydpc0F1dGhlbnRpY2F0ZWQnXT4oZmFsc2UpO1xuICBpc0xvYWRpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2lzTG9hZGluZyddPih0cnVlKTtcbiAgaXNTU09BdXRoU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydpc1NTT0F1dGgnXT4oZmFsc2UpO1xuICBzc29BQ1NTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3Nzb0FDUyddPignJyk7XG4gIGN1c3RvbUxvZ2luU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2N1c3RvbUxvZ2luU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydjdXN0b21Mb2dpblN0YXRlJ10pO1xuICBncm91cHNTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnZ3JvdXBzU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydncm91cHNTdGF0ZSddKTtcbiAgZ3JvdXBzRGlhbG9nc1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydncm91cHNEaWFsb2dzU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydncm91cHNEaWFsb2dzU3RhdGUnXSk7XG4gIGltcGVyc29uYXRlU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2ltcGVyc29uYXRlU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydpbXBlcnNvbmF0ZVN0YXRlJ10pO1xuICBhbGxBY2NvdW50c1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydhbGxBY2NvdW50c1N0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnYWxsQWNjb3VudHNTdGF0ZSddKTtcbiAgYWxsQWNjb3VudHNEaWFsb2dzU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2FsbEFjY291bnRzRGlhbG9nc1N0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnYWxsQWNjb3VudHNEaWFsb2dzU3RhdGUnXSk7XG4gIHBhc3NrZXlzU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3Bhc3NrZXlzU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydwYXNza2V5c1N0YXRlJ10pO1xuICBwcm92aXNpb25pbmdTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsncHJvdmlzaW9uaW5nU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydwcm92aXNpb25pbmdTdGF0ZSddKTtcbiAgcmVzZXRQaG9uZU51bWJlclN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydyZXNldFBob25lTnVtYmVyU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydyZXNldFBob25lTnVtYmVyU3RhdGUnXSk7XG4gIHJlc3RyaWN0aW9uc1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydyZXN0cmljdGlvbnNTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3Jlc3RyaWN0aW9uc1N0YXRlJ10pO1xuICBzZWN1cml0eUNlbnRlclN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzZWN1cml0eUNlbnRlclN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnc2VjdXJpdHlDZW50ZXJTdGF0ZSddKTtcbiAgc2Vzc2lvbnNQb2xpY3lTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnc2Vzc2lvbnNQb2xpY3lTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3Nlc3Npb25zUG9saWN5U3RhdGUnXSk7XG4gIHNlc3Npb25zU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3Nlc3Npb25zU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzZXNzaW9uc1N0YXRlJ10pO1xuICBzbXNTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnc21zU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzbXNTdGF0ZSddKTtcbiAgc3RlcFVwU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3N0ZXBVcFN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnc3RlcFVwU3RhdGUnXSk7XG4gIGFwcGxpY2F0aW9uc1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydhcHBsaWNhdGlvbnNTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ2FwcGxpY2F0aW9uc1N0YXRlJ10pO1xuICB1c2VySXBTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3VzZXJJcCddPih1bmRlZmluZWQpO1xuICBrZWVwU2Vzc2lvbkFsaXZlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydrZWVwU2Vzc2lvbkFsaXZlJ10+KHVuZGVmaW5lZCk7XG4gIHNvY2lhbExvZ2luT3B0aW9uc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnc29jaWFsTG9naW5PcHRpb25zJ10+KHVuZGVmaW5lZCk7XG4gIGluY2x1ZGVRdWVyeVBhcmFtU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydpbmNsdWRlUXVlcnlQYXJhbSddPih1bmRlZmluZWQpO1xuICBob3N0ZWRMb2dpbkJveFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnaG9zdGVkTG9naW5Cb3gnXT4odW5kZWZpbmVkKTtcbiAgZGlzYWJsZVNpbGVudFJlZnJlc2hTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2Rpc2FibGVTaWxlbnRSZWZyZXNoJ10+KHVuZGVmaW5lZCk7XG4gIGVuZm9yY2VSZWRpcmVjdFRvU2FtZVNpdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2VuZm9yY2VSZWRpcmVjdFRvU2FtZVNpdGUnXT4odW5kZWZpbmVkKTtcbiAgYWxsb3dlZFJlZGlyZWN0T3JpZ2luc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnYWxsb3dlZFJlZGlyZWN0T3JpZ2lucyddPih1bmRlZmluZWQpO1xuXG5cbiAgZ2V0QXV0aFN0YXRlKCk6IEF1dGhTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlLmdldFN0YXRlKCkuYXV0aDtcbiAgfVxuXG4gIGdldCBhdXRoU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aFN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBhY2NlcHRJbnZpdGF0aW9uU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydhY2NlcHRJbnZpdGF0aW9uU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmFjY2VwdEludml0YXRpb25TdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgYWNjb3VudFNldHRpbmdzU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydhY2NvdW50U2V0dGluZ3NTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuYWNjb3VudFNldHRpbmdzU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGFjdGl2YXRlU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydhY3RpdmF0ZUFjY291bnRTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZhdGVBY2NvdW50U3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGFwaVRva2Vuc1N0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnYXBpVG9rZW5zU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmFwaVRva2Vuc1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBmb3Jnb3RQYXNzd29yZFN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnZm9yZ290UGFzc3dvcmRTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9yZ290UGFzc3dvcmRTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgbG9naW5TdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2xvZ2luU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmxvZ2luU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IG1mYVN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnbWZhU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLm1mYVN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBwcm9maWxlU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydwcm9maWxlU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnByb2ZpbGVTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgcm9sZXNTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3JvbGVzU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnJvbGVzU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHJvdXRlc1N0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsncm91dGVzJ10+IHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNlY3VyaXR5UG9saWN5U3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydzZWN1cml0eVBvbGljeVN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5zZWN1cml0eVBvbGljeVN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzaWduVXBTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3NpZ25VcFN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5zaWduVXBTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc29jaWFsTG9naW5TdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3NvY2lhbExvZ2luU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnNvY2lhbExvZ2luU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNzb1N0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnc3NvU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnNzb1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCB0ZWFtU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWyd0ZWFtU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnRlYW1TdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgdGVuYW50c1N0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsndGVuYW50c1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy50ZW5hbnRzU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHVzZXIkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWyd1c2VyJ10+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCB1c2VyKCk6IEF1dGhTdGF0ZVsndXNlciddIHtcbiAgICByZXR1cm4gdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2UuZnJvbnRlZ2dBcHAuc3RvcmUuZ2V0U3RhdGUoKS5hdXRoLnVzZXI7XG4gIH1cblxuXG4gIGdldCBpc0F1dGhlbnRpY2F0ZWQkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydpc0F1dGhlbnRpY2F0ZWQnXT4ge1xuICAgIHJldHVybiB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgaXNBdXRoZW50aWNhdGVkKCk6IEF1dGhTdGF0ZVsnaXNBdXRoZW50aWNhdGVkJ10ge1xuICAgIHJldHVybiB0aGlzLmZyb250ZWdnQXBwU2VydmljZS5mcm9udGVnZ0FwcC5zdG9yZS5nZXRTdGF0ZSgpLmF1dGguaXNBdXRoZW50aWNhdGVkO1xuICB9XG5cbiAgZ2V0IGlzTG9hZGluZyQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2lzTG9hZGluZyddPiB7XG4gICAgcmV0dXJuIHRoaXMuaXNMb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBpc1NTT0F1dGgkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydpc1NTT0F1dGgnXT4ge1xuICAgIHJldHVybiB0aGlzLmlzU1NPQXV0aFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc3NvQUNTJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnc3NvQUNTJ10+IHtcbiAgICByZXR1cm4gdGhpcy5zc29BQ1NTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGN1c3RvbUxvZ2luU3RhdGVTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnY3VzdG9tTG9naW5TdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tTG9naW5TdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgZ3JvdXBzU3RhdGVTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnZ3JvdXBzU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmdyb3Vwc1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBncm91cHNEaWFsb2dzU3RhdGVTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnZ3JvdXBzRGlhbG9nc1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5ncm91cHNEaWFsb2dzU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGltcGVyc29uYXRlU3RhdGVTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnaW1wZXJzb25hdGVTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuaW1wZXJzb25hdGVTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgYWxsQWNjb3VudHNTdGF0ZVN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydhbGxBY2NvdW50c1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5hbGxBY2NvdW50c1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBhbGxBY2NvdW50c0RpYWxvZ3NTdGF0ZVN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydhbGxBY2NvdW50c0RpYWxvZ3NTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuYWxsQWNjb3VudHNEaWFsb2dzU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHBhc3NrZXlzU3RhdGVTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsncGFzc2tleXNTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMucGFzc2tleXNTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgcHJvdmlzaW9uaW5nU3RhdGVTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsncHJvdmlzaW9uaW5nU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnByb3Zpc2lvbmluZ1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCByZXNldFBob25lTnVtYmVyU3RhdGVTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsncmVzZXRQaG9uZU51bWJlclN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5yZXNldFBob25lTnVtYmVyU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHJlc3RyaWN0aW9uc1N0YXRlU3ViamVjdCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3Jlc3RyaWN0aW9uc1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5yZXN0cmljdGlvbnNTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc2VjdXJpdHlDZW50ZXJTdGF0ZVN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydzZWN1cml0eUNlbnRlclN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5zZWN1cml0eUNlbnRlclN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzZXNzaW9uc1BvbGljeVN0YXRlU3ViamVjdCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3Nlc3Npb25zUG9saWN5U3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnNlc3Npb25zUG9saWN5U3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNlc3Npb25zU3RhdGVTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnc2Vzc2lvbnNTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbnNTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc21zU3RhdGVTdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnc21zU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnNtc1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzdGVwVXBTdGF0ZVN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydzdGVwVXBTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RlcFVwU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGFwcGxpY2F0aW9uc1N0YXRlU3ViamVjdCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2FwcGxpY2F0aW9uc1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5hcHBsaWNhdGlvbnNTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgdXNlcklwU3ViamVjdCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3VzZXJJcCddPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlcklwU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBrZWVwU2Vzc2lvbkFsaXZlU3ViamVjdCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2tlZXBTZXNzaW9uQWxpdmUnXT4ge1xuICAgIHJldHVybiB0aGlzLmtlZXBTZXNzaW9uQWxpdmVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNvY2lhbExvZ2luT3B0aW9uc1N1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydzb2NpYWxMb2dpbk9wdGlvbnMnXT4ge1xuICAgIHJldHVybiB0aGlzLnNvY2lhbExvZ2luT3B0aW9uc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgaW5jbHVkZVF1ZXJ5UGFyYW1TdWJqZWN0JCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnaW5jbHVkZVF1ZXJ5UGFyYW0nXT4ge1xuICAgIHJldHVybiB0aGlzLmluY2x1ZGVRdWVyeVBhcmFtU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBob3N0ZWRMb2dpbkJveFN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydob3N0ZWRMb2dpbkJveCddPiB7XG4gICAgcmV0dXJuIHRoaXMuaG9zdGVkTG9naW5Cb3hTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVTaWxlbnRSZWZyZXNoU3ViamVjdCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2Rpc2FibGVTaWxlbnRSZWZyZXNoJ10+IHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlU2lsZW50UmVmcmVzaFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgZW5mb3JjZVJlZGlyZWN0VG9TYW1lU2l0ZVN1YmplY3QkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydlbmZvcmNlUmVkaXJlY3RUb1NhbWVTaXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5lbmZvcmNlUmVkaXJlY3RUb1NhbWVTaXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBhbGxvd2VkUmVkaXJlY3RPcmlnaW5zU3ViamVjdCQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2FsbG93ZWRSZWRpcmVjdE9yaWdpbnMnXT4ge1xuICAgIHJldHVybiB0aGlzLmFsbG93ZWRSZWRpcmVjdE9yaWdpbnNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmcm9udGVnZ0FwcFNlcnZpY2U6IEZyb250ZWdnQXBwU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgZnJvbnRlZ2dVc2VyU3Vic2NyaXB0aW9uU2VydmljZTogRnJvbnRlZ2dVc2VyU3Vic2NyaXB0aW9uU2VydmljZSxcbiAgKSB7XG4gICAgY29uc3QgYXV0aFN1YlN0YXRlczogQXV0aFN1YlN0YXRlc1tdID0gW1xuICAgICAgeyBmaWVsZDogJ2FjY2VwdEludml0YXRpb25TdGF0ZScsIHN1YmplY3Q6IHRoaXMuYWNjZXB0SW52aXRhdGlvblN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2FjY291bnRTZXR0aW5nc1N0YXRlJywgc3ViamVjdDogdGhpcy5hY2NvdW50U2V0dGluZ3NTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdhY3RpdmF0ZUFjY291bnRTdGF0ZScsIHN1YmplY3Q6IHRoaXMuYWN0aXZhdGVBY2NvdW50U3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnYXBpVG9rZW5zU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmFwaVRva2Vuc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2ZvcmdvdFBhc3N3b3JkU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmZvcmdvdFBhc3N3b3JkU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAndGVuYW50c1N0YXRlJywgc3ViamVjdDogdGhpcy50ZW5hbnRzU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnbG9naW5TdGF0ZScsIHN1YmplY3Q6IHRoaXMubG9naW5TdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdtZmFTdGF0ZScsIHN1YmplY3Q6IHRoaXMubWZhU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAncHJvZmlsZVN0YXRlJywgc3ViamVjdDogdGhpcy5wcm9maWxlU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAncm9sZXNTdGF0ZScsIHN1YmplY3Q6IHRoaXMucm9sZXNTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdyb3V0ZXMnLCBzdWJqZWN0OiB0aGlzLnJvdXRlc1N1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdzZWN1cml0eVBvbGljeVN0YXRlJywgc3ViamVjdDogdGhpcy5zZWN1cml0eVBvbGljeVN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3NpZ25VcFN0YXRlJywgc3ViamVjdDogdGhpcy5zaWduVXBTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdzb2NpYWxMb2dpblN0YXRlJywgc3ViamVjdDogdGhpcy5zb2NpYWxMb2dpblN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3Nzb1N0YXRlJywgc3ViamVjdDogdGhpcy5zc29TdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICd0ZWFtU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnRlYW1TdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICd1c2VyJywgc3ViamVjdDogdGhpcy51c2VyU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2lzU1NPQXV0aCcsIHN1YmplY3Q6IHRoaXMuaXNTU09BdXRoU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3Nzb0FDUycsIHN1YmplY3Q6IHRoaXMuc3NvQUNTU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2N1c3RvbUxvZ2luU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmN1c3RvbUxvZ2luU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnZ3JvdXBzU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmdyb3Vwc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2dyb3Vwc0RpYWxvZ3NTdGF0ZScsIHN1YmplY3Q6IHRoaXMuZ3JvdXBzRGlhbG9nc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2ltcGVyc29uYXRlU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmltcGVyc29uYXRlU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnYWxsQWNjb3VudHNTdGF0ZScsIHN1YmplY3Q6IHRoaXMuYWxsQWNjb3VudHNTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdhbGxBY2NvdW50c0RpYWxvZ3NTdGF0ZScsIHN1YmplY3Q6IHRoaXMuYWxsQWNjb3VudHNEaWFsb2dzU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAncGFzc2tleXNTdGF0ZScsIHN1YmplY3Q6IHRoaXMucGFzc2tleXNTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdwcm92aXNpb25pbmdTdGF0ZScsIHN1YmplY3Q6IHRoaXMucHJvdmlzaW9uaW5nU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAncmVzZXRQaG9uZU51bWJlclN0YXRlJywgc3ViamVjdDogdGhpcy5yZXNldFBob25lTnVtYmVyU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAncmVzdHJpY3Rpb25zU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnJlc3RyaWN0aW9uc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3NlY3VyaXR5Q2VudGVyU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnNlY3VyaXR5Q2VudGVyU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnc2Vzc2lvbnNQb2xpY3lTdGF0ZScsIHN1YmplY3Q6IHRoaXMuc2Vzc2lvbnNQb2xpY3lTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdzZXNzaW9uc1N0YXRlJywgc3ViamVjdDogdGhpcy5zZXNzaW9uc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3Ntc1N0YXRlJywgc3ViamVjdDogdGhpcy5zbXNTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdzdGVwVXBTdGF0ZScsIHN1YmplY3Q6IHRoaXMuc3RlcFVwU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnYXBwbGljYXRpb25zU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmFwcGxpY2F0aW9uc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3VzZXJJcCcsIHN1YmplY3Q6IHRoaXMudXNlcklwU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2tlZXBTZXNzaW9uQWxpdmUnLCBzdWJqZWN0OiB0aGlzLmtlZXBTZXNzaW9uQWxpdmVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnc29jaWFsTG9naW5PcHRpb25zJywgc3ViamVjdDogdGhpcy5zb2NpYWxMb2dpbk9wdGlvbnNTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnaW5jbHVkZVF1ZXJ5UGFyYW0nLCBzdWJqZWN0OiB0aGlzLmluY2x1ZGVRdWVyeVBhcmFtU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2hvc3RlZExvZ2luQm94Jywgc3ViamVjdDogdGhpcy5ob3N0ZWRMb2dpbkJveFN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdkaXNhYmxlU2lsZW50UmVmcmVzaCcsIHN1YmplY3Q6IHRoaXMuZGlzYWJsZVNpbGVudFJlZnJlc2hTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnZW5mb3JjZVJlZGlyZWN0VG9TYW1lU2l0ZScsIHN1YmplY3Q6IHRoaXMuZW5mb3JjZVJlZGlyZWN0VG9TYW1lU2l0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdhbGxvd2VkUmVkaXJlY3RPcmlnaW5zJywgc3ViamVjdDogdGhpcy5hbGxvd2VkUmVkaXJlY3RPcmlnaW5zU3ViamVjdCB9LFxuICAgIF07XG5cbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlLmdldFN0YXRlKCkgYXMgRnJvbnRlZ2dTdGF0ZTtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKHN0YXRlLmF1dGgsIGF1dGhTdWJTdGF0ZXMpO1xuXG4gICAgY29uc3QgY2FsbGJhY2s6IGFueSA9IChvcDogT3BbXSkgPT4ge1xuXG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlLmdldFN0YXRlKCkgYXMgRnJvbnRlZ2dTdGF0ZTtcbiAgICAgIHRoaXMudXBkYXRlU3RhdGUobmV3U3RhdGUuYXV0aCwgYXV0aFN1YlN0YXRlcyk7XG5cbiAgICAgIC8vIHRoaXMudXBkYXRlRGVlcFN0YXRlKG9wKTtcbiAgICB9O1xuICAgIHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlLnN1YnNjcmliZShjYWxsYmFjayk7XG4gIH1cblxuXG4gIC8vIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp0eXBlZGVmXG4gIC8vIHByaXZhdGUgdXBkYXRlRGVlcFN0YXRlKG9wczogT3BbXSkge1xuICAvLyAgIG9wcy5maWx0ZXIob3AgPT4gb3BbMF0gPT09ICdzZXQnKS5mb3JFYWNoKChvcCkgPT4ge1xuICAvLyAgICAgY29uc3QgWyBhY3Rpb24sIHBhdGgsIHZhbHVlIF0gPSBvcDtcbiAgLy8gICAgIGNvbnN0IHN0YXRlID0gcGF0aFswXTtcbiAgLy8gICAgIGNvbnN0IHN1YlN0YXRlID0gcGF0aFsxXTtcbiAgLy8gICAgIGNvbnN0IGRlZXBQYXRoID0gcGF0aC5zbGljZSgyKTtcbiAgLy8gICAgIGNvbnNvbGUubG9nKHN0YXRlLCBzdWJTdGF0ZSwgZGVlcFBhdGgsIHZhbHVlKTtcbiAgLy8gICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgLy8gICAgICAgY2FzZSAnYXV0aCc6XG4gIC8vICAgICAgICAgaWYodGhpcy5hdXRoU3RhdGVTdWJqZWN0LnZhbHVlIClcbiAgLy8gICAgICAgICBicmVhaztcbiAgLy8gICAgIH1cbiAgLy8gICB9KTtcbiAgLy8gfVxuXG5cbiAgcHJpdmF0ZSB1cGRhdGVTdGF0ZShhdXRoU3RhdGU6IEF1dGhTdGF0ZSwgYXV0aFN1YlN0YXRlczogQXV0aFN1YlN0YXRlc1tdKTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5hdXRoU3RhdGVTdWJqZWN0LnZhbHVlICE9PSBhdXRoU3RhdGUpIHtcbiAgICAgIHRoaXMuYXV0aFN0YXRlU3ViamVjdC5uZXh0KGF1dGhTdGF0ZSk7XG4gICAgfVxuICAgIGZvciAoY29uc3QgYXV0aFN1YlN0YXRlIG9mIGF1dGhTdWJTdGF0ZXMpIHtcbiAgICAgIGlmICghRmFzdERlZXBFcXVhbChhdXRoU3ViU3RhdGUuc3ViamVjdC52YWx1ZSwgYXV0aFN0YXRlW2F1dGhTdWJTdGF0ZS5maWVsZF0pKSB7XG4gICAgICAgIGF1dGhTdWJTdGF0ZS5zdWJqZWN0Lm5leHQoYXV0aFN0YXRlW2F1dGhTdWJTdGF0ZS5maWVsZF0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5pc0F1dGhlbnRpY2F0ZWRTdWJqZWN0LnZhbHVlICE9PSBhdXRoU3RhdGUuaXNBdXRoZW50aWNhdGVkKSB7XG4gICAgICB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QubmV4dChhdXRoU3RhdGUuaXNBdXRoZW50aWNhdGVkKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nU3ViamVjdC52YWx1ZSAhPT0gYXV0aFN0YXRlLmlzTG9hZGluZykge1xuICAgICAgdGhpcy5pc0xvYWRpbmdTdWJqZWN0Lm5leHQoYXV0aFN0YXRlLmlzTG9hZGluZyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBkaXNwYXRjaEFjdGlvbih0eXBlOiBzdHJpbmcsIHBheWxvYWQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBzdG9yZSA9IHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlO1xuICAgIHN0b3JlLmRpc3BhdGNoKHsgdHlwZTogYGF1dGgvJHt0eXBlfWAsIHBheWxvYWQgfSk7XG4gIH1cblxuXG4gIHB1YmxpYyBpc0hvc3RlZExvZ2luQ2FsbGJhY2tSb3V0ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBwYXRoID0gdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2Uucm91dGVyLnVybDtcbiAgICBjb25zdCBob3N0ZWRMb2dpblJlZGlyZWN0VXJsID0gdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2UuYXV0aFJvdXRlcy5ob3N0ZWRMb2dpblJlZGlyZWN0VXJsO1xuICAgIHJldHVybiBwYXRoLnN0YXJ0c1dpdGgoaG9zdGVkTG9naW5SZWRpcmVjdFVybCA/PyAnL29hdXRoL2NhbGxiYWNrJyk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIG9wdGlvbnMubWF4QWdlIG9wdGlvbmFsIG1heCBhZ2VcbiAgICogQHJldHVybnMgQSBzdWJzY3JpcHRpb24gZm9yIHN0ZXAgdXAgc3RhdGUgLSB0cnVlIHdoZW4gdXNlciBpcyBzdGVwcGVkIHVwLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHB1YmxpYyBpc1N0ZXBwZWRVcCQob2JzZXJ2ZXI6IFBhcnRpYWxPYnNlcnZlcjxib29sZWFuPiwgb3B0aW9ucz86IElzU3RlcHBlZFVwT3B0aW9ucyk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRlZ2dVc2VyU3Vic2NyaXB0aW9uU2VydmljZS5nZXRVc2VyTWFuaXB1bGF0b3JTdWJzY3JpcHRpb248Ym9vbGVhbj4oXG4gICAgICAoKSA9PiB0aGlzLmZyb250ZWdnQXBwU2VydmljZS5mcm9udGVnZ0FwcC5pc1N0ZXBwZWRVcChvcHRpb25zKSxcbiAgICAgIG9ic2VydmVyLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgc3RlcCB1cCBmbG93XG4gICAqIEBwYXJhbSBvcHRpb25zLm1heEFnZSBvcHRpb25hbCBtYXggYWdlXG4gICAqL1xuICBwdWJsaWMgc3RlcFVwID0gKG9wdGlvbnM/OiBTdGVwVXBPcHRpb25zKSA9PiB0aGlzLmZyb250ZWdnQXBwU2VydmljZS5mcm9udGVnZ0FwcC5zdGVwVXAob3B0aW9ucyk7XG5cblxuICAvLyBSb290IEFjdGlvbnNcbiAgc2V0U3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8QXV0aFN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0U3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFN0YXRlJyk7XG4gIHNldFVzZXIgPSAodXNlcjogVXNlcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0VXNlcicsIHVzZXIpO1xuXG4gIC8vIExvZ2luIEFjdGlvbnNcbiAgc2V0TG9naW5TdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxMb2dpblN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0TG9naW5TdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRMb2dpblN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRMb2dpblN0YXRlJyk7XG4gIHJlcXVlc3RBdXRob3JpemUgPSAoZmlyc3RUaW1lPzogYm9vbGVhbikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVxdWVzdEF1dGhvcml6ZScsIGZpcnN0VGltZSk7XG5cbiAgbG9naW5XaXRoUmVkaXJlY3QgPSAocGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkUmVkaXJlY3RUb0xvZ2luPzogYm9vbGVhbixcbiAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RUaW1lPzogYm9vbGVhbixcbiAgICAgICAgICAgICAgICAgICAgICAgbG9naW5EaXJlY3RBY3Rpb24/OiBMb2dpbkRpcmVjdEFjdGlvbikgPT4ge1xuICAgIGlmICh0aGlzLmlzSG9zdGVkTG9naW5DYWxsYmFja1JvdXRlKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbigncmVxdWVzdEhvc3RlZExvZ2luQXV0aG9yaXplVjInLCB7XG4gICAgICBhZGRpdGlvbmFsUGFyYW1zOiBwYXJhbXMsXG4gICAgICBzaG91bGRSZWRpcmVjdFRvTG9naW46IHNob3VsZFJlZGlyZWN0VG9Mb2dpbiA/PyB0cnVlLFxuICAgICAgZmlyc3RUaW1lOiBmaXJzdFRpbWUgPz8gZmFsc2UsXG4gICAgICBsb2dpbkRpcmVjdEFjdGlvbixcbiAgICB9KTtcbiAgICB0aGlzLnNldFN0YXRlKHsgaXNMb2FkaW5nOiB0cnVlIH0pO1xuICB9O1xuICBwcmVMb2dpbiA9IChwYXlsb2FkOiBJUHJlTG9naW4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3ByZUxvZ2luJywgcGF5bG9hZCk7XG4gIHBvc3RMb2dpbiA9IChwYXlsb2FkOiBJUG9zdExvZ2luKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdwb3N0TG9naW4nLCBwYXlsb2FkKTtcbiAgbG9naW4gPSAocGF5bG9hZDogSUxvZ2luKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2dpbicsIHBheWxvYWQpO1xuICBsb2dpbldpdGhNZmEgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElMb2dpbldpdGhNZmE+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2dpbldpdGhNZmEnLCBwYXlsb2FkKTtcbiAgcmVjb3Zlck1mYSA9IChwYXlsb2FkOiBJUmVjb3Zlck1GQVRva2VuKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZWNvdmVyTWZhJywgcGF5bG9hZCk7XG4gIGxvZ291dCA9IChjYWxsYmFjaz86ICgpID0+IHZvaWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvZ291dCcsIGNhbGxiYWNrKTtcbiAgc2lsZW50TG9nb3V0ID0gKGNhbGxiYWNrPzogKCkgPT4gdm9pZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2lsZW50TG9nb3V0JywgY2FsbGJhY2spO1xuICBjaGVja0lmQWxsb3dUb1JlbWVtYmVyTWZhRGV2aWNlID0gKHBheWxvYWQ6IHsgbWZhVG9rZW46IHN0cmluZyB9KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2NoZWNrSWZBbGxvd1RvUmVtZW1iZXJNZmFEZXZpY2UnLCBwYXlsb2FkKTtcblxuICAvLyBTb2NpYWwgTG9naW5zIEFjdGlvbnNcbiAgc2V0U29jaWFsTG9naW5zU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8U29jaWFsTG9naW5TdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNvY2lhbExvZ2luc1N0YXRlJywgc3RhdGUpO1xuICByZXNldFNvY2lhbExvZ2luc1N0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRTb2NpYWxMb2dpbnNTdGF0ZScpO1xuICBsb2FkU29jaWFsTG9naW5zQ29uZmlndXJhdGlvbiA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRTb2NpYWxMb2dpbnNDb25maWd1cmF0aW9uJyk7XG4gIGxvZ2luVmlhU29jaWFsTG9naW4gPSAocGF5bG9hZDogSUxvZ2luVmlhU29jaWFsTG9naW4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvZ2luVmlhU29jaWFsTG9naW4nLCBwYXlsb2FkKTtcbiAgc2V0U29jaWFsTG9naW5FcnJvciA9IChwYXlsb2FkOiBJU2V0U29jaWFsTG9naW5FcnJvcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U29jaWFsTG9naW5FcnJvcicsIHBheWxvYWQpO1xuXG4gIC8vIEFjdGl2YXRlIEFjY291bnQgQWN0aW9uc1xuICBzZXRBY3RpdmF0ZVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEFjdGl2YXRlQWNjb3VudFN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0QWN0aXZhdGVTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRBY3RpdmF0ZVN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRBY3RpdmF0ZVN0YXRlJyk7XG4gIHNldEFjdGl2YXRlU3RyYXRlZ3lTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxBY3RpdmF0ZUFjY291bnRTdHJhdGVneVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRBY3RpdmF0ZVN0cmF0ZWd5U3RhdGUnLCBzdGF0ZSk7XG4gIGFjdGl2YXRlQWNjb3VudCA9IChwYXlsb2FkOiBJQWN0aXZhdGVBY2NvdW50KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhY3RpdmF0ZUFjY291bnQnLCBwYXlsb2FkKTtcbiAgcmVzZW5kQWN0aXZhdGlvbkVtYWlsID0gKHBheWxvYWQ6IElSZXNlbmRBY3RpdmF0aW9uRW1haWwpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2VuZEFjdGl2YXRpb25FbWFpbCcsIHBheWxvYWQpO1xuICBnZXRBY3RpdmF0ZUFjY291bnRTdHJhdGVneSA9IChcbiAgICBwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUdldEFjdGl2YXRlQWNjb3VudFN0cmF0ZWd5LCBJR2V0QWN0aXZhdGVBY2NvdW50U3RyYXRlZ3lSZXNwb25zZT4sXG4gICkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZ2V0QWN0aXZhdGVBY2NvdW50U3RyYXRlZ3knLCBwYXlsb2FkKTtcblxuICAvLyBBY2NlcHQgSW52aXRhdGlvbiBBY3Rpb25zXG4gIHNldEFjY2VwdEludml0YXRpb25TdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxBY2NlcHRJbnZpdGF0aW9uU3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldEFjY2VwdEludml0YXRpb25TdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRBY2NlcHRJbnZpdGF0aW9uU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldEFjY2VwdEludml0YXRpb25TdGF0ZScpO1xuICBhY2NlcHRJbnZpdGF0aW9uID0gKHBheWxvYWQ6IElBY2NlcHRJbnZpdGF0aW9uKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhY2NlcHRJbnZpdGF0aW9uJywgcGF5bG9hZCk7XG5cbiAgLy8gRm9yZ290IFBhc3N3b3JkIEFjdGlvbnNcbiAgc2V0Rm9yZ290UGFzc3dvcmRTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxGb3Jnb3RQYXNzd29yZFN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRGb3Jnb3RQYXNzd29yZFN0YXRlJywgc3RhdGUpO1xuICByZXNldEZvcmdvdFBhc3N3b3JkU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldEZvcmdvdFBhc3N3b3JkU3RhdGUnKTtcbiAgZm9yZ290UGFzc3dvcmQgPSAocGF5bG9hZDogSUZvcmdvdFBhc3N3b3JkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdmb3Jnb3RQYXNzd29yZCcsIHBheWxvYWQpO1xuICByZXNldFBhc3N3b3JkID0gKHBheWxvYWQ6IElSZXNldFBhc3N3b3JkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFBhc3N3b3JkJywgcGF5bG9hZCk7XG4gIGxvYWRQYXNzd29yZENvbmZpZyA9IChwYXlsb2FkPzogSUdldFVzZXJQYXNzd29yZENvbmZpZykgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFBhc3N3b3JkQ29uZmlnJywgcGF5bG9hZCk7XG5cbiAgLy8gU2lnbiBVcCBBY3Rpb25zXG4gIHNldFNpZ25VcFN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFNpZ25VcFN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U2lnblVwU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0U2lnblVwU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFNpZ25VcFN0YXRlJyk7XG4gIHNpZ25VcFVzZXIgPSAocGF5bG9hZDogSVNpZ25VcFVzZXIpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NpZ25VcFVzZXInLCBwYXlsb2FkKTtcbiAgcmVzZXRTaWduVXBTdGF0ZVNvZnQgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFNpZ25VcFN0YXRlU29mdCcpO1xuXG4gIC8vIFByb2ZpbGUgQWN0aW9uc1xuICBzZXRQcm9maWxlU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8UHJvZmlsZVN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0UHJvZmlsZVN0YXRlJywgc3RhdGUpO1xuICByZXNldFByb2ZpbGVTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0UHJvZmlsZVN0YXRlJyk7XG4gIGxvYWRQcm9maWxlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFByb2ZpbGUnKTtcbiAgc2F2ZVByb2ZpbGUgPSAocGF5bG9hZDogU2F2ZVByb2ZpbGVQYXlsb2FkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzYXZlUHJvZmlsZScsIHBheWxvYWQpO1xuICBjaGFuZ2VQYXNzd29yZCA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUNoYW5nZVBhc3N3b3JkPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignY2hhbmdlUGFzc3dvcmQnLCBwYXlsb2FkKTtcblxuICAvLyBTU08gYWN0aW9uc1xuICBzZXRTU09TdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxTU09TdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNTT1N0YXRlJywgc3RhdGUpO1xuICByZXNldFNTT1N0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRTU09TdGF0ZScpO1xuICBsb2FkU1NPQ29uZmlndXJhdGlvbnMgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkU1NPQ29uZmlndXJhdGlvbnMnKTtcbiAgbG9hZFNTT0F1dGhvcml6YXRpb25Sb2xlcyA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRTU09BdXRob3JpemF0aW9uUm9sZXMnKTtcbiAgc2F2ZVNTT0NvbmZpZ3VyYXRpb25zID0gKHBheWxvYWQ6IFNhdmVTU09Db25maWd1cmF0aW9uUGF5bG9hZCkgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzYXZlU1NPQ29uZmlndXJhdGlvbnMnLCBwYXlsb2FkKTtcbiAgc2F2ZVNTT0NvbmZpZ3VyYXRpb25zRmlsZSA9IChwYXlsb2FkOiBGaWxlW10pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTU09Db25maWd1cmF0aW9uc0ZpbGUnLCBwYXlsb2FkKTtcbiAgc2F2ZVNTT0NvbmZpZ3VyYXRpb25zRmlsZVdpdGhDYWxsYmFjayA9IChwYXlsb2FkOiBTYXZlU1NPQ29uZmlndXJhdGlvbkZpbGVQYXlsb2FkKSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTU09Db25maWd1cmF0aW9uc0ZpbGVXaXRoQ2FsbGJhY2snLCBwYXlsb2FkKTtcbiAgdmFsaWRhdGVTU09Eb21haW4gPSAocGF5bG9hZD86IFdpdGhDYWxsYmFjaykgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigndmFsaWRhdGVTU09Eb21haW4nLCBwYXlsb2FkKTtcbiAgdXBkYXRlU1NPQXV0aG9yaXphdGlvblJvbGVzID0gKHBheWxvYWQ6IFVwZGF0ZVNTT0F1dGhvcml6YXRpb25Sb2xlc1BheWxvYWQpID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbigndXBkYXRlU1NPQXV0aG9yaXphdGlvblJvbGVzJywgcGF5bG9hZCk7XG4gIGRlbGV0ZVNhbWxHcm91cCA9IChwYXlsb2FkOiBEZWxldGVTYW1sR3JvdXBQYXlsb2FkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdkZWxldGVTYW1sR3JvdXAnLCBwYXlsb2FkKTtcbiAgY3JlYXRlU2FtbEdyb3VwID0gKHBheWxvYWQ6IENyZWF0ZVNhbWxHcm91cFBheWxvYWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2NyZWF0ZVNhbWxHcm91cCcsIHBheWxvYWQpO1xuICBvaWRjUG9zdGxvZ2luID0gKHBheWxvYWQ6IElPaWRjUG9zdExvZ2luKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdvaWRjUG9zdGxvZ2luJywgcGF5bG9hZCk7XG5cbiAgLy8gTWZhIGFjdGlvbnNcbiAgc2V0TWZhU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8TUZBU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRNZmFTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRNZmFTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0TWZhU3RhdGUnKTtcbiAgZW5yb2xsTWZhID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZW5yb2xsTWZhJyk7XG4gIHZlcmlmeU1mYSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SVZlcmlmeU1mYSwgc3RyaW5nIHwgdW5kZWZpbmVkPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigndmVyaWZ5TWZhJywgcGF5bG9hZCk7XG4gIHZlcmlmeU1mYUFmdGVyRm9yY2UgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElMb2dpbldpdGhNZmEsIHN0cmluZyB8IHVuZGVmaW5lZD4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbigndmVyaWZ5TWZhQWZ0ZXJGb3JjZScsIHBheWxvYWQpO1xuICBkaXNhYmxlTWZhID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJRGlzYWJsZU1mYT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2Rpc2FibGVNZmEnLCBwYXlsb2FkKTtcblxuICAvLyBUZWFtIGFjdGlvbnNcbiAgc2V0VGVhbUxvYWRlciA9IChwYXlsb2FkOiBUZWFtU3RhdGVJbmRpY2F0b3IpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFRlYW1Mb2FkZXInLCBwYXlsb2FkKTtcbiAgc2V0VGVhbUVycm9yID0gKHBheWxvYWQ6IFRlYW1TdGF0ZUluZGljYXRvcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0VGVhbUVycm9yJywgcGF5bG9hZCk7XG4gIHNldFRlYW1TdGF0ZSA9IChwYXlsb2FkOiBQYXJ0aWFsPFRlYW1TdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFRlYW1TdGF0ZScsIHBheWxvYWQpO1xuICByZXNldFRlYW1TdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0VGVhbVN0YXRlJyk7XG4gIGxvYWRVc2VycyA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8V2l0aFNpbGVudExvYWQ8SUxvYWRVc2Vycz4sIElUZWFtVXNlcltdPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkVXNlcnMnLCBwYXlsb2FkKTtcbiAgbG9hZFJvbGVzID0gKHBheWxvYWQ/OiBMb2FkUm9sZXNBbmRQZXJtaXNzaW9uc1BheWxvYWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRSb2xlcycsIHBheWxvYWQpO1xuICBhZGRVc2VyID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJQWRkVXNlciwgSVRlYW1Vc2VyPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignYWRkVXNlcicsIHBheWxvYWQpO1xuICB1cGRhdGVVc2VyID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJVXBkYXRlVXNlciwgSVRlYW1Vc2VyPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigndXBkYXRlVXNlcicsIHBheWxvYWQpO1xuICBkZWxldGVVc2VyID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJRGVsZXRlVXNlcj4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2RlbGV0ZVVzZXInLCBwYXlsb2FkKTtcbiAgcmVzZW5kQWN0aXZhdGlvbkxpbmsgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElSZXNlbmRBY3RpdmF0aW9uTGluaz4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZW5kQWN0aXZhdGlvbkxpbmsnLCBwYXlsb2FkKTtcbiAgcmVzZW5kSW52aXRhdGlvbkxpbmsgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElSZXNlbmRJbnZpdGF0aW9uTGluaz4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZW5kSW52aXRhdGlvbkxpbmsnLCBwYXlsb2FkKTtcbiAgb3BlbkFkZFVzZXJEaWFsb2cgPSAocGF5bG9hZD86IElTZXRBZGRVc2VyRGlhbG9nKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdvcGVuQWRkVXNlckRpYWxvZycsIHBheWxvYWQpO1xuICBjbG9zZUFkZFVzZXJEaWFsb2cgPSAocGF5bG9hZD86IGFueSkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignY2xvc2VBZGRVc2VyRGlhbG9nJywgcGF5bG9hZCk7XG4gIG9wZW5EZWxldGVVc2VyRGlhbG9nID0gKHBheWxvYWQ/OiBJU2V0RGVsZXRlVXNlckRpYWxvZykgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignb3BlbkRlbGV0ZVVzZXJEaWFsb2cnLCBwYXlsb2FkKTtcbiAgY2xvc2VEZWxldGVVc2VyRGlhbG9nID0gKHBheWxvYWQ/OiBhbnkpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2Nsb3NlRGVsZXRlVXNlckRpYWxvZycsIHBheWxvYWQpO1xuXG4gIC8vIEFQSSBUb2tlbiBBY3Rpb25zXG4gIHNldEFwaVRva2Vuc0xvYWRlciA9IChwYXlsb2FkOiBBcGlTdGF0ZUluZGljYXRvcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0QXBpVG9rZW5zTG9hZGVyJywgcGF5bG9hZCk7XG4gIHNldEFwaVRva2Vuc0Vycm9yID0gKHBheWxvYWQ6IEFwaVN0YXRlSW5kaWNhdG9yKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRBcGlUb2tlbnNFcnJvcicsIHBheWxvYWQpO1xuICBzZXRBcGlUb2tlbnNTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxBcGlUb2tlbnNTdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldEFwaVRva2Vuc1N0YXRlJywgc3RhdGUpO1xuICByZXNldEFwaVRva2Vuc1N0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRBcGlUb2tlbnNTdGF0ZScpO1xuICBsb2FkQXBpVG9rZW5zID0gKHBheWxvYWQ/OiBXaXRoU2lsZW50TG9hZDxXaXRoQ2FsbGJhY2s+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkQXBpVG9rZW5zJywgcGF5bG9hZCk7XG4gIGluaXRBcGlUb2tlbnNEYXRhID0gKHBheWxvYWQ6IEFwaVRva2VuVHlwZSkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignaW5pdEFwaVRva2Vuc0RhdGEnLCBwYXlsb2FkKTtcbiAgYWRkVGVuYW50QXBpVG9rZW4gPSAocGF5bG9hZDogQWRkVGVuYW50QXBpVG9rZW5QYXlsb2FkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhZGRUZW5hbnRBcGlUb2tlbicsIHBheWxvYWQpO1xuICBhZGRVc2VyQXBpVG9rZW4gPSAocGF5bG9hZDogQWRkVXNlckFwaVRva2VuUGF5bG9hZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignYWRkVXNlckFwaVRva2VuJywgcGF5bG9hZCk7XG4gIGRlbGV0ZVVzZXJBcGlUb2tlbiA9IChwYXlsb2FkOiBzdHJpbmcpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2RlbGV0ZVVzZXJBcGlUb2tlbicsIHBheWxvYWQpO1xuICBkZWxldGVUZW5hbnRBcGlUb2tlbiA9IChwYXlsb2FkOiBzdHJpbmcpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2RlbGV0ZVRlbmFudEFwaVRva2VuJywgcGF5bG9hZCk7XG5cbiAgLy8gU2VjdXJpdHkgUG9saWN5IEFjdGlvbnNcbiAgc2V0U2VjdXJpdHlQb2xpY3lTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxTZWN1cml0eVBvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeVN0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeUdsb2JhbFN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEdsb2JhbFBvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeUdsb2JhbFN0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeVB1YmxpY1N0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFB1YmxpY1BvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeVB1YmxpY1N0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeU1mYVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPE1mYVBvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeU1mYVN0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeUxvY2tvdXRTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxMb2Nrb3V0UG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5TG9ja291dFN0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeUNhcHRjaGFTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxDYXB0Y2hhUG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5Q2FwdGNoYVN0YXRlJywgc3RhdGUpO1xuICBzZXRTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFBhc3N3b3JkSGlzdG9yeVBvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeVN0YXRlJywgc3RhdGUpO1xuICByZXNldFNlY3VyaXR5UG9saWN5U3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFNlY3VyaXR5UG9saWN5U3RhdGUnKTtcbiAgc2V0U2VjdXJpdHlQb2xpY3lQYXNzd29yZFN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFBhc3N3b3JkUG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5UGFzc3dvcmRTdGF0ZScsIHN0YXRlKTtcbiAgbG9hZFNlY3VyaXR5UG9saWN5ID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNlY3VyaXR5UG9saWN5Jyk7XG4gIGxvYWRQdWJsaWNTZWN1cml0eVBvbGljeSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRQdWJsaWNTZWN1cml0eVBvbGljeScpO1xuICBsb2FkVmVuZG9yUGFzc3dvcmRDb25maWcgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkVmVuZG9yUGFzc3dvcmRDb25maWcnKTtcbiAgbG9hZFNlY3VyaXR5UG9saWN5TWZhID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNlY3VyaXR5UG9saWN5TWZhJyk7XG4gIHNhdmVTZWN1cml0eVBvbGljeU1mYSA9IChwYXlsb2FkOiBTYXZlU2VjdXJpdHlQb2xpY3lNZmFQYXlsb2FkKSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTZWN1cml0eVBvbGljeU1mYScsIHBheWxvYWQpO1xuICBsb2FkU2VjdXJpdHlQb2xpY3lMb2Nrb3V0ID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNlY3VyaXR5UG9saWN5TG9ja291dCcpO1xuICBzYXZlU2VjdXJpdHlQb2xpY3lMb2Nrb3V0ID0gKHBheWxvYWQ6IFNhdmVTZWN1cml0eVBvbGljeUxvY2tvdXRQYXlsb2FkKSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTZWN1cml0eVBvbGljeUxvY2tvdXQnLCBwYXlsb2FkKTtcbiAgbG9hZFNlY3VyaXR5UG9saWN5Q2FwdGNoYSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRTZWN1cml0eVBvbGljeUNhcHRjaGEnKTtcbiAgbG9hZFNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5ID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5Jyk7XG4gIHNhdmVTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeSA9IChwYXlsb2FkOiBTYXZlU2VjdXJpdHlQb2xpY3lQYXNzd29yZEhpc3RvcnlQYXlsb2FkKSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeScsIHBheWxvYWQpO1xuXG4gIC8vIEFjY291bnQgU2V0dGluZ3MgQWN0aW9uc1xuICBzZXRBY2NvdW50U2V0dGluZ3NTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxBY2NvdW50U2V0dGluZ3NTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0QWNjb3VudFNldHRpbmdzU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0QWNjb3VudFNldHRpbmdzU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldEFjY291bnRTZXR0aW5nc1N0YXRlJyk7XG4gIGxvYWRBY2NvdW50U2V0dGluZ3MgPSAocGF5bG9hZD86IFdpdGhDYWxsYmFjazxXaXRoU2lsZW50TG9hZDx7fT4+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRBY2NvdW50U2V0dGluZ3MnLCBwYXlsb2FkKTtcbiAgc2F2ZUFjY291bnRTZXR0aW5ncyA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SVNldHRpbmdzUmVzcG9uc2UsIElTZXR0aW5nc1Jlc3BvbnNlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzYXZlQWNjb3VudFNldHRpbmdzJywgcGF5bG9hZCk7XG5cbiAgLy8gVGVuYW50cyBBY3Rpb25zXG4gIHNldFRlbmFudHNTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxUZW5hbnRzU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRUZW5hbnRzU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0VGVuYW50c1N0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRUZW5hbnRzU3RhdGUnKTtcbiAgc3dpdGNoVGVuYW50ID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJU3dpdGNoVGVuYW50PikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc3dpdGNoVGVuYW50JywgcGF5bG9hZCk7XG4gIGxvYWRUZW5hbnRzID0gKHBheWxvYWQ/OiBXaXRoQ2FsbGJhY2s8e30sIElUZW5hbnRzUmVzcG9uc2VbXT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRUZW5hbnRzJywgcGF5bG9hZCk7XG5cbiAgLy8gUm9sZXMgQWN0aW9uc1xuICBzZXRSb2xlc1N0YXRlID0gKHN0YXRlOiBSb2xlc1N0YXRlKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRSb2xlc1N0YXRlJywgc3RhdGUpO1xuICByZXNldFJvbGVzU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFJvbGVzU3RhdGUnKTtcbiAgbG9hZFJvbGVzQW5kUGVybWlzc2lvbnMgPSAocGF5bG9hZD86IFdpdGhTaWxlbnRMb2FkPHt9PikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFJvbGVzQW5kUGVybWlzc2lvbnMnLCBwYXlsb2FkKTtcbiAgYWRkUm9sZSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUFkZFJvbGUsIElSb2xlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignYWRkUm9sZScsIHBheWxvYWQpO1xuICB1cGRhdGVSb2xlID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJVXBkYXRlUm9sZSwgSVJvbGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCd1cGRhdGVSb2xlJywgcGF5bG9hZCk7XG4gIGRlbGV0ZVJvbGUgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElEZWxldGVSb2xlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZGVsZXRlUm9sZScsIHBheWxvYWQpO1xuICBhdHRhY2hQZXJtaXNzaW9uc1RvUm9sZSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUF0dGFjaFBlcm1pc3Npb25zVG9Sb2xlLCBJUm9sZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignYXR0YWNoUGVybWlzc2lvbnNUb1JvbGUnLCBwYXlsb2FkKTtcblxuICBhdHRhY2hQZXJtaXNzaW9uVG9Sb2xlcyA9IChcbiAgICBwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8e1xuICAgICAgcGVybWlzc2lvbklkOiBzdHJpbmc7XG4gICAgICByb2xlSWRzOiBzdHJpbmdbXTtcbiAgICB9LFxuICAgICAgSVJvbGVQZXJtaXNzaW9uPixcbiAgKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhdHRhY2hQZXJtaXNzaW9uVG9Sb2xlcycsIHBheWxvYWQpO1xufVxuIl19
@@ -750,8 +750,7 @@ class FronteggAuthService {
750
750
  }
751
751
  dispatchAction(type, payload) {
752
752
  const store = this.fronteggAppService.fronteggApp.store;
753
- // @ts-ignore
754
- store.dispatch({ type: `${authStoreName}/${type}`, payload });
753
+ store.dispatch({ type: `auth/${type}`, payload });
755
754
  }
756
755
  isHostedLoginCallbackRoute() {
757
756
  const path = this.fronteggAppService.router.url;