@decaf-ts/for-nest 0.12.0 → 0.12.2-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.
- package/README.md +30 -4
- package/dist/for-nest.cjs +2610 -2
- package/dist/for-nest.js +2723 -2
- package/lib/cjs/auth/AuthInterceptor.cjs +5 -13
- package/lib/cjs/auth/AuthMiddleware.cjs +51 -0
- package/lib/cjs/auth/DecafAuthHandler.cjs +10 -5
- package/lib/cjs/auth/DecafAuthModule.cjs +8 -3
- package/lib/cjs/auth/constants.cjs +5 -3
- package/lib/cjs/auth/decorators.cjs +6 -2
- package/lib/cjs/auth/index.cjs +3 -2
- package/lib/cjs/bin/cli.cjs +2 -2
- package/lib/cjs/cli-module.cjs +2 -2
- package/lib/cjs/constants.cjs +2 -2
- package/lib/cjs/controllers.cjs +2 -2
- package/lib/cjs/core-module.cjs +2 -2
- package/lib/cjs/decaf-model/DecafModelModule.cjs +2 -2
- package/lib/cjs/decaf-model/FromModelController.cjs +8 -2
- package/lib/cjs/decaf-model/decorators/ApiOperationFromModel.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/ApiParamsFromModel.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/DecafBody.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/DecafParams.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/controller-config.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/decorators.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/expose.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/index.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/types.cjs +2 -2
- package/lib/cjs/decaf-model/decorators/utils.cjs +2 -2
- package/lib/cjs/decaf-model/index.cjs +2 -2
- package/lib/cjs/decaf-model/types.cjs +2 -2
- package/lib/cjs/decaf-model/utils.cjs +2 -2
- package/lib/cjs/decoration.cjs +2 -2
- package/lib/cjs/decorators.cjs +2 -2
- package/lib/cjs/events-module/DecafStreamModule.cjs +15 -4
- package/lib/cjs/events-module/EventsController.cjs +30 -7
- package/lib/cjs/events-module/EventsSubscriptionController.cjs +81 -0
- package/lib/cjs/events-module/ObserverSubscriptionRegistry.cjs +51 -0
- package/lib/cjs/events-module/constant.cjs +4 -3
- package/lib/cjs/events-module/index.cjs +5 -2
- package/lib/cjs/events-module/utils.cjs +2 -2
- package/lib/cjs/factory/NestBootstraper.cjs +2 -2
- package/lib/cjs/factory/errors/cors.cjs +2 -2
- package/lib/cjs/factory/errors/index.cjs +2 -2
- package/lib/cjs/factory/errors/throttling.cjs +2 -2
- package/lib/cjs/factory/exceptions/DecafErrorFilter.cjs +2 -2
- package/lib/cjs/factory/exceptions/decorators.cjs +2 -2
- package/lib/cjs/factory/exceptions/index.cjs +2 -2
- package/lib/cjs/factory/index.cjs +2 -2
- package/lib/cjs/factory/openapi/DtoBuilder.cjs +2 -2
- package/lib/cjs/factory/openapi/SwaggerBuilder.cjs +2 -2
- package/lib/cjs/factory/openapi/SwaggerCustomUI.cjs +2 -2
- package/lib/cjs/factory/openapi/constants.cjs +2 -2
- package/lib/cjs/factory/openapi/index.cjs +2 -2
- package/lib/cjs/index.cjs +5 -5
- package/lib/cjs/interceptors/DecafRequestHandlerInterceptor.cjs +5 -33
- package/lib/cjs/interceptors/index.cjs +2 -2
- package/lib/cjs/module.cjs +3 -3
- package/lib/cjs/overrides/Adapter.cjs +2 -2
- package/lib/cjs/overrides/ModelBuilderExtensions.cjs +2 -2
- package/lib/cjs/overrides/constants.cjs +2 -2
- package/lib/cjs/overrides/decoration.cjs +2 -2
- package/lib/cjs/overrides/helpers.cjs +2 -2
- package/lib/cjs/overrides/index.cjs +2 -2
- package/lib/cjs/overrides/logging.cjs +2 -2
- package/lib/cjs/overrides/overrides.cjs +2 -2
- package/lib/cjs/request/DecafAuthHandler.cjs +2 -2
- package/lib/cjs/request/DecafHandlerExecutor.cjs +2 -2
- package/lib/cjs/request/DecafRequestContext.cjs +2 -2
- package/lib/cjs/request/DecafResponseInterceptor.cjs +2 -2
- package/lib/cjs/request/contextualize.cjs +46 -0
- package/lib/cjs/request/index.cjs +3 -2
- package/lib/cjs/swagger-types.cjs +2 -2
- package/lib/cjs/types.cjs +2 -2
- package/lib/cjs/utils.cjs +2 -2
- package/lib/cjs/webhooks/DecafWebhookModule.cjs +2 -2
- package/lib/cjs/webhooks/controllers.cjs +2 -2
- package/lib/cjs/webhooks/index.cjs +2 -2
- package/lib/cjs/webhooks/types.cjs +2 -2
- package/lib/esm/auth/AuthInterceptor.js +5 -13
- package/lib/esm/auth/AuthMiddleware.js +42 -0
- package/lib/esm/auth/DecafAuthHandler.js +9 -4
- package/lib/esm/auth/DecafAuthModule.js +8 -3
- package/lib/esm/auth/constants.js +3 -1
- package/lib/esm/auth/decorators.js +5 -2
- package/lib/esm/auth/index.js +2 -1
- package/lib/esm/bin/cli.js +1 -1
- package/lib/esm/cli-module.js +1 -1
- package/lib/esm/constants.js +1 -1
- package/lib/esm/controllers.js +1 -1
- package/lib/esm/core-module.js +1 -1
- package/lib/esm/decaf-model/DecafModelModule.js +1 -1
- package/lib/esm/decaf-model/FromModelController.js +9 -3
- package/lib/esm/decaf-model/decorators/ApiOperationFromModel.js +1 -1
- package/lib/esm/decaf-model/decorators/ApiParamsFromModel.js +1 -1
- package/lib/esm/decaf-model/decorators/DecafBody.js +1 -1
- package/lib/esm/decaf-model/decorators/DecafParams.js +1 -1
- package/lib/esm/decaf-model/decorators/controller-config.js +1 -1
- package/lib/esm/decaf-model/decorators/decorators.js +1 -1
- package/lib/esm/decaf-model/decorators/expose.js +1 -1
- package/lib/esm/decaf-model/decorators/index.js +1 -1
- package/lib/esm/decaf-model/decorators/types.js +1 -1
- package/lib/esm/decaf-model/decorators/utils.js +1 -1
- package/lib/esm/decaf-model/index.js +1 -1
- package/lib/esm/decaf-model/types.js +1 -1
- package/lib/esm/decaf-model/utils.js +1 -1
- package/lib/esm/decoration.js +1 -1
- package/lib/esm/decorators.js +1 -1
- package/lib/esm/events-module/DecafStreamModule.js +15 -4
- package/lib/esm/events-module/EventsController.js +31 -8
- package/lib/esm/events-module/EventsSubscriptionController.js +72 -0
- package/lib/esm/events-module/ObserverSubscriptionRegistry.js +43 -0
- package/lib/esm/events-module/constant.js +2 -1
- package/lib/esm/events-module/index.js +4 -1
- package/lib/esm/events-module/utils.js +1 -1
- package/lib/esm/factory/NestBootstraper.js +1 -1
- package/lib/esm/factory/errors/cors.js +1 -1
- package/lib/esm/factory/errors/index.js +1 -1
- package/lib/esm/factory/errors/throttling.js +1 -1
- package/lib/esm/factory/exceptions/DecafErrorFilter.js +1 -1
- package/lib/esm/factory/exceptions/decorators.js +1 -1
- package/lib/esm/factory/exceptions/index.js +1 -1
- package/lib/esm/factory/index.js +1 -1
- package/lib/esm/factory/openapi/DtoBuilder.js +1 -1
- package/lib/esm/factory/openapi/SwaggerBuilder.js +1 -1
- package/lib/esm/factory/openapi/SwaggerCustomUI.js +1 -1
- package/lib/esm/factory/openapi/constants.js +1 -1
- package/lib/esm/factory/openapi/index.js +1 -1
- package/lib/esm/index.js +4 -4
- package/lib/esm/interceptors/DecafRequestHandlerInterceptor.js +4 -32
- package/lib/esm/interceptors/index.js +1 -1
- package/lib/esm/module.js +2 -2
- package/lib/esm/overrides/Adapter.js +1 -1
- package/lib/esm/overrides/ModelBuilderExtensions.js +1 -1
- package/lib/esm/overrides/constants.js +1 -1
- package/lib/esm/overrides/decoration.js +1 -1
- package/lib/esm/overrides/helpers.js +1 -1
- package/lib/esm/overrides/index.js +1 -1
- package/lib/esm/overrides/logging.js +1 -1
- package/lib/esm/overrides/overrides.js +1 -1
- package/lib/esm/request/DecafAuthHandler.js +1 -1
- package/lib/esm/request/DecafHandlerExecutor.js +1 -1
- package/lib/esm/request/DecafRequestContext.js +1 -1
- package/lib/esm/request/DecafResponseInterceptor.js +1 -1
- package/lib/esm/request/contextualize.js +42 -0
- package/lib/esm/request/index.js +2 -1
- package/lib/esm/swagger-types.js +1 -1
- package/lib/esm/types.js +1 -1
- package/lib/esm/utils.js +1 -1
- package/lib/esm/webhooks/DecafWebhookModule.js +1 -1
- package/lib/esm/webhooks/controllers.js +1 -1
- package/lib/esm/webhooks/index.js +1 -1
- package/lib/esm/webhooks/types.js +1 -1
- package/lib/types/auth/AuthMiddleware.d.cts +9 -0
- package/lib/types/auth/AuthMiddleware.d.mts +9 -0
- package/lib/types/auth/DecafAuthHandler.d.cts +6 -4
- package/lib/types/auth/DecafAuthHandler.d.mts +6 -4
- package/lib/types/auth/DecafAuthModule.d.cts +3 -2
- package/lib/types/auth/DecafAuthModule.d.mts +3 -2
- package/lib/types/auth/constants.d.cts +2 -0
- package/lib/types/auth/constants.d.mts +2 -0
- package/lib/types/auth/decorators.d.cts +1 -0
- package/lib/types/auth/decorators.d.mts +1 -0
- package/lib/types/auth/index.d.cts +1 -0
- package/lib/types/auth/index.d.mts +1 -0
- package/lib/types/events-module/DecafStreamModule.d.cts +2 -1
- package/lib/types/events-module/DecafStreamModule.d.mts +2 -1
- package/lib/types/events-module/EventsController.d.cts +6 -2
- package/lib/types/events-module/EventsController.d.mts +6 -2
- package/lib/types/events-module/EventsSubscriptionController.d.cts +17 -0
- package/lib/types/events-module/EventsSubscriptionController.d.mts +17 -0
- package/lib/types/events-module/ObserverSubscriptionRegistry.d.cts +13 -0
- package/lib/types/events-module/ObserverSubscriptionRegistry.d.mts +13 -0
- package/lib/types/events-module/constant.d.cts +1 -0
- package/lib/types/events-module/constant.d.mts +1 -0
- package/lib/types/events-module/index.d.cts +3 -0
- package/lib/types/events-module/index.d.mts +3 -0
- package/lib/types/index.d.cts +3 -3
- package/lib/types/index.d.mts +3 -3
- package/lib/types/request/contextualize.d.cts +2 -0
- package/lib/types/request/contextualize.d.mts +2 -0
- package/lib/types/request/index.d.cts +1 -0
- package/lib/types/request/index.d.mts +1 -0
- package/lib/types/types.d.cts +7 -2
- package/lib/types/types.d.mts +7 -2
- package/package.json +1 -1
- package/dist/for-nest.cjs.map +0 -1
- package/dist/for-nest.js.map +0 -1
- package/lib/cjs/auth/AuthInterceptor.cjs.map +0 -1
- package/lib/cjs/auth/DecafAuthHandler.cjs.map +0 -1
- package/lib/cjs/auth/DecafAuthModule.cjs.map +0 -1
- package/lib/cjs/auth/constants.cjs.map +0 -1
- package/lib/cjs/auth/decorators.cjs.map +0 -1
- package/lib/cjs/auth/index.cjs.map +0 -1
- package/lib/cjs/bin/cli.cjs.map +0 -1
- package/lib/cjs/cli-module.cjs.map +0 -1
- package/lib/cjs/constants.cjs.map +0 -1
- package/lib/cjs/controllers.cjs.map +0 -1
- package/lib/cjs/core-module.cjs.map +0 -1
- package/lib/cjs/decaf-model/DecafModelModule.cjs.map +0 -1
- package/lib/cjs/decaf-model/FromModelController.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/ApiOperationFromModel.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/ApiParamsFromModel.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/DecafBody.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/DecafParams.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/controller-config.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/decorators.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/expose.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/index.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/types.cjs.map +0 -1
- package/lib/cjs/decaf-model/decorators/utils.cjs.map +0 -1
- package/lib/cjs/decaf-model/index.cjs.map +0 -1
- package/lib/cjs/decaf-model/types.cjs.map +0 -1
- package/lib/cjs/decaf-model/utils.cjs.map +0 -1
- package/lib/cjs/decoration.cjs.map +0 -1
- package/lib/cjs/decorators.cjs.map +0 -1
- package/lib/cjs/events-module/DecafStreamModule.cjs.map +0 -1
- package/lib/cjs/events-module/EventsController.cjs.map +0 -1
- package/lib/cjs/events-module/constant.cjs.map +0 -1
- package/lib/cjs/events-module/index.cjs.map +0 -1
- package/lib/cjs/events-module/utils.cjs.map +0 -1
- package/lib/cjs/factory/NestBootstraper.cjs.map +0 -1
- package/lib/cjs/factory/errors/cors.cjs.map +0 -1
- package/lib/cjs/factory/errors/index.cjs.map +0 -1
- package/lib/cjs/factory/errors/throttling.cjs.map +0 -1
- package/lib/cjs/factory/exceptions/DecafErrorFilter.cjs.map +0 -1
- package/lib/cjs/factory/exceptions/decorators.cjs.map +0 -1
- package/lib/cjs/factory/exceptions/index.cjs.map +0 -1
- package/lib/cjs/factory/index.cjs.map +0 -1
- package/lib/cjs/factory/openapi/DtoBuilder.cjs.map +0 -1
- package/lib/cjs/factory/openapi/SwaggerBuilder.cjs.map +0 -1
- package/lib/cjs/factory/openapi/SwaggerCustomUI.cjs.map +0 -1
- package/lib/cjs/factory/openapi/constants.cjs.map +0 -1
- package/lib/cjs/factory/openapi/index.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/interceptors/DecafRequestHandlerInterceptor.cjs.map +0 -1
- package/lib/cjs/interceptors/index.cjs.map +0 -1
- package/lib/cjs/module.cjs.map +0 -1
- package/lib/cjs/overrides/Adapter.cjs.map +0 -1
- package/lib/cjs/overrides/ModelBuilderExtensions.cjs.map +0 -1
- package/lib/cjs/overrides/constants.cjs.map +0 -1
- package/lib/cjs/overrides/decoration.cjs.map +0 -1
- package/lib/cjs/overrides/helpers.cjs.map +0 -1
- package/lib/cjs/overrides/index.cjs.map +0 -1
- package/lib/cjs/overrides/logging.cjs.map +0 -1
- package/lib/cjs/overrides/overrides.cjs.map +0 -1
- package/lib/cjs/request/DecafAuthHandler.cjs.map +0 -1
- package/lib/cjs/request/DecafHandlerExecutor.cjs.map +0 -1
- package/lib/cjs/request/DecafRequestContext.cjs.map +0 -1
- package/lib/cjs/request/DecafResponseInterceptor.cjs.map +0 -1
- package/lib/cjs/request/index.cjs.map +0 -1
- package/lib/cjs/swagger-types.cjs.map +0 -1
- package/lib/cjs/types.cjs.map +0 -1
- package/lib/cjs/utils.cjs.map +0 -1
- package/lib/cjs/webhooks/DecafWebhookModule.cjs.map +0 -1
- package/lib/cjs/webhooks/controllers.cjs.map +0 -1
- package/lib/cjs/webhooks/index.cjs.map +0 -1
- package/lib/cjs/webhooks/types.cjs.map +0 -1
- package/lib/esm/auth/AuthInterceptor.js.map +0 -1
- package/lib/esm/auth/DecafAuthHandler.js.map +0 -1
- package/lib/esm/auth/DecafAuthModule.js.map +0 -1
- package/lib/esm/auth/constants.js.map +0 -1
- package/lib/esm/auth/decorators.js.map +0 -1
- package/lib/esm/auth/index.js.map +0 -1
- package/lib/esm/bin/cli.js.map +0 -1
- package/lib/esm/cli-module.js.map +0 -1
- package/lib/esm/constants.js.map +0 -1
- package/lib/esm/controllers.js.map +0 -1
- package/lib/esm/core-module.js.map +0 -1
- package/lib/esm/decaf-model/DecafModelModule.js.map +0 -1
- package/lib/esm/decaf-model/FromModelController.js.map +0 -1
- package/lib/esm/decaf-model/decorators/ApiOperationFromModel.js.map +0 -1
- package/lib/esm/decaf-model/decorators/ApiParamsFromModel.js.map +0 -1
- package/lib/esm/decaf-model/decorators/DecafBody.js.map +0 -1
- package/lib/esm/decaf-model/decorators/DecafParams.js.map +0 -1
- package/lib/esm/decaf-model/decorators/controller-config.js.map +0 -1
- package/lib/esm/decaf-model/decorators/decorators.js.map +0 -1
- package/lib/esm/decaf-model/decorators/expose.js.map +0 -1
- package/lib/esm/decaf-model/decorators/index.js.map +0 -1
- package/lib/esm/decaf-model/decorators/types.js.map +0 -1
- package/lib/esm/decaf-model/decorators/utils.js.map +0 -1
- package/lib/esm/decaf-model/index.js.map +0 -1
- package/lib/esm/decaf-model/types.js.map +0 -1
- package/lib/esm/decaf-model/utils.js.map +0 -1
- package/lib/esm/decoration.js.map +0 -1
- package/lib/esm/decorators.js.map +0 -1
- package/lib/esm/events-module/DecafStreamModule.js.map +0 -1
- package/lib/esm/events-module/EventsController.js.map +0 -1
- package/lib/esm/events-module/constant.js.map +0 -1
- package/lib/esm/events-module/index.js.map +0 -1
- package/lib/esm/events-module/utils.js.map +0 -1
- package/lib/esm/factory/NestBootstraper.js.map +0 -1
- package/lib/esm/factory/errors/cors.js.map +0 -1
- package/lib/esm/factory/errors/index.js.map +0 -1
- package/lib/esm/factory/errors/throttling.js.map +0 -1
- package/lib/esm/factory/exceptions/DecafErrorFilter.js.map +0 -1
- package/lib/esm/factory/exceptions/decorators.js.map +0 -1
- package/lib/esm/factory/exceptions/index.js.map +0 -1
- package/lib/esm/factory/index.js.map +0 -1
- package/lib/esm/factory/openapi/DtoBuilder.js.map +0 -1
- package/lib/esm/factory/openapi/SwaggerBuilder.js.map +0 -1
- package/lib/esm/factory/openapi/SwaggerCustomUI.js.map +0 -1
- package/lib/esm/factory/openapi/constants.js.map +0 -1
- package/lib/esm/factory/openapi/index.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/interceptors/DecafRequestHandlerInterceptor.js.map +0 -1
- package/lib/esm/interceptors/index.js.map +0 -1
- package/lib/esm/module.js.map +0 -1
- package/lib/esm/overrides/Adapter.js.map +0 -1
- package/lib/esm/overrides/ModelBuilderExtensions.js.map +0 -1
- package/lib/esm/overrides/constants.js.map +0 -1
- package/lib/esm/overrides/decoration.js.map +0 -1
- package/lib/esm/overrides/helpers.js.map +0 -1
- package/lib/esm/overrides/index.js.map +0 -1
- package/lib/esm/overrides/logging.js.map +0 -1
- package/lib/esm/overrides/overrides.js.map +0 -1
- package/lib/esm/request/DecafAuthHandler.js.map +0 -1
- package/lib/esm/request/DecafHandlerExecutor.js.map +0 -1
- package/lib/esm/request/DecafRequestContext.js.map +0 -1
- package/lib/esm/request/DecafResponseInterceptor.js.map +0 -1
- package/lib/esm/request/index.js.map +0 -1
- package/lib/esm/swagger-types.js.map +0 -1
- package/lib/esm/types.js.map +0 -1
- package/lib/esm/utils.js.map +0 -1
- package/lib/esm/webhooks/DecafWebhookModule.js.map +0 -1
- package/lib/esm/webhooks/controllers.js.map +0 -1
- package/lib/esm/webhooks/index.js.map +0 -1
- package/lib/esm/webhooks/types.js.map +0 -1
package/lib/cjs/decorators.cjs
CHANGED
|
@@ -89,5 +89,5 @@ function Repository(model, flavour) {
|
|
|
89
89
|
return (0, common_1.Inject)(token)(target, propertyKey, parameterIndex);
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
|
-
//# sourceMappingURL=decorators.js.map
|
|
93
|
-
//# sourceMappingURL=decorators.cjs.map
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLFlBQVksRUFDWixVQUFVLElBQUksY0FBYyxFQUM1QixPQUFPLElBQUksV0FBVyxHQUN2QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFPeEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBZ0MsQ0FBQztBQUVqRTs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSwyQkFBMkI7SUFDekMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsS0FBYSxFQUFFLFVBQXlCO0lBQ2hFLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU87SUFDeEMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxLQUFjO0lBQ3hDLE9BQU8sT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLEtBQUssQ0FBQyxTQUFTLFlBQVksS0FBSyxDQUFDO0FBQ3pFLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQXVCO0lBQ2hELE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUM7QUFDaEMsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQzNCLEtBQXVCLEVBQ3ZCLE9BQWdCO0lBRWhCLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxJQUFJLGNBQWMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDO0FBQ3BGLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLEdBQStCO0lBQ3JELE9BQU8sQ0FDTCxNQUFjLEVBQ2QsV0FBd0MsRUFDeEMsY0FBc0IsRUFDaEIsRUFBRTtRQUNSLElBQUksUUFBUSxHQUEwQyxHQUFHLENBQUM7UUFDMUQsSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNwQyxNQUFNLFVBQVUsR0FDZCxPQUFPLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6RCxRQUFRLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxhQUFhLENBQ3JCLGtFQUFrRSxjQUFjLE9BQVEsTUFBMkIsQ0FBQyxJQUFJLDZEQUE2RCxDQUN0TCxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RSxNQUFNLEtBQUssR0FBRyxPQUFPO1lBQ25CLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxRQUE0QixDQUFDO1lBQ2pELENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFxQyxDQUFDLENBQUM7UUFFaEUsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtZQUMzQixJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQztvQkFDSCxPQUFPLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBNEIsQ0FBQyxDQUFDO2dCQUN2RCxDQUFDO2dCQUFDLE1BQU0sQ0FBQztvQkFDUCxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBNEIsQ0FBQyxDQUFDO2dCQUM3RCxDQUFDO1lBQ0gsQ0FBQztZQUNELE9BQU8sT0FBTyxRQUFRLEtBQUssUUFBUTtnQkFDakMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUMzQixDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUE0QixDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzVELENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsS0FBdUIsRUFDdkIsT0FBZ0I7SUFFaEIsT0FBTyxDQUNMLE1BQWMsRUFDZCxXQUF3QyxFQUN4QyxjQUFzQixFQUNoQixFQUFFO1FBQ1IsTUFBTSxLQUFLLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25ELGdCQUFnQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7XG4gIGluamVjdGFibGVTZXJ2aWNlS2V5LFxuICBNb2RlbFNlcnZpY2UsXG4gIFJlcG9zaXRvcnkgYXMgQ29yZVJlcG9zaXRvcnksXG4gIFNlcnZpY2UgYXMgQ29yZVNlcnZpY2UsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5cbmV4cG9ydCB0eXBlIERlY2FmRmFjdG9yeVByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBzdHJpbmc7XG4gIHVzZUZhY3Rvcnk6ICgpID0+IHVua25vd247XG59O1xuXG5jb25zdCBwZW5kaW5nUHJvdmlkZXJzID0gbmV3IE1hcDxzdHJpbmcsIERlY2FmRmFjdG9yeVByb3ZpZGVyPigpO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEcmFpbnMgdGhlIHByb3ZpZGVycyByZWdpc3RlcmVkIGJ5IHtAbGluayBTZXJ2aWNlfS97QGxpbmsgUmVwb3NpdG9yeX0gdXNhZ2VzLlxuICogQHN1bW1hcnkgQ29uc3VtZWQgYnkge0BsaW5rIERlY2FmQ29yZU1vZHVsZS5mb3JSb290fSB0byB3aXJlIHRoZSB0b2tlbnMgdGhhdCB0aG9zZSBwYXJhbWV0ZXJcbiAqIGRlY29yYXRvcnMgcmVmZXJlbmNlIGJhY2sgaW50byBOZXN0J3MgREkgY29udGFpbmVyLCBzaW5jZSBhIHBhcmFtZXRlciBkZWNvcmF0b3IgYWxvbmUgY2Fubm90XG4gKiBzdXBwbHkgYSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZ2lzdGVyZWREZWNhZlByb3ZpZGVycygpOiBEZWNhZkZhY3RvcnlQcm92aWRlcltdIHtcbiAgcmV0dXJuIEFycmF5LmZyb20ocGVuZGluZ1Byb3ZpZGVycy52YWx1ZXMoKSk7XG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyUHJvdmlkZXIodG9rZW46IHN0cmluZywgdXNlRmFjdG9yeTogKCkgPT4gdW5rbm93bik6IHZvaWQge1xuICBpZiAocGVuZGluZ1Byb3ZpZGVycy5oYXModG9rZW4pKSByZXR1cm47XG4gIHBlbmRpbmdQcm92aWRlcnMuc2V0KHRva2VuLCB7IHByb3ZpZGU6IHRva2VuLCB1c2VGYWN0b3J5IH0pO1xufVxuXG5mdW5jdGlvbiBpc01vZGVsQ29uc3RydWN0b3IodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBDb25zdHJ1Y3Rvcjxhbnk+IHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmIHZhbHVlLnByb3RvdHlwZSBpbnN0YW5jZW9mIE1vZGVsO1xufVxuXG5mdW5jdGlvbiBtb2RlbFNlcnZpY2VUb2tlbihtb2RlbDogQ29uc3RydWN0b3I8YW55Pik6IHN0cmluZyB7XG4gIHJldHVybiBgJHttb2RlbC5uYW1lfVNlcnZpY2VgO1xufVxuXG5mdW5jdGlvbiBtb2RlbFJlcG9zaXRvcnlUb2tlbihcbiAgbW9kZWw6IENvbnN0cnVjdG9yPGFueT4sXG4gIGZsYXZvdXI/OiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIHJldHVybiBmbGF2b3VyID8gYCR7bW9kZWwubmFtZX1SZXBvc2l0b3J5QCR7Zmxhdm91cn1gIDogYCR7bW9kZWwubmFtZX1SZXBvc2l0b3J5YDtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uc3RydWN0b3IgcGFyYW1ldGVyIGRlY29yYXRvciB0aGF0IGluamVjdHMgYSBkZWNhZiBzZXJ2aWNlLlxuICogQHN1bW1hcnkgVHJhbnNsYXRlcyBkZWNhZidzIHNlcnZpY2UgcmVzb2x1dGlvbiBBUElzIGludG8gYSBOZXN0IGBASW5qZWN0KClgIGNhbGw6XG4gKiAtIGBAU2VydmljZShTb21lTW9kZWwpYCBpbmplY3RzIHRoZSBtYXRjaGluZyBgQHNlcnZpY2UoU29tZU1vZGVsKWAgZGVjYWYgc2VydmljZSB3aGVuIG9uZSBpc1xuICogICByZWdpc3RlcmVkOyBvdGhlcndpc2UgaXQgZmFsbHMgYmFjayB0byB0aGUgYE1vZGVsU2VydmljZTxTb21lTW9kZWw+YCBzaW5nbGV0b25cbiAqICAgKHZpYSB7QGxpbmsgTW9kZWxTZXJ2aWNlLmZvck1vZGVsfSkuXG4gKiAtIGBAU2VydmljZShTb21lU2VydmljZUNsYXNzKWAgb3IgYEBTZXJ2aWNlKFwiYWxpYXNcIilgIGluamVjdHMgdGhlIG1hdGNoaW5nIGBAc2VydmljZSgpYC1kZWNvcmF0ZWRcbiAqICAgZGVjYWYge0BsaW5rIENvcmVTZXJ2aWNlfSAodmlhIHtAbGluayBDb3JlU2VydmljZS5nZXR9KS5cbiAqIC0gYEBTZXJ2aWNlKClgIGluZmVycyB0aGUgcGFyYW1ldGVyJ3MgdHlwZSBmcm9tIGVtaXR0ZWQgY29uc3RydWN0b3IgbWV0YWRhdGEgYW5kIHJlc29sdmVzIGl0IHRoZVxuICogICBzYW1lIHdheSwgcHJvdmlkZWQgdGhlIHBhcmFtZXRlciBpcyB0eXBlZCBhcyBhIGNvbmNyZXRlIGNsYXNzIChnZW5lcmljcyBsaWtlIGBNb2RlbFNlcnZpY2U8WD5gXG4gKiAgIGFyZSBlcmFzZWQgYXQgcnVudGltZSwgc28gdGhlIG1vZGVsLXNlcnZpY2UgZm9ybSBhbHdheXMgcmVxdWlyZXMgYW4gZXhwbGljaXQgYXJndW1lbnQpLlxuICogQHBhcmFtIGtleSB0aGUgbW9kZWwgY2xhc3MsIHNlcnZpY2UgY2xhc3MsIG9yIGFsaWFzIHRvIHJlc29sdmUuIE9taXQgdG8gaW5mZXIgZnJvbSB0aGUgcGFyYW1ldGVyIHR5cGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZXJ2aWNlKGtleT86IHN0cmluZyB8IENvbnN0cnVjdG9yPGFueT4pOiBQYXJhbWV0ZXJEZWNvcmF0b3Ige1xuICByZXR1cm4gKFxuICAgIHRhcmdldDogb2JqZWN0LFxuICAgIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wgfCB1bmRlZmluZWQsXG4gICAgcGFyYW1ldGVySW5kZXg6IG51bWJlclxuICApOiB2b2lkID0+IHtcbiAgICBsZXQgcmVzb2x2ZWQ6IHN0cmluZyB8IENvbnN0cnVjdG9yPGFueT4gfCB1bmRlZmluZWQgPSBrZXk7XG4gICAgaWYgKHR5cGVvZiByZXNvbHZlZCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgY29uc3QgcGFyYW1UeXBlczogYW55W10gPVxuICAgICAgICBSZWZsZWN0LmdldE1ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgdGFyZ2V0KSB8fCBbXTtcbiAgICAgIHJlc29sdmVkID0gcGFyYW1UeXBlc1twYXJhbWV0ZXJJbmRleF07XG4gICAgfVxuICAgIGlmICh0eXBlb2YgcmVzb2x2ZWQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgQFNlcnZpY2UoKSBjb3VsZCBub3QgZGV0ZXJtaW5lIGFuIGluamVjdGlvbiB0eXBlIGZvciBwYXJhbWV0ZXIgJHtwYXJhbWV0ZXJJbmRleH0gb2YgJHsodGFyZ2V0IGFzIENvbnN0cnVjdG9yPGFueT4pLm5hbWV9LiBQcm92aWRlIGFuIGV4cGxpY2l0IGFyZ3VtZW50LCBlLmcuIEBTZXJ2aWNlKFNvbWVTZXJ2aWNlKS5gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IGFzTW9kZWwgPSB0eXBlb2YgcmVzb2x2ZWQgIT09IFwic3RyaW5nXCIgJiYgaXNNb2RlbENvbnN0cnVjdG9yKHJlc29sdmVkKTtcbiAgICBjb25zdCB0b2tlbiA9IGFzTW9kZWxcbiAgICAgID8gbW9kZWxTZXJ2aWNlVG9rZW4ocmVzb2x2ZWQgYXMgQ29uc3RydWN0b3I8YW55PilcbiAgICAgIDogaW5qZWN0YWJsZVNlcnZpY2VLZXkocmVzb2x2ZWQgYXMgc3RyaW5nIHwgQ29uc3RydWN0b3I8YW55Pik7XG5cbiAgICByZWdpc3RlclByb3ZpZGVyKHRva2VuLCAoKSA9PiB7XG4gICAgICBpZiAoYXNNb2RlbCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBDb3JlU2VydmljZS5nZXQocmVzb2x2ZWQgYXMgQ29uc3RydWN0b3I8YW55Pik7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiBNb2RlbFNlcnZpY2UuZm9yTW9kZWwocmVzb2x2ZWQgYXMgQ29uc3RydWN0b3I8YW55Pik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0eXBlb2YgcmVzb2x2ZWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgPyBDb3JlU2VydmljZS5nZXQocmVzb2x2ZWQpXG4gICAgICAgIDogQ29yZVNlcnZpY2UuZ2V0KHJlc29sdmVkIGFzIENvbnN0cnVjdG9yPGFueT4pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIEluamVjdCh0b2tlbikodGFyZ2V0LCBwcm9wZXJ0eUtleSwgcGFyYW1ldGVySW5kZXgpO1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25zdHJ1Y3RvciBwYXJhbWV0ZXIgZGVjb3JhdG9yIHRoYXQgaW5qZWN0cyBhIGRlY2FmIHtAbGluayBDb3JlUmVwb3NpdG9yeX0gZm9yIGBtb2RlbGAuXG4gKiBAc3VtbWFyeSBVbmxpa2Uge0BsaW5rIFNlcnZpY2V9LCBgbW9kZWxgIGlzIGFsd2F5cyB0cmVhdGVkIGFzIGEgTW9kZWwgY2xhc3M6IHRoZSBzYW1lIGNsYXNzIHBhc3NlZFxuICogdG8gYEBTZXJ2aWNlKG1vZGVsKWAgYW5kIGBAUmVwb3NpdG9yeShtb2RlbClgIHJlc29sdmVzIHRvIHR3byBkaWZmZXJlbnQgaW5qZWN0ZWQgb2JqZWN0cyAoYVxuICogYE1vZGVsU2VydmljZTxNPmAgdnMgYSBgUmVwb3NpdG9yeTxNPmAgcmVzcGVjdGl2ZWx5KSwgdmlhIHtAbGluayBDb3JlUmVwb3NpdG9yeS5mb3JNb2RlbH0uXG4gKiBAcGFyYW0gbW9kZWwgdGhlIG1vZGVsIGNsYXNzIHRvIHJlc29sdmUgYSByZXBvc2l0b3J5IGZvci5cbiAqIEBwYXJhbSBmbGF2b3VyIG9wdGlvbmFsIGFkYXB0ZXIgZmxhdm91ci9hbGlhcywgZm9yd2FyZGVkIHRvIHtAbGluayBDb3JlUmVwb3NpdG9yeS5mb3JNb2RlbH0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBSZXBvc2l0b3J5KFxuICBtb2RlbDogQ29uc3RydWN0b3I8YW55PixcbiAgZmxhdm91cj86IHN0cmluZ1xuKTogUGFyYW1ldGVyRGVjb3JhdG9yIHtcbiAgcmV0dXJuIChcbiAgICB0YXJnZXQ6IG9iamVjdCxcbiAgICBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sIHwgdW5kZWZpbmVkLFxuICAgIHBhcmFtZXRlckluZGV4OiBudW1iZXJcbiAgKTogdm9pZCA9PiB7XG4gICAgY29uc3QgdG9rZW4gPSBtb2RlbFJlcG9zaXRvcnlUb2tlbihtb2RlbCwgZmxhdm91cik7XG4gICAgcmVnaXN0ZXJQcm92aWRlcih0b2tlbiwgKCkgPT4gQ29yZVJlcG9zaXRvcnkuZm9yTW9kZWwobW9kZWwsIGZsYXZvdXIpKTtcbiAgICByZXR1cm4gSW5qZWN0KHRva2VuKSh0YXJnZXQsIHByb3BlcnR5S2V5LCBwYXJhbWV0ZXJJbmRleCk7XG4gIH07XG59XG4iXX0=
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlY29yYXRvcnMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSxrRUFFQztBQTRCRCwwQkE2QkM7QUFTRCxnQ0FNQztBQXJGRCwyQ0FBd0M7QUFDeEMseUNBQTJIO0FBQzNILHlFQUF1RDtBQUN2RCwyREFBd0Q7QUFDeEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ25DOzs7OztHQUtHO0FBQ0gsU0FBZ0IsMkJBQTJCO0lBQ3ZDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFDRCxTQUFTLGdCQUFnQixDQUFDLEtBQUssRUFBRSxVQUFVO0lBQ3ZDLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUMzQixPQUFPO0lBQ1gsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBQ0QsU0FBUyxrQkFBa0IsQ0FBQyxLQUFLO0lBQzdCLE9BQU8sT0FBTyxLQUFLLEtBQUssVUFBVSxJQUFJLEtBQUssQ0FBQyxTQUFTLFlBQVksNEJBQUssQ0FBQztBQUMzRSxDQUFDO0FBQ0QsU0FBUyxpQkFBaUIsQ0FBQyxLQUFLO0lBQzVCLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUM7QUFDbEMsQ0FBQztBQUNELFNBQVMsb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU87SUFDeEMsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLElBQUksY0FBYyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUM7QUFDdEYsQ0FBQztBQUNEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxHQUFHO0lBQ3ZCLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxFQUFFO1FBQzNDLElBQUksUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNuQixJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFFLFFBQVEsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLDZCQUFhLENBQUMsa0VBQWtFLGNBQWMsT0FBTyxNQUFNLENBQUMsSUFBSSw2REFBNkQsQ0FBQyxDQUFDO1FBQzdMLENBQUM7UUFDRCxNQUFNLE9BQU8sR0FBRyxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0UsTUFBTSxLQUFLLEdBQUcsT0FBTztZQUNqQixDQUFDLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxJQUFBLDJCQUFvQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDekIsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUM7b0JBQ0QsT0FBTyxjQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNyQyxDQUFDO2dCQUNELE1BQU0sQ0FBQztvQkFDSCxPQUFPLG1CQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzQyxDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sT0FBTyxRQUFRLEtBQUssUUFBUTtnQkFDL0IsQ0FBQyxDQUFDLGNBQVcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO2dCQUMzQixDQUFDLENBQUMsY0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBQSxlQUFNLEVBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM5RCxDQUFDLENBQUM7QUFDTixDQUFDO0FBQ0Q7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxLQUFLLEVBQUUsT0FBTztJQUNyQyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsRUFBRTtRQUMzQyxNQUFNLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkQsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLGlCQUFjLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sSUFBQSxlQUFNLEVBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM5RCxDQUFDLENBQUM7QUFDTixDQUFDO0FBQ0QsazRUQUFrNFQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IGluamVjdGFibGVTZXJ2aWNlS2V5LCBNb2RlbFNlcnZpY2UsIFJlcG9zaXRvcnkgYXMgQ29yZVJlcG9zaXRvcnksIFNlcnZpY2UgYXMgQ29yZVNlcnZpY2UsIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmNvbnN0IHBlbmRpbmdQcm92aWRlcnMgPSBuZXcgTWFwKCk7XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEcmFpbnMgdGhlIHByb3ZpZGVycyByZWdpc3RlcmVkIGJ5IHtAbGluayBTZXJ2aWNlfS97QGxpbmsgUmVwb3NpdG9yeX0gdXNhZ2VzLlxuICogQHN1bW1hcnkgQ29uc3VtZWQgYnkge0BsaW5rIERlY2FmQ29yZU1vZHVsZS5mb3JSb290fSB0byB3aXJlIHRoZSB0b2tlbnMgdGhhdCB0aG9zZSBwYXJhbWV0ZXJcbiAqIGRlY29yYXRvcnMgcmVmZXJlbmNlIGJhY2sgaW50byBOZXN0J3MgREkgY29udGFpbmVyLCBzaW5jZSBhIHBhcmFtZXRlciBkZWNvcmF0b3IgYWxvbmUgY2Fubm90XG4gKiBzdXBwbHkgYSBwcm92aWRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJlZ2lzdGVyZWREZWNhZlByb3ZpZGVycygpIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShwZW5kaW5nUHJvdmlkZXJzLnZhbHVlcygpKTtcbn1cbmZ1bmN0aW9uIHJlZ2lzdGVyUHJvdmlkZXIodG9rZW4sIHVzZUZhY3RvcnkpIHtcbiAgICBpZiAocGVuZGluZ1Byb3ZpZGVycy5oYXModG9rZW4pKVxuICAgICAgICByZXR1cm47XG4gICAgcGVuZGluZ1Byb3ZpZGVycy5zZXQodG9rZW4sIHsgcHJvdmlkZTogdG9rZW4sIHVzZUZhY3RvcnkgfSk7XG59XG5mdW5jdGlvbiBpc01vZGVsQ29uc3RydWN0b3IodmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCIgJiYgdmFsdWUucHJvdG90eXBlIGluc3RhbmNlb2YgTW9kZWw7XG59XG5mdW5jdGlvbiBtb2RlbFNlcnZpY2VUb2tlbihtb2RlbCkge1xuICAgIHJldHVybiBgJHttb2RlbC5uYW1lfVNlcnZpY2VgO1xufVxuZnVuY3Rpb24gbW9kZWxSZXBvc2l0b3J5VG9rZW4obW9kZWwsIGZsYXZvdXIpIHtcbiAgICByZXR1cm4gZmxhdm91ciA/IGAke21vZGVsLm5hbWV9UmVwb3NpdG9yeUAke2ZsYXZvdXJ9YCA6IGAke21vZGVsLm5hbWV9UmVwb3NpdG9yeWA7XG59XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25zdHJ1Y3RvciBwYXJhbWV0ZXIgZGVjb3JhdG9yIHRoYXQgaW5qZWN0cyBhIGRlY2FmIHNlcnZpY2UuXG4gKiBAc3VtbWFyeSBUcmFuc2xhdGVzIGRlY2FmJ3Mgc2VydmljZSByZXNvbHV0aW9uIEFQSXMgaW50byBhIE5lc3QgYEBJbmplY3QoKWAgY2FsbDpcbiAqIC0gYEBTZXJ2aWNlKFNvbWVNb2RlbClgIGluamVjdHMgdGhlIG1hdGNoaW5nIGBAc2VydmljZShTb21lTW9kZWwpYCBkZWNhZiBzZXJ2aWNlIHdoZW4gb25lIGlzXG4gKiAgIHJlZ2lzdGVyZWQ7IG90aGVyd2lzZSBpdCBmYWxscyBiYWNrIHRvIHRoZSBgTW9kZWxTZXJ2aWNlPFNvbWVNb2RlbD5gIHNpbmdsZXRvblxuICogICAodmlhIHtAbGluayBNb2RlbFNlcnZpY2UuZm9yTW9kZWx9KS5cbiAqIC0gYEBTZXJ2aWNlKFNvbWVTZXJ2aWNlQ2xhc3MpYCBvciBgQFNlcnZpY2UoXCJhbGlhc1wiKWAgaW5qZWN0cyB0aGUgbWF0Y2hpbmcgYEBzZXJ2aWNlKClgLWRlY29yYXRlZFxuICogICBkZWNhZiB7QGxpbmsgQ29yZVNlcnZpY2V9ICh2aWEge0BsaW5rIENvcmVTZXJ2aWNlLmdldH0pLlxuICogLSBgQFNlcnZpY2UoKWAgaW5mZXJzIHRoZSBwYXJhbWV0ZXIncyB0eXBlIGZyb20gZW1pdHRlZCBjb25zdHJ1Y3RvciBtZXRhZGF0YSBhbmQgcmVzb2x2ZXMgaXQgdGhlXG4gKiAgIHNhbWUgd2F5LCBwcm92aWRlZCB0aGUgcGFyYW1ldGVyIGlzIHR5cGVkIGFzIGEgY29uY3JldGUgY2xhc3MgKGdlbmVyaWNzIGxpa2UgYE1vZGVsU2VydmljZTxYPmBcbiAqICAgYXJlIGVyYXNlZCBhdCBydW50aW1lLCBzbyB0aGUgbW9kZWwtc2VydmljZSBmb3JtIGFsd2F5cyByZXF1aXJlcyBhbiBleHBsaWNpdCBhcmd1bWVudCkuXG4gKiBAcGFyYW0ga2V5IHRoZSBtb2RlbCBjbGFzcywgc2VydmljZSBjbGFzcywgb3IgYWxpYXMgdG8gcmVzb2x2ZS4gT21pdCB0byBpbmZlciBmcm9tIHRoZSBwYXJhbWV0ZXIgdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlcnZpY2Uoa2V5KSB7XG4gICAgcmV0dXJuICh0YXJnZXQsIHByb3BlcnR5S2V5LCBwYXJhbWV0ZXJJbmRleCkgPT4ge1xuICAgICAgICBsZXQgcmVzb2x2ZWQgPSBrZXk7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzb2x2ZWQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtVHlwZXMgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgdGFyZ2V0KSB8fCBbXTtcbiAgICAgICAgICAgIHJlc29sdmVkID0gcGFyYW1UeXBlc1twYXJhbWV0ZXJJbmRleF07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiByZXNvbHZlZCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEBTZXJ2aWNlKCkgY291bGQgbm90IGRldGVybWluZSBhbiBpbmplY3Rpb24gdHlwZSBmb3IgcGFyYW1ldGVyICR7cGFyYW1ldGVySW5kZXh9IG9mICR7dGFyZ2V0Lm5hbWV9LiBQcm92aWRlIGFuIGV4cGxpY2l0IGFyZ3VtZW50LCBlLmcuIEBTZXJ2aWNlKFNvbWVTZXJ2aWNlKS5gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhc01vZGVsID0gdHlwZW9mIHJlc29sdmVkICE9PSBcInN0cmluZ1wiICYmIGlzTW9kZWxDb25zdHJ1Y3RvcihyZXNvbHZlZCk7XG4gICAgICAgIGNvbnN0IHRva2VuID0gYXNNb2RlbFxuICAgICAgICAgICAgPyBtb2RlbFNlcnZpY2VUb2tlbihyZXNvbHZlZClcbiAgICAgICAgICAgIDogaW5qZWN0YWJsZVNlcnZpY2VLZXkocmVzb2x2ZWQpO1xuICAgICAgICByZWdpc3RlclByb3ZpZGVyKHRva2VuLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXNNb2RlbCkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBDb3JlU2VydmljZS5nZXQocmVzb2x2ZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBNb2RlbFNlcnZpY2UuZm9yTW9kZWwocmVzb2x2ZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgcmVzb2x2ZWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICA/IENvcmVTZXJ2aWNlLmdldChyZXNvbHZlZClcbiAgICAgICAgICAgICAgICA6IENvcmVTZXJ2aWNlLmdldChyZXNvbHZlZCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gSW5qZWN0KHRva2VuKSh0YXJnZXQsIHByb3BlcnR5S2V5LCBwYXJhbWV0ZXJJbmRleCk7XG4gICAgfTtcbn1cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnN0cnVjdG9yIHBhcmFtZXRlciBkZWNvcmF0b3IgdGhhdCBpbmplY3RzIGEgZGVjYWYge0BsaW5rIENvcmVSZXBvc2l0b3J5fSBmb3IgYG1vZGVsYC5cbiAqIEBzdW1tYXJ5IFVubGlrZSB7QGxpbmsgU2VydmljZX0sIGBtb2RlbGAgaXMgYWx3YXlzIHRyZWF0ZWQgYXMgYSBNb2RlbCBjbGFzczogdGhlIHNhbWUgY2xhc3MgcGFzc2VkXG4gKiB0byBgQFNlcnZpY2UobW9kZWwpYCBhbmQgYEBSZXBvc2l0b3J5KG1vZGVsKWAgcmVzb2x2ZXMgdG8gdHdvIGRpZmZlcmVudCBpbmplY3RlZCBvYmplY3RzIChhXG4gKiBgTW9kZWxTZXJ2aWNlPE0+YCB2cyBhIGBSZXBvc2l0b3J5PE0+YCByZXNwZWN0aXZlbHkpLCB2aWEge0BsaW5rIENvcmVSZXBvc2l0b3J5LmZvck1vZGVsfS5cbiAqIEBwYXJhbSBtb2RlbCB0aGUgbW9kZWwgY2xhc3MgdG8gcmVzb2x2ZSBhIHJlcG9zaXRvcnkgZm9yLlxuICogQHBhcmFtIGZsYXZvdXIgb3B0aW9uYWwgYWRhcHRlciBmbGF2b3VyL2FsaWFzLCBmb3J3YXJkZWQgdG8ge0BsaW5rIENvcmVSZXBvc2l0b3J5LmZvck1vZGVsfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJlcG9zaXRvcnkobW9kZWwsIGZsYXZvdXIpIHtcbiAgICByZXR1cm4gKHRhcmdldCwgcHJvcGVydHlLZXksIHBhcmFtZXRlckluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHRva2VuID0gbW9kZWxSZXBvc2l0b3J5VG9rZW4obW9kZWwsIGZsYXZvdXIpO1xuICAgICAgICByZWdpc3RlclByb3ZpZGVyKHRva2VuLCAoKSA9PiBDb3JlUmVwb3NpdG9yeS5mb3JNb2RlbChtb2RlbCwgZmxhdm91cikpO1xuICAgICAgICByZXR1cm4gSW5qZWN0KHRva2VuKSh0YXJnZXQsIHByb3BlcnR5S2V5LCBwYXJhbWV0ZXJJbmRleCk7XG4gICAgfTtcbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVpHVmpiM0poZEc5eWN5NXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMM055WXk5a1pXTnZjbUYwYjNKekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZCUlN4TlFVRk5MRVZCUVVVc1RVRkJUU3huUWtGQlowSXNRMEZCUXp0QlFVVjRReXhQUVVGUExFVkJRMHdzYjBKQlFXOUNMRVZCUTNCQ0xGbEJRVmtzUlVGRFdpeFZRVUZWTEVsQlFVa3NZMEZCWXl4RlFVTTFRaXhQUVVGUExFbEJRVWtzVjBGQlZ5eEhRVU4yUWl4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlEzaENMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVFVGQlRTeG5RMEZCWjBNc1EwRkJRenRCUVVOMlJDeFBRVUZQTEVWQlFVVXNZVUZCWVN4RlFVRkZMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZQZUVRc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4SlFVRkpMRWRCUVVjc1JVRkJaME1zUTBGQlF6dEJRVVZxUlRzN096czdSMEZMUnp0QlFVTklMRTFCUVUwc1ZVRkJWU3d5UWtGQk1rSTdTVUZEZWtNc1QwRkJUeXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVOQlFVTTdRVUZETDBNc1EwRkJRenRCUVVWRUxGTkJRVk1zWjBKQlFXZENMRU5CUVVNc1MwRkJZU3hGUVVGRkxGVkJRWGxDTzBsQlEyaEZMRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJRenRSUVVGRkxFOUJRVTg3U1VGRGVFTXNaMEpCUVdkQ0xFTkJRVU1zUjBGQlJ5eERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRTlCUVU4c1JVRkJSU3hMUVVGTExFVkJRVVVzVlVGQlZTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTTVSQ3hEUVVGRE8wRkJSVVFzVTBGQlV5eHJRa0ZCYTBJc1EwRkJReXhMUVVGak8wbEJRM2hETEU5QlFVOHNUMEZCVHl4TFFVRkxMRXRCUVVzc1ZVRkJWU3hKUVVGSkxFdEJRVXNzUTBGQlF5eFRRVUZUTEZsQlFWa3NTMEZCU3l4RFFVRkRPMEZCUTNwRkxFTkJRVU03UVVGRlJDeFRRVUZUTEdsQ1FVRnBRaXhEUVVGRExFdEJRWFZDTzBsQlEyaEVMRTlCUVU4c1IwRkJSeXhMUVVGTExFTkJRVU1zU1VGQlNTeFRRVUZUTEVOQlFVTTdRVUZEYUVNc1EwRkJRenRCUVVWRUxGTkJRVk1zYjBKQlFXOUNMRU5CUXpOQ0xFdEJRWFZDTEVWQlEzWkNMRTlCUVdkQ08wbEJSV2hDTEU5QlFVOHNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFdEJRVXNzUTBGQlF5eEpRVUZKTEdOQlFXTXNUMEZCVHl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUzBGQlN5eERRVUZETEVsQlFVa3NXVUZCV1N4RFFVRkRPMEZCUTNCR0xFTkJRVU03UVVGRlJEczdPenM3T3pzN096czdPMGRCV1VjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzVDBGQlR5eERRVUZETEVkQlFTdENPMGxCUTNKRUxFOUJRVThzUTBGRFRDeE5RVUZqTEVWQlEyUXNWMEZCZDBNc1JVRkRlRU1zWTBGQmMwSXNSVUZEYUVJc1JVRkJSVHRSUVVOU0xFbEJRVWtzVVVGQlVTeEhRVUV3UXl4SFFVRkhMRU5CUVVNN1VVRkRNVVFzU1VGQlNTeFBRVUZQTEZGQlFWRXNTMEZCU3l4WFFVRlhMRVZCUVVVc1EwRkJRenRaUVVOd1F5eE5RVUZOTEZWQlFWVXNSMEZEWkN4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRExHMUNRVUZ0UWl4RlFVRkZMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFpRVU42UkN4UlFVRlJMRWRCUVVjc1ZVRkJWU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzFGQlEzaERMRU5CUVVNN1VVRkRSQ3hKUVVGSkxFOUJRVThzVVVGQlVTeExRVUZMTEZkQlFWY3NSVUZCUlN4RFFVRkRPMWxCUTNCRExFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlEzSkNMR3RGUVVGclJTeGpRVUZqTEU5QlFWRXNUVUZCTWtJc1EwRkJReXhKUVVGSkxEWkVRVUUyUkN4RFFVTjBUQ3hEUVVGRE8xRkJRMG9zUTBGQlF6dFJRVVZFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRTlCUVU4c1VVRkJVU3hMUVVGTExGRkJRVkVzU1VGQlNTeHJRa0ZCYTBJc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU0zUlN4TlFVRk5MRXRCUVVzc1IwRkJSeXhQUVVGUE8xbEJRMjVDTEVOQlFVTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eFJRVUUwUWl4RFFVRkRPMWxCUTJwRUxFTkJRVU1zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhSUVVGeFF5eERRVUZETEVOQlFVTTdVVUZGYUVVc1owSkJRV2RDTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWRCUVVjc1JVRkJSVHRaUVVNelFpeEpRVUZKTEU5QlFVOHNSVUZCUlN4RFFVRkRPMmRDUVVOYUxFbEJRVWtzUTBGQlF6dHZRa0ZEU0N4UFFVRlBMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zVVVGQk5FSXNRMEZCUXl4RFFVRkRPMmRDUVVOMlJDeERRVUZETzJkQ1FVRkRMRTFCUVUwc1EwRkJRenR2UWtGRFVDeFBRVUZQTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1VVRkJORUlzUTBGQlF5eERRVUZETzJkQ1FVTTNSQ3hEUVVGRE8xbEJRMGdzUTBGQlF6dFpRVU5FTEU5QlFVOHNUMEZCVHl4UlFVRlJMRXRCUVVzc1VVRkJVVHRuUWtGRGFrTXNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zVVVGQlVTeERRVUZETzJkQ1FVTXpRaXhEUVVGRExFTkJRVU1zVjBGQlZ5eERRVUZETEVkQlFVY3NRMEZCUXl4UlFVRTBRaXhEUVVGRExFTkJRVU03VVVGRGNFUXNRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkZTQ3hQUVVGUExFMUJRVTBzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1YwRkJWeXhGUVVGRkxHTkJRV01zUTBGQlF5eERRVUZETzBsQlF6VkVMRU5CUVVNc1EwRkJRenRCUVVOS0xFTkJRVU03UVVGRlJEczdPenM3T3p0SFFVOUhPMEZCUTBnc1RVRkJUU3hWUVVGVkxGVkJRVlVzUTBGRGVFSXNTMEZCZFVJc1JVRkRka0lzVDBGQlowSTdTVUZGYUVJc1QwRkJUeXhEUVVOTUxFMUJRV01zUlVGRFpDeFhRVUYzUXl4RlFVTjRReXhqUVVGelFpeEZRVU5vUWl4RlFVRkZPMUZCUTFJc1RVRkJUU3hMUVVGTExFZEJRVWNzYjBKQlFXOUNMRU5CUVVNc1MwRkJTeXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVUZETzFGQlEyNUVMR2RDUVVGblFpeERRVUZETEV0QlFVc3NSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhqUVVGakxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NSVUZCUlN4UFFVRlBMRU5CUVVNc1EwRkJReXhEUVVGRE8xRkJRM1pGTEU5QlFVOHNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFMUJRVTBzUlVGQlJTeFhRVUZYTEVWQlFVVXNZMEZCWXl4RFFVRkRMRU5CUVVNN1NVRkROVVFzUTBGQlF5eERRVUZETzBGQlEwb3NRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltbHRjRzl5ZENCN0lFbHVhbVZqZENCOUlHWnliMjBnWENKQWJtVnpkR3B6TDJOdmJXMXZibHdpTzF4dWFXMXdiM0owSUhzZ1EyOXVjM1J5ZFdOMGIzSWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlJsWTI5eVlYUnBiMjVjSWp0Y2JtbHRjRzl5ZENCN1hHNGdJR2x1YW1WamRHRmliR1ZUWlhKMmFXTmxTMlY1TEZ4dUlDQk5iMlJsYkZObGNuWnBZMlVzWEc0Z0lGSmxjRzl6YVhSdmNua2dZWE1nUTI5eVpWSmxjRzl6YVhSdmNua3NYRzRnSUZObGNuWnBZMlVnWVhNZ1EyOXlaVk5sY25acFkyVXNYRzU5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WTI5eVpWd2lPMXh1YVcxd2IzSjBJSHNnVFc5a1pXd2dmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlJsWTI5eVlYUnZjaTEyWVd4cFpHRjBhVzl1WENJN1hHNXBiWEJ2Y25RZ2V5QkpiblJsY201aGJFVnljbTl5SUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5a1lpMWtaV052Y21GMGIzSnpYQ0k3WEc1Y2JtVjRjRzl5ZENCMGVYQmxJRVJsWTJGbVJtRmpkRzl5ZVZCeWIzWnBaR1Z5SUQwZ2UxeHVJQ0J3Y205MmFXUmxPaUJ6ZEhKcGJtYzdYRzRnSUhWelpVWmhZM1J2Y25rNklDZ3BJRDArSUhWdWEyNXZkMjQ3WEc1OU8xeHVYRzVqYjI1emRDQndaVzVrYVc1blVISnZkbWxrWlhKeklEMGdibVYzSUUxaGNEeHpkSEpwYm1jc0lFUmxZMkZtUm1GamRHOXllVkJ5YjNacFpHVnlQaWdwTzF4dVhHNHZLaXBjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJFY21GcGJuTWdkR2hsSUhCeWIzWnBaR1Z5Y3lCeVpXZHBjM1JsY21Wa0lHSjVJSHRBYkdsdWF5QlRaWEoyYVdObGZTOTdRR3hwYm1zZ1VtVndiM05wZEc5eWVYMGdkWE5oWjJWekxseHVJQ29nUUhOMWJXMWhjbmtnUTI5dWMzVnRaV1FnWW5rZ2UwQnNhVzVySUVSbFkyRm1RMjl5WlUxdlpIVnNaUzVtYjNKU2IyOTBmU0IwYnlCM2FYSmxJSFJvWlNCMGIydGxibk1nZEdoaGRDQjBhRzl6WlNCd1lYSmhiV1YwWlhKY2JpQXFJR1JsWTI5eVlYUnZjbk1nY21WbVpYSmxibU5sSUdKaFkyc2dhVzUwYnlCT1pYTjBKM01nUkVrZ1kyOXVkR0ZwYm1WeUxDQnphVzVqWlNCaElIQmhjbUZ0WlhSbGNpQmtaV052Y21GMGIzSWdZV3h2Ym1VZ1kyRnVibTkwWEc0Z0tpQnpkWEJ3YkhrZ1lTQndjbTkyYVdSbGNpNWNiaUFxTDF4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUdkbGRGSmxaMmx6ZEdWeVpXUkVaV05oWmxCeWIzWnBaR1Z5Y3lncE9pQkVaV05oWmtaaFkzUnZjbmxRY205MmFXUmxjbHRkSUh0Y2JpQWdjbVYwZFhKdUlFRnljbUY1TG1aeWIyMG9jR1Z1WkdsdVoxQnliM1pwWkdWeWN5NTJZV3gxWlhNb0tTazdYRzU5WEc1Y2JtWjFibU4wYVc5dUlISmxaMmx6ZEdWeVVISnZkbWxrWlhJb2RHOXJaVzQ2SUhOMGNtbHVaeXdnZFhObFJtRmpkRzl5ZVRvZ0tDa2dQVDRnZFc1cmJtOTNiaWs2SUhadmFXUWdlMXh1SUNCcFppQW9jR1Z1WkdsdVoxQnliM1pwWkdWeWN5NW9ZWE1vZEc5clpXNHBLU0J5WlhSMWNtNDdYRzRnSUhCbGJtUnBibWRRY205MmFXUmxjbk11YzJWMEtIUnZhMlZ1TENCN0lIQnliM1pwWkdVNklIUnZhMlZ1TENCMWMyVkdZV04wYjNKNUlIMHBPMXh1ZlZ4dVhHNW1kVzVqZEdsdmJpQnBjMDF2WkdWc1EyOXVjM1J5ZFdOMGIzSW9kbUZzZFdVNklIVnVhMjV2ZDI0cE9pQjJZV3gxWlNCcGN5QkRiMjV6ZEhKMVkzUnZjanhoYm5rK0lIdGNiaUFnY21WMGRYSnVJSFI1Y0dWdlppQjJZV3gxWlNBOVBUMGdYQ0ptZFc1amRHbHZibHdpSUNZbUlIWmhiSFZsTG5CeWIzUnZkSGx3WlNCcGJuTjBZVzVqWlc5bUlFMXZaR1ZzTzF4dWZWeHVYRzVtZFc1amRHbHZiaUJ0YjJSbGJGTmxjblpwWTJWVWIydGxiaWh0YjJSbGJEb2dRMjl1YzNSeWRXTjBiM0k4WVc1NVBpazZJSE4wY21sdVp5QjdYRzRnSUhKbGRIVnliaUJnSkh0dGIyUmxiQzV1WVcxbGZWTmxjblpwWTJWZ08xeHVmVnh1WEc1bWRXNWpkR2x2YmlCdGIyUmxiRkpsY0c5emFYUnZjbmxVYjJ0bGJpaGNiaUFnYlc5a1pXdzZJRU52Ym5OMGNuVmpkRzl5UEdGdWVUNHNYRzRnSUdac1lYWnZkWEkvT2lCemRISnBibWRjYmlrNklITjBjbWx1WnlCN1hHNGdJSEpsZEhWeWJpQm1iR0YyYjNWeUlEOGdZQ1I3Ylc5a1pXd3VibUZ0WlgxU1pYQnZjMmwwYjNKNVFDUjdabXhoZG05MWNuMWdJRG9nWUNSN2JXOWtaV3d1Ym1GdFpYMVNaWEJ2YzJsMGIzSjVZRHRjYm4xY2JseHVMeW9xWEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnUTI5dWMzUnlkV04wYjNJZ2NHRnlZVzFsZEdWeUlHUmxZMjl5WVhSdmNpQjBhR0YwSUdsdWFtVmpkSE1nWVNCa1pXTmhaaUJ6WlhKMmFXTmxMbHh1SUNvZ1FITjFiVzFoY25rZ1ZISmhibk5zWVhSbGN5QmtaV05oWmlkeklITmxjblpwWTJVZ2NtVnpiMngxZEdsdmJpQkJVRWx6SUdsdWRHOGdZU0JPWlhOMElHQkFTVzVxWldOMEtDbGdJR05oYkd3NlhHNGdLaUF0SUdCQVUyVnlkbWxqWlNoVGIyMWxUVzlrWld3cFlDQnBibXBsWTNSeklIUm9aU0J0WVhSamFHbHVaeUJnUUhObGNuWnBZMlVvVTI5dFpVMXZaR1ZzS1dBZ1pHVmpZV1lnYzJWeWRtbGpaU0IzYUdWdUlHOXVaU0JwYzF4dUlDb2dJQ0J5WldkcGMzUmxjbVZrT3lCdmRHaGxjbmRwYzJVZ2FYUWdabUZzYkhNZ1ltRmpheUIwYnlCMGFHVWdZRTF2WkdWc1UyVnlkbWxqWlR4VGIyMWxUVzlrWld3K1lDQnphVzVuYkdWMGIyNWNiaUFxSUNBZ0tIWnBZU0I3UUd4cGJtc2dUVzlrWld4VFpYSjJhV05sTG1admNrMXZaR1ZzZlNrdVhHNGdLaUF0SUdCQVUyVnlkbWxqWlNoVGIyMWxVMlZ5ZG1salpVTnNZWE56S1dBZ2IzSWdZRUJUWlhKMmFXTmxLRndpWVd4cFlYTmNJaWxnSUdsdWFtVmpkSE1nZEdobElHMWhkR05vYVc1bklHQkFjMlZ5ZG1salpTZ3BZQzFrWldOdmNtRjBaV1JjYmlBcUlDQWdaR1ZqWVdZZ2UwQnNhVzVySUVOdmNtVlRaWEoyYVdObGZTQW9kbWxoSUh0QWJHbHVheUJEYjNKbFUyVnlkbWxqWlM1blpYUjlLUzVjYmlBcUlDMGdZRUJUWlhKMmFXTmxLQ2xnSUdsdVptVnljeUIwYUdVZ2NHRnlZVzFsZEdWeUozTWdkSGx3WlNCbWNtOXRJR1Z0YVhSMFpXUWdZMjl1YzNSeWRXTjBiM0lnYldWMFlXUmhkR0VnWVc1a0lISmxjMjlzZG1WeklHbDBJSFJvWlZ4dUlDb2dJQ0J6WVcxbElIZGhlU3dnY0hKdmRtbGtaV1FnZEdobElIQmhjbUZ0WlhSbGNpQnBjeUIwZVhCbFpDQmhjeUJoSUdOdmJtTnlaWFJsSUdOc1lYTnpJQ2huWlc1bGNtbGpjeUJzYVd0bElHQk5iMlJsYkZObGNuWnBZMlU4V0Q1Z1hHNGdLaUFnSUdGeVpTQmxjbUZ6WldRZ1lYUWdjblZ1ZEdsdFpTd2djMjhnZEdobElHMXZaR1ZzTFhObGNuWnBZMlVnWm05eWJTQmhiSGRoZVhNZ2NtVnhkV2x5WlhNZ1lXNGdaWGh3YkdsamFYUWdZWEpuZFcxbGJuUXBMbHh1SUNvZ1FIQmhjbUZ0SUd0bGVTQjBhR1VnYlc5a1pXd2dZMnhoYzNNc0lITmxjblpwWTJVZ1kyeGhjM01zSUc5eUlHRnNhV0Z6SUhSdklISmxjMjlzZG1VdUlFOXRhWFFnZEc4Z2FXNW1aWElnWm5KdmJTQjBhR1VnY0dGeVlXMWxkR1Z5SUhSNWNHVXVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCVFpYSjJhV05sS0d0bGVUODZJSE4wY21sdVp5QjhJRU52Ym5OMGNuVmpkRzl5UEdGdWVUNHBPaUJRWVhKaGJXVjBaWEpFWldOdmNtRjBiM0lnZTF4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUhSaGNtZGxkRG9nYjJKcVpXTjBMRnh1SUNBZ0lIQnliM0JsY25SNVMyVjVPaUJ6ZEhKcGJtY2dmQ0J6ZVcxaWIyd2dmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdjR0Z5WVcxbGRHVnlTVzVrWlhnNklHNTFiV0psY2x4dUlDQXBPaUIyYjJsa0lEMCtJSHRjYmlBZ0lDQnNaWFFnY21WemIyeDJaV1E2SUhOMGNtbHVaeUI4SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRnZkNCMWJtUmxabWx1WldRZ1BTQnJaWGs3WEc0Z0lDQWdhV1lnS0hSNWNHVnZaaUJ5WlhOdmJIWmxaQ0E5UFQwZ1hDSjFibVJsWm1sdVpXUmNJaWtnZTF4dUlDQWdJQ0FnWTI5dWMzUWdjR0Z5WVcxVWVYQmxjem9nWVc1NVcxMGdQVnh1SUNBZ0lDQWdJQ0JTWldac1pXTjBMbWRsZEUxbGRHRmtZWFJoS0Z3aVpHVnphV2R1T25CaGNtRnRkSGx3WlhOY0lpd2dkR0Z5WjJWMEtTQjhmQ0JiWFR0Y2JpQWdJQ0FnSUhKbGMyOXNkbVZrSUQwZ2NHRnlZVzFVZVhCbGMxdHdZWEpoYldWMFpYSkpibVJsZUYwN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoMGVYQmxiMllnY21WemIyeDJaV1FnUFQwOUlGd2lkVzVrWldacGJtVmtYQ0lwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JnUUZObGNuWnBZMlVvS1NCamIzVnNaQ0J1YjNRZ1pHVjBaWEp0YVc1bElHRnVJR2x1YW1WamRHbHZiaUIwZVhCbElHWnZjaUJ3WVhKaGJXVjBaWElnSkh0d1lYSmhiV1YwWlhKSmJtUmxlSDBnYjJZZ0pIc29kR0Z5WjJWMElHRnpJRU52Ym5OMGNuVmpkRzl5UEdGdWVUNHBMbTVoYldWOUxpQlFjbTkyYVdSbElHRnVJR1Y0Y0d4cFkybDBJR0Z5WjNWdFpXNTBMQ0JsTG1jdUlFQlRaWEoyYVdObEtGTnZiV1ZUWlhKMmFXTmxLUzVnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHRnpUVzlrWld3Z1BTQjBlWEJsYjJZZ2NtVnpiMngyWldRZ0lUMDlJRndpYzNSeWFXNW5YQ0lnSmlZZ2FYTk5iMlJsYkVOdmJuTjBjblZqZEc5eUtISmxjMjlzZG1Wa0tUdGNiaUFnSUNCamIyNXpkQ0IwYjJ0bGJpQTlJR0Z6VFc5a1pXeGNiaUFnSUNBZ0lEOGdiVzlrWld4VFpYSjJhV05sVkc5clpXNG9jbVZ6YjJ4MlpXUWdZWE1nUTI5dWMzUnlkV04wYjNJOFlXNTVQaWxjYmlBZ0lDQWdJRG9nYVc1cVpXTjBZV0pzWlZObGNuWnBZMlZMWlhrb2NtVnpiMngyWldRZ1lYTWdjM1J5YVc1bklId2dRMjl1YzNSeWRXTjBiM0k4WVc1NVBpazdYRzVjYmlBZ0lDQnlaV2RwYzNSbGNsQnliM1pwWkdWeUtIUnZhMlZ1TENBb0tTQTlQaUI3WEc0Z0lDQWdJQ0JwWmlBb1lYTk5iMlJsYkNrZ2UxeHVJQ0FnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCRGIzSmxVMlZ5ZG1salpTNW5aWFFvY21WemIyeDJaV1FnWVhNZ1EyOXVjM1J5ZFdOMGIzSThZVzU1UGlrN1hHNGdJQ0FnSUNBZ0lIMGdZMkYwWTJnZ2UxeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQk5iMlJsYkZObGNuWnBZMlV1Wm05eVRXOWtaV3dvY21WemIyeDJaV1FnWVhNZ1EyOXVjM1J5ZFdOMGIzSThZVzU1UGlrN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lISmxkSFZ5YmlCMGVYQmxiMllnY21WemIyeDJaV1FnUFQwOUlGd2ljM1J5YVc1blhDSmNiaUFnSUNBZ0lDQWdQeUJEYjNKbFUyVnlkbWxqWlM1blpYUW9jbVZ6YjJ4MlpXUXBYRzRnSUNBZ0lDQWdJRG9nUTI5eVpWTmxjblpwWTJVdVoyVjBLSEpsYzI5c2RtVmtJR0Z6SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRwTzF4dUlDQWdJSDBwTzF4dVhHNGdJQ0FnY21WMGRYSnVJRWx1YW1WamRDaDBiMnRsYmlrb2RHRnlaMlYwTENCd2NtOXdaWEowZVV0bGVTd2djR0Z5WVcxbGRHVnlTVzVrWlhncE8xeHVJQ0I5TzF4dWZWeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCRGIyNXpkSEoxWTNSdmNpQndZWEpoYldWMFpYSWdaR1ZqYjNKaGRHOXlJSFJvWVhRZ2FXNXFaV04wY3lCaElHUmxZMkZtSUh0QWJHbHVheUJEYjNKbFVtVndiM05wZEc5eWVYMGdabTl5SUdCdGIyUmxiR0F1WEc0Z0tpQkFjM1Z0YldGeWVTQlZibXhwYTJVZ2UwQnNhVzVySUZObGNuWnBZMlY5TENCZ2JXOWtaV3hnSUdseklHRnNkMkY1Y3lCMGNtVmhkR1ZrSUdGeklHRWdUVzlrWld3Z1kyeGhjM002SUhSb1pTQnpZVzFsSUdOc1lYTnpJSEJoYzNObFpGeHVJQ29nZEc4Z1lFQlRaWEoyYVdObEtHMXZaR1ZzS1dBZ1lXNWtJR0JBVW1Wd2IzTnBkRzl5ZVNodGIyUmxiQ2xnSUhKbGMyOXNkbVZ6SUhSdklIUjNieUJrYVdabVpYSmxiblFnYVc1cVpXTjBaV1FnYjJKcVpXTjBjeUFvWVZ4dUlDb2dZRTF2WkdWc1UyVnlkbWxqWlR4TlBtQWdkbk1nWVNCZ1VtVndiM05wZEc5eWVUeE5QbUFnY21WemNHVmpkR2wyWld4NUtTd2dkbWxoSUh0QWJHbHVheUJEYjNKbFVtVndiM05wZEc5eWVTNW1iM0pOYjJSbGJIMHVYRzRnS2lCQWNHRnlZVzBnYlc5a1pXd2dkR2hsSUcxdlpHVnNJR05zWVhOeklIUnZJSEpsYzI5c2RtVWdZU0J5WlhCdmMybDBiM0o1SUdadmNpNWNiaUFxSUVCd1lYSmhiU0JtYkdGMmIzVnlJRzl3ZEdsdmJtRnNJR0ZrWVhCMFpYSWdabXhoZG05MWNpOWhiR2xoY3l3Z1ptOXlkMkZ5WkdWa0lIUnZJSHRBYkdsdWF5QkRiM0psVW1Wd2IzTnBkRzl5ZVM1bWIzSk5iMlJsYkgwdVhHNGdLaTljYm1WNGNHOXlkQ0JtZFc1amRHbHZiaUJTWlhCdmMybDBiM0o1S0Z4dUlDQnRiMlJsYkRvZ1EyOXVjM1J5ZFdOMGIzSThZVzU1UGl4Y2JpQWdabXhoZG05MWNqODZJSE4wY21sdVoxeHVLVG9nVUdGeVlXMWxkR1Z5UkdWamIzSmhkRzl5SUh0Y2JpQWdjbVYwZFhKdUlDaGNiaUFnSUNCMFlYSm5aWFE2SUc5aWFtVmpkQ3hjYmlBZ0lDQndjbTl3WlhKMGVVdGxlVG9nYzNSeWFXNW5JSHdnYzNsdFltOXNJSHdnZFc1a1pXWnBibVZrTEZ4dUlDQWdJSEJoY21GdFpYUmxja2x1WkdWNE9pQnVkVzFpWlhKY2JpQWdLVG9nZG05cFpDQTlQaUI3WEc0Z0lDQWdZMjl1YzNRZ2RHOXJaVzRnUFNCdGIyUmxiRkpsY0c5emFYUnZjbmxVYjJ0bGJpaHRiMlJsYkN3Z1pteGhkbTkxY2lrN1hHNGdJQ0FnY21WbmFYTjBaWEpRY205MmFXUmxjaWgwYjJ0bGJpd2dLQ2tnUFQ0Z1EyOXlaVkpsY0c5emFYUnZjbmt1Wm05eVRXOWtaV3dvYlc5a1pXd3NJR1pzWVhadmRYSXBLVHRjYmlBZ0lDQnlaWFIxY200Z1NXNXFaV04wS0hSdmEyVnVLU2gwWVhKblpYUXNJSEJ5YjNCbGNuUjVTMlY1TENCd1lYSmhiV1YwWlhKSmJtUmxlQ2s3WEc0Z0lIMDdYRzU5WEc0aVhYMD0iXX0=
|
|
@@ -17,11 +17,17 @@ const EventsController_js_1 = require("./EventsController.cjs");
|
|
|
17
17
|
const core_1 = require("@nestjs/core");
|
|
18
18
|
const constant_js_1 = require("./constant.cjs");
|
|
19
19
|
const index_js_1 = require("./../request/index.cjs");
|
|
20
|
+
const ObserverSubscriptionRegistry_js_1 = require("./ObserverSubscriptionRegistry.cjs");
|
|
21
|
+
const EventsSubscriptionController_js_1 = require("./EventsSubscriptionController.cjs");
|
|
20
22
|
let DecafStreamModule = DecafStreamModule_1 = class DecafStreamModule {
|
|
21
|
-
static forFlavours(flavours, path = "events") {
|
|
23
|
+
static forFlavours(flavours, path = "events", options = {}) {
|
|
24
|
+
const controllers = [EventsController_js_1.EventsController];
|
|
25
|
+
if (options.subscriptionMode) {
|
|
26
|
+
controllers.push(EventsSubscriptionController_js_1.EventsSubscriptionController);
|
|
27
|
+
}
|
|
22
28
|
return {
|
|
23
29
|
module: DecafStreamModule_1,
|
|
24
|
-
controllers
|
|
30
|
+
controllers,
|
|
25
31
|
imports: [
|
|
26
32
|
core_1.RouterModule.register([
|
|
27
33
|
{
|
|
@@ -32,10 +38,15 @@ let DecafStreamModule = DecafStreamModule_1 = class DecafStreamModule {
|
|
|
32
38
|
],
|
|
33
39
|
providers: [
|
|
34
40
|
index_js_1.DecafRequestContext,
|
|
41
|
+
ObserverSubscriptionRegistry_js_1.ObserverSubscriptionRegistry,
|
|
35
42
|
{
|
|
36
43
|
provide: constant_js_1.LISTENING_ADAPTERS_FLAVOURS,
|
|
37
44
|
useValue: flavours ?? [],
|
|
38
45
|
},
|
|
46
|
+
{
|
|
47
|
+
provide: constant_js_1.OBSERVER_EVENTS_OPTIONS,
|
|
48
|
+
useValue: options ?? {},
|
|
49
|
+
},
|
|
39
50
|
],
|
|
40
51
|
};
|
|
41
52
|
}
|
|
@@ -44,5 +55,5 @@ exports.DecafStreamModule = DecafStreamModule;
|
|
|
44
55
|
exports.DecafStreamModule = DecafStreamModule = DecafStreamModule_1 = __decorate([
|
|
45
56
|
(0, common_1.Module)({})
|
|
46
57
|
], DecafStreamModule);
|
|
47
|
-
//# sourceMappingURL=
|
|
48
|
-
//# sourceMappingURL=DecafStreamModule.cjs.map
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZTdHJlYW1Nb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXZlbnRzLW1vZHVsZS9EZWNhZlN0cmVhbU1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsT0FBTyxFQUFpQixNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsOEJBQTJCO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUNMLDJCQUEyQixFQUMzQix1QkFBdUIsR0FDeEIsc0JBQW1CO0FBQ3BCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSw4QkFBbUI7QUFDakQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLDBDQUF1QztBQUU5RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsMENBQXVDO0FBR3ZFLElBQU0saUJBQWlCLHlCQUF2QixNQUFNLGlCQUFpQjtJQUM1QixNQUFNLENBQUMsV0FBVyxDQUNoQixRQUFrQixFQUNsQixPQUFlLFFBQVEsRUFDdkIsVUFBaUMsRUFBRTtRQUVuQyxNQUFNLFdBQVcsR0FBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUMsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM3QixXQUFXLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDakQsQ0FBQztRQUNELE9BQU87WUFDTCxNQUFNLEVBQUUsbUJBQWlCO1lBQ3pCLFdBQVc7WUFDWCxPQUFPLEVBQUU7Z0JBQ1AsWUFBWSxDQUFDLFFBQVEsQ0FBQztvQkFDcEI7d0JBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDN0IsTUFBTSxFQUFFLG1CQUFpQjtxQkFDMUI7aUJBQ0YsQ0FBQzthQUNIO1lBQ0QsU0FBUyxFQUFFO2dCQUNULG1CQUFtQjtnQkFDbkIsNEJBQTRCO2dCQUM1QjtvQkFDRSxPQUFPLEVBQUUsMkJBQTJCO29CQUNwQyxRQUFRLEVBQUUsUUFBUSxJQUFJLEVBQUU7aUJBQ3pCO2dCQUNEO29CQUNFLE9BQU8sRUFBRSx1QkFBdUI7b0JBQ2hDLFFBQVEsRUFBRSxPQUFPLElBQUksRUFBRTtpQkFDeEI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQTtBQW5DWSxpQkFBaUI7SUFEN0IsTUFBTSxDQUFDLEVBQUUsQ0FBQztHQUNFLGlCQUFpQixDQW1DN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljTW9kdWxlLCBNb2R1bGUgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IEV2ZW50c0NvbnRyb2xsZXIgfSBmcm9tIFwiLi9FdmVudHNDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tIFwiQG5lc3Rqcy9jb3JlXCI7XG5pbXBvcnQge1xuICBMSVNURU5JTkdfQURBUFRFUlNfRkxBVk9VUlMsXG4gIE9CU0VSVkVSX0VWRU5UU19PUFRJT05TLFxufSBmcm9tIFwiLi9jb25zdGFudFwiO1xuaW1wb3J0IHsgRGVjYWZSZXF1ZXN0Q29udGV4dCB9IGZyb20gXCIuLi9yZXF1ZXN0XCI7XG5pbXBvcnQgeyBPYnNlcnZlclN1YnNjcmlwdGlvblJlZ2lzdHJ5IH0gZnJvbSBcIi4vT2JzZXJ2ZXJTdWJzY3JpcHRpb25SZWdpc3RyeVwiO1xuaW1wb3J0IHsgT2JzZXJ2ZXJFdmVudHNPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBFdmVudHNTdWJzY3JpcHRpb25Db250cm9sbGVyIH0gZnJvbSBcIi4vRXZlbnRzU3Vic2NyaXB0aW9uQ29udHJvbGxlclwiO1xuXG5ATW9kdWxlKHt9KVxuZXhwb3J0IGNsYXNzIERlY2FmU3RyZWFtTW9kdWxlIHtcbiAgc3RhdGljIGZvckZsYXZvdXJzKFxuICAgIGZsYXZvdXJzOiBzdHJpbmdbXSxcbiAgICBwYXRoOiBzdHJpbmcgPSBcImV2ZW50c1wiLFxuICAgIG9wdGlvbnM6IE9ic2VydmVyRXZlbnRzT3B0aW9ucyA9IHt9XG4gICk6IER5bmFtaWNNb2R1bGUge1xuICAgIGNvbnN0IGNvbnRyb2xsZXJzOiBhbnlbXSA9IFtFdmVudHNDb250cm9sbGVyXTtcbiAgICBpZiAob3B0aW9ucy5zdWJzY3JpcHRpb25Nb2RlKSB7XG4gICAgICBjb250cm9sbGVycy5wdXNoKEV2ZW50c1N1YnNjcmlwdGlvbkNvbnRyb2xsZXIpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgbW9kdWxlOiBEZWNhZlN0cmVhbU1vZHVsZSxcbiAgICAgIGNvbnRyb2xsZXJzLFxuICAgICAgaW1wb3J0czogW1xuICAgICAgICBSb3V0ZXJNb2R1bGUucmVnaXN0ZXIoW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBhdGg6IHBhdGgucmVwbGFjZSgvXlxcLy8sIFwiXCIpLFxuICAgICAgICAgICAgbW9kdWxlOiBEZWNhZlN0cmVhbU1vZHVsZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdKSxcbiAgICAgIF0sXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgRGVjYWZSZXF1ZXN0Q29udGV4dCxcbiAgICAgICAgT2JzZXJ2ZXJTdWJzY3JpcHRpb25SZWdpc3RyeSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IExJU1RFTklOR19BREFQVEVSU19GTEFWT1VSUyxcbiAgICAgICAgICB1c2VWYWx1ZTogZmxhdm91cnMgPz8gW10sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBPQlNFUlZFUl9FVkVOVFNfT1BUSU9OUyxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucyA/PyB7fSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZTdHJlYW1Nb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJEZWNhZlN0cmVhbU1vZHVsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJLFVBQVUsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJO0lBQ2pGLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0gsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLENBQUMsUUFBUSxLQUFLLFVBQVU7UUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQzs7UUFDMUgsS0FBSyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUFFLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsSixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbEUsQ0FBQyxDQUFDO0FBQ0YsSUFBSSxtQkFBbUIsQ0FBQztBQUN4QiwyQ0FBd0M7QUFDeEMsK0RBQXlEO0FBQ3pELHVDQUE0QztBQUM1QywrQ0FBc0Y7QUFDdEYsb0RBQTREO0FBQzVELHVGQUFpRjtBQUNqRix1RkFBaUY7QUFDakYsSUFBSSxpQkFBaUIsR0FBRyxtQkFBbUIsR0FBRyxNQUFNLGlCQUFpQjtJQUNqRSxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLEdBQUcsUUFBUSxFQUFFLE9BQU8sR0FBRyxFQUFFO1FBQ3RELE1BQU0sV0FBVyxHQUFHLENBQUMsc0NBQWdCLENBQUMsQ0FBQztRQUN2QyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzNCLFdBQVcsQ0FBQyxJQUFJLENBQUMsOERBQTRCLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsT0FBTztZQUNILE1BQU0sRUFBRSxtQkFBbUI7WUFDM0IsV0FBVztZQUNYLE9BQU8sRUFBRTtnQkFDTCxtQkFBWSxDQUFDLFFBQVEsQ0FBQztvQkFDbEI7d0JBQ0ksSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQzt3QkFDN0IsTUFBTSxFQUFFLG1CQUFtQjtxQkFDOUI7aUJBQ0osQ0FBQzthQUNMO1lBQ0QsU0FBUyxFQUFFO2dCQUNQLDhCQUFtQjtnQkFDbkIsOERBQTRCO2dCQUM1QjtvQkFDSSxPQUFPLEVBQUUseUNBQTJCO29CQUNwQyxRQUFRLEVBQUUsUUFBUSxJQUFJLEVBQUU7aUJBQzNCO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxxQ0FBdUI7b0JBQ2hDLFFBQVEsRUFBRSxPQUFPLElBQUksRUFBRTtpQkFDMUI7YUFDSjtTQUNKLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQztBQUlPLDhDQUFpQjtBQUgxQiw0QkFBQSxpQkFBaUIsR0FBRyxtQkFBbUIsR0FBRyxVQUFVLENBQUM7SUFDakQsSUFBQSxlQUFNLEVBQUMsRUFBRSxDQUFDO0NBQ2IsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBRXRCLHM4R0FBczhHIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fZGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZGVjb3JhdGUpIHx8IGZ1bmN0aW9uIChkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XG59O1xudmFyIERlY2FmU3RyZWFtTW9kdWxlXzE7XG5pbXBvcnQgeyBNb2R1bGUgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IEV2ZW50c0NvbnRyb2xsZXIgfSBmcm9tIFwiLi9FdmVudHNDb250cm9sbGVyLmpzXCI7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tIFwiQG5lc3Rqcy9jb3JlXCI7XG5pbXBvcnQgeyBMSVNURU5JTkdfQURBUFRFUlNfRkxBVk9VUlMsIE9CU0VSVkVSX0VWRU5UU19PUFRJT05TLCB9IGZyb20gXCIuL2NvbnN0YW50LmpzXCI7XG5pbXBvcnQgeyBEZWNhZlJlcXVlc3RDb250ZXh0IH0gZnJvbSBcIi4vLi4vcmVxdWVzdC9pbmRleC5qc1wiO1xuaW1wb3J0IHsgT2JzZXJ2ZXJTdWJzY3JpcHRpb25SZWdpc3RyeSB9IGZyb20gXCIuL09ic2VydmVyU3Vic2NyaXB0aW9uUmVnaXN0cnkuanNcIjtcbmltcG9ydCB7IEV2ZW50c1N1YnNjcmlwdGlvbkNvbnRyb2xsZXIgfSBmcm9tIFwiLi9FdmVudHNTdWJzY3JpcHRpb25Db250cm9sbGVyLmpzXCI7XG5sZXQgRGVjYWZTdHJlYW1Nb2R1bGUgPSBEZWNhZlN0cmVhbU1vZHVsZV8xID0gY2xhc3MgRGVjYWZTdHJlYW1Nb2R1bGUge1xuICAgIHN0YXRpYyBmb3JGbGF2b3VycyhmbGF2b3VycywgcGF0aCA9IFwiZXZlbnRzXCIsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICBjb25zdCBjb250cm9sbGVycyA9IFtFdmVudHNDb250cm9sbGVyXTtcbiAgICAgICAgaWYgKG9wdGlvbnMuc3Vic2NyaXB0aW9uTW9kZSkge1xuICAgICAgICAgICAgY29udHJvbGxlcnMucHVzaChFdmVudHNTdWJzY3JpcHRpb25Db250cm9sbGVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbW9kdWxlOiBEZWNhZlN0cmVhbU1vZHVsZV8xLFxuICAgICAgICAgICAgY29udHJvbGxlcnMsXG4gICAgICAgICAgICBpbXBvcnRzOiBbXG4gICAgICAgICAgICAgICAgUm91dGVyTW9kdWxlLnJlZ2lzdGVyKFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogcGF0aC5yZXBsYWNlKC9eXFwvLywgXCJcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGU6IERlY2FmU3RyZWFtTW9kdWxlXzEsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgRGVjYWZSZXF1ZXN0Q29udGV4dCxcbiAgICAgICAgICAgICAgICBPYnNlcnZlclN1YnNjcmlwdGlvblJlZ2lzdHJ5LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTElTVEVOSU5HX0FEQVBURVJTX0ZMQVZPVVJTLFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogZmxhdm91cnMgPz8gW10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IE9CU0VSVkVSX0VWRU5UU19PUFRJT05TLFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucyA/PyB7fSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfTtcbiAgICB9XG59O1xuRGVjYWZTdHJlYW1Nb2R1bGUgPSBEZWNhZlN0cmVhbU1vZHVsZV8xID0gX19kZWNvcmF0ZShbXG4gICAgTW9kdWxlKHt9KVxuXSwgRGVjYWZTdHJlYW1Nb2R1bGUpO1xuZXhwb3J0IHsgRGVjYWZTdHJlYW1Nb2R1bGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVJHVmpZV1pUZEhKbFlXMU5iMlIxYkdVdWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTl6Y21NdlpYWmxiblJ6TFcxdlpIVnNaUzlFWldOaFpsTjBjbVZoYlUxdlpIVnNaUzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3pzN096czdPMEZCUVVFc1QwRkJUeXhGUVVGcFFpeE5RVUZOTEVWQlFVVXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU4yUkN4UFFVRlBMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNPRUpCUVRKQ08wRkJRM1JFTEU5QlFVOHNSVUZCUlN4WlFVRlpMRVZCUVVVc1RVRkJUU3hqUVVGakxFTkJRVU03UVVGRE5VTXNUMEZCVHl4RlFVTk1MREpDUVVFeVFpeEZRVU16UWl4MVFrRkJkVUlzUjBGRGVFSXNjMEpCUVcxQ08wRkJRM0JDTEU5QlFVOHNSVUZCUlN4dFFrRkJiVUlzUlVGQlJTdzRRa0ZCYlVJN1FVRkRha1FzVDBGQlR5eEZRVUZGTERSQ1FVRTBRaXhGUVVGRkxEQkRRVUYxUXp0QlFVVTVSU3hQUVVGUExFVkJRVVVzTkVKQlFUUkNMRVZCUVVVc01FTkJRWFZETzBGQlIzWkZMRWxCUVUwc2FVSkJRV2xDTEhsQ1FVRjJRaXhOUVVGTkxHbENRVUZwUWp0SlFVTTFRaXhOUVVGTkxFTkJRVU1zVjBGQlZ5eERRVU5vUWl4UlFVRnJRaXhGUVVOc1FpeFBRVUZsTEZGQlFWRXNSVUZEZGtJc1ZVRkJhVU1zUlVGQlJUdFJRVVZ1UXl4TlFVRk5MRmRCUVZjc1IwRkJWU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRU5CUVVNN1VVRkRPVU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzUTBGQlF6dFpRVU0zUWl4WFFVRlhMRU5CUVVNc1NVRkJTU3hEUVVGRExEUkNRVUUwUWl4RFFVRkRMRU5CUVVNN1VVRkRha1FzUTBGQlF6dFJRVU5FTEU5QlFVODdXVUZEVEN4TlFVRk5MRVZCUVVVc2JVSkJRV2xDTzFsQlEzcENMRmRCUVZjN1dVRkRXQ3hQUVVGUExFVkJRVVU3WjBKQlExQXNXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJRenR2UWtGRGNFSTdkMEpCUTBVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1EwRkJRenQzUWtGRE4wSXNUVUZCVFN4RlFVRkZMRzFDUVVGcFFqdHhRa0ZETVVJN2FVSkJRMFlzUTBGQlF6dGhRVU5JTzFsQlEwUXNVMEZCVXl4RlFVRkZPMmRDUVVOVUxHMUNRVUZ0UWp0blFrRkRia0lzTkVKQlFUUkNPMmRDUVVNMVFqdHZRa0ZEUlN4UFFVRlBMRVZCUVVVc01rSkJRVEpDTzI5Q1FVTndReXhSUVVGUkxFVkJRVVVzVVVGQlVTeEpRVUZKTEVWQlFVVTdhVUpCUTNwQ08yZENRVU5FTzI5Q1FVTkZMRTlCUVU4c1JVRkJSU3gxUWtGQmRVSTdiMEpCUTJoRExGRkJRVkVzUlVGQlJTeFBRVUZQTEVsQlFVa3NSVUZCUlR0cFFrRkRlRUk3WVVGRFJqdFRRVU5HTEVOQlFVTTdTVUZEU2l4RFFVRkRPME5CUTBZc1EwRkJRVHRCUVc1RFdTeHBRa0ZCYVVJN1NVRkVOMElzVFVGQlRTeERRVUZETEVWQlFVVXNRMEZCUXp0SFFVTkZMR2xDUVVGcFFpeERRVzFETjBJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QkVlVzVoYldsalRXOWtkV3hsTENCTmIyUjFiR1VnZlNCbWNtOXRJRndpUUc1bGMzUnFjeTlqYjIxdGIyNWNJanRjYm1sdGNHOXlkQ0I3SUVWMlpXNTBjME52Ym5SeWIyeHNaWElnZlNCbWNtOXRJRndpTGk5RmRtVnVkSE5EYjI1MGNtOXNiR1Z5WENJN1hHNXBiWEJ2Y25RZ2V5QlNiM1YwWlhKTmIyUjFiR1VnZlNCbWNtOXRJRndpUUc1bGMzUnFjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCTVNWTlVSVTVKVGtkZlFVUkJVRlJGVWxOZlJreEJWazlWVWxNc1hHNGdJRTlDVTBWU1ZrVlNYMFZXUlU1VVUxOVBVRlJKVDA1VExGeHVmU0JtY205dElGd2lMaTlqYjI1emRHRnVkRndpTzF4dWFXMXdiM0owSUhzZ1JHVmpZV1pTWlhGMVpYTjBRMjl1ZEdWNGRDQjlJR1p5YjIwZ1hDSXVMaTl5WlhGMVpYTjBYQ0k3WEc1cGJYQnZjblFnZXlCUFluTmxjblpsY2xOMVluTmpjbWx3ZEdsdmJsSmxaMmx6ZEhKNUlIMGdabkp2YlNCY0lpNHZUMkp6WlhKMlpYSlRkV0p6WTNKcGNIUnBiMjVTWldkcGMzUnllVndpTzF4dWFXMXdiM0owSUhzZ1QySnpaWEoyWlhKRmRtVnVkSE5QY0hScGIyNXpJSDBnWm5KdmJTQmNJaTR1TDNSNWNHVnpYQ0k3WEc1cGJYQnZjblFnZXlCRmRtVnVkSE5UZFdKelkzSnBjSFJwYjI1RGIyNTBjbTlzYkdWeUlIMGdabkp2YlNCY0lpNHZSWFpsYm5SelUzVmljMk55YVhCMGFXOXVRMjl1ZEhKdmJHeGxjbHdpTzF4dVhHNUFUVzlrZFd4bEtIdDlLVnh1Wlhod2IzSjBJR05zWVhOeklFUmxZMkZtVTNSeVpXRnRUVzlrZFd4bElIdGNiaUFnYzNSaGRHbGpJR1p2Y2tac1lYWnZkWEp6S0Z4dUlDQWdJR1pzWVhadmRYSnpPaUJ6ZEhKcGJtZGJYU3hjYmlBZ0lDQndZWFJvT2lCemRISnBibWNnUFNCY0ltVjJaVzUwYzF3aUxGeHVJQ0FnSUc5d2RHbHZibk02SUU5aWMyVnlkbVZ5UlhabGJuUnpUM0IwYVc5dWN5QTlJSHQ5WEc0Z0lDazZJRVI1Ym1GdGFXTk5iMlIxYkdVZ2UxeHVJQ0FnSUdOdmJuTjBJR052Ym5SeWIyeHNaWEp6T2lCaGJubGJYU0E5SUZ0RmRtVnVkSE5EYjI1MGNtOXNiR1Z5WFR0Y2JpQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1emRXSnpZM0pwY0hScGIyNU5iMlJsS1NCN1hHNGdJQ0FnSUNCamIyNTBjbTlzYkdWeWN5NXdkWE5vS0VWMlpXNTBjMU4xWW5OamNtbHdkR2x2YmtOdmJuUnliMnhzWlhJcE8xeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdiVzlrZFd4bE9pQkVaV05oWmxOMGNtVmhiVTF2WkhWc1pTeGNiaUFnSUNBZ0lHTnZiblJ5YjJ4c1pYSnpMRnh1SUNBZ0lDQWdhVzF3YjNKMGN6b2dXMXh1SUNBZ0lDQWdJQ0JTYjNWMFpYSk5iMlIxYkdVdWNtVm5hWE4wWlhJb1cxeHVJQ0FnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIQmhkR2c2SUhCaGRHZ3VjbVZ3YkdGalpTZ3ZYbHhjTHk4c0lGd2lYQ0lwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdiVzlrZFd4bE9pQkVaV05oWmxOMGNtVmhiVTF2WkhWc1pTeGNiaUFnSUNBZ0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnSUNCZEtTeGNiaUFnSUNBZ0lGMHNYRzRnSUNBZ0lDQndjbTkyYVdSbGNuTTZJRnRjYmlBZ0lDQWdJQ0FnUkdWallXWlNaWEYxWlhOMFEyOXVkR1Y0ZEN4Y2JpQWdJQ0FnSUNBZ1QySnpaWEoyWlhKVGRXSnpZM0pwY0hScGIyNVNaV2RwYzNSeWVTeGNiaUFnSUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0FnSUhCeWIzWnBaR1U2SUV4SlUxUkZUa2xPUjE5QlJFRlFWRVZTVTE5R1RFRldUMVZTVXl4Y2JpQWdJQ0FnSUNBZ0lDQjFjMlZXWVd4MVpUb2dabXhoZG05MWNuTWdQejhnVzEwc1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNCd2NtOTJhV1JsT2lCUFFsTkZVbFpGVWw5RlZrVk9WRk5mVDFCVVNVOU9VeXhjYmlBZ0lDQWdJQ0FnSUNCMWMyVldZV3gxWlRvZ2IzQjBhVzl1Y3lBL1B5QjdmU3hjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUYwc1hHNGdJQ0FnZlR0Y2JpQWdmVnh1ZlZ4dUlsMTkiXX0=
|
|
@@ -28,13 +28,21 @@ const logging_1 = require("@decaf-ts/logging");
|
|
|
28
28
|
const constant_js_1 = require("./constant.cjs");
|
|
29
29
|
const utils_js_1 = require("./utils.cjs");
|
|
30
30
|
const operators_1 = require("rxjs/operators");
|
|
31
|
+
const ObserverSubscriptionRegistry_js_1 = require("./ObserverSubscriptionRegistry.cjs");
|
|
31
32
|
let EventsController = EventsController_1 = class EventsController extends controllers_js_1.DecafController {
|
|
32
|
-
constructor(clientContext, flavours) {
|
|
33
|
+
constructor(clientContext, flavours, options, registry) {
|
|
33
34
|
super(clientContext, EventsController_1.name);
|
|
35
|
+
this.options = options;
|
|
36
|
+
this.registry = registry;
|
|
34
37
|
this.adapters = flavours.map((flavour) => core_1.Adapter.get(flavour)); // change to Adapter.cache("")
|
|
35
38
|
}
|
|
36
|
-
listen() {
|
|
39
|
+
listen(subscriberId) {
|
|
37
40
|
const logger = logging_1.Logging.for(EventsController_1.name);
|
|
41
|
+
const subscriptionMode = Boolean(this.options.subscriptionMode);
|
|
42
|
+
if (subscriptionMode && !subscriberId) {
|
|
43
|
+
throw new common_1.BadRequestException("subscriberId is required when subscriptionMode is enabled");
|
|
44
|
+
}
|
|
45
|
+
const activeSubscriberId = subscriberId ?? "";
|
|
38
46
|
const events$ = new rxjs_1.Observable((observer) => {
|
|
39
47
|
const observerId = `B-${Math.random().toString(36).slice(2, 8)}`.toUpperCase();
|
|
40
48
|
logger.info(`Creating SSE observer: ${observerId} for client ${this.clientContext.uuid}`);
|
|
@@ -51,12 +59,22 @@ let EventsController = EventsController_1 = class EventsController extends contr
|
|
|
51
59
|
});
|
|
52
60
|
}
|
|
53
61
|
})();
|
|
62
|
+
const filter = subscriptionMode
|
|
63
|
+
? (model, ..._args) => {
|
|
64
|
+
const topic = typeof model === "string"
|
|
65
|
+
? model
|
|
66
|
+
: model?.name ?? model?.constructor?.name;
|
|
67
|
+
if (!topic)
|
|
68
|
+
return false;
|
|
69
|
+
return this.registry.matches(activeSubscriberId, topic);
|
|
70
|
+
}
|
|
71
|
+
: undefined;
|
|
54
72
|
logger.verbose(`Registering observer ${observerId} across ${this.adapters.length} adapter(s)`);
|
|
55
73
|
for (const adapter of this.adapters) {
|
|
56
74
|
const adapterName = adapter?.constructor?.name ?? "UnknownAdapter";
|
|
57
75
|
try {
|
|
58
76
|
logger.debug(`Registering observer ${observerId} in adapter ${adapterName}`);
|
|
59
|
-
adapter.observe(cb);
|
|
77
|
+
adapter.observe(cb, filter);
|
|
60
78
|
}
|
|
61
79
|
catch (e) {
|
|
62
80
|
logger.debug(`Failed to register observer ${observerId} in adapter ${adapterName}: ${e?.message || e}`);
|
|
@@ -76,6 +94,9 @@ let EventsController = EventsController_1 = class EventsController extends contr
|
|
|
76
94
|
logger.error(e);
|
|
77
95
|
}
|
|
78
96
|
}
|
|
97
|
+
if (subscriptionMode) {
|
|
98
|
+
this.registry.remove(activeSubscriberId);
|
|
99
|
+
}
|
|
79
100
|
};
|
|
80
101
|
});
|
|
81
102
|
const HEARTBEAT_INTERVAL_MS = 15000;
|
|
@@ -124,8 +145,9 @@ let EventsController = EventsController_1 = class EventsController extends contr
|
|
|
124
145
|
exports.EventsController = EventsController;
|
|
125
146
|
__decorate([
|
|
126
147
|
(0, common_1.Sse)(),
|
|
148
|
+
__param(0, (0, common_1.Query)("subscriberId")),
|
|
127
149
|
__metadata("design:type", Function),
|
|
128
|
-
__metadata("design:paramtypes", []),
|
|
150
|
+
__metadata("design:paramtypes", [String]),
|
|
129
151
|
__metadata("design:returntype", rxjs_1.Observable)
|
|
130
152
|
], EventsController.prototype, "listen", null);
|
|
131
153
|
__decorate([
|
|
@@ -140,7 +162,8 @@ __decorate([
|
|
|
140
162
|
exports.EventsController = EventsController = EventsController_1 = __decorate([
|
|
141
163
|
(0, common_1.Controller)(),
|
|
142
164
|
__param(1, (0, common_1.Inject)(constant_js_1.LISTENING_ADAPTERS_FLAVOURS)),
|
|
143
|
-
|
|
165
|
+
__param(2, (0, common_1.Inject)(constant_js_1.OBSERVER_EVENTS_OPTIONS)),
|
|
166
|
+
__metadata("design:paramtypes", [index_js_1.DecafRequestContext, Array, Object, ObserverSubscriptionRegistry_js_1.ObserverSubscriptionRegistry])
|
|
144
167
|
], EventsController);
|
|
145
|
-
//# sourceMappingURL=EventsController.js.map
|
|
146
|
-
//# sourceMappingURL=EventsController.cjs.map
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRzQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ldmVudHMtbW9kdWxlL0V2ZW50c0NvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsNEJBQXVCO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSw4QkFBbUI7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBNEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixNQUFNLEVBRU4sS0FBSyxFQUNMLEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUNMLDJCQUEyQixFQUMzQix1QkFBdUIsR0FDeEIsc0JBQW1CO0FBRXBCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxtQkFBZ0I7QUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsMENBQXVDO0FBSXZFLElBQU0sZ0JBQWdCLHdCQUF0QixNQUFNLGdCQUFpQixTQUFRLGVBQStCO0lBR25FLFlBQ0UsYUFBa0MsRUFDRyxRQUFrQixFQUNMLE9BQThCLEVBQy9ELFFBQXNDO1FBRXZELEtBQUssQ0FBQyxhQUFhLEVBQUUsa0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFITSxZQUFPLEdBQVAsT0FBTyxDQUF1QjtRQUMvRCxhQUFRLEdBQVIsUUFBUSxDQUE4QjtRQUd2RCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxD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QUFFLENBQUMsQ0FBQztZQUMvRCxDQUFDO1lBRUQsT0FBTyxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDO29CQUNILEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUNwQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUN4QixDQUFDO2dCQUNILENBQUM7Z0JBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztvQkFDaEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEIsQ0FBQztZQUNILENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGLENBQUE7QUF2SUM7SUFEQyxHQUFHLEVBQUU7SUFDRSxXQUFBLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQTs7O29DQUF5QixVQUFVOzhDQW9HL0Q7QUFJRDtJQUZDLEdBQUcsQ0FBQyxTQUFTLENBQUM7SUFDZiw2REFBNkQ7O0lBQzdDLFdBQUEsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBOzs7b0NBQWlCLFVBQVU7c0RBOEJ4RDtBQXBKVSxnQkFBZ0I7SUFENUIsVUFBVSxFQUFFO0lBTVIsV0FBQSxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtJQUNuQyxXQUFBLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO3FDQUZqQixtQkFBbUIsaUJBR1AsNEJBQTRCO0dBUDlDLGdCQUFnQixDQXFKNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWNhZkNvbnRyb2xsZXIgfSBmcm9tIFwiLi4vY29udHJvbGxlcnNcIjtcbmltcG9ydCB7IERlY2FmUmVxdWVzdENvbnRleHQgfSBmcm9tIFwiLi4vcmVxdWVzdFwiO1xuaW1wb3J0IHsgQWRhcHRlciwgT2JzZXJ2ZXIsIE9ic2VydmVyRmlsdGVyIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQge1xuICBCYWRSZXF1ZXN0RXhjZXB0aW9uLFxuICBDb250cm9sbGVyLFxuICBJbmplY3QsXG4gIE1lc3NhZ2VFdmVudCxcbiAgUXVlcnksXG4gIFNzZSxcbn0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5pbXBvcnQgeyBpbnRlcnZhbCwgbWVyZ2UsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHtcbiAgTElTVEVOSU5HX0FEQVBURVJTX0ZMQVZPVVJTLFxuICBPQlNFUlZFUl9FVkVOVFNfT1BUSU9OUyxcbn0gZnJvbSBcIi4vY29uc3RhbnRcIjtcbmltcG9ydCB7IERlY2FmU2VydmVyQ3R4IH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplRXZlbnRSZXNwb25zZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgT2JzZXJ2ZXJTdWJzY3JpcHRpb25SZWdpc3RyeSB9IGZyb20gXCIuL09ic2VydmVyU3Vic2NyaXB0aW9uUmVnaXN0cnlcIjtcbmltcG9ydCB0eXBlIHsgT2JzZXJ2ZXJFdmVudHNPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5cbkBDb250cm9sbGVyKClcbmV4cG9ydCBjbGFzcyBFdmVudHNDb250cm9sbGVyIGV4dGVuZHMgRGVjYWZDb250cm9sbGVyPERlY2FmU2VydmVyQ3R4PiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWRhcHRlcnM6IEFkYXB0ZXI8YW55LCBhbnksIGFueSwgYW55PltdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNsaWVudENvbnRleHQ6IERlY2FmUmVxdWVzdENvbnRleHQsXG4gICAgQEluamVjdChMSVNURU5JTkdfQURBUFRFUlNfRkxBVk9VUlMpIGZsYXZvdXJzOiBzdHJpbmdbXSxcbiAgICBASW5qZWN0KE9CU0VSVkVSX0VWRU5UU19PUFRJT05TKSBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IE9ic2VydmVyRXZlbnRzT3B0aW9ucyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lzdHJ5OiBPYnNlcnZlclN1YnNjcmlwdGlvblJlZ2lzdHJ5XG4gICkge1xuICAgIHN1cGVyKGNsaWVudENvbnRleHQsIEV2ZW50c0NvbnRyb2xsZXIubmFtZSk7XG4gICAgdGhpcy5hZGFwdGVycyA9IGZsYXZvdXJzLm1hcCgoZmxhdm91cikgPT4gKEFkYXB0ZXIgYXMgYW55KS5nZXQoZmxhdm91cikpOyAvLyBjaGFuZ2UgdG8gQWRhcHRlci5jYWNoZShcIlwiKVxuICB9XG5cbiAgQFNzZSgpXG4gIGxpc3RlbihAUXVlcnkoXCJzdWJzY3JpYmVySWRcIikgc3Vic2NyaWJlcklkPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxNZXNzYWdlRXZlbnQ+IHtcbiAgICBjb25zdCBsb2dnZXIgPSBMb2dnaW5nLmZvcihFdmVudHNDb250cm9sbGVyLm5hbWUpO1xuICAgIGNvbnN0IHN1YnNjcmlwdGlvbk1vZGUgPSBCb29sZWFuKHRoaXMub3B0aW9ucy5zdWJzY3JpcHRpb25Nb2RlKTtcbiAgICBpZiAoc3Vic2NyaXB0aW9uTW9kZSAmJiAhc3Vic2NyaWJlcklkKSB7XG4gICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEV4Y2VwdGlvbihcbiAgICAgICAgXCJzdWJzY3JpYmVySWQgaXMgcmVxdWlyZWQgd2hlbiBzdWJzY3JpcHRpb25Nb2RlIGlzIGVuYWJsZWRcIlxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgYWN0aXZlU3Vic2NyaWJlcklkID0gc3Vic2NyaWJlcklkID8/IFwiXCI7XG5cbiAgICBjb25zdCBldmVudHMkID0gbmV3IE9ic2VydmFibGU8TWVzc2FnZUV2ZW50Pigob2JzZXJ2ZXIpID0+IHtcbiAgICAgIGNvbnN0IG9ic2VydmVySWQgPVxuICAgICAgICBgQi0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsIDgpfWAudG9VcHBlckNhc2UoKTtcblxuICAgICAgbG9nZ2VyLmluZm8oXG4gICAgICAgIGBDcmVhdGluZyBTU0Ugb2JzZXJ2ZXI6ICR7b2JzZXJ2ZXJJZH0gZm9yIGNsaWVudCAke3RoaXMuY2xpZW50Q29udGV4dC51dWlkfWBcbiAgICAgICk7XG4gICAgICBjb25zdCBjYiA9IG5ldyAoY2xhc3MgaW1wbGVtZW50cyBPYnNlcnZlciB7XG4gICAgICAgIG9ic2VydmVySWQgPSBvYnNlcnZlcklkO1xuICAgICAgICByZWZyZXNoKC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgYFNTRSBvYnNlcnZlciAke3RoaXMub2JzZXJ2ZXJJZH0gcmVjZWl2ZWQgcmVmcmVzaCBldmVudGBcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBub3JtYWxpemVFdmVudFJlc3BvbnNlKGFyZ3MpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh7IHR5cGU6IFwibWVzc2FnZVwiLCBkYXRhIH0pO1xuICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICBgU1NFIG9ic2VydmVyICR7dGhpcy5vYnNlcnZlcklkfSBldmVudCBwdXNoZWQgdG8gY2xpZW50YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSkoKTtcbiAgICAgIGNvbnN0IGZpbHRlcjogT2JzZXJ2ZXJGaWx0ZXIgfCB1bmRlZmluZWQgPSBzdWJzY3JpcHRpb25Nb2RlXG4gICAgICAgID8gKG1vZGVsOiBzdHJpbmcgfCBGdW5jdGlvbiwgLi4uX2FyZ3M6IGFueVtdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0b3BpYyA9XG4gICAgICAgICAgICAgIHR5cGVvZiBtb2RlbCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgID8gbW9kZWxcbiAgICAgICAgICAgICAgICA6IChtb2RlbCBhcyBhbnkpPy5uYW1lID8/IChtb2RlbCBhcyBhbnkpPy5jb25zdHJ1Y3Rvcj8ubmFtZTtcbiAgICAgICAgICAgIGlmICghdG9waWMpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5Lm1hdGNoZXMoYWN0aXZlU3Vic2NyaWJlcklkLCB0b3BpYyk7XG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgbG9nZ2VyLnZlcmJvc2UoXG4gICAgICAgIGBSZWdpc3RlcmluZyBvYnNlcnZlciAke29ic2VydmVySWR9IGFjcm9zcyAke3RoaXMuYWRhcHRlcnMubGVuZ3RofSBhZGFwdGVyKHMpYFxuICAgICAgKTtcbiAgICAgIGZvciAoY29uc3QgYWRhcHRlciBvZiB0aGlzLmFkYXB0ZXJzKSB7XG4gICAgICAgIGNvbnN0IGFkYXB0ZXJOYW1lID0gYWRhcHRlcj8uY29uc3RydWN0b3I/Lm5hbWUgPz8gXCJVbmtub3duQWRhcHRlclwiO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGBSZWdpc3RlcmluZyBvYnNlcnZlciAke29ic2VydmVySWR9IGluIGFkYXB0ZXIgJHthZGFwdGVyTmFtZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhZGFwdGVyLm9ic2VydmUoY2IsIGZpbHRlcik7XG4gICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGBGYWlsZWQgdG8gcmVnaXN0ZXIgb2JzZXJ2ZXIgJHtvYnNlcnZlcklkfSBpbiBhZGFwdGVyICR7YWRhcHRlck5hbWV9OiAke2U/Lm1lc3NhZ2UgfHwgZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgbG9nZ2VyLmRlYnVnKGBDbGVhbmluZyB1cCBTU0Ugb2JzZXJ2ZXIgJHtvYnNlcnZlcklkfWApO1xuXG4gICAgICAgIGZvciAoY29uc3QgYWRhcHRlciBvZiB0aGlzLmFkYXB0ZXJzKSB7XG4gICAgICAgICAgY29uc3QgYWRhcHRlck5hbWUgPSBhZGFwdGVyPy5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyBcIlVua25vd25BZGFwdGVyXCI7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgICAgYFVucmVnaXN0ZXJpbmcgb2JzZXJ2ZXIgJHtvYnNlcnZlcklkfSBmcm9tIGFkYXB0ZXIgJHthZGFwdGVyTmFtZX1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgYWRhcHRlci51bk9ic2VydmUoY2IpO1xuICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICAgICAgICBgRmFpbGVkIGR1cmluZyBjbGVhbnVwIG9mIG9ic2VydmVyICR7b2JzZXJ2ZXJJZH0gaW4gYWRhcHRlciAke2FkYXB0ZXJOYW1lfTogJHtlPy5tZXNzYWdlIHx8IGV9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN1YnNjcmlwdGlvbk1vZGUpIHtcbiAgICAgICAgICB0aGlzLnJlZ2lzdHJ5LnJlbW92ZShhY3RpdmVTdWJzY3JpYmVySWQpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgSEVBUlRCRUFUX0lOVEVSVkFMX01TID0gMTUwMDA7XG4gICAgY29uc3QgaGVhcnRiZWF0JCA9IGludGVydmFsKEhFQVJUQkVBVF9JTlRFUlZBTF9NUykucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhcIlNlbmRpbmcgaGVhcnRiZWF0XCIpO1xuICAgICAgfSksXG4gICAgICBtYXAoXG4gICAgICAgICgpOiBNZXNzYWdlRXZlbnQgPT4gKHtcbiAgICAgICAgICB0eXBlOiBcImhlYXJ0YmVhdFwiLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHRzOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuXG4gICAgcmV0dXJuIG1lcmdlKGV2ZW50cyQsIGhlYXJ0YmVhdCQpO1xuICB9XG5cbiAgQFNzZShcIi86bW9kZWxcIilcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBsaXN0ZW5Gb3JNb2RlbChAUXVlcnkoXCJtb2RlbFwiKSBtb2RlbDogc3RyaW5nKTogT2JzZXJ2YWJsZTxNZXNzYWdlRXZlbnQ+IHtcbiAgICBjb25zdCBsb2dnZXIgPSBMb2dnaW5nLmZvcihFdmVudHNDb250cm9sbGVyLm5hbWUpO1xuXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPE1lc3NhZ2VFdmVudD4oKG9ic2VydmVyKSA9PiB7XG4gICAgICBjb25zdCBjYiA9IG5ldyAoY2xhc3MgaW1wbGVtZW50cyBPYnNlcnZlciB7XG4gICAgICAgIHJlZnJlc2goLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBvYnNlcnZlci5uZXh0KHsgZGF0YTogYXJncyB9IGFzIGFueSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pKCk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciAoY29uc3QgYWRhcHRlciBvZiB0aGlzLmFkYXB0ZXJzKSB7XG4gICAgICAgICAgYWRhcHRlci5vYnNlcnZlKGNiKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIG9ic2VydmVyLmVycm9yKGBGYWlsZWQgdG8gb2JzZXJ2ZSBldmVudDogJHtlLm1lc3NhZ2UgfHwgZX1gKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGFkYXB0ZXIgb2YgdGhpcy5hZGFwdGVycykge1xuICAgICAgICAgICAgYWRhcHRlci51bk9ic2VydmUoY2IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKGUpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRzQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkV2ZW50c0NvbnRyb2xsZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEosT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUNGLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDO0lBQ3hELElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM3RyxDQUFDLENBQUM7QUFDRixJQUFJLE9BQU8sR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxVQUFVLEVBQUUsU0FBUztJQUNuRSxPQUFPLFVBQVUsTUFBTSxFQUFFLEdBQUcsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUN6RSxDQUFDLENBQUM7QUFDRixJQUFJLGtCQUFrQixDQUFDO0FBQ3ZCLHdEQUFzRDtBQUN0RCxvREFBNEQ7QUFDNUQseUNBQXlDO0FBQ3pDLDJDQUFzRjtBQUN0RiwrQkFBbUQ7QUFDbkQsK0NBQTRDO0FBQzVDLCtDQUFzRjtBQUN0Rix5Q0FBb0Q7QUFDcEQsOENBQTBDO0FBQzFDLHVGQUFpRjtBQUNqRixJQUFJLGdCQUFnQixHQUFHLGtCQUFrQixHQUFHLE1BQU0sZ0JBQWlCLFNBQVEsZ0NBQWU7SUFDdEYsWUFBWSxhQUFhLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRO1FBQ2xELEtBQUssQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxjQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyw4QkFBOEI7SUFDbkcsQ0FBQztJQUNELE1BQU0sQ0FBQyxZQUFZO1FBQ2YsTUFBTSxNQUFNLEdBQUcsaUJBQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hFLElBQUksZ0JBQWdCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksNEJBQW1CLENBQUMsMkRBQTJELENBQUMsQ0FBQztRQUMvRixDQUFDO1FBQ0QsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksaUJBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3hDLE1BQU0sVUFBVSxHQUFHLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDL0UsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsVUFBVSxlQUFlLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMxRixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7Z0JBQ1o7b0JBQ0ksSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7Z0JBQ2pDLENBQUM7Z0JBQ0QsT0FBTyxDQUFDLEdBQUcsSUFBSTtvQkFDWCxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixJQUFJLENBQUMsVUFBVSx5QkFBeUIsQ0FBQyxDQUFDO29CQUN2RSxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO3dCQUMvQixNQUFNLElBQUksR0FBRyxJQUFBLGlDQUFzQixFQUFDLElBQUksQ0FBQyxDQUFDO3dCQUMxQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO3dCQUN6QyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixJQUFJLENBQUMsVUFBVSx5QkFBeUIsQ0FBQyxDQUFDO29CQUMzRSxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDO2FBQ0osQ0FBQyxFQUFFLENBQUM7WUFDTCxNQUFNLE1BQU0sR0FBRyxnQkFBZ0I7Z0JBQzNCLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEtBQUssRUFBRSxFQUFFO29CQUNsQixNQUFNLEtBQUssR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRO3dCQUNuQyxDQUFDLENBQUMsS0FBSzt3QkFDUCxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQztvQkFDOUMsSUFBSSxDQUFDLEtBQUs7d0JBQ04sT0FBTyxLQUFLLENBQUM7b0JBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzVELENBQUM7Z0JBQ0QsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNoQixNQUFNLENBQUMsT0FBTyxDQUFDLHdCQUF3QixVQUFVLFdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGFBQWEsQ0FBQyxDQUFDO1lBQy9GLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLFdBQVcsR0FBRyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksSUFBSSxnQkFBZ0IsQ0FBQztnQkFDbkUsSUFBSSxDQUFDO29CQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLFVBQVUsZUFBZSxXQUFXLEVBQUUsQ0FBQyxDQUFDO29CQUM3RSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDaEMsQ0FBQztnQkFDRCxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUNQLE1BQU0sQ0FBQyxLQUFLLENBQUMsK0JBQStCLFVBQVUsZUFBZSxXQUFXLEtBQUssQ0FBQyxFQUFFLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUN4RyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixDQUFDO1lBQ0wsQ0FBQztZQUNELE9BQU8sR0FBRyxFQUFFO2dCQUNSLE1BQU0sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZELEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNsQyxNQUFNLFdBQVcsR0FBRyxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksSUFBSSxnQkFBZ0IsQ0FBQztvQkFDbkUsSUFBSSxDQUFDO3dCQUNELE1BQU0sQ0FBQyxLQUFLLENBQUMsMEJBQTBCLFVBQVUsaUJBQWlCLFdBQVcsRUFBRSxDQUFDLENBQUM7d0JBQ2pGLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzFCLENBQUM7b0JBQ0QsT0FBTyxDQUFDLEVBQUUsQ0FBQzt3QkFDUCxNQUFNLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxVQUFVLGVBQWUsV0FBVyxLQUFLLENBQUMsRUFBRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDOUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDcEIsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUksZ0JBQWdCLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFDN0MsQ0FBQztZQUNMLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBQSxlQUFRLEVBQUMscUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBQSxlQUFHLEVBQUMsR0FBRyxFQUFFO1lBQzdELE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsRUFBRSxJQUFBLGVBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ1gsSUFBSSxFQUFFLFdBQVc7WUFDakIsSUFBSSxFQUFFO2dCQUNGLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTthQUMvQjtTQUNKLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDTCxPQUFPLElBQUEsWUFBSyxFQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsNkRBQTZEO0lBQzdELGNBQWMsQ0FBQyxLQUFLO1FBQ2hCLE1BQU0sTUFBTSxHQUFHLGlCQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELE9BQU8sSUFBSSxpQkFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDL0IsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO2dCQUNaLE9BQU8sQ0FBQyxHQUFHLElBQUk7b0JBQ1gsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTt3QkFDL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUNsQyxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDO2FBQ0osQ0FBQyxFQUFFLENBQUM7WUFDTCxJQUFJLENBQUM7Z0JBQ0QsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2xDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3hCLENBQUM7WUFDTCxDQUFDO1lBQ0QsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDUCxRQUFRLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakUsQ0FBQztZQUNELE9BQU8sR0FBRyxFQUFFO2dCQUNSLElBQUksQ0FBQztvQkFDRCxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDbEMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDMUIsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE9BQU8sQ0FBQyxFQUFFLENBQUM7b0JBQ1AsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsQ0FBQztZQUNMLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKLENBQUM7QUF1Qk8sNENBQWdCO0FBdEJ6QixVQUFVLENBQUM7SUFDUCxJQUFBLFlBQUcsR0FBRTtJQUNMLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBQSxjQUFLLEVBQUMsY0FBYyxDQUFDLENBQUM7SUFDakMsVUFBVSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUM7SUFDbkMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLGlCQUFVLENBQUM7Q0FDOUMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQy9DLFVBQVUsQ0FBQztJQUNQLElBQUEsWUFBRyxFQUFDLFNBQVMsQ0FBQztJQUNkLDZEQUE2RDs7SUFFN0QsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFBLGNBQUssRUFBQyxPQUFPLENBQUMsQ0FBQztJQUMxQixVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQztJQUNuQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsaUJBQVUsQ0FBQztDQUM5QyxFQUFFLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN2RCwyQkFBQSxnQkFBZ0IsR0FBRyxrQkFBa0IsR0FBRyxVQUFVLENBQUM7SUFDL0MsSUFBQSxtQkFBVSxHQUFFO0lBQ1osT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFBLGVBQU0sRUFBQyx5Q0FBMkIsQ0FBQyxDQUFDO0lBQy9DLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBQSxlQUFNLEVBQUMscUNBQXVCLENBQUMsQ0FBQztJQUMzQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyw4QkFBbUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLDhEQUE0QixDQUFDLENBQUM7Q0FDdEcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBRXJCLDA3Y0FBMDdjIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fZGVjb3JhdGUgPSAodGhpcyAmJiB0aGlzLl9fZGVjb3JhdGUpIHx8IGZ1bmN0aW9uIChkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XG59O1xudmFyIF9fbWV0YWRhdGEgPSAodGhpcyAmJiB0aGlzLl9fbWV0YWRhdGEpIHx8IGZ1bmN0aW9uIChrLCB2KSB7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKGssIHYpO1xufTtcbnZhciBfX3BhcmFtID0gKHRoaXMgJiYgdGhpcy5fX3BhcmFtKSB8fCBmdW5jdGlvbiAocGFyYW1JbmRleCwgZGVjb3JhdG9yKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XG59O1xudmFyIEV2ZW50c0NvbnRyb2xsZXJfMTtcbmltcG9ydCB7IERlY2FmQ29udHJvbGxlciB9IGZyb20gXCIuLy4uL2NvbnRyb2xsZXJzLmpzXCI7XG5pbXBvcnQgeyBEZWNhZlJlcXVlc3RDb250ZXh0IH0gZnJvbSBcIi4vLi4vcmVxdWVzdC9pbmRleC5qc1wiO1xuaW1wb3J0IHsgQWRhcHRlciB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQmFkUmVxdWVzdEV4Y2VwdGlvbiwgQ29udHJvbGxlciwgSW5qZWN0LCBRdWVyeSwgU3NlLCB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgaW50ZXJ2YWwsIG1lcmdlLCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IExvZ2dpbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcbmltcG9ydCB7IExJU1RFTklOR19BREFQVEVSU19GTEFWT1VSUywgT0JTRVJWRVJfRVZFTlRTX09QVElPTlMsIH0gZnJvbSBcIi4vY29uc3RhbnQuanNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZUV2ZW50UmVzcG9uc2UgfSBmcm9tIFwiLi91dGlscy5qc1wiO1xuaW1wb3J0IHsgbWFwLCB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IE9ic2VydmVyU3Vic2NyaXB0aW9uUmVnaXN0cnkgfSBmcm9tIFwiLi9PYnNlcnZlclN1YnNjcmlwdGlvblJlZ2lzdHJ5LmpzXCI7XG5sZXQgRXZlbnRzQ29udHJvbGxlciA9IEV2ZW50c0NvbnRyb2xsZXJfMSA9IGNsYXNzIEV2ZW50c0NvbnRyb2xsZXIgZXh0ZW5kcyBEZWNhZkNvbnRyb2xsZXIge1xuICAgIGNvbnN0cnVjdG9yKGNsaWVudENvbnRleHQsIGZsYXZvdXJzLCBvcHRpb25zLCByZWdpc3RyeSkge1xuICAgICAgICBzdXBlcihjbGllbnRDb250ZXh0LCBFdmVudHNDb250cm9sbGVyXzEubmFtZSk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMucmVnaXN0cnkgPSByZWdpc3RyeTtcbiAgICAgICAgdGhpcy5hZGFwdGVycyA9IGZsYXZvdXJzLm1hcCgoZmxhdm91cikgPT4gQWRhcHRlci5nZXQoZmxhdm91cikpOyAvLyBjaGFuZ2UgdG8gQWRhcHRlci5jYWNoZShcIlwiKVxuICAgIH1cbiAgICBsaXN0ZW4oc3Vic2NyaWJlcklkKSB7XG4gICAgICAgIGNvbnN0IGxvZ2dlciA9IExvZ2dpbmcuZm9yKEV2ZW50c0NvbnRyb2xsZXJfMS5uYW1lKTtcbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uTW9kZSA9IEJvb2xlYW4odGhpcy5vcHRpb25zLnN1YnNjcmlwdGlvbk1vZGUpO1xuICAgICAgICBpZiAoc3Vic2NyaXB0aW9uTW9kZSAmJiAhc3Vic2NyaWJlcklkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEV4Y2VwdGlvbihcInN1YnNjcmliZXJJZCBpcyByZXF1aXJlZCB3aGVuIHN1YnNjcmlwdGlvbk1vZGUgaXMgZW5hYmxlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RpdmVTdWJzY3JpYmVySWQgPSBzdWJzY3JpYmVySWQgPz8gXCJcIjtcbiAgICAgICAgY29uc3QgZXZlbnRzJCA9IG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXJJZCA9IGBCLSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwgOCl9YC50b1VwcGVyQ2FzZSgpO1xuICAgICAgICAgICAgbG9nZ2VyLmluZm8oYENyZWF0aW5nIFNTRSBvYnNlcnZlcjogJHtvYnNlcnZlcklkfSBmb3IgY2xpZW50ICR7dGhpcy5jbGllbnRDb250ZXh0LnV1aWR9YCk7XG4gICAgICAgICAgICBjb25zdCBjYiA9IG5ldyAoY2xhc3Mge1xuICAgICAgICAgICAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9ic2VydmVySWQgPSBvYnNlcnZlcklkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZWZyZXNoKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKGBTU0Ugb2JzZXJ2ZXIgJHt0aGlzLm9ic2VydmVySWR9IHJlY2VpdmVkIHJlZnJlc2ggZXZlbnRgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG5vcm1hbGl6ZUV2ZW50UmVzcG9uc2UoYXJncyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHsgdHlwZTogXCJtZXNzYWdlXCIsIGRhdGEgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYFNTRSBvYnNlcnZlciAke3RoaXMub2JzZXJ2ZXJJZH0gZXZlbnQgcHVzaGVkIHRvIGNsaWVudGApO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSgpO1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0gc3Vic2NyaXB0aW9uTW9kZVxuICAgICAgICAgICAgICAgID8gKG1vZGVsLCAuLi5fYXJncykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b3BpYyA9IHR5cGVvZiBtb2RlbCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPyBtb2RlbFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBtb2RlbD8ubmFtZSA/PyBtb2RlbD8uY29uc3RydWN0b3I/Lm5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdG9waWMpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlZ2lzdHJ5Lm1hdGNoZXMoYWN0aXZlU3Vic2NyaWJlcklkLCB0b3BpYyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgbG9nZ2VyLnZlcmJvc2UoYFJlZ2lzdGVyaW5nIG9ic2VydmVyICR7b2JzZXJ2ZXJJZH0gYWNyb3NzICR7dGhpcy5hZGFwdGVycy5sZW5ndGh9IGFkYXB0ZXIocylgKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgYWRhcHRlciBvZiB0aGlzLmFkYXB0ZXJzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWRhcHRlck5hbWUgPSBhZGFwdGVyPy5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyBcIlVua25vd25BZGFwdGVyXCI7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKGBSZWdpc3RlcmluZyBvYnNlcnZlciAke29ic2VydmVySWR9IGluIGFkYXB0ZXIgJHthZGFwdGVyTmFtZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgYWRhcHRlci5vYnNlcnZlKGNiLCBmaWx0ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYEZhaWxlZCB0byByZWdpc3RlciBvYnNlcnZlciAke29ic2VydmVySWR9IGluIGFkYXB0ZXIgJHthZGFwdGVyTmFtZX06ICR7ZT8ubWVzc2FnZSB8fCBlfWApO1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYENsZWFuaW5nIHVwIFNTRSBvYnNlcnZlciAke29ic2VydmVySWR9YCk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBhZGFwdGVyIG9mIHRoaXMuYWRhcHRlcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHRlck5hbWUgPSBhZGFwdGVyPy5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyBcIlVua25vd25BZGFwdGVyXCI7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYFVucmVnaXN0ZXJpbmcgb2JzZXJ2ZXIgJHtvYnNlcnZlcklkfSBmcm9tIGFkYXB0ZXIgJHthZGFwdGVyTmFtZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkYXB0ZXIudW5PYnNlcnZlKGNiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKGBGYWlsZWQgZHVyaW5nIGNsZWFudXAgb2Ygb2JzZXJ2ZXIgJHtvYnNlcnZlcklkfSBpbiBhZGFwdGVyICR7YWRhcHRlck5hbWV9OiAke2U/Lm1lc3NhZ2UgfHwgZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoc3Vic2NyaXB0aW9uTW9kZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2lzdHJ5LnJlbW92ZShhY3RpdmVTdWJzY3JpYmVySWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBIRUFSVEJFQVRfSU5URVJWQUxfTVMgPSAxNTAwMDtcbiAgICAgICAgY29uc3QgaGVhcnRiZWF0JCA9IGludGVydmFsKEhFQVJUQkVBVF9JTlRFUlZBTF9NUykucGlwZSh0YXAoKCkgPT4ge1xuICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKFwiU2VuZGluZyBoZWFydGJlYXRcIik7XG4gICAgICAgIH0pLCBtYXAoKCkgPT4gKHtcbiAgICAgICAgICAgIHR5cGU6IFwiaGVhcnRiZWF0XCIsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgdHM6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pKSk7XG4gICAgICAgIHJldHVybiBtZXJnZShldmVudHMkLCBoZWFydGJlYXQkKTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGxpc3RlbkZvck1vZGVsKG1vZGVsKSB7XG4gICAgICAgIGNvbnN0IGxvZ2dlciA9IExvZ2dpbmcuZm9yKEV2ZW50c0NvbnRyb2xsZXJfMS5uYW1lKTtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2IgPSBuZXcgKGNsYXNzIHtcbiAgICAgICAgICAgICAgICByZWZyZXNoKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh7IGRhdGE6IGFyZ3MgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKCk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYWRhcHRlciBvZiB0aGlzLmFkYXB0ZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgIGFkYXB0ZXIub2JzZXJ2ZShjYik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihgRmFpbGVkIHRvIG9ic2VydmUgZXZlbnQ6ICR7ZS5tZXNzYWdlIHx8IGV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYWRhcHRlciBvZiB0aGlzLmFkYXB0ZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGFwdGVyLnVuT2JzZXJ2ZShjYik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5fX2RlY29yYXRlKFtcbiAgICBTc2UoKSxcbiAgICBfX3BhcmFtKDAsIFF1ZXJ5KFwic3Vic2NyaWJlcklkXCIpKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbU3RyaW5nXSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIE9ic2VydmFibGUpXG5dLCBFdmVudHNDb250cm9sbGVyLnByb3RvdHlwZSwgXCJsaXN0ZW5cIiwgbnVsbCk7XG5fX2RlY29yYXRlKFtcbiAgICBTc2UoXCIvOm1vZGVsXCIpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICxcbiAgICBfX3BhcmFtKDAsIFF1ZXJ5KFwibW9kZWxcIikpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtTdHJpbmddKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgT2JzZXJ2YWJsZSlcbl0sIEV2ZW50c0NvbnRyb2xsZXIucHJvdG90eXBlLCBcImxpc3RlbkZvck1vZGVsXCIsIG51bGwpO1xuRXZlbnRzQ29udHJvbGxlciA9IEV2ZW50c0NvbnRyb2xsZXJfMSA9IF9fZGVjb3JhdGUoW1xuICAgIENvbnRyb2xsZXIoKSxcbiAgICBfX3BhcmFtKDEsIEluamVjdChMSVNURU5JTkdfQURBUFRFUlNfRkxBVk9VUlMpKSxcbiAgICBfX3BhcmFtKDIsIEluamVjdChPQlNFUlZFUl9FVkVOVFNfT1BUSU9OUykpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbRGVjYWZSZXF1ZXN0Q29udGV4dCwgQXJyYXksIE9iamVjdCwgT2JzZXJ2ZXJTdWJzY3JpcHRpb25SZWdpc3RyeV0pXG5dLCBFdmVudHNDb250cm9sbGVyKTtcbmV4cG9ydCB7IEV2ZW50c0NvbnRyb2xsZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVJYWmxiblJ6UTI5dWRISnZiR3hsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMM055WXk5bGRtVnVkSE10Ylc5a2RXeGxMMFYyWlc1MGMwTnZiblJ5YjJ4c1pYSXVkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJanM3T3pzN096czdPenM3T3p0QlFVRkJMRTlCUVU4c1JVRkJSU3hsUVVGbExFVkJRVVVzTkVKQlFYVkNPMEZCUTJwRUxFOUJRVThzUlVGQlJTeHRRa0ZCYlVJc1JVRkJSU3c0UWtGQmJVSTdRVUZEYWtRc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGQk5FSXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU51UlN4UFFVRlBMRVZCUTB3c2JVSkJRVzFDTEVWQlEyNUNMRlZCUVZVc1JVRkRWaXhOUVVGTkxFVkJSVTRzUzBGQlN5eEZRVU5NTEVkQlFVY3NSMEZEU2l4TlFVRk5MR2RDUVVGblFpeERRVUZETzBGQlEzaENMRTlCUVU4c1JVRkJSU3hSUVVGUkxFVkJRVVVzUzBGQlN5eEZRVUZGTEZWQlFWVXNSVUZCUlN4TlFVRk5MRTFCUVUwc1EwRkJRenRCUVVOdVJDeFBRVUZQTEVWQlFVVXNUMEZCVHl4RlFVRkZMRTFCUVUwc2JVSkJRVzFDTEVOQlFVTTdRVUZETlVNc1QwRkJUeXhGUVVOTUxESkNRVUV5UWl4RlFVTXpRaXgxUWtGQmRVSXNSMEZEZUVJc2MwSkJRVzFDTzBGQlJYQkNMRTlCUVU4c1JVRkJSU3h6UWtGQmMwSXNSVUZCUlN4dFFrRkJaMEk3UVVGRGFrUXNUMEZCVHl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFVkJRVVVzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVVNeFF5eFBRVUZQTEVWQlFVVXNORUpCUVRSQ0xFVkJRVVVzTUVOQlFYVkRPMEZCU1haRkxFbEJRVTBzWjBKQlFXZENMSGRDUVVGMFFpeE5RVUZOTEdkQ1FVRnBRaXhUUVVGUkxHVkJRU3RDTzBsQlIyNUZMRmxCUTBVc1lVRkJhME1zUlVGRFJ5eFJRVUZyUWl4RlFVTk1MRTlCUVRoQ0xFVkJReTlFTEZGQlFYTkRPMUZCUlhaRUxFdEJRVXNzUTBGQlF5eGhRVUZoTEVWQlFVVXNhMEpCUVdkQ0xFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZJVFN4WlFVRlBMRWRCUVZBc1QwRkJUeXhEUVVGMVFqdFJRVU12UkN4aFFVRlJMRWRCUVZJc1VVRkJVU3hEUVVFNFFqdFJRVWQyUkN4SlFVRkpMRU5CUVVNc1VVRkJVU3hIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hEUVVGRkxFOUJRV1VzUTBGQlF5eEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExEaENRVUU0UWp0SlFVTXhSeXhEUVVGRE8wbEJSMFFzVFVGQlRTeERRVUYzUWl4WlFVRnhRanRSUVVOcVJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExHdENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRMnhFTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0UlFVTm9SU3hKUVVGSkxHZENRVUZuUWl4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRkxFTkJRVU03V1VGRGRFTXNUVUZCVFN4SlFVRkpMRzFDUVVGdFFpeERRVU16UWl3eVJFRkJNa1FzUTBGRE5VUXNRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkRSQ3hOUVVGTkxHdENRVUZyUWl4SFFVRkhMRmxCUVZrc1NVRkJTU3hGUVVGRkxFTkJRVU03VVVGRk9VTXNUVUZCVFN4UFFVRlBMRWRCUVVjc1NVRkJTU3hWUVVGVkxFTkJRV1VzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUlR0WlFVTjRSQ3hOUVVGTkxGVkJRVlVzUjBGRFpDeExRVUZMTEVsQlFVa3NRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUlVGQlJTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMWxCUlRsRUxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlExUXNNRUpCUVRCQ0xGVkJRVlVzWlVGQlpTeEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVNM1JTeERRVUZETzFsQlEwWXNUVUZCVFN4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRE8yZENRVUZCTzI5Q1FVTmtMR1ZCUVZVc1IwRkJSeXhWUVVGVkxFTkJRVU03WjBKQllURkNMRU5CUVVNN1owSkJXa01zVDBGQlR5eERRVUZETEVkQlFVY3NTVUZCVnp0dlFrRkRjRUlzVFVGQlRTeERRVUZETEV0QlFVc3NRMEZEVml4blFrRkJaMElzU1VGQlNTeERRVUZETEZWQlFWVXNlVUpCUVhsQ0xFTkJRM3BFTEVOQlFVTTdiMEpCUTBZc1QwRkJUeXhQUVVGUExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1JVRkJSVHQzUWtGRGFrTXNUVUZCVFN4SlFVRkpMRWRCUVVjc2MwSkJRWE5DTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN2QwSkJRekZETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hKUVVGSkxFVkJRVVVzVTBGQlV5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN2QwSkJRM3BETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUTFZc1owSkJRV2RDTEVsQlFVa3NRMEZCUXl4VlFVRlZMSGxDUVVGNVFpeERRVU42UkN4RFFVRkRPMjlDUVVOS0xFTkJRVU1zUTBGQlF5eERRVUZETzJkQ1FVTk1MRU5CUVVNN1lVRkRSaXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU5NTEUxQlFVMHNUVUZCVFN4SFFVRXJRaXhuUWtGQlowSTdaMEpCUTNwRUxFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFYZENMRVZCUVVVc1IwRkJSeXhMUVVGWkxFVkJRVVVzUlVGQlJUdHZRa0ZETlVNc1RVRkJUU3hMUVVGTExFZEJRMVFzVDBGQlR5eExRVUZMTEV0QlFVc3NVVUZCVVR0M1FrRkRka0lzUTBGQlF5eERRVUZETEV0QlFVczdkMEpCUTFBc1EwRkJReXhEUVVGRkxFdEJRV0VzUlVGQlJTeEpRVUZKTEVsQlFVc3NTMEZCWVN4RlFVRkZMRmRCUVZjc1JVRkJSU3hKUVVGSkxFTkJRVU03YjBKQlEyaEZMRWxCUVVrc1EwRkJReXhMUVVGTE8zZENRVUZGTEU5QlFVOHNTMEZCU3l4RFFVRkRPMjlDUVVONlFpeFBRVUZQTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExHdENRVUZyUWl4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8yZENRVU14UkN4RFFVRkRPMmRDUVVOSUxFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTTdXVUZGWkN4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVOYUxIZENRVUYzUWl4VlFVRlZMRmRCUVZjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEdGQlFXRXNRMEZETDBVc1EwRkJRenRaUVVOR0xFdEJRVXNzVFVGQlRTeFBRVUZQTEVsQlFVa3NTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8yZENRVU53UXl4TlFVRk5MRmRCUVZjc1IwRkJSeXhQUVVGUExFVkJRVVVzVjBGQlZ5eEZRVUZGTEVsQlFVa3NTVUZCU1N4blFrRkJaMElzUTBGQlF6dG5Ra0ZEYmtVc1NVRkJTU3hEUVVGRE8yOUNRVU5JTEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUTFZc2QwSkJRWGRDTEZWQlFWVXNaVUZCWlN4WFFVRlhMRVZCUVVVc1EwRkRMMFFzUTBGQlF6dHZRa0ZEUml4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXp0blFrRkRPVUlzUTBGQlF6dG5Ra0ZCUXl4UFFVRlBMRU5CUVUwc1JVRkJSU3hEUVVGRE8yOUNRVU5vUWl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVOV0xDdENRVUVyUWl4VlFVRlZMR1ZCUVdVc1YwRkJWeXhMUVVGTExFTkJRVU1zUlVGQlJTeFBRVUZQTEVsQlFVa3NRMEZCUXl4RlFVRkZMRU5CUXpGR0xFTkJRVU03YjBKQlEwWXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dG5Ra0ZEYkVJc1EwRkJRenRaUVVOSUxFTkJRVU03V1VGRlJDeFBRVUZQTEVkQlFVY3NSVUZCUlR0blFrRkRWaXhOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETERSQ1FVRTBRaXhWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzJkQ1FVVjJSQ3hMUVVGTExFMUJRVTBzVDBGQlR5eEpRVUZKTEVsQlFVa3NRMEZCUXl4UlFVRlJMRVZCUVVVc1EwRkJRenR2UWtGRGNFTXNUVUZCVFN4WFFVRlhMRWRCUVVjc1QwRkJUeXhGUVVGRkxGZEJRVmNzUlVGQlJTeEpRVUZKTEVsQlFVa3NaMEpCUVdkQ0xFTkJRVU03YjBKQlEyNUZMRWxCUVVrc1EwRkJRenQzUWtGRFNDeE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVTldMREJDUVVFd1FpeFZRVUZWTEdsQ1FVRnBRaXhYUVVGWExFVkJRVVVzUTBGRGJrVXNRMEZCUXp0M1FrRkRSaXhQUVVGUExFTkJRVU1zVTBGQlV5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMjlDUVVONFFpeERRVUZETzI5Q1FVRkRMRTlCUVU4c1EwRkJUU3hGUVVGRkxFTkJRVU03ZDBKQlEyaENMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRMVlzY1VOQlFYRkRMRlZCUVZVc1pVRkJaU3hYUVVGWExFdEJRVXNzUTBGQlF5eEZRVUZGTEU5QlFVOHNTVUZCU1N4RFFVRkRMRVZCUVVVc1EwRkRhRWNzUTBGQlF6dDNRa0ZEUml4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETzI5Q1FVTnNRaXhEUVVGRE8yZENRVU5JTEVOQlFVTTdaMEpCUTBRc1NVRkJTU3huUWtGQlowSXNSVUZCUlN4RFFVRkRPMjlDUVVOeVFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhyUWtGQmEwSXNRMEZCUXl4RFFVRkRPMmRDUVVNelF5eERRVUZETzFsQlEwZ3NRMEZCUXl4RFFVRkRPMUZCUTBvc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRlNDeE5RVUZOTEhGQ1FVRnhRaXhIUVVGSExFdEJRVXNzUTBGQlF6dFJRVU53UXl4TlFVRk5MRlZCUVZVc1IwRkJSeXhSUVVGUkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRM0pFTEVkQlFVY3NRMEZCUXl4SFFVRkhMRVZCUVVVN1dVRkRVQ3hOUVVGTkxFTkJRVU1zUzBGQlN5eERRVUZETEcxQ1FVRnRRaXhEUVVGRExFTkJRVU03VVVGRGNFTXNRMEZCUXl4RFFVRkRMRVZCUTBZc1IwRkJSeXhEUVVORUxFZEJRV2xDTEVWQlFVVXNRMEZCUXl4RFFVRkRPMWxCUTI1Q0xFbEJRVWtzUlVGQlJTeFhRVUZYTzFsQlEycENMRWxCUVVrc1JVRkJSVHRuUWtGRFNpeEZRVUZGTEVWQlFVVXNTVUZCU1N4SlFVRkpMRVZCUVVVc1EwRkJReXhYUVVGWExFVkJRVVU3WVVGRE4wSTdVMEZEUml4RFFVRkRMRU5CUTBnc1EwRkRSaXhEUVVGRE8xRkJSVVlzVDBGQlR5eExRVUZMTEVOQlFVTXNUMEZCVHl4RlFVRkZMRlZCUVZVc1EwRkJReXhEUVVGRE8wbEJRM0JETEVOQlFVTTdTVUZKUkN4QlFVUkJMRFpFUVVFMlJEdEpRVU0zUkN4alFVRmpMRU5CUVdsQ0xFdEJRV0U3VVVGRE1VTXNUVUZCVFN4TlFVRk5MRWRCUVVjc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eHJRa0ZCWjBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVVZzUkN4UFFVRlBMRWxCUVVrc1ZVRkJWU3hEUVVGbExFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVVTdXVUZETDBNc1RVRkJUU3hGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETzJkQ1FVTmtMRTlCUVU4c1EwRkJReXhIUVVGSExFbEJRVmM3YjBKQlEzQkNMRTlCUVU4c1QwRkJUeXhEUVVGRExFOUJRVThzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRVZCUVVVN2QwSkJRMnBETEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNc1JVRkJSU3hKUVVGSkxFVkJRVVVzU1VGQlNTeEZRVUZUTEVOQlFVTXNRMEZCUXp0dlFrRkRka01zUTBGQlF5eERRVUZETEVOQlFVTTdaMEpCUTB3c1EwRkJRenRoUVVOR0xFTkJRVU1zUlVGQlJTeERRVUZETzFsQlJVd3NTVUZCU1N4RFFVRkRPMmRDUVVOSUxFdEJRVXNzVFVGQlRTeFBRVUZQTEVsQlFVa3NTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8yOUNRVU53UXl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzJkQ1FVTjBRaXhEUVVGRE8xbEJRMGdzUTBGQlF6dFpRVUZETEU5QlFVOHNRMEZCVFN4RlFVRkZMRU5CUVVNN1owSkJRMmhDTEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc05FSkJRVFJDTEVOQlFVTXNRMEZCUXl4UFFVRlBMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dFpRVU12UkN4RFFVRkRPMWxCUlVRc1QwRkJUeXhIUVVGSExFVkJRVVU3WjBKQlExWXNTVUZCU1N4RFFVRkRPMjlDUVVOSUxFdEJRVXNzVFVGQlRTeFBRVUZQTEVsQlFVa3NTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8zZENRVU53UXl4UFFVRlBMRU5CUVVNc1UwRkJVeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzI5Q1FVTjRRaXhEUVVGRE8yZENRVU5JTEVOQlFVTTdaMEpCUVVNc1QwRkJUeXhEUVVGTkxFVkJRVVVzUTBGQlF6dHZRa0ZEYUVJc1RVRkJUU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0blFrRkRiRUlzUTBGQlF6dFpRVU5JTEVOQlFVTXNRMEZCUXp0UlFVTktMRU5CUVVNc1EwRkJReXhEUVVGRE8wbEJRMHdzUTBGQlF6dERRVU5HTEVOQlFVRTdRVUYyU1VNN1NVRkVReXhIUVVGSExFVkJRVVU3U1VGRFJTeFhRVUZCTEV0QlFVc3NRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJRVHM3TzI5RFFVRjVRaXhWUVVGVk96aERRVzlITDBRN1FVRkpSRHRKUVVaRExFZEJRVWNzUTBGQlF5eFRRVUZUTEVOQlFVTTdTVUZEWml3MlJFRkJOa1E3TzBsQlF6ZERMRmRCUVVFc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZCT3pzN2IwTkJRV2xDTEZWQlFWVTdjMFJCT0VKNFJEdEJRWEJLVlN4blFrRkJaMEk3U1VGRU5VSXNWVUZCVlN4RlFVRkZPMGxCVFZJc1YwRkJRU3hOUVVGTkxFTkJRVU1zTWtKQlFUSkNMRU5CUVVNc1EwRkJRVHRKUVVOdVF5eFhRVUZCTEUxQlFVMHNRMEZCUXl4MVFrRkJkVUlzUTBGQlF5eERRVUZCTzNGRFFVWnFRaXh0UWtGQmJVSXNhVUpCUjFBc05FSkJRVFJDTzBkQlVEbERMR2RDUVVGblFpeERRWEZLTlVJaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2V5QkVaV05oWmtOdmJuUnliMnhzWlhJZ2ZTQm1jbTl0SUZ3aUxpNHZZMjl1ZEhKdmJHeGxjbk5jSWp0Y2JtbHRjRzl5ZENCN0lFUmxZMkZtVW1WeGRXVnpkRU52Ym5SbGVIUWdmU0JtY205dElGd2lMaTR2Y21WeGRXVnpkRndpTzF4dWFXMXdiM0owSUhzZ1FXUmhjSFJsY2l3Z1QySnpaWEoyWlhJc0lFOWljMlZ5ZG1WeVJtbHNkR1Z5SUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQkNZV1JTWlhGMVpYTjBSWGhqWlhCMGFXOXVMRnh1SUNCRGIyNTBjbTlzYkdWeUxGeHVJQ0JKYm1wbFkzUXNYRzRnSUUxbGMzTmhaMlZGZG1WdWRDeGNiaUFnVVhWbGNua3NYRzRnSUZOelpTeGNibjBnWm5KdmJTQmNJa0J1WlhOMGFuTXZZMjl0Ylc5dVhDSTdYRzVwYlhCdmNuUWdleUJwYm5SbGNuWmhiQ3dnYldWeVoyVXNJRTlpYzJWeWRtRmliR1VnZlNCbWNtOXRJRndpY25ocWMxd2lPMXh1YVcxd2IzSjBJSHNnVEc5bloybHVaeUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12Ykc5bloybHVaMXdpTzF4dWFXMXdiM0owSUh0Y2JpQWdURWxUVkVWT1NVNUhYMEZFUVZCVVJWSlRYMFpNUVZaUFZWSlRMRnh1SUNCUFFsTkZVbFpGVWw5RlZrVk9WRk5mVDFCVVNVOU9VeXhjYm4wZ1puSnZiU0JjSWk0dlkyOXVjM1JoYm5SY0lqdGNibWx0Y0c5eWRDQjdJRVJsWTJGbVUyVnlkbVZ5UTNSNElIMGdabkp2YlNCY0lpNHVMMk52Ym5OMFlXNTBjMXdpTzF4dWFXMXdiM0owSUhzZ2JtOXliV0ZzYVhwbFJYWmxiblJTWlhOd2IyNXpaU0I5SUdaeWIyMGdYQ0l1TDNWMGFXeHpYQ0k3WEc1cGJYQnZjblFnZXlCdFlYQXNJSFJoY0NCOUlHWnliMjBnWENKeWVHcHpMMjl3WlhKaGRHOXljMXdpTzF4dWFXMXdiM0owSUhzZ1QySnpaWEoyWlhKVGRXSnpZM0pwY0hScGIyNVNaV2RwYzNSeWVTQjlJR1p5YjIwZ1hDSXVMMDlpYzJWeWRtVnlVM1ZpYzJOeWFYQjBhVzl1VW1WbmFYTjBjbmxjSWp0Y2JtbHRjRzl5ZENCMGVYQmxJSHNnVDJKelpYSjJaWEpGZG1WdWRITlBjSFJwYjI1eklIMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVjYmtCRGIyNTBjbTlzYkdWeUtDbGNibVY0Y0c5eWRDQmpiR0Z6Y3lCRmRtVnVkSE5EYjI1MGNtOXNiR1Z5SUdWNGRHVnVaSE1nUkdWallXWkRiMjUwY205c2JHVnlQRVJsWTJGbVUyVnlkbVZ5UTNSNFBpQjdYRzRnSUhCeWFYWmhkR1VnY21WaFpHOXViSGtnWVdSaGNIUmxjbk02SUVGa1lYQjBaWEk4WVc1NUxDQmhibmtzSUdGdWVTd2dZVzU1UGx0ZE8xeHVYRzRnSUdOdmJuTjBjblZqZEc5eUtGeHVJQ0FnSUdOc2FXVnVkRU52Ym5SbGVIUTZJRVJsWTJGbVVtVnhkV1Z6ZEVOdmJuUmxlSFFzWEc0Z0lDQWdRRWx1YW1WamRDaE1TVk5VUlU1SlRrZGZRVVJCVUZSRlVsTmZSa3hCVms5VlVsTXBJR1pzWVhadmRYSnpPaUJ6ZEhKcGJtZGJYU3hjYmlBZ0lDQkFTVzVxWldOMEtFOUNVMFZTVmtWU1gwVldSVTVVVTE5UFVGUkpUMDVUS1NCd2NtbDJZWFJsSUhKbFlXUnZibXg1SUc5d2RHbHZibk02SUU5aWMyVnlkbVZ5UlhabGJuUnpUM0IwYVc5dWN5eGNiaUFnSUNCd2NtbDJZWFJsSUhKbFlXUnZibXg1SUhKbFoybHpkSEo1T2lCUFluTmxjblpsY2xOMVluTmpjbWx3ZEdsdmJsSmxaMmx6ZEhKNVhHNGdJQ2tnZTF4dUlDQWdJSE4xY0dWeUtHTnNhV1Z1ZEVOdmJuUmxlSFFzSUVWMlpXNTBjME52Ym5SeWIyeHNaWEl1Ym1GdFpTazdYRzRnSUNBZ2RHaHBjeTVoWkdGd2RHVnljeUE5SUdac1lYWnZkWEp6TG0xaGNDZ29abXhoZG05MWNpa2dQVDRnS0VGa1lYQjBaWElnWVhNZ1lXNTVLUzVuWlhRb1pteGhkbTkxY2lrcE95QXZMeUJqYUdGdVoyVWdkRzhnUVdSaGNIUmxjaTVqWVdOb1pTaGNJbHdpS1Z4dUlDQjlYRzVjYmlBZ1FGTnpaU2dwWEc0Z0lHeHBjM1JsYmloQVVYVmxjbmtvWENKemRXSnpZM0pwWW1WeVNXUmNJaWtnYzNWaWMyTnlhV0psY2tsa1B6b2djM1J5YVc1bktUb2dUMkp6WlhKMllXSnNaVHhOWlhOellXZGxSWFpsYm5RK0lIdGNiaUFnSUNCamIyNXpkQ0JzYjJkblpYSWdQU0JNYjJkbmFXNW5MbVp2Y2loRmRtVnVkSE5EYjI1MGNtOXNiR1Z5TG01aGJXVXBPMXh1SUNBZ0lHTnZibk4wSUhOMVluTmpjbWx3ZEdsdmJrMXZaR1VnUFNCQ2IyOXNaV0Z1S0hSb2FYTXViM0IwYVc5dWN5NXpkV0p6WTNKcGNIUnBiMjVOYjJSbEtUdGNiaUFnSUNCcFppQW9jM1ZpYzJOeWFYQjBhVzl1VFc5a1pTQW1KaUFoYzNWaWMyTnlhV0psY2tsa0tTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dRbUZrVW1WeGRXVnpkRVY0WTJWd2RHbHZiaWhjYmlBZ0lDQWdJQ0FnWENKemRXSnpZM0pwWW1WeVNXUWdhWE1nY21WeGRXbHlaV1FnZDJobGJpQnpkV0p6WTNKcGNIUnBiMjVOYjJSbElHbHpJR1Z1WVdKc1pXUmNJbHh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzRnSUNBZ1kyOXVjM1FnWVdOMGFYWmxVM1ZpYzJOeWFXSmxja2xrSUQwZ2MzVmljMk55YVdKbGNrbGtJRDgvSUZ3aVhDSTdYRzVjYmlBZ0lDQmpiMjV6ZENCbGRtVnVkSE1rSUQwZ2JtVjNJRTlpYzJWeWRtRmliR1U4VFdWemMyRm5aVVYyWlc1MFBpZ29iMkp6WlhKMlpYSXBJRDArSUh0Y2JpQWdJQ0FnSUdOdmJuTjBJRzlpYzJWeWRtVnlTV1FnUFZ4dUlDQWdJQ0FnSUNCZ1FpMGtlMDFoZEdndWNtRnVaRzl0S0NrdWRHOVRkSEpwYm1jb016WXBMbk5zYVdObEtESXNJRGdwZldBdWRHOVZjSEJsY2tOaGMyVW9LVHRjYmx4dUlDQWdJQ0FnYkc5bloyVnlMbWx1Wm04b1hHNGdJQ0FnSUNBZ0lHQkRjbVZoZEdsdVp5QlRVMFVnYjJKelpYSjJaWEk2SUNSN2IySnpaWEoyWlhKSlpIMGdabTl5SUdOc2FXVnVkQ0FrZTNSb2FYTXVZMnhwWlc1MFEyOXVkR1Y0ZEM1MWRXbGtmV0JjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0JqYjI1emRDQmpZaUE5SUc1bGR5QW9ZMnhoYzNNZ2FXMXdiR1Z0Wlc1MGN5QlBZbk5sY25abGNpQjdYRzRnSUNBZ0lDQWdJRzlpYzJWeWRtVnlTV1FnUFNCdlluTmxjblpsY2tsa08xeHVJQ0FnSUNBZ0lDQnlaV1p5WlhOb0tDNHVMbUZ5WjNNNklHRnVlVnRkS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdJQ0FnSUNBZ2JHOW5aMlZ5TG1SbFluVm5LRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lGTlRSU0J2WW5ObGNuWmxjaUFrZTNSb2FYTXViMkp6WlhKMlpYSkpaSDBnY21WalpXbDJaV1FnY21WbWNtVnphQ0JsZG1WdWRHQmNiaUFnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCUWNtOXRhWE5sTG5KbGMyOXNkbVVvS1M1MGFHVnVLQ2dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR1JoZEdFZ1BTQnViM0p0WVd4cGVtVkZkbVZ1ZEZKbGMzQnZibk5sS0dGeVozTXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2IySnpaWEoyWlhJdWJtVjRkQ2g3SUhSNWNHVTZJRndpYldWemMyRm5aVndpTENCa1lYUmhJSDBwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdiRzluWjJWeUxtUmxZblZuS0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0JnVTFORklHOWljMlZ5ZG1WeUlDUjdkR2hwY3k1dlluTmxjblpsY2tsa2ZTQmxkbVZ1ZENCd2RYTm9aV1FnZEc4Z1kyeHBaVzUwWUZ4dUlDQWdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmU2tvS1R0Y2JpQWdJQ0FnSUdOdmJuTjBJR1pwYkhSbGNqb2dUMkp6WlhKMlpYSkdhV3gwWlhJZ2ZDQjFibVJsWm1sdVpXUWdQU0J6ZFdKelkzSnBjSFJwYjI1TmIyUmxYRzRnSUNBZ0lDQWdJRDhnS0cxdlpHVnNPaUJ6ZEhKcGJtY2dmQ0JHZFc1amRHbHZiaXdnTGk0dVgyRnlaM002SUdGdWVWdGRLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1emRDQjBiM0JwWXlBOVhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhSNWNHVnZaaUJ0YjJSbGJDQTlQVDBnWENKemRISnBibWRjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUQ4Z2JXOWtaV3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0E2SUNodGIyUmxiQ0JoY3lCaGJua3BQeTV1WVcxbElEOC9JQ2h0YjJSbGJDQmhjeUJoYm5rcFB5NWpiMjV6ZEhKMVkzUnZjajh1Ym1GdFpUdGNiaUFnSUNBZ0lDQWdJQ0FnSUdsbUlDZ2hkRzl3YVdNcElISmxkSFZ5YmlCbVlXeHpaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkpsWjJsemRISjVMbTFoZEdOb1pYTW9ZV04wYVhabFUzVmljMk55YVdKbGNrbGtMQ0IwYjNCcFl5azdYRzRnSUNBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNBNklIVnVaR1ZtYVc1bFpEdGNibHh1SUNBZ0lDQWdiRzluWjJWeUxuWmxjbUp2YzJVb1hHNGdJQ0FnSUNBZ0lHQlNaV2RwYzNSbGNtbHVaeUJ2WW5ObGNuWmxjaUFrZTI5aWMyVnlkbVZ5U1dSOUlHRmpjbTl6Y3lBa2UzUm9hWE11WVdSaGNIUmxjbk11YkdWdVozUm9mU0JoWkdGd2RHVnlLSE1wWUZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ1lXUmhjSFJsY2lCdlppQjBhR2x6TG1Ga1lYQjBaWEp6S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUdGa1lYQjBaWEpPWVcxbElEMGdZV1JoY0hSbGNqOHVZMjl1YzNSeWRXTjBiM0kvTG01aGJXVWdQejhnWENKVmJtdHViM2R1UVdSaGNIUmxjbHdpTzF4dUlDQWdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0FnSUd4dloyZGxjaTVrWldKMVp5aGNiaUFnSUNBZ0lDQWdJQ0FnSUdCU1pXZHBjM1JsY21sdVp5QnZZbk5sY25abGNpQWtlMjlpYzJWeWRtVnlTV1I5SUdsdUlHRmtZWEIwWlhJZ0pIdGhaR0Z3ZEdWeVRtRnRaWDFnWEc0Z0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdJQ0JoWkdGd2RHVnlMbTlpYzJWeWRtVW9ZMklzSUdacGJIUmxjaWs3WEc0Z0lDQWdJQ0FnSUgwZ1kyRjBZMmdnS0dVNklHRnVlU2tnZTF4dUlDQWdJQ0FnSUNBZ0lHeHZaMmRsY2k1a1pXSjFaeWhjYmlBZ0lDQWdJQ0FnSUNBZ0lHQkdZV2xzWldRZ2RHOGdjbVZuYVhOMFpYSWdiMkp6WlhKMlpYSWdKSHR2WW5ObGNuWmxja2xrZlNCcGJpQmhaR0Z3ZEdWeUlDUjdZV1JoY0hSbGNrNWhiV1Y5T2lBa2UyVS9MbTFsYzNOaFoyVWdmSHdnWlgxZ1hHNGdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnSUNCc2IyZG5aWEl1WlhKeWIzSW9aU2s3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2NtVjBkWEp1SUNncElEMCtJSHRjYmlBZ0lDQWdJQ0FnYkc5bloyVnlMbVJsWW5WbktHQkRiR1ZoYm1sdVp5QjFjQ0JUVTBVZ2IySnpaWEoyWlhJZ0pIdHZZbk5sY25abGNrbGtmV0FwTzF4dVhHNGdJQ0FnSUNBZ0lHWnZjaUFvWTI5dWMzUWdZV1JoY0hSbGNpQnZaaUIwYUdsekxtRmtZWEIwWlhKektTQjdYRzRnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdZV1JoY0hSbGNrNWhiV1VnUFNCaFpHRndkR1Z5UHk1amIyNXpkSEoxWTNSdmNqOHVibUZ0WlNBL1B5QmNJbFZ1YTI1dmQyNUJaR0Z3ZEdWeVhDSTdYRzRnSUNBZ0lDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUd4dloyZGxjaTVrWldKMVp5aGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ1lGVnVjbVZuYVhOMFpYSnBibWNnYjJKelpYSjJaWElnSkh0dlluTmxjblpsY2tsa2ZTQm1jbTl0SUdGa1lYQjBaWElnSkh0aFpHRndkR1Z5VG1GdFpYMWdYRzRnSUNBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnWVdSaGNIUmxjaTUxYms5aWMyVnlkbVVvWTJJcE8xeHVJQ0FnSUNBZ0lDQWdJSDBnWTJGMFkyZ2dLR1U2SUdGdWVTa2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2JHOW5aMlZ5TG1SbFluVm5LRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQmdSbUZwYkdWa0lHUjFjbWx1WnlCamJHVmhiblZ3SUc5bUlHOWljMlZ5ZG1WeUlDUjdiMkp6WlhKMlpYSkpaSDBnYVc0Z1lXUmhjSFJsY2lBa2UyRmtZWEIwWlhKT1lXMWxmVG9nSkh0bFB5NXRaWE56WVdkbElIeDhJR1Y5WUZ4dUlDQWdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHeHZaMmRsY2k1bGNuSnZjaWhsS1R0Y2JpQWdJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tITjFZbk5qY21sd2RHbHZiazF2WkdVcElIdGNiaUFnSUNBZ0lDQWdJQ0IwYUdsekxuSmxaMmx6ZEhKNUxuSmxiVzkyWlNoaFkzUnBkbVZUZFdKelkzSnBZbVZ5U1dRcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMHBPMXh1WEc0Z0lDQWdZMjl1YzNRZ1NFVkJVbFJDUlVGVVgwbE9WRVZTVmtGTVgwMVRJRDBnTVRVd01EQTdYRzRnSUNBZ1kyOXVjM1FnYUdWaGNuUmlaV0YwSkNBOUlHbHVkR1Z5ZG1Gc0tFaEZRVkpVUWtWQlZGOUpUbFJGVWxaQlRGOU5VeWt1Y0dsd1pTaGNiaUFnSUNBZ0lIUmhjQ2dvS1NBOVBpQjdYRzRnSUNBZ0lDQWdJR3h2WjJkbGNpNWtaV0oxWnloY0lsTmxibVJwYm1jZ2FHVmhjblJpWldGMFhDSXBPMXh1SUNBZ0lDQWdmU2tzWEc0Z0lDQWdJQ0J0WVhBb1hHNGdJQ0FnSUNBZ0lDZ3BPaUJOWlhOellXZGxSWFpsYm5RZ1BUNGdLSHRjYmlBZ0lDQWdJQ0FnSUNCMGVYQmxPaUJjSW1obFlYSjBZbVZoZEZ3aUxGeHVJQ0FnSUNBZ0lDQWdJR1JoZEdFNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhSek9pQnVaWGNnUkdGMFpTZ3BMblJ2U1ZOUFUzUnlhVzVuS0Nrc1hHNGdJQ0FnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnZlNsY2JpQWdJQ0FnSUNsY2JpQWdJQ0FwTzF4dVhHNGdJQ0FnY21WMGRYSnVJRzFsY21kbEtHVjJaVzUwY3lRc0lHaGxZWEowWW1WaGRDUXBPMXh1SUNCOVhHNWNiaUFnUUZOelpTaGNJaTg2Ylc5a1pXeGNJaWxjYmlBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElFQjBlWEJsYzJOeWFYQjBMV1Z6YkdsdWRDOXVieTExYm5WelpXUXRkbUZ5YzF4dUlDQnNhWE4wWlc1R2IzSk5iMlJsYkNoQVVYVmxjbmtvWENKdGIyUmxiRndpS1NCdGIyUmxiRG9nYzNSeWFXNW5LVG9nVDJKelpYSjJZV0pzWlR4TlpYTnpZV2RsUlhabGJuUStJSHRjYmlBZ0lDQmpiMjV6ZENCc2IyZG5aWElnUFNCTWIyZG5hVzVuTG1admNpaEZkbVZ1ZEhORGIyNTBjbTlzYkdWeUxtNWhiV1VwTzF4dVhHNGdJQ0FnY21WMGRYSnVJRzVsZHlCUFluTmxjblpoWW14bFBFMWxjM05oWjJWRmRtVnVkRDRvS0c5aWMyVnlkbVZ5S1NBOVBpQjdYRzRnSUNBZ0lDQmpiMjV6ZENCallpQTlJRzVsZHlBb1kyeGhjM01nYVcxd2JHVnRaVzUwY3lCUFluTmxjblpsY2lCN1hHNGdJQ0FnSUNBZ0lISmxabkpsYzJnb0xpNHVZWEpuY3pvZ1lXNTVXMTBwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnVUhKdmJXbHpaUzV5WlhOdmJIWmxLQ2t1ZEdobGJpZ29LU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J2WW5ObGNuWmxjaTV1WlhoMEtIc2daR0YwWVRvZ1lYSm5jeUI5SUdGeklHRnVlU2s3WEc0Z0lDQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJSDBwS0NrN1hHNWNiaUFnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ1lXUmhjSFJsY2lCdlppQjBhR2x6TG1Ga1lYQjBaWEp6S1NCN1hHNGdJQ0FnSUNBZ0lDQWdZV1JoY0hSbGNpNXZZbk5sY25abEtHTmlLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlNCallYUmphQ0FvWlRvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0FnSUc5aWMyVnlkbVZ5TG1WeWNtOXlLR0JHWVdsc1pXUWdkRzhnYjJKelpYSjJaU0JsZG1WdWREb2dKSHRsTG0xbGMzTmhaMlVnZkh3Z1pYMWdLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnY21WMGRYSnVJQ2dwSUQwK0lIdGNiaUFnSUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR0ZrWVhCMFpYSWdiMllnZEdocGN5NWhaR0Z3ZEdWeWN5a2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1lXUmhjSFJsY2k1MWJrOWljMlZ5ZG1Vb1kySXBPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2ZTQmpZWFJqYUNBb1pUb2dZVzU1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdiRzluWjJWeUxtVnljbTl5S0dVcE8xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMHBPMXh1SUNCOVhHNTlYRzRpWFgwPSJdfQ==
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EventsSubscriptionController = void 0;
|
|
4
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
5
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
6
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
7
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
8
|
+
else
|
|
9
|
+
for (var i = decorators.length - 1; i >= 0; i--)
|
|
10
|
+
if (d = decorators[i])
|
|
11
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
12
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
13
|
+
};
|
|
14
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
15
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
16
|
+
return Reflect.metadata(k, v);
|
|
17
|
+
};
|
|
18
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
19
|
+
return function (target, key) { decorator(target, key, paramIndex); };
|
|
20
|
+
};
|
|
21
|
+
var EventsSubscriptionController_1;
|
|
22
|
+
const common_1 = require("@nestjs/common");
|
|
23
|
+
const core_1 = require("@decaf-ts/core");
|
|
24
|
+
const index_js_1 = require("./../request/index.cjs");
|
|
25
|
+
const controllers_js_1 = require("./../controllers.cjs");
|
|
26
|
+
const constant_js_1 = require("./constant.cjs");
|
|
27
|
+
const ObserverSubscriptionRegistry_js_1 = require("./ObserverSubscriptionRegistry.cjs");
|
|
28
|
+
let EventsSubscriptionController = EventsSubscriptionController_1 = class EventsSubscriptionController extends controllers_js_1.DecafController {
|
|
29
|
+
constructor(clientContext, options, registry) {
|
|
30
|
+
super(clientContext, EventsSubscriptionController_1.name);
|
|
31
|
+
this.options = options;
|
|
32
|
+
this.registry = registry;
|
|
33
|
+
}
|
|
34
|
+
async subscribe(body) {
|
|
35
|
+
if (!this.options.subscriptionMode) {
|
|
36
|
+
return { enabled: false };
|
|
37
|
+
}
|
|
38
|
+
const subscriberId = body?.subscriberId || (await Promise.resolve(core_1.UUID.instance.generate()));
|
|
39
|
+
const topics = Array.isArray(body?.topics) ? body.topics : [];
|
|
40
|
+
const record = this.registry.upsert(subscriberId, topics);
|
|
41
|
+
return {
|
|
42
|
+
subscriberId: record.subscriberId,
|
|
43
|
+
topics: this.registry.topicsFor(record.subscriberId),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
unsubscribe(body) {
|
|
47
|
+
if (!this.options.subscriptionMode) {
|
|
48
|
+
return { enabled: false };
|
|
49
|
+
}
|
|
50
|
+
const subscriberId = body?.subscriberId;
|
|
51
|
+
if (!subscriberId) {
|
|
52
|
+
return { unsubscribed: false };
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
unsubscribed: this.registry.remove(subscriberId),
|
|
56
|
+
subscriberId,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
exports.EventsSubscriptionController = EventsSubscriptionController;
|
|
61
|
+
__decorate([
|
|
62
|
+
(0, common_1.Post)("subscribe"),
|
|
63
|
+
__param(0, (0, common_1.Body)()),
|
|
64
|
+
__metadata("design:type", Function),
|
|
65
|
+
__metadata("design:paramtypes", [Object]),
|
|
66
|
+
__metadata("design:returntype", Promise)
|
|
67
|
+
], EventsSubscriptionController.prototype, "subscribe", null);
|
|
68
|
+
__decorate([
|
|
69
|
+
(0, common_1.Post)("unsubscribe"),
|
|
70
|
+
__param(0, (0, common_1.Body)()),
|
|
71
|
+
__metadata("design:type", Function),
|
|
72
|
+
__metadata("design:paramtypes", [Object]),
|
|
73
|
+
__metadata("design:returntype", Object)
|
|
74
|
+
], EventsSubscriptionController.prototype, "unsubscribe", null);
|
|
75
|
+
exports.EventsSubscriptionController = EventsSubscriptionController = EventsSubscriptionController_1 = __decorate([
|
|
76
|
+
(0, common_1.Controller)(),
|
|
77
|
+
__param(1, (0, common_1.Inject)(constant_js_1.OBSERVER_EVENTS_OPTIONS)),
|
|
78
|
+
__metadata("design:paramtypes", [index_js_1.DecafRequestContext, Object, ObserverSubscriptionRegistry_js_1.ObserverSubscriptionRegistry])
|
|
79
|
+
], EventsSubscriptionController);
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRzU3Vic2NyaXB0aW9uQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ldmVudHMtbW9kdWxlL0V2ZW50c1N1YnNjcmlwdGlvbkNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDhCQUFtQjtBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLDRCQUF1QjtBQUVqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsc0JBQW1CO0FBRXJELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSwwQ0FBdUM7QUFRdkUsSUFBTSw0QkFBNEIsb0NBQWxDLE1BQU0sNEJBQTZCLFNBQVEsZUFBK0I7SUFDL0UsWUFDRSxhQUFrQyxFQUNnQixPQUE4QixFQUMvRCxRQUFzQztRQUV2RCxLQUFLLENBQUMsYUFBYSxFQUFFLDhCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBSE4sWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDL0QsYUFBUSxHQUFSLFFBQVEsQ0FBOEI7SUFHekQsQ0FBQztJQUdLLEFBQU4sS0FBSyxDQUFDLFNBQVMsQ0FDTCxJQUF5QjtRQUVqQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUNELE1BQU0sWUFBWSxHQUNoQixJQUFJLEVBQUUsWUFBWSxJQUFJLENBQUMsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFELE9BQU87WUFDTCxZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVk7WUFDakMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7U0FDckQsQ0FBQztJQUNKLENBQUM7SUFHRCxXQUFXLENBQVMsSUFBeUI7UUFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzVCLENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLEVBQUUsWUFBWSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPO1lBQ0wsWUFBWSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztZQUNoRCxZQUFZO1NBQ2IsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFBO0FBOUJPO0lBREwsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUVmLFdBQUEsSUFBSSxFQUFFLENBQUE7Ozs7NkRBYVI7QUFHRDtJQURDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDUCxXQUFBLElBQUksRUFBRSxDQUFBOzs7OytEQVlsQjtBQXZDVSw0QkFBNEI7SUFEeEMsVUFBVSxFQUFFO0lBSVIsV0FBQSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtxQ0FEakIsbUJBQW1CLFVBRVAsNEJBQTRCO0dBSjlDLDRCQUE0QixDQXdDeEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb2R5LCBDb250cm9sbGVyLCBJbmplY3QsIFBvc3QgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IFVVSUQgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IERlY2FmUmVxdWVzdENvbnRleHQgfSBmcm9tIFwiLi4vcmVxdWVzdFwiO1xuaW1wb3J0IHsgRGVjYWZDb250cm9sbGVyIH0gZnJvbSBcIi4uL2NvbnRyb2xsZXJzXCI7XG5pbXBvcnQgeyBEZWNhZlNlcnZlckN0eCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IE9CU0VSVkVSX0VWRU5UU19PUFRJT05TIH0gZnJvbSBcIi4vY29uc3RhbnRcIjtcbmltcG9ydCB0eXBlIHsgT2JzZXJ2ZXJFdmVudHNPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBPYnNlcnZlclN1YnNjcmlwdGlvblJlZ2lzdHJ5IH0gZnJvbSBcIi4vT2JzZXJ2ZXJTdWJzY3JpcHRpb25SZWdpc3RyeVwiO1xuXG50eXBlIFN1YnNjcmlwdGlvblBheWxvYWQgPSB7XG4gIHN1YnNjcmliZXJJZD86IHN0cmluZztcbiAgdG9waWNzPzogc3RyaW5nW107XG59O1xuXG5AQ29udHJvbGxlcigpXG5leHBvcnQgY2xhc3MgRXZlbnRzU3Vic2NyaXB0aW9uQ29udHJvbGxlciBleHRlbmRzIERlY2FmQ29udHJvbGxlcjxEZWNhZlNlcnZlckN0eD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBjbGllbnRDb250ZXh0OiBEZWNhZlJlcXVlc3RDb250ZXh0LFxuICAgIEBJbmplY3QoT0JTRVJWRVJfRVZFTlRTX09QVElPTlMpIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogT2JzZXJ2ZXJFdmVudHNPcHRpb25zLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVnaXN0cnk6IE9ic2VydmVyU3Vic2NyaXB0aW9uUmVnaXN0cnlcbiAgKSB7XG4gICAgc3VwZXIoY2xpZW50Q29udGV4dCwgRXZlbnRzU3Vic2NyaXB0aW9uQ29udHJvbGxlci5uYW1lKTtcbiAgfVxuXG4gIEBQb3N0KFwic3Vic2NyaWJlXCIpXG4gIGFzeW5jIHN1YnNjcmliZShcbiAgICBAQm9keSgpIGJvZHk6IFN1YnNjcmlwdGlvblBheWxvYWRcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuc3Vic2NyaXB0aW9uTW9kZSkge1xuICAgICAgcmV0dXJuIHsgZW5hYmxlZDogZmFsc2UgfTtcbiAgICB9XG4gICAgY29uc3Qgc3Vic2NyaWJlcklkID1cbiAgICAgIGJvZHk/LnN1YnNjcmliZXJJZCB8fCAoYXdhaXQgUHJvbWlzZS5yZXNvbHZlKFVVSUQuaW5zdGFuY2UuZ2VuZXJhdGUoKSkpO1xuICAgIGNvbnN0IHRvcGljcyA9IEFycmF5LmlzQXJyYXkoYm9keT8udG9waWNzKSA/IGJvZHkudG9waWNzIDogW107XG4gICAgY29uc3QgcmVjb3JkID0gdGhpcy5yZWdpc3RyeS51cHNlcnQoc3Vic2NyaWJlcklkLCB0b3BpY3MpO1xuICAgIHJldHVybiB7XG4gICAgICBzdWJzY3JpYmVySWQ6IHJlY29yZC5zdWJzY3JpYmVySWQsXG4gICAgICB0b3BpY3M6IHRoaXMucmVnaXN0cnkudG9waWNzRm9yKHJlY29yZC5zdWJzY3JpYmVySWQpLFxuICAgIH07XG4gIH1cblxuICBAUG9zdChcInVuc3Vic2NyaWJlXCIpXG4gIHVuc3Vic2NyaWJlKEBCb2R5KCkgYm9keTogU3Vic2NyaXB0aW9uUGF5bG9hZCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIGlmICghdGhpcy5vcHRpb25zLnN1YnNjcmlwdGlvbk1vZGUpIHtcbiAgICAgIHJldHVybiB7IGVuYWJsZWQ6IGZhbHNlIH07XG4gICAgfVxuICAgIGNvbnN0IHN1YnNjcmliZXJJZCA9IGJvZHk/LnN1YnNjcmliZXJJZDtcbiAgICBpZiAoIXN1YnNjcmliZXJJZCkge1xuICAgICAgcmV0dXJuIHsgdW5zdWJzY3JpYmVkOiBmYWxzZSB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgdW5zdWJzY3JpYmVkOiB0aGlzLnJlZ2lzdHJ5LnJlbW92ZShzdWJzY3JpYmVySWQpLFxuICAgICAgc3Vic2NyaWJlcklkLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXZlbnRzU3Vic2NyaXB0aW9uQ29udHJvbGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkV2ZW50c1N1YnNjcmlwdGlvbkNvbnRyb2xsZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxD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fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG52YXIgX19wYXJhbSA9ICh0aGlzICYmIHRoaXMuX19wYXJhbSkgfHwgZnVuY3Rpb24gKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0LCBrZXkpIHsgZGVjb3JhdG9yKHRhcmdldCwga2V5LCBwYXJhbUluZGV4KTsgfVxufTtcbnZhciBFdmVudHNTdWJzY3JpcHRpb25Db250cm9sbGVyXzE7XG5pbXBvcnQgeyBCb2R5LCBDb250cm9sbGVyLCBJbmplY3QsIFBvc3QgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IFVVSUQgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IERlY2FmUmVxdWVzdENvbnRleHQgfSBmcm9tIFwiLi8uLi9yZXF1ZXN0L2luZGV4LmpzXCI7XG5pbXBvcnQgeyBEZWNhZkNvbnRyb2xsZXIgfSBmcm9tIFwiLi8uLi9jb250cm9sbGVycy5qc1wiO1xuaW1wb3J0IHsgT0JTRVJWRVJfRVZFTlRTX09QVElPTlMgfSBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuaW1wb3J0IHsgT2JzZXJ2ZXJTdWJzY3JpcHRpb25SZWdpc3RyeSB9IGZyb20gXCIuL09ic2VydmVyU3Vic2NyaXB0aW9uUmVnaXN0cnkuanNcIjtcbmxldCBFdmVudHNTdWJzY3JpcHRpb25Db250cm9sbGVyID0gRXZlbnRzU3Vic2NyaXB0aW9uQ29udHJvbGxlcl8xID0gY2xhc3MgRXZlbnRzU3Vic2NyaXB0aW9uQ29udHJvbGxlciBleHRlbmRzIERlY2FmQ29udHJvbGxlciB7XG4gICAgY29uc3RydWN0b3IoY2xpZW50Q29udGV4dCwgb3B0aW9ucywgcmVnaXN0cnkpIHtcbiAgICAgICAgc3VwZXIoY2xpZW50Q29udGV4dCwgRXZlbnRzU3Vic2NyaXB0aW9uQ29udHJvbGxlcl8xLm5hbWUpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLnJlZ2lzdHJ5ID0gcmVnaXN0cnk7XG4gICAgfVxuICAgIGFzeW5jIHN1YnNjcmliZShib2R5KSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLnN1YnNjcmlwdGlvbk1vZGUpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGVuYWJsZWQ6IGZhbHNlIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3Vic2NyaWJlcklkID0gYm9keT8uc3Vic2NyaWJlcklkIHx8IChhd2FpdCBQcm9taXNlLnJlc29sdmUoVVVJRC5pbnN0YW5jZS5nZW5lcmF0ZSgpKSk7XG4gICAgICAgIGNvbnN0IHRvcGljcyA9IEFycmF5LmlzQXJyYXkoYm9keT8udG9waWNzKSA/IGJvZHkudG9waWNzIDogW107XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IHRoaXMucmVnaXN0cnkudXBzZXJ0KHN1YnNjcmliZXJJZCwgdG9waWNzKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN1YnNjcmliZXJJZDogcmVjb3JkLnN1YnNjcmliZXJJZCxcbiAgICAgICAgICAgIHRvcGljczogdGhpcy5yZWdpc3RyeS50b3BpY3NGb3IocmVjb3JkLnN1YnNjcmliZXJJZCksXG4gICAgICAgIH07XG4gICAgfVxuICAgIHVuc3Vic2NyaWJlKGJvZHkpIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuc3Vic2NyaXB0aW9uTW9kZSkge1xuICAgICAgICAgICAgcmV0dXJuIHsgZW5hYmxlZDogZmFsc2UgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdWJzY3JpYmVySWQgPSBib2R5Py5zdWJzY3JpYmVySWQ7XG4gICAgICAgIGlmICghc3Vic2NyaWJlcklkKSB7XG4gICAgICAgICAgICByZXR1cm4geyB1bnN1YnNjcmliZWQ6IGZhbHNlIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHVuc3Vic2NyaWJlZDogdGhpcy5yZWdpc3RyeS5yZW1vdmUoc3Vic2NyaWJlcklkKSxcbiAgICAgICAgICAgIHN1YnNjcmliZXJJZCxcbiAgICAgICAgfTtcbiAgICB9XG59O1xuX19kZWNvcmF0ZShbXG4gICAgUG9zdChcInN1YnNjcmliZVwiKSxcbiAgICBfX3BhcmFtKDAsIEJvZHkoKSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW09iamVjdF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRXZlbnRzU3Vic2NyaXB0aW9uQ29udHJvbGxlci5wcm90b3R5cGUsIFwic3Vic2NyaWJlXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgUG9zdChcInVuc3Vic2NyaWJlXCIpLFxuICAgIF9fcGFyYW0oMCwgQm9keSgpKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbT2JqZWN0XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIE9iamVjdClcbl0sIEV2ZW50c1N1YnNjcmlwdGlvbkNvbnRyb2xsZXIucHJvdG90eXBlLCBcInVuc3Vic2NyaWJlXCIsIG51bGwpO1xuRXZlbnRzU3Vic2NyaXB0aW9uQ29udHJvbGxlciA9IEV2ZW50c1N1YnNjcmlwdGlvbkNvbnRyb2xsZXJfMSA9IF9fZGVjb3JhdGUoW1xuICAgIENvbnRyb2xsZXIoKSxcbiAgICBfX3BhcmFtKDEsIEluamVjdChPQlNFUlZFUl9FVkVOVFNfT1BUSU9OUykpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbRGVjYWZSZXF1ZXN0Q29udGV4dCwgT2JqZWN0LCBPYnNlcnZlclN1YnNjcmlwdGlvblJlZ2lzdHJ5XSlcbl0sIEV2ZW50c1N1YnNjcmlwdGlvbkNvbnRyb2xsZXIpO1xuZXhwb3J0IHsgRXZlbnRzU3Vic2NyaXB0aW9uQ29udHJvbGxlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUlhabGJuUnpVM1ZpYzJOeWFYQjBhVzl1UTI5dWRISnZiR3hsY2k1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMM055WXk5bGRtVnVkSE10Ylc5a2RXeGxMMFYyWlc1MGMxTjFZbk5qY21sd2RHbHZia052Ym5SeWIyeHNaWEl1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPenM3T3pzN096dEJRVUZCTEU5QlFVOHNSVUZCUlN4SlFVRkpMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFMUJRVTBzUlVGQlJTeEpRVUZKTEVWQlFVVXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU5vUlN4UFFVRlBMRVZCUVVVc1NVRkJTU3hGUVVGRkxFMUJRVTBzWjBKQlFXZENMRU5CUVVNN1FVRkRkRU1zVDBGQlR5eEZRVUZGTEcxQ1FVRnRRaXhGUVVGRkxEaENRVUZ0UWp0QlFVTnFSQ3hQUVVGUExFVkJRVVVzWlVGQlpTeEZRVUZGTERSQ1FVRjFRanRCUVVWcVJDeFBRVUZQTEVWQlFVVXNkVUpCUVhWQ0xFVkJRVVVzYzBKQlFXMUNPMEZCUlhKRUxFOUJRVThzUlVGQlJTdzBRa0ZCTkVJc1JVRkJSU3d3UTBGQmRVTTdRVUZSZGtVc1NVRkJUU3cwUWtGQk5FSXNiME5CUVd4RExFMUJRVTBzTkVKQlFUWkNMRk5CUVZFc1pVRkJLMEk3U1VGREwwVXNXVUZEUlN4aFFVRnJReXhGUVVOblFpeFBRVUU0UWl4RlFVTXZSQ3hSUVVGelF6dFJRVVYyUkN4TFFVRkxMRU5CUVVNc1lVRkJZU3hGUVVGRkxEaENRVUUwUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJTRTRzV1VGQlR5eEhRVUZRTEU5QlFVOHNRMEZCZFVJN1VVRkRMMFFzWVVGQlVTeEhRVUZTTEZGQlFWRXNRMEZCT0VJN1NVRkhla1FzUTBGQlF6dEpRVWRMTEVGQlFVNHNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkRUQ3hKUVVGNVFqdFJRVVZxUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hEUVVGRE8xbEJRMjVETEU5QlFVOHNSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFTkJRVU03VVVGRE5VSXNRMEZCUXp0UlFVTkVMRTFCUVUwc1dVRkJXU3hIUVVOb1FpeEpRVUZKTEVWQlFVVXNXVUZCV1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hQUVVGUExFTkJRVU1zVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1VVRkJVU3hGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlF6RkZMRTFCUVUwc1RVRkJUU3hIUVVGSExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU03VVVGRE9VUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNXVUZCV1N4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRekZFTEU5QlFVODdXVUZEVEN4WlFVRlpMRVZCUVVVc1RVRkJUU3hEUVVGRExGbEJRVms3V1VGRGFrTXNUVUZCVFN4RlFVRkZMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRlpMRU5CUVVNN1UwRkRja1FzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZIUkN4WFFVRlhMRU5CUVZNc1NVRkJlVUk3VVVGRE0wTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1EwRkJRenRaUVVOdVF5eFBRVUZQTEVWQlFVVXNUMEZCVHl4RlFVRkZMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJRelZDTEVOQlFVTTdVVUZEUkN4TlFVRk5MRmxCUVZrc1IwRkJSeXhKUVVGSkxFVkJRVVVzV1VGQldTeERRVUZETzFGQlEzaERMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVVzUTBGQlF6dFpRVU5zUWl4UFFVRlBMRVZCUVVVc1dVRkJXU3hGUVVGRkxFdEJRVXNzUlVGQlJTeERRVUZETzFGQlEycERMRU5CUVVNN1VVRkRSQ3hQUVVGUE8xbEJRMHdzV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1RVRkJUU3hEUVVGRExGbEJRVmtzUTBGQlF6dFpRVU5vUkN4WlFVRlpPMU5CUTJJc1EwRkJRenRKUVVOS0xFTkJRVU03UTBGRFJpeERRVUZCTzBGQk9VSlBPMGxCUkV3c1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF6dEpRVVZtTEZkQlFVRXNTVUZCU1N4RlFVRkZMRU5CUVVFN096czdOa1JCWVZJN1FVRkhSRHRKUVVSRExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTTdTVUZEVUN4WFFVRkJMRWxCUVVrc1JVRkJSU3hEUVVGQk96czdPeXRFUVZsc1FqdEJRWFpEVlN3MFFrRkJORUk3U1VGRWVFTXNWVUZCVlN4RlFVRkZPMGxCU1ZJc1YwRkJRU3hOUVVGTkxFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc1EwRkJRVHR4UTBGRWFrSXNiVUpCUVcxQ0xGVkJSVkFzTkVKQlFUUkNPMGRCU2psRExEUkNRVUUwUWl4RFFYZERlRU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lKcGJYQnZjblFnZXlCQ2IyUjVMQ0JEYjI1MGNtOXNiR1Z5TENCSmJtcGxZM1FzSUZCdmMzUWdmU0JtY205dElGd2lRRzVsYzNScWN5OWpiMjF0YjI1Y0lqdGNibWx0Y0c5eWRDQjdJRlZWU1VRZ2ZTQm1jbTl0SUZ3aVFHUmxZMkZtTFhSekwyTnZjbVZjSWp0Y2JtbHRjRzl5ZENCN0lFUmxZMkZtVW1WeGRXVnpkRU52Ym5SbGVIUWdmU0JtY205dElGd2lMaTR2Y21WeGRXVnpkRndpTzF4dWFXMXdiM0owSUhzZ1JHVmpZV1pEYjI1MGNtOXNiR1Z5SUgwZ1puSnZiU0JjSWk0dUwyTnZiblJ5YjJ4c1pYSnpYQ0k3WEc1cGJYQnZjblFnZXlCRVpXTmhabE5sY25abGNrTjBlQ0I5SUdaeWIyMGdYQ0l1TGk5amIyNXpkR0Z1ZEhOY0lqdGNibWx0Y0c5eWRDQjdJRTlDVTBWU1ZrVlNYMFZXUlU1VVUxOVBVRlJKVDA1VElIMGdabkp2YlNCY0lpNHZZMjl1YzNSaGJuUmNJanRjYm1sdGNHOXlkQ0IwZVhCbElIc2dUMkp6WlhKMlpYSkZkbVZ1ZEhOUGNIUnBiMjV6SUgwZ1puSnZiU0JjSWk0dUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ2V5QlBZbk5sY25abGNsTjFZbk5qY21sd2RHbHZibEpsWjJsemRISjVJSDBnWm5KdmJTQmNJaTR2VDJKelpYSjJaWEpUZFdKelkzSnBjSFJwYjI1U1pXZHBjM1J5ZVZ3aU8xeHVYRzUwZVhCbElGTjFZbk5qY21sd2RHbHZibEJoZVd4dllXUWdQU0I3WEc0Z0lITjFZbk5qY21saVpYSkpaRDg2SUhOMGNtbHVaenRjYmlBZ2RHOXdhV056UHpvZ2MzUnlhVzVuVzEwN1hHNTlPMXh1WEc1QVEyOXVkSEp2Ykd4bGNpZ3BYRzVsZUhCdmNuUWdZMnhoYzNNZ1JYWmxiblJ6VTNWaWMyTnlhWEIwYVc5dVEyOXVkSEp2Ykd4bGNpQmxlSFJsYm1SeklFUmxZMkZtUTI5dWRISnZiR3hsY2p4RVpXTmhabE5sY25abGNrTjBlRDRnZTF4dUlDQmpiMjV6ZEhKMVkzUnZjaWhjYmlBZ0lDQmpiR2xsYm5SRGIyNTBaWGgwT2lCRVpXTmhabEpsY1hWbGMzUkRiMjUwWlhoMExGeHVJQ0FnSUVCSmJtcGxZM1FvVDBKVFJWSldSVkpmUlZaRlRsUlRYMDlRVkVsUFRsTXBJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2diM0IwYVc5dWN6b2dUMkp6WlhKMlpYSkZkbVZ1ZEhOUGNIUnBiMjV6TEZ4dUlDQWdJSEJ5YVhaaGRHVWdjbVZoWkc5dWJIa2djbVZuYVhOMGNuazZJRTlpYzJWeWRtVnlVM1ZpYzJOeWFYQjBhVzl1VW1WbmFYTjBjbmxjYmlBZ0tTQjdYRzRnSUNBZ2MzVndaWElvWTJ4cFpXNTBRMjl1ZEdWNGRDd2dSWFpsYm5SelUzVmljMk55YVhCMGFXOXVRMjl1ZEhKdmJHeGxjaTV1WVcxbEtUdGNiaUFnZlZ4dVhHNGdJRUJRYjNOMEtGd2ljM1ZpYzJOeWFXSmxYQ0lwWEc0Z0lHRnplVzVqSUhOMVluTmpjbWxpWlNoY2JpQWdJQ0JBUW05a2VTZ3BJR0p2WkhrNklGTjFZbk5qY21sd2RHbHZibEJoZVd4dllXUmNiaUFnS1RvZ1VISnZiV2x6WlR4U1pXTnZjbVE4YzNSeWFXNW5MQ0JoYm5rK1BpQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtOXdkR2x2Ym5NdWMzVmljMk55YVhCMGFXOXVUVzlrWlNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhzZ1pXNWhZbXhsWkRvZ1ptRnNjMlVnZlR0Y2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ2MzVmljMk55YVdKbGNrbGtJRDFjYmlBZ0lDQWdJR0p2WkhrL0xuTjFZbk5qY21saVpYSkpaQ0I4ZkNBb1lYZGhhWFFnVUhKdmJXbHpaUzV5WlhOdmJIWmxLRlZWU1VRdWFXNXpkR0Z1WTJVdVoyVnVaWEpoZEdVb0tTa3BPMXh1SUNBZ0lHTnZibk4wSUhSdmNHbGpjeUE5SUVGeWNtRjVMbWx6UVhKeVlYa29ZbTlrZVQ4dWRHOXdhV056S1NBL0lHSnZaSGt1ZEc5d2FXTnpJRG9nVzEwN1hHNGdJQ0FnWTI5dWMzUWdjbVZqYjNKa0lEMGdkR2hwY3k1eVpXZHBjM1J5ZVM1MWNITmxjblFvYzNWaWMyTnlhV0psY2tsa0xDQjBiM0JwWTNNcE8xeHVJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0J6ZFdKelkzSnBZbVZ5U1dRNklISmxZMjl5WkM1emRXSnpZM0pwWW1WeVNXUXNYRzRnSUNBZ0lDQjBiM0JwWTNNNklIUm9hWE11Y21WbmFYTjBjbmt1ZEc5d2FXTnpSbTl5S0hKbFkyOXlaQzV6ZFdKelkzSnBZbVZ5U1dRcExGeHVJQ0FnSUgwN1hHNGdJSDFjYmx4dUlDQkFVRzl6ZENoY0luVnVjM1ZpYzJOeWFXSmxYQ0lwWEc0Z0lIVnVjM1ZpYzJOeWFXSmxLRUJDYjJSNUtDa2dZbTlrZVRvZ1UzVmljMk55YVhCMGFXOXVVR0Y1Ykc5aFpDazZJRkpsWTI5eVpEeHpkSEpwYm1jc0lHRnVlVDRnZTF4dUlDQWdJR2xtSUNnaGRHaHBjeTV2Y0hScGIyNXpMbk4xWW5OamNtbHdkR2x2YmsxdlpHVXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjdJR1Z1WVdKc1pXUTZJR1poYkhObElIMDdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJSE4xWW5OamNtbGlaWEpKWkNBOUlHSnZaSGsvTG5OMVluTmpjbWxpWlhKSlpEdGNiaUFnSUNCcFppQW9JWE4xWW5OamNtbGlaWEpKWkNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUhzZ2RXNXpkV0p6WTNKcFltVmtPaUJtWVd4elpTQjlPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnZFc1emRXSnpZM0pwWW1Wa09pQjBhR2x6TG5KbFoybHpkSEo1TG5KbGJXOTJaU2h6ZFdKelkzSnBZbVZ5U1dRcExGeHVJQ0FnSUNBZ2MzVmljMk55YVdKbGNrbGtMRnh1SUNBZ0lIMDdYRzRnSUgxY2JuMWNiaUpkZlE9PSJdfQ==
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ObserverSubscriptionRegistry = void 0;
|
|
4
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
5
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
6
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
7
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
8
|
+
else
|
|
9
|
+
for (var i = decorators.length - 1; i >= 0; i--)
|
|
10
|
+
if (d = decorators[i])
|
|
11
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
12
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
13
|
+
};
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
let ObserverSubscriptionRegistry = class ObserverSubscriptionRegistry {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.records = new Map();
|
|
18
|
+
}
|
|
19
|
+
upsert(subscriberId, topics = []) {
|
|
20
|
+
const record = {
|
|
21
|
+
subscriberId,
|
|
22
|
+
topics: new Set(topics.filter(Boolean)),
|
|
23
|
+
updatedAt: new Date(),
|
|
24
|
+
};
|
|
25
|
+
this.records.set(subscriberId, record);
|
|
26
|
+
return record;
|
|
27
|
+
}
|
|
28
|
+
remove(subscriberId) {
|
|
29
|
+
return this.records.delete(subscriberId);
|
|
30
|
+
}
|
|
31
|
+
get(subscriberId) {
|
|
32
|
+
return this.records.get(subscriberId);
|
|
33
|
+
}
|
|
34
|
+
topicsFor(subscriberId) {
|
|
35
|
+
return [...(this.records.get(subscriberId)?.topics ?? [])];
|
|
36
|
+
}
|
|
37
|
+
matches(subscriberId, topic) {
|
|
38
|
+
const record = this.records.get(subscriberId);
|
|
39
|
+
if (!record)
|
|
40
|
+
return false;
|
|
41
|
+
if (!record.topics.size)
|
|
42
|
+
return false;
|
|
43
|
+
return record.topics.has(topic) || record.topics.has("*");
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
exports.ObserverSubscriptionRegistry = ObserverSubscriptionRegistry;
|
|
47
|
+
exports.ObserverSubscriptionRegistry = ObserverSubscriptionRegistry = __decorate([
|
|
48
|
+
(0, common_1.Injectable)()
|
|
49
|
+
], ObserverSubscriptionRegistry);
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2JzZXJ2ZXJTdWJzY3JpcHRpb25SZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ldmVudHMtbW9kdWxlL09ic2VydmVyU3Vic2NyaXB0aW9uUmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU3JDLElBQU0sNEJBQTRCLEdBQWxDLE1BQU0sNEJBQTRCO0lBQWxDO1FBQ1ksWUFBTyxHQUFHLElBQUksR0FBRyxFQUFzQyxDQUFDO0lBOEIzRSxDQUFDO0lBNUJDLE1BQU0sQ0FBQyxZQUFvQixFQUFFLFNBQW1CLEVBQUU7UUFDaEQsTUFBTSxNQUFNLEdBQStCO1lBQ3pDLFlBQVk7WUFDWixNQUFNLEVBQUUsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QyxTQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUU7U0FDdEIsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQW9CO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELEdBQUcsQ0FBQyxZQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxTQUFTLENBQUMsWUFBb0I7UUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsT0FBTyxDQUFDLFlBQW9CLEVBQUUsS0FBYTtRQUN6QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUN0QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRixDQUFBO0FBL0JZLDRCQUE0QjtJQUR4QyxVQUFVLEVBQUU7R0FDQSw0QkFBNEIsQ0ErQnhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuXG5leHBvcnQgdHlwZSBPYnNlcnZlclN1YnNjcmlwdGlvblJlY29yZCA9IHtcbiAgc3Vic2NyaWJlcklkOiBzdHJpbmc7XG4gIHRvcGljczogU2V0PHN0cmluZz47XG4gIHVwZGF0ZWRBdDogRGF0ZTtcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPYnNlcnZlclN1YnNjcmlwdGlvblJlZ2lzdHJ5IHtcbiAgcHJpdmF0ZSByZWFkb25seSByZWNvcmRzID0gbmV3IE1hcDxzdHJpbmcsIE9ic2VydmVyU3Vic2NyaXB0aW9uUmVjb3JkPigpO1xuXG4gIHVwc2VydChzdWJzY3JpYmVySWQ6IHN0cmluZywgdG9waWNzOiBzdHJpbmdbXSA9IFtdKTogT2JzZXJ2ZXJTdWJzY3JpcHRpb25SZWNvcmQge1xuICAgIGNvbnN0IHJlY29yZDogT2JzZXJ2ZXJTdWJzY3JpcHRpb25SZWNvcmQgPSB7XG4gICAgICBzdWJzY3JpYmVySWQsXG4gICAgICB0b3BpY3M6IG5ldyBTZXQodG9waWNzLmZpbHRlcihCb29sZWFuKSksXG4gICAgICB1cGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgfTtcbiAgICB0aGlzLnJlY29yZHMuc2V0KHN1YnNjcmliZXJJZCwgcmVjb3JkKTtcbiAgICByZXR1cm4gcmVjb3JkO1xuICB9XG5cbiAgcmVtb3ZlKHN1YnNjcmliZXJJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVjb3Jkcy5kZWxldGUoc3Vic2NyaWJlcklkKTtcbiAgfVxuXG4gIGdldChzdWJzY3JpYmVySWQ6IHN0cmluZyk6IE9ic2VydmVyU3Vic2NyaXB0aW9uUmVjb3JkIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5yZWNvcmRzLmdldChzdWJzY3JpYmVySWQpO1xuICB9XG5cbiAgdG9waWNzRm9yKHN1YnNjcmliZXJJZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbLi4uKHRoaXMucmVjb3Jkcy5nZXQoc3Vic2NyaWJlcklkKT8udG9waWNzID8/IFtdKV07XG4gIH1cblxuICBtYXRjaGVzKHN1YnNjcmliZXJJZDogc3RyaW5nLCB0b3BpYzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVjb3JkID0gdGhpcy5yZWNvcmRzLmdldChzdWJzY3JpYmVySWQpO1xuICAgIGlmICghcmVjb3JkKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKCFyZWNvcmQudG9waWNzLnNpemUpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gcmVjb3JkLnRvcGljcy5oYXModG9waWMpIHx8IHJlY29yZC50b3BpY3MuaGFzKFwiKlwiKTtcbiAgfVxufVxuIl19
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2JzZXJ2ZXJTdWJzY3JpcHRpb25SZWdpc3RyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIk9ic2VydmVyU3Vic2NyaXB0aW9uUmVnaXN0cnkuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSTtJQUNqRixJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdILElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxVQUFVO1FBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7O1FBQzFILEtBQUssSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEosT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUNGLDJDQUE0QztBQUM1QyxJQUFJLDRCQUE0QixHQUFHLE1BQU0sNEJBQTRCO0lBQ2pFO1FBQ0ksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFDRCxNQUFNLENBQUMsWUFBWSxFQUFFLE1BQU0sR0FBRyxFQUFFO1FBQzVCLE1BQU0sTUFBTSxHQUFHO1lBQ1gsWUFBWTtZQUNaLE1BQU0sRUFBRSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRTtTQUN4QixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxNQUFNLENBQUMsWUFBWTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELEdBQUcsQ0FBQyxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsU0FBUyxDQUFDLFlBQVk7UUFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxNQUFNO1lBQ1AsT0FBTyxLQUFLLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUNuQixPQUFPLEtBQUssQ0FBQztRQUNqQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDSixDQUFDO0FBSU8sb0VBQTRCO0FBSHJDLHVDQUFBLDRCQUE0QixHQUFHLFVBQVUsQ0FBQztJQUN0QyxJQUFBLG1CQUFVLEdBQUU7Q0FDZixFQUFFLDRCQUE0QixDQUFDLENBQUM7QUFFakMsa3pHQUFrekciLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBuZXN0anMvY29tbW9uXCI7XG5sZXQgT2JzZXJ2ZXJTdWJzY3JpcHRpb25SZWdpc3RyeSA9IGNsYXNzIE9ic2VydmVyU3Vic2NyaXB0aW9uUmVnaXN0cnkge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnJlY29yZHMgPSBuZXcgTWFwKCk7XG4gICAgfVxuICAgIHVwc2VydChzdWJzY3JpYmVySWQsIHRvcGljcyA9IFtdKSB7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IHtcbiAgICAgICAgICAgIHN1YnNjcmliZXJJZCxcbiAgICAgICAgICAgIHRvcGljczogbmV3IFNldCh0b3BpY3MuZmlsdGVyKEJvb2xlYW4pKSxcbiAgICAgICAgICAgIHVwZGF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5yZWNvcmRzLnNldChzdWJzY3JpYmVySWQsIHJlY29yZCk7XG4gICAgICAgIHJldHVybiByZWNvcmQ7XG4gICAgfVxuICAgIHJlbW92ZShzdWJzY3JpYmVySWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVjb3Jkcy5kZWxldGUoc3Vic2NyaWJlcklkKTtcbiAgICB9XG4gICAgZ2V0KHN1YnNjcmliZXJJZCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWNvcmRzLmdldChzdWJzY3JpYmVySWQpO1xuICAgIH1cbiAgICB0b3BpY3NGb3Ioc3Vic2NyaWJlcklkKSB7XG4gICAgICAgIHJldHVybiBbLi4uKHRoaXMucmVjb3Jkcy5nZXQoc3Vic2NyaWJlcklkKT8udG9waWNzID8/IFtdKV07XG4gICAgfVxuICAgIG1hdGNoZXMoc3Vic2NyaWJlcklkLCB0b3BpYykge1xuICAgICAgICBjb25zdCByZWNvcmQgPSB0aGlzLnJlY29yZHMuZ2V0KHN1YnNjcmliZXJJZCk7XG4gICAgICAgIGlmICghcmVjb3JkKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAoIXJlY29yZC50b3BpY3Muc2l6ZSlcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHJlY29yZC50b3BpY3MuaGFzKHRvcGljKSB8fCByZWNvcmQudG9waWNzLmhhcyhcIipcIik7XG4gICAgfVxufTtcbk9ic2VydmVyU3Vic2NyaXB0aW9uUmVnaXN0cnkgPSBfX2RlY29yYXRlKFtcbiAgICBJbmplY3RhYmxlKClcbl0sIE9ic2VydmVyU3Vic2NyaXB0aW9uUmVnaXN0cnkpO1xuZXhwb3J0IHsgT2JzZXJ2ZXJTdWJzY3JpcHRpb25SZWdpc3RyeSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pVDJKelpYSjJaWEpUZFdKelkzSnBjSFJwYjI1U1pXZHBjM1J5ZVM1cWN5SXNJbk52ZFhKalpWSnZiM1FpT2lJaUxDSnpiM1Z5WTJWeklqcGJJaTR1THk0dUx5NHVMM055WXk5bGRtVnVkSE10Ylc5a2RXeGxMMDlpYzJWeWRtVnlVM1ZpYzJOeWFYQjBhVzl1VW1WbmFYTjBjbmt1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWpzN096czdPMEZCUVVFc1QwRkJUeXhGUVVGRkxGVkJRVlVzUlVGQlJTeE5RVUZOTEdkQ1FVRm5RaXhEUVVGRE8wRkJVM0pETEVsQlFVMHNORUpCUVRSQ0xFZEJRV3hETEUxQlFVMHNORUpCUVRSQ08wbEJRV3hETzFGQlExa3NXVUZCVHl4SFFVRkhMRWxCUVVrc1IwRkJSeXhGUVVGelF5eERRVUZETzBsQk9FSXpSU3hEUVVGRE8wbEJOVUpETEUxQlFVMHNRMEZCUXl4WlFVRnZRaXhGUVVGRkxGTkJRVzFDTEVWQlFVVTdVVUZEYUVRc1RVRkJUU3hOUVVGTkxFZEJRU3RDTzFsQlEzcERMRmxCUVZrN1dVRkRXaXhOUVVGTkxFVkJRVVVzU1VGQlNTeEhRVUZITEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFpRVU4yUXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hKUVVGSkxFVkJRVVU3VTBGRGRFSXNRMEZCUXp0UlFVTkdMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEZsQlFWa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVOMlF5eFBRVUZQTEUxQlFVMHNRMEZCUXp0SlFVTm9RaXhEUVVGRE8wbEJSVVFzVFVGQlRTeERRVUZETEZsQlFXOUNPMUZCUTNwQ0xFOUJRVThzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03U1VGRE0wTXNRMEZCUXp0SlFVVkVMRWRCUVVjc1EwRkJReXhaUVVGdlFqdFJRVU4wUWl4UFFVRlBMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMGxCUTNoRExFTkJRVU03U1VGRlJDeFRRVUZUTEVOQlFVTXNXVUZCYjBJN1VVRkROVUlzVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eFpRVUZaTEVOQlFVTXNSVUZCUlN4TlFVRk5MRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU0zUkN4RFFVRkRPMGxCUlVRc1QwRkJUeXhEUVVGRExGbEJRVzlDTEVWQlFVVXNTMEZCWVR0UlFVTjZReXhOUVVGTkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVU01UXl4SlFVRkpMRU5CUVVNc1RVRkJUVHRaUVVGRkxFOUJRVThzUzBGQlN5eERRVUZETzFGQlF6RkNMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVazdXVUZCUlN4UFFVRlBMRXRCUVVzc1EwRkJRenRSUVVOMFF5eFBRVUZQTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEUxQlFVMHNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzBsQlF6VkVMRU5CUVVNN1EwRkRSaXhEUVVGQk8wRkJMMEpaTERSQ1FVRTBRanRKUVVSNFF5eFZRVUZWTEVWQlFVVTdSMEZEUVN3MFFrRkJORUlzUTBFclFuaERJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnU1c1cVpXTjBZV0pzWlNCOUlHWnliMjBnWENKQWJtVnpkR3B6TDJOdmJXMXZibHdpTzF4dVhHNWxlSEJ2Y25RZ2RIbHdaU0JQWW5ObGNuWmxjbE4xWW5OamNtbHdkR2x2YmxKbFkyOXlaQ0E5SUh0Y2JpQWdjM1ZpYzJOeWFXSmxja2xrT2lCemRISnBibWM3WEc0Z0lIUnZjR2xqY3pvZ1UyVjBQSE4wY21sdVp6NDdYRzRnSUhWd1pHRjBaV1JCZERvZ1JHRjBaVHRjYm4wN1hHNWNia0JKYm1wbFkzUmhZbXhsS0NsY2JtVjRjRzl5ZENCamJHRnpjeUJQWW5ObGNuWmxjbE4xWW5OamNtbHdkR2x2YmxKbFoybHpkSEo1SUh0Y2JpQWdjSEpwZG1GMFpTQnlaV0ZrYjI1c2VTQnlaV052Y21SeklEMGdibVYzSUUxaGNEeHpkSEpwYm1jc0lFOWljMlZ5ZG1WeVUzVmljMk55YVhCMGFXOXVVbVZqYjNKa1BpZ3BPMXh1WEc0Z0lIVndjMlZ5ZENoemRXSnpZM0pwWW1WeVNXUTZJSE4wY21sdVp5d2dkRzl3YVdOek9pQnpkSEpwYm1kYlhTQTlJRnRkS1RvZ1QySnpaWEoyWlhKVGRXSnpZM0pwY0hScGIyNVNaV052Y21RZ2UxeHVJQ0FnSUdOdmJuTjBJSEpsWTI5eVpEb2dUMkp6WlhKMlpYSlRkV0p6WTNKcGNIUnBiMjVTWldOdmNtUWdQU0I3WEc0Z0lDQWdJQ0J6ZFdKelkzSnBZbVZ5U1dRc1hHNGdJQ0FnSUNCMGIzQnBZM002SUc1bGR5QlRaWFFvZEc5d2FXTnpMbVpwYkhSbGNpaENiMjlzWldGdUtTa3NYRzRnSUNBZ0lDQjFjR1JoZEdWa1FYUTZJRzVsZHlCRVlYUmxLQ2tzWEc0Z0lDQWdmVHRjYmlBZ0lDQjBhR2x6TG5KbFkyOXlaSE11YzJWMEtITjFZbk5qY21saVpYSkpaQ3dnY21WamIzSmtLVHRjYmlBZ0lDQnlaWFIxY200Z2NtVmpiM0prTzF4dUlDQjlYRzVjYmlBZ2NtVnRiM1psS0hOMVluTmpjbWxpWlhKSlpEb2djM1J5YVc1bktUb2dZbTl2YkdWaGJpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjbVZqYjNKa2N5NWtaV3hsZEdVb2MzVmljMk55YVdKbGNrbGtLVHRjYmlBZ2ZWeHVYRzRnSUdkbGRDaHpkV0p6WTNKcFltVnlTV1E2SUhOMGNtbHVaeWs2SUU5aWMyVnlkbVZ5VTNWaWMyTnlhWEIwYVc5dVVtVmpiM0prSUh3Z2RXNWtaV1pwYm1Wa0lIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXlaV052Y21SekxtZGxkQ2h6ZFdKelkzSnBZbVZ5U1dRcE8xeHVJQ0I5WEc1Y2JpQWdkRzl3YVdOelJtOXlLSE4xWW5OamNtbGlaWEpKWkRvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuVzEwZ2UxeHVJQ0FnSUhKbGRIVnliaUJiTGk0dUtIUm9hWE11Y21WamIzSmtjeTVuWlhRb2MzVmljMk55YVdKbGNrbGtLVDh1ZEc5d2FXTnpJRDgvSUZ0ZEtWMDdYRzRnSUgxY2JseHVJQ0J0WVhSamFHVnpLSE4xWW5OamNtbGlaWEpKWkRvZ2MzUnlhVzVuTENCMGIzQnBZem9nYzNSeWFXNW5LVG9nWW05dmJHVmhiaUI3WEc0Z0lDQWdZMjl1YzNRZ2NtVmpiM0prSUQwZ2RHaHBjeTV5WldOdmNtUnpMbWRsZENoemRXSnpZM0pwWW1WeVNXUXBPMXh1SUNBZ0lHbG1JQ2doY21WamIzSmtLU0J5WlhSMWNtNGdabUZzYzJVN1hHNGdJQ0FnYVdZZ0tDRnlaV052Y21RdWRHOXdhV056TG5OcGVtVXBJSEpsZEhWeWJpQm1ZV3h6WlR0Y2JpQWdJQ0J5WlhSMWNtNGdjbVZqYjNKa0xuUnZjR2xqY3k1b1lYTW9kRzl3YVdNcElIeDhJSEpsWTI5eVpDNTBiM0JwWTNNdWFHRnpLRndpS2x3aUtUdGNiaUFnZlZ4dWZWeHVJbDE5Il19
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LISTENING_ADAPTERS_FLAVOURS = void 0;
|
|
3
|
+
exports.OBSERVER_EVENTS_OPTIONS = exports.LISTENING_ADAPTERS_FLAVOURS = void 0;
|
|
4
4
|
exports.LISTENING_ADAPTERS_FLAVOURS = Symbol("LISTENING_ADAPTERS_FLAVOURS");
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=
|
|
5
|
+
exports.OBSERVER_EVENTS_OPTIONS = Symbol("OBSERVER_EVENTS_OPTIONS");
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXZlbnRzLW1vZHVsZS9jb25zdGFudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLENBQy9DLDZCQUE2QixDQUM5QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgTElTVEVOSU5HX0FEQVBURVJTX0ZMQVZPVVJTID0gU3ltYm9sKFxuICBcIkxJU1RFTklOR19BREFQVEVSU19GTEFWT1VSU1wiXG4pO1xuXG5leHBvcnQgY29uc3QgT0JTRVJWRVJfRVZFTlRTX09QVElPTlMgPSBTeW1ib2woXCJPQlNFUlZFUl9FVkVOVFNfT1BUSU9OU1wiKTtcbiJdfQ==
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjb25zdGFudC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLDJCQUEyQixHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0FBQ3BFLFFBQUEsdUJBQXVCLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7QUFDekUsOG5CQUE4bkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgTElTVEVOSU5HX0FEQVBURVJTX0ZMQVZPVVJTID0gU3ltYm9sKFwiTElTVEVOSU5HX0FEQVBURVJTX0ZMQVZPVVJTXCIpO1xuZXhwb3J0IGNvbnN0IE9CU0VSVkVSX0VWRU5UU19PUFRJT05TID0gU3ltYm9sKFwiT0JTRVJWRVJfRVZFTlRTX09QVElPTlNcIik7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lZMjl1YzNSaGJuUXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk5emNtTXZaWFpsYm5SekxXMXZaSFZzWlM5amIyNXpkR0Z1ZEM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hOUVVGTkxFTkJRVU1zVFVGQlRTd3lRa0ZCTWtJc1IwRkJSeXhOUVVGTkxFTkJReTlETERaQ1FVRTJRaXhEUVVNNVFpeERRVUZETzBGQlJVWXNUVUZCVFN4RFFVRkRMRTFCUVUwc2RVSkJRWFZDTEVkQlFVY3NUVUZCVFN4RFFVRkRMSGxDUVVGNVFpeERRVUZETEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpsZUhCdmNuUWdZMjl1YzNRZ1RFbFRWRVZPU1U1SFgwRkVRVkJVUlZKVFgwWk1RVlpQVlZKVElEMGdVM2x0WW05c0tGeHVJQ0JjSWt4SlUxUkZUa2xPUjE5QlJFRlFWRVZTVTE5R1RFRldUMVZTVTF3aVhHNHBPMXh1WEc1bGVIQnZjblFnWTI5dWMzUWdUMEpUUlZKV1JWSmZSVlpGVGxSVFgwOVFWRWxQVGxNZ1BTQlRlVzFpYjJ3b1hDSlBRbE5GVWxaRlVsOUZWa1ZPVkZOZlQxQlVTVTlPVTF3aUtUdGNiaUpkZlE9PSJdfQ==
|
|
@@ -15,6 +15,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./EventsController.cjs"), exports);
|
|
18
|
+
__exportStar(require("./EventsSubscriptionController.cjs"), exports);
|
|
18
19
|
__exportStar(require("./DecafStreamModule.cjs"), exports);
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
__exportStar(require("./ObserverSubscriptionRegistry.cjs"), exports);
|
|
21
|
+
__exportStar(require("./constant.cjs"), exports);
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXZlbnRzLW1vZHVsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzQ0FBbUM7QUFDbkMsa0RBQStDO0FBQy9DLHVDQUFvQztBQUNwQyxrREFBK0M7QUFDL0MsOEJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vRXZlbnRzQ29udHJvbGxlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vRXZlbnRzU3Vic2NyaXB0aW9uQ29udHJvbGxlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vRGVjYWZTdHJlYW1Nb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL09ic2VydmVyU3Vic2NyaXB0aW9uUmVnaXN0cnlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbnN0YW50XCI7XG4iXX0=
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0RBQXNDO0FBQ3RDLG9FQUFrRDtBQUNsRCx5REFBdUM7QUFDdkMsb0VBQWtEO0FBQ2xELGdEQUE4QjtBQUM5QixrbUJBQWttQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL0V2ZW50c0NvbnRyb2xsZXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0V2ZW50c1N1YnNjcmlwdGlvbkNvbnRyb2xsZXIuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0RlY2FmU3RyZWFtTW9kdWxlLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9PYnNlcnZlclN1YnNjcmlwdGlvblJlZ2lzdHJ5LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudC5qc1wiO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3Vhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk5emNtTXZaWFpsYm5SekxXMXZaSFZzWlM5cGJtUmxlQzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFTeHpRMEZCYlVNN1FVRkRia01zYTBSQlFTdERPMEZCUXk5RExIVkRRVUZ2UXp0QlFVTndReXhyUkVGQkswTTdRVUZETDBNc09FSkJRVEpDSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dlJYWmxiblJ6UTI5dWRISnZiR3hsY2x3aU8xeHVaWGh3YjNKMElDb2dabkp2YlNCY0lpNHZSWFpsYm5SelUzVmljMk55YVhCMGFXOXVRMjl1ZEhKdmJHeGxjbHdpTzF4dVpYaHdiM0owSUNvZ1puSnZiU0JjSWk0dlJHVmpZV1pUZEhKbFlXMU5iMlIxYkdWY0lqdGNibVY0Y0c5eWRDQXFJR1p5YjIwZ1hDSXVMMDlpYzJWeWRtVnlVM1ZpYzJOeWFYQjBhVzl1VW1WbmFYTjBjbmxjSWp0Y2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwyTnZibk4wWVc1MFhDSTdYRzRpWFgwPSJdfQ==
|