@decaf-ts/integrations 0.4.0 → 0.4.1-1
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 +11 -3
- package/dist/integrations.cjs +2087 -2
- package/dist/integrations.js +2356 -2
- package/jest.config.cjs +5 -1
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/azure/index.cjs +2 -2
- package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
- package/lib/cjs/blob/core/BlobKey.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
- package/lib/cjs/blob/core/BlobValue.cjs +2 -2
- package/lib/cjs/blob/core/index.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/gcp/index.cjs +2 -2
- package/lib/cjs/blob/index.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/index.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/local/index.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/memory/index.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/index.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/index.cjs +2 -2
- package/lib/cjs/feature-flags/constants.cjs +16 -0
- package/lib/cjs/feature-flags/decorators.cjs +65 -0
- package/lib/cjs/feature-flags/environment.cjs +26 -0
- package/lib/cjs/feature-flags/index.cjs +31 -0
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +81 -0
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +78 -0
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +25 -0
- package/lib/cjs/feature-flags/readers/index.cjs +19 -0
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +259 -0
- package/lib/cjs/feature-flags/types.cjs +4 -0
- package/lib/cjs/feature-flags/utils.cjs +141 -0
- package/lib/cjs/graph/engine/constants.cjs +2 -2
- package/lib/cjs/graph/engine/decorators.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/index.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +2 -2
- package/lib/cjs/graph/engine/events/index.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/index.cjs +2 -2
- package/lib/cjs/graph/engine/index.cjs +2 -2
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/index.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/index.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs +2 -2
- package/lib/cjs/graph/engine/planning/index.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +2 -2
- package/lib/cjs/graph/engine/registry/index.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/index.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/index.cjs +2 -2
- package/lib/cjs/graph/engine/types.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/index.cjs +2 -2
- package/lib/cjs/graph/index.cjs +2 -2
- package/lib/cjs/graph/shared/constants.cjs +2 -2
- package/lib/cjs/graph/shared/index.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/agent.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/base.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/category-styles.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/flow-control.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/index.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/triggers.cjs +2 -2
- package/lib/cjs/graph/shared/types.cjs +2 -2
- package/lib/cjs/index.cjs +6 -5
- package/lib/cjs/keycloak/index.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
- package/lib/cjs/keycloak/services/index.cjs +2 -2
- package/lib/cjs/keycloak/services/runtime.cjs +2 -2
- package/lib/cjs/keycloak/types.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +329 -0
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +37 -0
- package/lib/cjs/kibana/builders/index.cjs +20 -0
- package/lib/cjs/kibana/helpers.cjs +20 -16
- package/lib/cjs/kibana/index.cjs +3 -2
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
- package/lib/cjs/kibana/services/index.cjs +2 -2
- package/lib/cjs/kibana/services/runtime.cjs +2 -2
- package/lib/cjs/kibana/types.cjs +11 -2
- package/lib/cjs/loader/ObjectLoader.cjs +154 -0
- package/lib/cjs/loader/families.cjs +78 -0
- package/lib/cjs/loader/index.cjs +28 -0
- package/lib/cjs/loader/types.cjs +4 -0
- package/lib/cjs/namespaces/index.cjs +2 -2
- package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group.model.cjs +2 -2
- package/lib/cjs/namespaces/models/index.cjs +2 -2
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
- package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role.model.cjs +2 -2
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/user.model.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
- package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
- package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group.service.cjs +2 -2
- package/lib/cjs/namespaces/services/index.cjs +2 -2
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
- package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
- package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role.service.cjs +2 -2
- package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
- package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/user.service.cjs +2 -2
- package/lib/cjs/namespaces/types.cjs +2 -2
- package/lib/cjs/namespaces/utils.cjs +2 -2
- package/lib/cjs/nest/decorators.cjs +17 -0
- package/lib/cjs/nest/graph/GraphExecutionController.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +2 -2
- package/lib/cjs/nest/graph/GraphResultService.cjs +2 -2
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs +2 -2
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs +2 -2
- package/lib/cjs/nest/graph/index.cjs +2 -2
- package/lib/cjs/nest/graph/main.cjs +2 -2
- package/lib/cjs/nest/index.cjs +3 -3
- package/lib/cjs/nest/keycloakAuthHandler.cjs +74 -35
- package/lib/cjs/nest/keycloakModule.cjs +7 -10
- package/lib/cjs/nest/logging.cjs +2 -2
- package/lib/cjs/nest/types.cjs +2 -2
- package/lib/cjs/nest/utils.cjs +58 -50
- package/lib/cjs/plugins/contract.cjs +76 -0
- package/lib/cjs/plugins/index.cjs +35 -0
- package/lib/cjs/plugins/kibana/host.cjs +24 -0
- package/lib/cjs/plugins/kibana/index.cjs +38 -0
- package/lib/cjs/plugins/kibana/installer.cjs +180 -0
- package/lib/cjs/plugins/kibana/manifest.cjs +33 -0
- package/lib/cjs/plugins/kibana/templates.cjs +503 -0
- package/lib/cjs/plugins/kibana/types.cjs +33 -0
- package/lib/cjs/plugins/superset/host.cjs +26 -0
- package/lib/cjs/plugins/superset/index.cjs +40 -0
- package/lib/cjs/plugins/superset/installer.cjs +232 -0
- package/lib/cjs/plugins/superset/manifest.cjs +35 -0
- package/lib/cjs/plugins/superset/templates.cjs +844 -0
- package/lib/cjs/plugins/superset/types.cjs +39 -0
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/aws/index.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/azure/index.cjs +2 -2
- package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
- package/lib/cjs/secrets/core/SecretName.cjs +2 -2
- package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
- package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
- package/lib/cjs/secrets/core/SecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
- package/lib/cjs/secrets/core/index.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/gcp/index.cjs +2 -2
- package/lib/cjs/secrets/index.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/model/Secret.cjs +2 -2
- package/lib/cjs/secrets/model/index.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/onepassword/index.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/vault/index.cjs +2 -2
- package/lib/cjs/shared/runtime.cjs +2 -2
- package/lib/cjs/utils.cjs +2 -2
- package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
- package/lib/esm/blob/azure/index.js +1 -1
- package/lib/esm/blob/core/BlobErrors.js +1 -1
- package/lib/esm/blob/core/BlobKey.js +1 -1
- package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
- package/lib/esm/blob/core/BlobStoreService.js +1 -1
- package/lib/esm/blob/core/BlobTypes.js +1 -1
- package/lib/esm/blob/core/BlobValue.js +1 -1
- package/lib/esm/blob/core/index.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
- package/lib/esm/blob/gcp/index.js +1 -1
- package/lib/esm/blob/index.js +1 -1
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/index.js +1 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
- package/lib/esm/blob/local/index.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
- package/lib/esm/blob/memory/index.js +1 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/index.js +1 -1
- package/lib/esm/docker/DockerComposeService.js +1 -1
- package/lib/esm/docker/index.js +1 -1
- package/lib/esm/feature-flags/constants.js +12 -0
- package/lib/esm/feature-flags/decorators.js +49 -0
- package/lib/esm/feature-flags/environment.js +18 -0
- package/lib/esm/feature-flags/index.js +14 -0
- package/lib/esm/feature-flags/models/FeatureFlag.model.js +72 -0
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +69 -0
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js +19 -0
- package/lib/esm/feature-flags/readers/index.js +2 -0
- package/lib/esm/feature-flags/services/FeatureFlag.service.js +250 -0
- package/lib/esm/feature-flags/types.js +2 -0
- package/lib/esm/feature-flags/utils.js +126 -0
- package/lib/esm/graph/engine/constants.js +1 -1
- package/lib/esm/graph/engine/decorators.js +1 -1
- package/lib/esm/graph/engine/errors/GraphCycleError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphExecutionError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphInputError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPinningError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPortError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphStoreError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphTopologyError.js +1 -1
- package/lib/esm/graph/engine/errors/index.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js +1 -1
- package/lib/esm/graph/engine/events/index.js +1 -1
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js +1 -1
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js +1 -1
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/index.js +1 -1
- package/lib/esm/graph/engine/index.js +1 -1
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +1 -1
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/index.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningService.js +1 -1
- package/lib/esm/graph/engine/pinning/index.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +1 -1
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js +1 -1
- package/lib/esm/graph/engine/planning/GraphTopology.js +1 -1
- package/lib/esm/graph/engine/planning/index.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +1 -1
- package/lib/esm/graph/engine/registry/index.js +1 -1
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +1 -1
- package/lib/esm/graph/engine/snapshots/index.js +1 -1
- package/lib/esm/graph/engine/store/GraphCachedValue.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueKey.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStore.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/index.js +1 -1
- package/lib/esm/graph/engine/types.js +1 -1
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +1 -1
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +1 -1
- package/lib/esm/graph/engine/validation/GraphValueValidator.js +1 -1
- package/lib/esm/graph/engine/validation/index.js +1 -1
- package/lib/esm/graph/index.js +1 -1
- package/lib/esm/graph/shared/constants.js +1 -1
- package/lib/esm/graph/shared/index.js +1 -1
- package/lib/esm/graph/shared/nodes/agent.js +1 -1
- package/lib/esm/graph/shared/nodes/base.js +1 -1
- package/lib/esm/graph/shared/nodes/category-styles.js +1 -1
- package/lib/esm/graph/shared/nodes/flow-control.js +1 -1
- package/lib/esm/graph/shared/nodes/index.js +1 -1
- package/lib/esm/graph/shared/nodes/triggers.js +1 -1
- package/lib/esm/graph/shared/types.js +1 -1
- package/lib/esm/index.js +5 -4
- package/lib/esm/keycloak/index.js +1 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
- package/lib/esm/keycloak/services/index.js +1 -1
- package/lib/esm/keycloak/services/runtime.js +1 -1
- package/lib/esm/keycloak/types.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js +319 -0
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +32 -0
- package/lib/esm/kibana/builders/index.js +3 -0
- package/lib/esm/kibana/helpers.js +19 -15
- package/lib/esm/kibana/index.js +2 -1
- package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
- package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
- package/lib/esm/kibana/services/KibanaService.js +1 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
- package/lib/esm/kibana/services/KibanaUserService.js +1 -1
- package/lib/esm/kibana/services/index.js +1 -1
- package/lib/esm/kibana/services/runtime.js +1 -1
- package/lib/esm/kibana/types.js +13 -2
- package/lib/esm/loader/ObjectLoader.js +115 -0
- package/lib/esm/loader/families.js +66 -0
- package/lib/esm/loader/index.js +11 -0
- package/lib/esm/loader/types.js +2 -0
- package/lib/esm/namespaces/index.js +1 -1
- package/lib/esm/namespaces/models/authorization-model.js +1 -1
- package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
- package/lib/esm/namespaces/models/group-membership.model.js +1 -1
- package/lib/esm/namespaces/models/group.model.js +1 -1
- package/lib/esm/namespaces/models/index.js +1 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit.model.js +1 -1
- package/lib/esm/namespaces/models/permission.model.js +1 -1
- package/lib/esm/namespaces/models/principal.model.js +1 -1
- package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
- package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
- package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
- package/lib/esm/namespaces/models/role-permission.model.js +1 -1
- package/lib/esm/namespaces/models/role.model.js +1 -1
- package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
- package/lib/esm/namespaces/models/tenant.model.js +1 -1
- package/lib/esm/namespaces/models/user.model.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
- package/lib/esm/namespaces/services/authz.service.js +1 -1
- package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
- package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
- package/lib/esm/namespaces/services/group-membership.service.js +1 -1
- package/lib/esm/namespaces/services/group.service.js +1 -1
- package/lib/esm/namespaces/services/index.js +1 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit.service.js +1 -1
- package/lib/esm/namespaces/services/permission.service.js +1 -1
- package/lib/esm/namespaces/services/principal.service.js +1 -1
- package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
- package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
- package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
- package/lib/esm/namespaces/services/role-permission.service.js +1 -1
- package/lib/esm/namespaces/services/role.service.js +1 -1
- package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
- package/lib/esm/namespaces/services/system-management.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
- package/lib/esm/namespaces/services/tenant.service.js +1 -1
- package/lib/esm/namespaces/services/user.service.js +1 -1
- package/lib/esm/namespaces/types.js +1 -1
- package/lib/esm/namespaces/utils.js +1 -1
- package/lib/esm/nest/decorators.js +12 -0
- package/lib/esm/nest/graph/GraphExecutionController.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionModule.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionResultModel.js +1 -1
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +1 -1
- package/lib/esm/nest/graph/GraphResultService.js +1 -1
- package/lib/esm/nest/graph/GraphWorkflowModel.js +1 -1
- package/lib/esm/nest/graph/GraphWorkflowService.js +1 -1
- package/lib/esm/nest/graph/index.js +1 -1
- package/lib/esm/nest/graph/main.js +1 -1
- package/lib/esm/nest/index.js +2 -2
- package/lib/esm/nest/keycloakAuthHandler.js +67 -35
- package/lib/esm/nest/keycloakModule.js +7 -10
- package/lib/esm/nest/logging.js +1 -1
- package/lib/esm/nest/types.js +1 -1
- package/lib/esm/nest/utils.js +55 -46
- package/lib/esm/plugins/contract.js +68 -0
- package/lib/esm/plugins/index.js +18 -0
- package/lib/esm/plugins/kibana/host.js +19 -0
- package/lib/esm/plugins/kibana/index.js +14 -0
- package/lib/esm/plugins/kibana/installer.js +140 -0
- package/lib/esm/plugins/kibana/manifest.js +32 -0
- package/lib/esm/plugins/kibana/templates.js +499 -0
- package/lib/esm/plugins/kibana/types.js +10 -0
- package/lib/esm/plugins/superset/host.js +21 -0
- package/lib/esm/plugins/superset/index.js +16 -0
- package/lib/esm/plugins/superset/installer.js +192 -0
- package/lib/esm/plugins/superset/manifest.js +30 -0
- package/lib/esm/plugins/superset/templates.js +840 -0
- package/lib/esm/plugins/superset/types.js +11 -0
- package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/aws/index.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/azure/index.js +1 -1
- package/lib/esm/secrets/core/SecretErrors.js +1 -1
- package/lib/esm/secrets/core/SecretName.js +1 -1
- package/lib/esm/secrets/core/SecretReference.js +1 -1
- package/lib/esm/secrets/core/SecretSerialization.js +1 -1
- package/lib/esm/secrets/core/SecretService.js +1 -1
- package/lib/esm/secrets/core/SecretTypes.js +1 -1
- package/lib/esm/secrets/core/index.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
- package/lib/esm/secrets/gcp/index.js +1 -1
- package/lib/esm/secrets/index.js +1 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
- package/lib/esm/secrets/model/ModelSecretService.js +1 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/model/Secret.js +1 -1
- package/lib/esm/secrets/model/index.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/onepassword/index.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/vault/index.js +1 -1
- package/lib/esm/shared/runtime.js +1 -1
- package/lib/esm/utils.js +1 -1
- package/lib/types/feature-flags/constants.d.cts +11 -0
- package/lib/types/feature-flags/constants.d.mts +11 -0
- package/lib/types/feature-flags/decorators.d.cts +11 -0
- package/lib/types/feature-flags/decorators.d.mts +11 -0
- package/lib/types/feature-flags/environment.d.cts +11 -0
- package/lib/types/feature-flags/environment.d.mts +11 -0
- package/lib/types/feature-flags/index.d.cts +13 -0
- package/lib/types/feature-flags/index.d.mts +13 -0
- package/lib/types/feature-flags/models/FeatureFlag.model.d.cts +16 -0
- package/lib/types/feature-flags/models/FeatureFlag.model.d.mts +16 -0
- package/lib/types/feature-flags/models/FeatureFlagAccess.model.d.cts +15 -0
- package/lib/types/feature-flags/models/FeatureFlagAccess.model.d.mts +15 -0
- package/lib/types/feature-flags/readers/FeatureFlagReader.d.cts +10 -0
- package/lib/types/feature-flags/readers/FeatureFlagReader.d.mts +10 -0
- package/lib/types/feature-flags/readers/index.d.cts +1 -0
- package/lib/types/feature-flags/readers/index.d.mts +1 -0
- package/lib/types/feature-flags/services/FeatureFlag.service.d.cts +43 -0
- package/lib/types/feature-flags/services/FeatureFlag.service.d.mts +43 -0
- package/lib/types/feature-flags/types.d.cts +39 -0
- package/lib/types/feature-flags/types.d.mts +39 -0
- package/lib/types/feature-flags/utils.d.cts +13 -0
- package/lib/types/feature-flags/utils.d.mts +13 -0
- package/lib/types/index.d.cts +3 -2
- package/lib/types/index.d.mts +3 -2
- package/lib/types/kibana/builders/KibanaIndexBuilder.d.cts +67 -0
- package/lib/types/kibana/builders/KibanaIndexBuilder.d.mts +67 -0
- package/lib/types/kibana/builders/KibanaIndexBuilderCollection.d.cts +17 -0
- package/lib/types/kibana/builders/KibanaIndexBuilderCollection.d.mts +17 -0
- package/lib/types/kibana/builders/index.d.cts +2 -0
- package/lib/types/kibana/builders/index.d.mts +2 -0
- package/lib/types/kibana/index.d.cts +1 -0
- package/lib/types/kibana/index.d.mts +1 -0
- package/lib/types/kibana/types.d.cts +11 -0
- package/lib/types/kibana/types.d.mts +11 -0
- package/lib/types/loader/ObjectLoader.d.cts +27 -0
- package/lib/types/loader/ObjectLoader.d.mts +27 -0
- package/lib/types/loader/families.d.cts +34 -0
- package/lib/types/loader/families.d.mts +34 -0
- package/lib/types/loader/index.d.cts +10 -0
- package/lib/types/loader/index.d.mts +10 -0
- package/lib/types/loader/types.d.cts +24 -0
- package/lib/types/loader/types.d.mts +24 -0
- package/lib/types/nest/decorators.d.cts +8 -0
- package/lib/types/nest/decorators.d.mts +8 -0
- package/lib/types/nest/index.d.cts +1 -1
- package/lib/types/nest/index.d.mts +1 -1
- package/lib/types/nest/keycloakAuthHandler.d.cts +19 -42
- package/lib/types/nest/keycloakAuthHandler.d.mts +19 -42
- package/lib/types/nest/keycloakModule.d.cts +3 -5
- package/lib/types/nest/keycloakModule.d.mts +3 -5
- package/lib/types/nest/types.d.cts +2 -0
- package/lib/types/nest/types.d.mts +2 -0
- package/lib/types/nest/utils.d.cts +3 -4
- package/lib/types/nest/utils.d.mts +3 -4
- package/lib/types/plugins/contract.d.cts +180 -0
- package/lib/types/plugins/contract.d.mts +180 -0
- package/lib/types/plugins/index.d.cts +17 -0
- package/lib/types/plugins/index.d.mts +17 -0
- package/lib/types/plugins/kibana/host.d.cts +18 -0
- package/lib/types/plugins/kibana/host.d.mts +18 -0
- package/lib/types/plugins/kibana/index.d.cts +13 -0
- package/lib/types/plugins/kibana/index.d.mts +13 -0
- package/lib/types/plugins/kibana/installer.d.cts +45 -0
- package/lib/types/plugins/kibana/installer.d.mts +45 -0
- package/lib/types/plugins/kibana/manifest.d.cts +31 -0
- package/lib/types/plugins/kibana/manifest.d.mts +31 -0
- package/lib/types/plugins/kibana/templates.d.cts +12 -0
- package/lib/types/plugins/kibana/templates.d.mts +12 -0
- package/lib/types/plugins/kibana/types.d.cts +9 -0
- package/lib/types/plugins/kibana/types.d.mts +9 -0
- package/lib/types/plugins/superset/host.d.cts +20 -0
- package/lib/types/plugins/superset/host.d.mts +20 -0
- package/lib/types/plugins/superset/index.d.cts +15 -0
- package/lib/types/plugins/superset/index.d.mts +15 -0
- package/lib/types/plugins/superset/installer.d.cts +70 -0
- package/lib/types/plugins/superset/installer.d.mts +70 -0
- package/lib/types/plugins/superset/manifest.d.cts +28 -0
- package/lib/types/plugins/superset/manifest.d.mts +28 -0
- package/lib/types/plugins/superset/templates.d.cts +12 -0
- package/lib/types/plugins/superset/templates.d.mts +12 -0
- package/lib/types/plugins/superset/types.d.cts +10 -0
- package/lib/types/plugins/superset/types.d.mts +10 -0
- package/package.json +62 -3
- package/plugins/kibana/.gitignore +16 -0
- package/plugins/kibana/Dockerfile +19 -0
- package/plugins/kibana/docker-compose.yml +50 -0
- package/plugins/kibana/host/index.html +101 -0
- package/plugins/kibana/setup-dashboards.sh +84 -0
- package/plugins/superset/.gitignore +17 -0
- package/plugins/superset/Dockerfile +79 -0
- package/plugins/superset/docker-compose.yml +62 -0
- package/plugins/superset/host/index.html +168 -0
- package/plugins/superset/setup-dashboards.sh +106 -0
- package/plugins/superset/superset_config.py +49 -0
- package/dist/integrations.cjs.map +0 -1
- package/dist/integrations.js.map +0 -1
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/azure/index.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobErrors.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobKey.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobTypes.cjs.map +0 -1
- package/lib/cjs/blob/core/BlobValue.cjs.map +0 -1
- package/lib/cjs/blob/core/index.cjs.map +0 -1
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/gcp/index.cjs.map +0 -1
- package/lib/cjs/blob/index.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +0 -1
- package/lib/cjs/blob/ipfs/index.cjs.map +0 -1
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/local/index.cjs.map +0 -1
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/memory/index.cjs.map +0 -1
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +0 -1
- package/lib/cjs/blob/s3/index.cjs.map +0 -1
- package/lib/cjs/docker/DockerComposeService.cjs.map +0 -1
- package/lib/cjs/docker/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/constants.cjs.map +0 -1
- package/lib/cjs/graph/engine/decorators.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs.map +0 -1
- package/lib/cjs/graph/engine/errors/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs.map +0 -1
- package/lib/cjs/graph/engine/events/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/execution/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +0 -1
- package/lib/cjs/graph/engine/loops/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +0 -1
- package/lib/cjs/graph/engine/pinning/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs.map +0 -1
- package/lib/cjs/graph/engine/planning/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +0 -1
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/registry/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +0 -1
- package/lib/cjs/graph/engine/snapshots/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs.map +0 -1
- package/lib/cjs/graph/engine/store/index.cjs.map +0 -1
- package/lib/cjs/graph/engine/types.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs.map +0 -1
- package/lib/cjs/graph/engine/validation/index.cjs.map +0 -1
- package/lib/cjs/graph/index.cjs.map +0 -1
- package/lib/cjs/graph/shared/constants.cjs.map +0 -1
- package/lib/cjs/graph/shared/index.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/agent.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/base.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/category-styles.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/index.cjs.map +0 -1
- package/lib/cjs/graph/shared/nodes/triggers.cjs.map +0 -1
- package/lib/cjs/graph/shared/types.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/keycloak/index.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +0 -1
- package/lib/cjs/keycloak/services/index.cjs.map +0 -1
- package/lib/cjs/keycloak/services/runtime.cjs.map +0 -1
- package/lib/cjs/keycloak/types.cjs.map +0 -1
- package/lib/cjs/kibana/helpers.cjs.map +0 -1
- package/lib/cjs/kibana/index.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +0 -1
- package/lib/cjs/kibana/services/KibanaUserService.cjs.map +0 -1
- package/lib/cjs/kibana/services/index.cjs.map +0 -1
- package/lib/cjs/kibana/services/runtime.cjs.map +0 -1
- package/lib/cjs/kibana/types.cjs.map +0 -1
- package/lib/cjs/namespaces/index.cjs.map +0 -1
- package/lib/cjs/namespaces/models/authorization-model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/group-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/group.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/index.cjs.map +0 -1
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/org-unit.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/principal.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role-permission.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/role.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/tenant.model.cjs.map +0 -1
- package/lib/cjs/namespaces/models/user.model.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +0 -1
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +0 -1
- package/lib/cjs/namespaces/services/authz.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/group-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/group.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/index.cjs.map +0 -1
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/org-unit.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/principal.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role-permission.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/role.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/system-management.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/tenant.service.cjs.map +0 -1
- package/lib/cjs/namespaces/services/user.service.cjs.map +0 -1
- package/lib/cjs/namespaces/types.cjs.map +0 -1
- package/lib/cjs/namespaces/utils.cjs.map +0 -1
- package/lib/cjs/nest/authService.cjs +0 -91
- package/lib/cjs/nest/authService.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphResultService.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs.map +0 -1
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs.map +0 -1
- package/lib/cjs/nest/graph/index.cjs.map +0 -1
- package/lib/cjs/nest/graph/main.cjs.map +0 -1
- package/lib/cjs/nest/index.cjs.map +0 -1
- package/lib/cjs/nest/keycloakAuthHandler.cjs.map +0 -1
- package/lib/cjs/nest/keycloakModule.cjs.map +0 -1
- package/lib/cjs/nest/logging.cjs.map +0 -1
- package/lib/cjs/nest/types.cjs.map +0 -1
- package/lib/cjs/nest/utils.cjs.map +0 -1
- package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/aws/index.cjs.map +0 -1
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/azure/index.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretErrors.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretName.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretReference.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretSerialization.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretService.cjs.map +0 -1
- package/lib/cjs/secrets/core/SecretTypes.cjs.map +0 -1
- package/lib/cjs/secrets/core/index.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/gcp/index.cjs.map +0 -1
- package/lib/cjs/secrets/index.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/model/Secret.cjs.map +0 -1
- package/lib/cjs/secrets/model/index.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/onepassword/index.cjs.map +0 -1
- package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +0 -1
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +0 -1
- package/lib/cjs/secrets/vault/index.cjs.map +0 -1
- package/lib/cjs/shared/runtime.cjs.map +0 -1
- package/lib/cjs/utils.cjs.map +0 -1
- package/lib/esm/blob/azure/AzureBlobStoreService.js.map +0 -1
- package/lib/esm/blob/azure/index.js.map +0 -1
- package/lib/esm/blob/core/BlobErrors.js.map +0 -1
- package/lib/esm/blob/core/BlobKey.js.map +0 -1
- package/lib/esm/blob/core/BlobStoreFactory.js.map +0 -1
- package/lib/esm/blob/core/BlobStoreService.js.map +0 -1
- package/lib/esm/blob/core/BlobTypes.js.map +0 -1
- package/lib/esm/blob/core/BlobValue.js.map +0 -1
- package/lib/esm/blob/core/index.js.map +0 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +0 -1
- package/lib/esm/blob/gcp/index.js.map +0 -1
- package/lib/esm/blob/index.js.map +0 -1
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +0 -1
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +0 -1
- package/lib/esm/blob/ipfs/index.js.map +0 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js.map +0 -1
- package/lib/esm/blob/local/index.js.map +0 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +0 -1
- package/lib/esm/blob/memory/index.js.map +0 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +0 -1
- package/lib/esm/blob/s3/index.js.map +0 -1
- package/lib/esm/docker/DockerComposeService.js.map +0 -1
- package/lib/esm/docker/index.js.map +0 -1
- package/lib/esm/graph/engine/constants.js.map +0 -1
- package/lib/esm/graph/engine/decorators.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphCycleError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphInputError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphPinningError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphPortError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphStoreError.js.map +0 -1
- package/lib/esm/graph/engine/errors/GraphTopologyError.js.map +0 -1
- package/lib/esm/graph/engine/errors/index.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +0 -1
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js.map +0 -1
- package/lib/esm/graph/engine/events/index.js.map +0 -1
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +0 -1
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js.map +0 -1
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/execution/index.js.map +0 -1
- package/lib/esm/graph/engine/index.js.map +0 -1
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js.map +0 -1
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js.map +0 -1
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js.map +0 -1
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +0 -1
- package/lib/esm/graph/engine/loops/index.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +0 -1
- package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +0 -1
- package/lib/esm/graph/engine/pinning/index.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js.map +0 -1
- package/lib/esm/graph/engine/planning/GraphTopology.js.map +0 -1
- package/lib/esm/graph/engine/planning/index.js.map +0 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +0 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js.map +0 -1
- package/lib/esm/graph/engine/registry/index.js.map +0 -1
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +0 -1
- package/lib/esm/graph/engine/snapshots/index.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphCachedValue.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphValueKey.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphValueStore.js.map +0 -1
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js.map +0 -1
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js.map +0 -1
- package/lib/esm/graph/engine/store/index.js.map +0 -1
- package/lib/esm/graph/engine/types.js.map +0 -1
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +0 -1
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js.map +0 -1
- package/lib/esm/graph/engine/validation/GraphValueValidator.js.map +0 -1
- package/lib/esm/graph/engine/validation/index.js.map +0 -1
- package/lib/esm/graph/index.js.map +0 -1
- package/lib/esm/graph/shared/constants.js.map +0 -1
- package/lib/esm/graph/shared/index.js.map +0 -1
- package/lib/esm/graph/shared/nodes/agent.js.map +0 -1
- package/lib/esm/graph/shared/nodes/base.js.map +0 -1
- package/lib/esm/graph/shared/nodes/category-styles.js.map +0 -1
- package/lib/esm/graph/shared/nodes/flow-control.js.map +0 -1
- package/lib/esm/graph/shared/nodes/index.js.map +0 -1
- package/lib/esm/graph/shared/nodes/triggers.js.map +0 -1
- package/lib/esm/graph/shared/types.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/keycloak/index.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakService.js.map +0 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js.map +0 -1
- package/lib/esm/keycloak/services/index.js.map +0 -1
- package/lib/esm/keycloak/services/runtime.js.map +0 -1
- package/lib/esm/keycloak/types.js.map +0 -1
- package/lib/esm/kibana/helpers.js.map +0 -1
- package/lib/esm/kibana/index.js.map +0 -1
- package/lib/esm/kibana/services/KibanaAuthService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaRoleService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js.map +0 -1
- package/lib/esm/kibana/services/KibanaUserService.js.map +0 -1
- package/lib/esm/kibana/services/index.js.map +0 -1
- package/lib/esm/kibana/services/runtime.js.map +0 -1
- package/lib/esm/kibana/types.js.map +0 -1
- package/lib/esm/namespaces/index.js.map +0 -1
- package/lib/esm/namespaces/models/authorization-model.js.map +0 -1
- package/lib/esm/namespaces/models/effective-permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/group-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/group.model.js.map +0 -1
- package/lib/esm/namespaces/models/index.js.map +0 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js.map +0 -1
- package/lib/esm/namespaces/models/org-unit.model.js.map +0 -1
- package/lib/esm/namespaces/models/permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/principal.model.js.map +0 -1
- package/lib/esm/namespaces/models/protected-resource.model.js.map +0 -1
- package/lib/esm/namespaces/models/resource-grant.model.js.map +0 -1
- package/lib/esm/namespaces/models/role-assignment.model.js.map +0 -1
- package/lib/esm/namespaces/models/role-permission.model.js.map +0 -1
- package/lib/esm/namespaces/models/role.model.js.map +0 -1
- package/lib/esm/namespaces/models/storage-binding.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js.map +0 -1
- package/lib/esm/namespaces/models/tenant.model.js.map +0 -1
- package/lib/esm/namespaces/models/user.model.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js.map +0 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js.map +0 -1
- package/lib/esm/namespaces/services/authz.service.js.map +0 -1
- package/lib/esm/namespaces/services/bootstrap.service.js.map +0 -1
- package/lib/esm/namespaces/services/effective-permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/group-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/group.service.js.map +0 -1
- package/lib/esm/namespaces/services/index.js.map +0 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js.map +0 -1
- package/lib/esm/namespaces/services/org-unit.service.js.map +0 -1
- package/lib/esm/namespaces/services/permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/principal.service.js.map +0 -1
- package/lib/esm/namespaces/services/protected-resource.service.js.map +0 -1
- package/lib/esm/namespaces/services/resource-grant.service.js.map +0 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +0 -1
- package/lib/esm/namespaces/services/role-assignment.service.js.map +0 -1
- package/lib/esm/namespaces/services/role-permission.service.js.map +0 -1
- package/lib/esm/namespaces/services/role.service.js.map +0 -1
- package/lib/esm/namespaces/services/storage-binding.service.js.map +0 -1
- package/lib/esm/namespaces/services/system-management.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js.map +0 -1
- package/lib/esm/namespaces/services/tenant.service.js.map +0 -1
- package/lib/esm/namespaces/services/user.service.js.map +0 -1
- package/lib/esm/namespaces/types.js.map +0 -1
- package/lib/esm/namespaces/utils.js.map +0 -1
- package/lib/esm/nest/authService.js +0 -86
- package/lib/esm/nest/authService.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutionController.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutionModule.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +0 -1
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +0 -1
- package/lib/esm/nest/graph/GraphResultService.js.map +0 -1
- package/lib/esm/nest/graph/GraphWorkflowModel.js.map +0 -1
- package/lib/esm/nest/graph/GraphWorkflowService.js.map +0 -1
- package/lib/esm/nest/graph/index.js.map +0 -1
- package/lib/esm/nest/graph/main.js.map +0 -1
- package/lib/esm/nest/index.js.map +0 -1
- package/lib/esm/nest/keycloakAuthHandler.js.map +0 -1
- package/lib/esm/nest/keycloakModule.js.map +0 -1
- package/lib/esm/nest/logging.js.map +0 -1
- package/lib/esm/nest/types.js.map +0 -1
- package/lib/esm/nest/utils.js.map +0 -1
- package/lib/esm/secrets/aws/AwsSecretService.js.map +0 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/aws/index.js.map +0 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +0 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/azure/index.js.map +0 -1
- package/lib/esm/secrets/core/SecretErrors.js.map +0 -1
- package/lib/esm/secrets/core/SecretName.js.map +0 -1
- package/lib/esm/secrets/core/SecretReference.js.map +0 -1
- package/lib/esm/secrets/core/SecretSerialization.js.map +0 -1
- package/lib/esm/secrets/core/SecretService.js.map +0 -1
- package/lib/esm/secrets/core/SecretTypes.js.map +0 -1
- package/lib/esm/secrets/core/index.js.map +0 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +0 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +0 -1
- package/lib/esm/secrets/gcp/index.js.map +0 -1
- package/lib/esm/secrets/index.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretService.js.map +0 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/model/Secret.js.map +0 -1
- package/lib/esm/secrets/model/index.js.map +0 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +0 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/onepassword/index.js.map +0 -1
- package/lib/esm/secrets/vault/VaultSecretService.js.map +0 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +0 -1
- package/lib/esm/secrets/vault/index.js.map +0 -1
- package/lib/esm/shared/runtime.js.map +0 -1
- package/lib/esm/utils.js.map +0 -1
- package/lib/types/nest/authService.d.cts +0 -63
- package/lib/types/nest/authService.d.mts +0 -63
|
@@ -260,5 +260,5 @@ exports.KeycloakService = KeycloakService = __decorate([
|
|
|
260
260
|
(0, decoration_1.description)("Orchestrates Keycloak realm/user/client provisioning across the inner Keycloak services"),
|
|
261
261
|
__metadata("design:paramtypes", [])
|
|
262
262
|
], KeycloakService);
|
|
263
|
-
//# sourceMappingURL=KeycloakService.js.map
|
|
264
|
-
//# sourceMappingURL=KeycloakService.cjs.map
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2tleWNsb2FrL3NlcnZpY2VzL0tleWNsb2FrU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUNMLGtCQUFrQixFQUdsQixPQUFPLEdBQ1IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZFLE9BQU8sS0FBd0IsTUFBTSxPQUFPLENBQUM7QUFDN0MsT0FBTyxLQUFLLEtBQUssTUFBTSxZQUFZLENBQUM7QUFFcEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGtDQUErQjtBQUM5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUNBQThCO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQ0FBOEI7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1DQUFnQztBQUNoRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsNkNBQTBDO0FBQ3BGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQ0FBOEI7QUFDNUQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHFCQUFrQjtBQVNuRCxJQUFNLGVBQWUsR0FBckIsTUFBTSxlQUFnQixTQUFRLGtCQUdwQztJQWFDO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRVMsWUFBWTtRQUNwQixPQUFPLENBQUMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQ2QsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxH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LEVBQUUsa0JBQWtCO2FBQ25DO1lBQ0QsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGlCQUFpQixDQUFJLElBQWE7UUFDeEMsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUM7Z0JBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBTSxDQUFDO1lBQy9CLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0YsQ0FBQTtBQS9hWSxlQUFlO0lBSDNCLFdBQVcsQ0FDVix5RkFBeUYsQ0FDMUY7O0dBQ1ksZUFBZSxDQSthM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXNjcmlwdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHtcbiAgQ2xpZW50QmFzZWRTZXJ2aWNlLFxuICBDb250ZXh0dWFsQXJncyxcbiAgTWF5YmVDb250ZXh0dWFsQXJnLFxuICBzZXJ2aWNlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB0eXBlIHsgS2V5Y2xvYWtTZXR1cENvbmZpZywgS2V5Y2xvYWtVc2VyIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgQXhpb3MsIHsgQXhpb3NJbnN0YW5jZSB9IGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcblxuaW1wb3J0IHsgS2V5Y2xvYWtSZWFsbVNlcnZpY2UgfSBmcm9tIFwiLi9LZXljbG9ha1JlYWxtU2VydmljZVwiO1xuaW1wb3J0IHsgS2V5Y2xvYWtVc2VyU2VydmljZSB9IGZyb20gXCIuL0tleWNsb2FrVXNlclNlcnZpY2VcIjtcbmltcG9ydCB7IEtleWNsb2FrUm9sZVNlcnZpY2UgfSBmcm9tIFwiLi9LZXljbG9ha1JvbGVTZXJ2aWNlXCI7XG5pbXBvcnQgeyBLZXljbG9ha0NsaWVudFNlcnZpY2UgfSBmcm9tIFwiLi9LZXljbG9ha0NsaWVudFNlcnZpY2VcIjtcbmltcG9ydCB7IEtleWNsb2FrSWRlbnRpdHlQcm92aWRlclNlcnZpY2UgfSBmcm9tIFwiLi9LZXljbG9ha0lkZW50aXR5UHJvdmlkZXJTZXJ2aWNlXCI7XG5pbXBvcnQgeyBLZXljbG9ha0F1dGhTZXJ2aWNlIH0gZnJvbSBcIi4vS2V5Y2xvYWtBdXRoU2VydmljZVwiO1xuaW1wb3J0IHsgc2V0S2V5Y2xvYWtQcm9kdWN0aW9uUmVzb2x2ZXIgfSBmcm9tIFwiLi9ydW50aW1lXCI7XG5cbnR5cGUgS2V5Y2xvYWtSdW50aW1lU2V0dXBDb25maWcgPSBLZXljbG9ha1NldHVwQ29uZmlnICYge1xuICBpc1Byb2R1Y3Rpb24oKTogYm9vbGVhbjtcbn07XG5cbkBkZXNjcmlwdGlvbihcbiAgXCJPcmNoZXN0cmF0ZXMgS2V5Y2xvYWsgcmVhbG0vdXNlci9jbGllbnQgcHJvdmlzaW9uaW5nIGFjcm9zcyB0aGUgaW5uZXIgS2V5Y2xvYWsgc2VydmljZXNcIlxuKVxuZXhwb3J0IGNsYXNzIEtleWNsb2FrU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZTxcbiAgQXhpb3NJbnN0YW5jZSxcbiAgS2V5Y2xvYWtTZXR1cENvbmZpZ1xuPiB7XG4gIHByb3RlY3RlZCByZWFsbVNlcnZpY2UhOiBLZXljbG9ha1JlYWxtU2VydmljZTtcblxuICBwcm90ZWN0ZWQgdXNlclNlcnZpY2UhOiBLZXljbG9ha1VzZXJTZXJ2aWNlO1xuXG4gIHByb3RlY3RlZCByb2xlU2VydmljZSE6IEtleWNsb2FrUm9sZVNlcnZpY2U7XG5cbiAgcHJvdGVjdGVkIGNsaWVudFNlcnZpY2UhOiBLZXljbG9ha0NsaWVudFNlcnZpY2U7XG5cbiAgcHJvdGVjdGVkIGlkZW50aXR5UHJvdmlkZXJTZXJ2aWNlITogS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyU2VydmljZTtcblxuICBwcm90ZWN0ZWQgYXV0aFNlcnZpY2UhOiBLZXljbG9ha0F1dGhTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaXNQcm9kdWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhW1wiZGV2ZWxvcG1lbnRcIiwgXCJsb2NhbFwiXS5pbmNsdWRlcyhwcm9jZXNzLmVudltcIk5PREVfRU5WXCJdID8/IFwiXCIpO1xuICB9XG5cbiAgYXN5bmMgaW5pdGlhbGl6ZShcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHsgY29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnOyBjbGllbnQ6IEF4aW9zSW5zdGFuY2UgfT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJpbml0aWFsaXplXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmluaXRpYWxpemVcbiAgICApO1xuICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF0gYXMgS2V5Y2xvYWtTZXR1cENvbmZpZztcbiAgICBjb25zdCBydW50aW1lQ29uZmlnOiBLZXljbG9ha1J1bnRpbWVTZXR1cENvbmZpZyA9IHtcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGlzUHJvZHVjdGlvbjogdGhpcy5pc1Byb2R1Y3Rpb24uYmluZCh0aGlzKSxcbiAgICB9O1xuICAgIHRoaXMuX2NvbmZpZyA9IHJ1bnRpbWVDb25maWc7XG4gICAgc2V0S2V5Y2xvYWtQcm9kdWN0aW9uUmVzb2x2ZXIodGhpcy5pc1Byb2R1Y3Rpb24uYmluZCh0aGlzKSk7XG5cbiAgICBsb2cuZGVidWcoYEJpbmRpbmcgaW5uZXIgc2VydmljZXMuLi5gKTtcbiAgICBzZXJ2aWNlKCkoS2V5Y2xvYWtSZWFsbVNlcnZpY2UpO1xuICAgIHNlcnZpY2UoKShLZXljbG9ha1VzZXJTZXJ2aWNlKTtcbiAgICBzZXJ2aWNlKCkoS2V5Y2xvYWtSb2xlU2VydmljZSk7XG4gICAgc2VydmljZSgpKEtleWNsb2FrQ2xpZW50U2VydmljZSk7XG4gICAgc2VydmljZSgpKEtleWNsb2FrSWRlbnRpdHlQcm92aWRlclNlcnZpY2UpO1xuICAgIHNlcnZpY2UoKShLZXljbG9ha0F1dGhTZXJ2aWNlKTtcblxuICAgIGxvZy5kZWJ1ZyhgSW5pdGlhbGl6aW5nIGlubmVyIHNlcnZpY2VzLi4uYCk7XG4gICAgdGhpcy5yZWFsbVNlcnZpY2UgPSBuZXcgS2V5Y2xvYWtSZWFsbVNlcnZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLnJlYWxtU2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgIHRoaXMudXNlclNlcnZpY2UgPSBuZXcgS2V5Y2xvYWtVc2VyU2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMudXNlclNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICB0aGlzLnJvbGVTZXJ2aWNlID0gbmV3IEtleWNsb2FrUm9sZVNlcnZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG4gICAgdGhpcy5jbGllbnRTZXJ2aWNlID0gbmV3IEtleWNsb2FrQ2xpZW50U2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMuY2xpZW50U2VydmljZS5pbml0aWFsaXplKHJ1bnRpbWVDb25maWcsIC4uLmN0eEFyZ3MpO1xuICAgIHRoaXMuaWRlbnRpdHlQcm92aWRlclNlcnZpY2UgPSBuZXcgS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyU2VydmljZSgpO1xuICAgIGF3YWl0IHRoaXMuaWRlbnRpdHlQcm92aWRlclNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlID0gbmV3IEtleWNsb2FrQXV0aFNlcnZpY2UoKTtcbiAgICBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLmluaXRpYWxpemUocnVudGltZUNvbmZpZywgLi4uY3R4QXJncyk7XG5cbiAgICBjb25zdCBjbGllbnQgPSB0aGlzLmNyZWF0ZUh0dHBDbGllbnQocnVudGltZUNvbmZpZyk7XG4gICAgdGhpcy5fY2xpZW50ID0gY2xpZW50O1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGBLZXljbG9hayBTZXJ2aWNlIGluaXRpYWxpemVkIHdpdGggY29uZmlnOiAke0pTT04uc3RyaW5naWZ5KGNvbmZpZyl9YFxuICAgICk7XG4gICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgfVxuXG4gIGFzeW5jIHNldHVwS2V5Y2xvYWsoXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPEtleWNsb2FrU2V0dXBDb25maWc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInNldHVwS2V5Y2xvYWtcIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMuc2V0dXBLZXljbG9ha1xuICAgICk7XG5cbiAgICBjb25zdCBhZG1pbkFwaVVzZXJVVUlEID0gYXdhaXQgdGhpcy51c2VyU2VydmljZS5hZGRVc2VyVG9SZWFsbShcbiAgICAgIGtleWNsb2FrU2V0dXBDb25maWcuYWRtaW5BcGlVc2VyISxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZy5hZG1pbkFwaVVzZXIhLnVzZXJuYW1lVVVJRCA9IGFkbWluQXBpVXNlclVVSUQ7XG4gICAgYXdhaXQgdGhpcy5yb2xlU2VydmljZS5ncmFudFJlYWxtUm9sZXNUb1VzZXIoXG4gICAgICBrZXljbG9ha1NldHVwQ29uZmlnLmFkbWluQXBpVXNlciEucmVhbG0sXG4gICAgICBhZG1pbkFwaVVzZXJVVUlELFxuICAgICAgW1wiYWRtaW5cIl0sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICByZXR1cm4ga2V5Y2xvYWtTZXR1cENvbmZpZztcbiAgfVxuXG4gIGFzeW5jIGFkZFJlYWxtKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHBheWxvYWQ6IGFueSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImFkZFJlYWxtXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmFkZFJlYWxtXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnJlYWxtU2VydmljZS5hZGRSZWFsbShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgZWRpdFJlYWxtKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHBheWxvYWQ6IGFueSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImVkaXRSZWFsbVwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5lZGl0UmVhbG1cbiAgICApO1xuICAgIGF3YWl0IHRoaXMucmVhbG1TZXJ2aWNlLmVkaXRSZWFsbShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlUmVhbG0oXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZW1vdmVSZWFsbVwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy5yZW1vdmVSZWFsbVxuICAgICk7XG4gICAgYXdhaXQgdGhpcy5yZWFsbVNlcnZpY2UucmVtb3ZlUmVhbG0ocmVhbG1OYW1lLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGFkZFVzZXJUb1JlYWxtKFxuICAgIGtleWNsb2FrVXNlcjogS2V5Y2xvYWtVc2VyLFxuICAgIHBheWxvYWQ6IGFueSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiYWRkVXNlclRvUmVhbG1cIiwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMuYWRkVXNlclRvUmVhbG1cbiAgICApO1xuICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLmFkZFVzZXJUb1JlYWxtKGtleWNsb2FrVXNlciwgcGF5bG9hZCwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBlZGl0VXNlcihcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICB1c2VyVVVJRDogc3RyaW5nLFxuICAgIHBheWxvYWQ6IGFueSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImVkaXRVc2VyXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmVkaXRVc2VyXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmVkaXRVc2VyKHJlYWxtTmFtZSwgdXNlclVVSUQsIHBheWxvYWQsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlVXNlckZyb21SZWFsbShcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICB1c2VyVVVJRDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZW1vdmVVc2VyRnJvbVJlYWxtXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZW1vdmVVc2VyRnJvbVJlYWxtKTtcbiAgICBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLnJlbW92ZVVzZXJGcm9tUmVhbG0ocmVhbG1OYW1lLCB1c2VyVVVJRCwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyBhZGRSZWFsbVJvbGVzVG9Vc2VyKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHVzZXJVVUlEOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiYWRkUmVhbG1Sb2xlc1RvVXNlclwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuYWRkUmVhbG1Sb2xlc1RvVXNlcik7XG4gICAgYXdhaXQgdGhpcy5yb2xlU2VydmljZS5ncmFudFJlYWxtUm9sZXNUb1VzZXIoXG4gICAgICByZWFsbU5hbWUsXG4gICAgICB1c2VyVVVJRCxcbiAgICAgIHJvbGVOYW1lcyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSByZWFsbS1sZXZlbCByb2xlLCBvcHRpb25hbGx5IGFzIGEgY29tcG9zaXRlIG9mIGV4aXN0aW5nIHJvbGVzLlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlUmVhbG1Sb2xlKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHJvbGVOYW1lOiBzdHJpbmcsXG4gICAgY29tcG9zaXRlUm9sZXM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlUmVhbG1Sb2xlXCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmNyZWF0ZVJlYWxtUm9sZVxuICAgICk7XG4gICAgYXdhaXQgdGhpcy5yb2xlU2VydmljZS5jcmVhdGVSZWFsbVJvbGUoXG4gICAgICByZWFsbU5hbWUsXG4gICAgICByb2xlTmFtZSxcbiAgICAgIGNvbXBvc2l0ZVJvbGVzLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGNsaWVudCBpbiB0aGUgY29uZmlndXJlZCByZWFsbSBhbmQgcmV0dXJucyBpdHMgVVVJRC5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZUNsaWVudChcbiAgICBjb25maWc6IEtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgb3ZlcnJpZGVzOiBQYXJ0aWFsPGltcG9ydChcIi4uL3R5cGVzXCIpLktleWNsb2FrQ2xpZW50Q29uZmlnPiB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlQ2xpZW50XCIsIHRydWUpKS5mb3IoXG4gICAgICB0aGlzLmNyZWF0ZUNsaWVudFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuY2xpZW50U2VydmljZS5jcmVhdGVDbGllbnQoY29uZmlnLCBvdmVycmlkZXMsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgYWRkQ2xpZW50Um9sZXNUb1VzZXIoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgY2xpZW50VVVJRDogc3RyaW5nLFxuICAgIHVzZXJVVUlEOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiYWRkQ2xpZW50Um9sZXNUb1VzZXJcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmFkZENsaWVudFJvbGVzVG9Vc2VyKTtcbiAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmdyYW50Q2xpZW50Um9sZXNUb1VzZXIoXG4gICAgICByZWFsbU5hbWUsXG4gICAgICBjbGllbnRVVUlELFxuICAgICAgdXNlclVVSUQsXG4gICAgICByb2xlTmFtZXMsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUFkbWluQXBpVXNlcihcbiAgICBrZXljbG9ha1NldHVwQ29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJkZWxldGVBZG1pbkFwaVVzZXJcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmRlbGV0ZUFkbWluQXBpVXNlcik7XG4gICAgY29uc3Qgcm9vdEFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5hdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbihcbiAgICAgIGtleWNsb2FrU2V0dXBDb25maWcucm9vdEFwaVVzZXIhLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS5kZWxldGVVc2VyKFxuICAgICAgcm9vdEFjY2Vzc1Rva2VuLFxuICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZy5hZG1pbkFwaVVzZXIhLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBzZXR1cE9yZ2FuaXphdGlvbihcbiAgICBjb25maWc/OiBLZXljbG9ha1NldHVwQ29uZmlnLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8S2V5Y2xvYWtTZXR1cENvbmZpZz4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJzZXR1cE9yZ2FuaXphdGlvblwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuc2V0dXBPcmdhbml6YXRpb24pO1xuICAgIGNvbnN0IGVmZmVjdGl2ZUNvbmZpZyA9IGNvbmZpZyA/PyB0aGlzLmNvbmZpZztcblxuICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKFxuICAgICAgZWZmZWN0aXZlQ29uZmlnLmFkbWluQXBpVXNlciB8fCB0aGlzLmNvbmZpZy5hZG1pbkFwaVVzZXIhLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG5cbiAgICBhd2FpdCB0aGlzLnJlYWxtU2VydmljZS5jcmVhdGVSZWFsbShcbiAgICAgIGVmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIhLnJlYWxtLFxuICAgICAgZWZmZWN0aXZlQ29uZmlnLnJlYWxtQ29uZmlnID8/IHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yUmVhbG0oZWZmZWN0aXZlQ29uZmlnLnJlYWxtQXBpVXNlciEucmVhbG0sIC4uLmN0eEFyZ3MpO1xuXG4gICAgY29uc3QgcmVhbG1Vc2VyVVVJRCA9IGF3YWl0IHRoaXMudXNlclNlcnZpY2UuY3JlYXRlUmVhbG1Vc2VyKFxuICAgICAgZWZmZWN0aXZlQ29uZmlnLnJlYWxtQXBpVXNlciEsXG4gICAgICB7fSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGVmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIhLnVzZXJuYW1lVVVJRCA9IHJlYWxtVXNlclVVSUQ7XG5cbiAgICBjb25zdCByZWFsbU1hbmFnZW1lbnRVVUlEID0gYXdhaXQgdGhpcy5jbGllbnRTZXJ2aWNlLmdldENsaWVudFVVSUQoXG4gICAgICBhZG1pbkFjY2Vzc1Rva2VuLFxuICAgICAgZWZmZWN0aXZlQ29uZmlnLnJlYWxtQXBpVXNlciEucmVhbG0sXG4gICAgICBcInJlYWxtLW1hbmFnZW1lbnRcIixcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuYXNzaWduUm9sZXNUb1VzZXIoXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke2VmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIhLnJlYWxtfS9jbGllbnRzLyR7cmVhbG1NYW5hZ2VtZW50VVVJRH0vcm9sZXNgLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtlZmZlY3RpdmVDb25maWcucmVhbG1BcGlVc2VyIS5yZWFsbX0vdXNlcnMvJHtyZWFsbVVzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL2NsaWVudHMvJHtyZWFsbU1hbmFnZW1lbnRVVUlEfWAsXG4gICAgICBbXCJtYW5hZ2UtY2xpZW50c1wiLCBcIm1hbmFnZS1pZGVudGl0eS1wcm92aWRlcnNcIl0sXG4gICAgICBhZG1pbkFjY2Vzc1Rva2VuLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG5cbiAgICBjb25zdCBjbGllbnRVVUlEID0gYXdhaXQgdGhpcy5jbGllbnRTZXJ2aWNlLmNyZWF0ZUNsaWVudChcbiAgICAgIGVmZmVjdGl2ZUNvbmZpZyxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGVmZmVjdGl2ZUNvbmZpZy5jbGllbnQuY2xpZW50VVVJRCA9IGNsaWVudFVVSUQ7XG5cbiAgICBhd2FpdCB0aGlzLnVwZGF0ZUNsaWVudFNjb3Blc1JvbGVzTWFwcGVycyhcbiAgICAgIGVmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIhLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG5cbiAgICByZXR1cm4gZWZmZWN0aXZlQ29uZmlnO1xuICB9XG5cbiAgYXN5bmMgc2V0dXBPcmdhbml6YXRpb25TU08oXG4gICAga2V5Y2xvYWtTZXR1cENvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwic2V0dXBPcmdhbml6YXRpb25TU09cIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnNldHVwT3JnYW5pemF0aW9uU1NPKTtcblxuICAgIGF3YWl0IHRoaXMuY2xpZW50U2VydmljZS5jcmVhdGVDbGllbnRSb2xlcyhcbiAgICAgIGtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBpZiAoa2V5Y2xvYWtTZXR1cENvbmZpZy5pZGVudGl0eVByb3ZpZGVyKSB7XG4gICAgICBhd2FpdCB0aGlzLmlkZW50aXR5UHJvdmlkZXJTZXJ2aWNlLmNyZWF0ZUlkZW50aXR5UHJvdmlkZXIoXG4gICAgICAgIGtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgLi4uY3R4QXJnc1xuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuaWRlbnRpdHlQcm92aWRlclNlcnZpY2UuY3JlYXRlSWRlbnRpdHlQcm92aWRlck1hcHBlcnMoXG4gICAgICAgIGtleWNsb2FrU2V0dXBDb25maWcsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgLi4uY3R4QXJnc1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGVPcmdhbml6YXRpb24oXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZU9yZ2FuaXphdGlvblwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZGVsZXRlT3JnYW5pemF0aW9uKTtcbiAgICBhd2FpdCB0aGlzLnJlYWxtU2VydmljZS5yZW1vdmVSZWFsbShyZWFsbU5hbWUsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVIdHRwQ2xpZW50KGNvbmZpZzogS2V5Y2xvYWtTZXR1cENvbmZpZyk6IEF4aW9zSW5zdGFuY2Uge1xuICAgIHJldHVybiBBeGlvcy5jcmVhdGUoe1xuICAgICAgYmFzZVVSTDogYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9YCxcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgcmVqZWN0VW5hdXRob3JpemVkOiB0aGlzLmlzUHJvZHVjdGlvbigpLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHdhaXRGb3JSZWFsbShcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcIndhaXRGb3JSZWFsbVwiLCB0cnVlKSkuZm9yKFxuICAgICAgdGhpcy53YWl0Rm9yUmVhbG1cbiAgICApO1xuXG4gICAgY29uc3QgZGVhZGxpbmUgPSBEYXRlLm5vdygpICsgMTUwMDA7XG4gICAgd2hpbGUgKERhdGUubm93KCkgPCBkZWFkbGluZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWFsbVNlcnZpY2UuZ2V0UmVhbG0ocmVhbG1OYW1lLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwMCkpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgVGltZWQgb3V0IHdhaXRpbmcgZm9yIHJlYWxtICR7cmVhbG1OYW1lfWApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVDbGllbnRTY29wZXNSb2xlc01hcHBlcnMoXG4gICAga2V5Y2xvYWtVc2VyOiBLZXljbG9ha1VzZXIsXG4gICAgLi4uYXJnczogQ29udGV4dHVhbEFyZ3M8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZUNsaWVudFNjb3Blc1JvbGVzTWFwcGVycyk7XG5cbiAgICBjb25zdCBjbGllbnQgPSB0aGlzLmNyZWF0ZUh0dHBDbGllbnQodGhpcy5jb25maWcpO1xuICAgIGNvbnN0IHJlYWxtQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKFxuICAgICAga2V5Y2xvYWtVc2VyLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgY29uc3Qgcm9sZXNSZXNwb25zZSA9IGF3YWl0IGNsaWVudC5yZXF1ZXN0KHtcbiAgICAgIG1ldGhvZDogXCJHRVRcIixcbiAgICAgIHVybDogYCR7dGhpcy5jb25maWcucHJvdG9jb2x9Oi8vJHt0aGlzLmNvbmZpZy5ob3N0fS9hZG1pbi9yZWFsbXMvJHtrZXljbG9ha1VzZXIucmVhbG19L2NsaWVudC1zY29wZXNgLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7cmVhbG1BY2Nlc3NUb2tlbn1gLFxuICAgICAgfSxcbiAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgIH0pO1xuICAgIGNvbnN0IGNsaWVudFNjb3BlcyA9XG4gICAgICB0aGlzLnBhcnNlSnNvblJlc3BvbnNlPFxuICAgICAgICBBcnJheTx7XG4gICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgICAgcHJvdG9jb2xNYXBwZXJzPzogQXJyYXk8e1xuICAgICAgICAgICAgaWQ6IHN0cmluZztcbiAgICAgICAgICAgIG5hbWU6IHN0cmluZztcbiAgICAgICAgICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICAgICAgICB9PjtcbiAgICAgICAgfT5cbiAgICAgID4ocm9sZXNSZXNwb25zZS5kYXRhKSA/PyBbXTtcbiAgICBjb25zdCByb2xlc1Njb3BlID0gY2xpZW50U2NvcGVzLmZpbmQoKHNjb3BlKSA9PiBzY29wZS5uYW1lID09PSBcInJvbGVzXCIpO1xuICAgIGNvbnN0IGNsaWVudFJvbGVzTWFwcGVyID0gcm9sZXNTY29wZT8ucHJvdG9jb2xNYXBwZXJzPy5maW5kKFxuICAgICAgKG1hcHBlcikgPT4gbWFwcGVyLm5hbWUgPT09IFwiY2xpZW50IHJvbGVzXCJcbiAgICApO1xuICAgIGlmICghcm9sZXNTY29wZSB8fCAhY2xpZW50Um9sZXNNYXBwZXIpIHtcbiAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFwiVW5hYmxlIHRvIGZpbmQgY2xpZW50IHJvbGVzIG1hcHBlclwiKTtcbiAgICB9XG4gICAgY2xpZW50Um9sZXNNYXBwZXIuY29uZmlnW1wiaWQudG9rZW4uY2xhaW1cIl0gPSBcInRydWVcIjtcbiAgICBhd2FpdCBjbGllbnQucmVxdWVzdCh7XG4gICAgICBtZXRob2Q6IFwiUFVUXCIsXG4gICAgICB1cmw6IGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuaG9zdH0vYWRtaW4vcmVhbG1zLyR7a2V5Y2xvYWtVc2VyLnJlYWxtfS9jbGllbnQtc2NvcGVzLyR7cm9sZXNTY29wZS5pZH0vcHJvdG9jb2wtbWFwcGVycy9tb2RlbHMvJHtjbGllbnRSb2xlc01hcHBlci5pZH1gLFxuICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoY2xpZW50Um9sZXNNYXBwZXIpLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7cmVhbG1BY2Nlc3NUb2tlbn1gLFxuICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgIH0sXG4gICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VKc29uUmVzcG9uc2U8VD4oZGF0YTogdW5rbm93bik6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSkgYXMgVDtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YSBhcyBUO1xuICB9XG59XG4iXX0=
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiS2V5Y2xvYWtTZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxD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QUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixDQUFDO1lBQ0QsTUFBTSxDQUFDO2dCQUNILE9BQU8sU0FBUyxDQUFDO1lBQ3JCLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKLENBQUM7QUFLTywwQ0FBZTtBQUp4QiwwQkFBQSxlQUFlLEdBQUcsVUFBVSxDQUFDO0lBQ3pCLElBQUEsd0JBQVcsRUFBQyx5RkFBeUYsQ0FBQztJQUN0RyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO0NBQ3RDLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFFcEIsc21qQ0FBc21qQyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2RlY29yYXRlID0gKHRoaXMgJiYgdGhpcy5fX2RlY29yYXRlKSB8fCBmdW5jdGlvbiAoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcbiAgICB2YXIgYyA9IGFyZ3VtZW50cy5sZW5ndGgsIHIgPSBjIDwgMyA/IHRhcmdldCA6IGRlc2MgPT09IG51bGwgPyBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIGtleSkgOiBkZXNjLCBkO1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5kZWNvcmF0ZSA9PT0gXCJmdW5jdGlvblwiKSByID0gUmVmbGVjdC5kZWNvcmF0ZShkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYyk7XG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcbiAgICByZXR1cm4gYyA+IDMgJiYgciAmJiBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHIpLCByO1xufTtcbnZhciBfX21ldGFkYXRhID0gKHRoaXMgJiYgdGhpcy5fX21ldGFkYXRhKSB8fCBmdW5jdGlvbiAoaywgdikge1xuICAgIGlmICh0eXBlb2YgUmVmbGVjdCA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgUmVmbGVjdC5tZXRhZGF0YSA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gUmVmbGVjdC5tZXRhZGF0YShrLCB2KTtcbn07XG5pbXBvcnQgeyBkZXNjcmlwdGlvbiB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgQ2xpZW50QmFzZWRTZXJ2aWNlLCBzZXJ2aWNlLCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IEF4aW9zIGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcbmltcG9ydCB7IEtleWNsb2FrUmVhbG1TZXJ2aWNlIH0gZnJvbSBcIi4vS2V5Y2xvYWtSZWFsbVNlcnZpY2UuanNcIjtcbmltcG9ydCB7IEtleWNsb2FrVXNlclNlcnZpY2UgfSBmcm9tIFwiLi9LZXljbG9ha1VzZXJTZXJ2aWNlLmpzXCI7XG5pbXBvcnQgeyBLZXljbG9ha1JvbGVTZXJ2aWNlIH0gZnJvbSBcIi4vS2V5Y2xvYWtSb2xlU2VydmljZS5qc1wiO1xuaW1wb3J0IHsgS2V5Y2xvYWtDbGllbnRTZXJ2aWNlIH0gZnJvbSBcIi4vS2V5Y2xvYWtDbGllbnRTZXJ2aWNlLmpzXCI7XG5pbXBvcnQgeyBLZXljbG9ha0lkZW50aXR5UHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSBcIi4vS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyU2VydmljZS5qc1wiO1xuaW1wb3J0IHsgS2V5Y2xvYWtBdXRoU2VydmljZSB9IGZyb20gXCIuL0tleWNsb2FrQXV0aFNlcnZpY2UuanNcIjtcbmltcG9ydCB7IHNldEtleWNsb2FrUHJvZHVjdGlvblJlc29sdmVyIH0gZnJvbSBcIi4vcnVudGltZS5qc1wiO1xubGV0IEtleWNsb2FrU2VydmljZSA9IGNsYXNzIEtleWNsb2FrU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuICAgIGlzUHJvZHVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICFbXCJkZXZlbG9wbWVudFwiLCBcImxvY2FsXCJdLmluY2x1ZGVzKHByb2Nlc3MuZW52W1wiTk9ERV9FTlZcIl0gPz8gXCJcIik7XG4gICAgfVxuICAgIGFzeW5jIGluaXRpYWxpemUoLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiaW5pdGlhbGl6ZVwiLCB0cnVlKSkuZm9yKHRoaXMuaW5pdGlhbGl6ZSk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF07XG4gICAgICAgIGNvbnN0IHJ1bnRpbWVDb25maWcgPSB7XG4gICAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgICBpc1Byb2R1Y3Rpb246IHRoaXMuaXNQcm9kdWN0aW9uLmJpbmQodGhpcyksXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IHJ1bnRpbWVDb25maWc7XG4gICAgICAgIHNldEtleWNsb2FrUHJvZHVjdGlvblJlc29sdmVyKHRoaXMuaXNQcm9kdWN0aW9uLmJpbmQodGhpcykpO1xuICAgICAgICBsb2cuZGVidWcoYEJpbmRpbmcgaW5uZXIgc2VydmljZXMuLi5gKTtcbiAgICAgICAgc2VydmljZSgpKEtleWNsb2FrUmVhbG1TZXJ2aWNlKTtcbiAgICAgICAgc2VydmljZSgpKEtleWNsb2FrVXNlclNlcnZpY2UpO1xuICAgICAgICBzZXJ2aWNlKCkoS2V5Y2xvYWtSb2xlU2VydmljZSk7XG4gICAgICAgIHNlcnZpY2UoKShLZXljbG9ha0NsaWVudFNlcnZpY2UpO1xuICAgICAgICBzZXJ2aWNlKCkoS2V5Y2xvYWtJZGVudGl0eVByb3ZpZGVyU2VydmljZSk7XG4gICAgICAgIHNlcnZpY2UoKShLZXljbG9ha0F1dGhTZXJ2aWNlKTtcbiAgICAgICAgbG9nLmRlYnVnKGBJbml0aWFsaXppbmcgaW5uZXIgc2VydmljZXMuLi5gKTtcbiAgICAgICAgdGhpcy5yZWFsbVNlcnZpY2UgPSBuZXcgS2V5Y2xvYWtSZWFsbVNlcnZpY2UoKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWFsbVNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgdGhpcy51c2VyU2VydmljZSA9IG5ldyBLZXljbG9ha1VzZXJTZXJ2aWNlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMudXNlclNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgdGhpcy5yb2xlU2VydmljZSA9IG5ldyBLZXljbG9ha1JvbGVTZXJ2aWNlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgdGhpcy5jbGllbnRTZXJ2aWNlID0gbmV3IEtleWNsb2FrQ2xpZW50U2VydmljZSgpO1xuICAgICAgICBhd2FpdCB0aGlzLmNsaWVudFNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgdGhpcy5pZGVudGl0eVByb3ZpZGVyU2VydmljZSA9IG5ldyBLZXljbG9ha0lkZW50aXR5UHJvdmlkZXJTZXJ2aWNlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuaWRlbnRpdHlQcm92aWRlclNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZSA9IG5ldyBLZXljbG9ha0F1dGhTZXJ2aWNlKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuYXV0aFNlcnZpY2UuaW5pdGlhbGl6ZShydW50aW1lQ29uZmlnLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KHJ1bnRpbWVDb25maWcpO1xuICAgICAgICB0aGlzLl9jbGllbnQgPSBjbGllbnQ7XG4gICAgICAgIGxvZy5kZWJ1ZyhgS2V5Y2xvYWsgU2VydmljZSBpbml0aWFsaXplZCB3aXRoIGNvbmZpZzogJHtKU09OLnN0cmluZ2lmeShjb25maWcpfWApO1xuICAgICAgICByZXR1cm4geyBjb25maWcsIGNsaWVudCB9O1xuICAgIH1cbiAgICBhc3luYyBzZXR1cEtleWNsb2FrKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJzZXR1cEtleWNsb2FrXCIsIHRydWUpKS5mb3IodGhpcy5zZXR1cEtleWNsb2FrKTtcbiAgICAgICAgY29uc3QgYWRtaW5BcGlVc2VyVVVJRCA9IGF3YWl0IHRoaXMudXNlclNlcnZpY2UuYWRkVXNlclRvUmVhbG0oa2V5Y2xvYWtTZXR1cENvbmZpZy5hZG1pbkFwaVVzZXIsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAga2V5Y2xvYWtTZXR1cENvbmZpZy5hZG1pbkFwaVVzZXIudXNlcm5hbWVVVUlEID0gYWRtaW5BcGlVc2VyVVVJRDtcbiAgICAgICAgYXdhaXQgdGhpcy5yb2xlU2VydmljZS5ncmFudFJlYWxtUm9sZXNUb1VzZXIoa2V5Y2xvYWtTZXR1cENvbmZpZy5hZG1pbkFwaVVzZXIucmVhbG0sIGFkbWluQXBpVXNlclVVSUQsIFtcImFkbWluXCJdLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgcmV0dXJuIGtleWNsb2FrU2V0dXBDb25maWc7XG4gICAgfVxuICAgIGFzeW5jIGFkZFJlYWxtKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImFkZFJlYWxtXCIsIHRydWUpKS5mb3IodGhpcy5hZGRSZWFsbSk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVhbG1TZXJ2aWNlLmFkZFJlYWxtKHJlYWxtTmFtZSwgcGF5bG9hZCwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGVkaXRSZWFsbShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJlZGl0UmVhbG1cIiwgdHJ1ZSkpLmZvcih0aGlzLmVkaXRSZWFsbSk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVhbG1TZXJ2aWNlLmVkaXRSZWFsbShyZWFsbU5hbWUsIHBheWxvYWQsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyByZW1vdmVSZWFsbShyZWFsbU5hbWUsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZW1vdmVSZWFsbVwiLCB0cnVlKSkuZm9yKHRoaXMucmVtb3ZlUmVhbG0pO1xuICAgICAgICBhd2FpdCB0aGlzLnJlYWxtU2VydmljZS5yZW1vdmVSZWFsbShyZWFsbU5hbWUsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBhZGRVc2VyVG9SZWFsbShrZXljbG9ha1VzZXIsIHBheWxvYWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJhZGRVc2VyVG9SZWFsbVwiLCB0cnVlKSkuZm9yKHRoaXMuYWRkVXNlclRvUmVhbG0pO1xuICAgICAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5hZGRVc2VyVG9SZWFsbShrZXljbG9ha1VzZXIsIHBheWxvYWQsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBlZGl0VXNlcihyZWFsbU5hbWUsIHVzZXJVVUlELCBwYXlsb2FkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZWRpdFVzZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLmVkaXRVc2VyKTtcbiAgICAgICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS5lZGl0VXNlcihyZWFsbU5hbWUsIHVzZXJVVUlELCBwYXlsb2FkLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgcmVtb3ZlVXNlckZyb21SZWFsbShyZWFsbU5hbWUsIHVzZXJVVUlELCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmVtb3ZlVXNlckZyb21SZWFsbVwiLCB0cnVlKSkuZm9yKHRoaXMucmVtb3ZlVXNlckZyb21SZWFsbSk7XG4gICAgICAgIGF3YWl0IHRoaXMudXNlclNlcnZpY2UucmVtb3ZlVXNlckZyb21SZWFsbShyZWFsbU5hbWUsIHVzZXJVVUlELCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgYWRkUmVhbG1Sb2xlc1RvVXNlcihyZWFsbU5hbWUsIHVzZXJVVUlELCByb2xlTmFtZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJhZGRSZWFsbVJvbGVzVG9Vc2VyXCIsIHRydWUpKS5mb3IodGhpcy5hZGRSZWFsbVJvbGVzVG9Vc2VyKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yb2xlU2VydmljZS5ncmFudFJlYWxtUm9sZXNUb1VzZXIocmVhbG1OYW1lLCB1c2VyVVVJRCwgcm9sZU5hbWVzLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIHJlYWxtLWxldmVsIHJvbGUsIG9wdGlvbmFsbHkgYXMgYSBjb21wb3NpdGUgb2YgZXhpc3Rpbmcgcm9sZXMuXG4gICAgICovXG4gICAgYXN5bmMgY3JlYXRlUmVhbG1Sb2xlKHJlYWxtTmFtZSwgcm9sZU5hbWUsIGNvbXBvc2l0ZVJvbGVzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlUmVhbG1Sb2xlXCIsIHRydWUpKS5mb3IodGhpcy5jcmVhdGVSZWFsbVJvbGUpO1xuICAgICAgICBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmNyZWF0ZVJlYWxtUm9sZShyZWFsbU5hbWUsIHJvbGVOYW1lLCBjb21wb3NpdGVSb2xlcywgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBjbGllbnQgaW4gdGhlIGNvbmZpZ3VyZWQgcmVhbG0gYW5kIHJldHVybnMgaXRzIFVVSUQuXG4gICAgICovXG4gICAgYXN5bmMgY3JlYXRlQ2xpZW50KGNvbmZpZywgb3ZlcnJpZGVzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlQ2xpZW50XCIsIHRydWUpKS5mb3IodGhpcy5jcmVhdGVDbGllbnQpO1xuICAgICAgICByZXR1cm4gdGhpcy5jbGllbnRTZXJ2aWNlLmNyZWF0ZUNsaWVudChjb25maWcsIG92ZXJyaWRlcywgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGFkZENsaWVudFJvbGVzVG9Vc2VyKHJlYWxtTmFtZSwgY2xpZW50VVVJRCwgdXNlclVVSUQsIHJvbGVOYW1lcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImFkZENsaWVudFJvbGVzVG9Vc2VyXCIsIHRydWUpKS5mb3IodGhpcy5hZGRDbGllbnRSb2xlc1RvVXNlcik7XG4gICAgICAgIGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuZ3JhbnRDbGllbnRSb2xlc1RvVXNlcihyZWFsbU5hbWUsIGNsaWVudFVVSUQsIHVzZXJVVUlELCByb2xlTmFtZXMsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBkZWxldGVBZG1pbkFwaVVzZXIoa2V5Y2xvYWtTZXR1cENvbmZpZywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZUFkbWluQXBpVXNlclwiLCB0cnVlKSkuZm9yKHRoaXMuZGVsZXRlQWRtaW5BcGlVc2VyKTtcbiAgICAgICAgY29uc3Qgcm9vdEFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5hdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbihrZXljbG9ha1NldHVwQ29uZmlnLnJvb3RBcGlVc2VyLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy51c2VyU2VydmljZS5kZWxldGVVc2VyKHJvb3RBY2Nlc3NUb2tlbiwga2V5Y2xvYWtTZXR1cENvbmZpZy5hZG1pbkFwaVVzZXIsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBzZXR1cE9yZ2FuaXphdGlvbihjb25maWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJzZXR1cE9yZ2FuaXphdGlvblwiLCB0cnVlKSkuZm9yKHRoaXMuc2V0dXBPcmdhbml6YXRpb24pO1xuICAgICAgICBjb25zdCBlZmZlY3RpdmVDb25maWcgPSBjb25maWcgPz8gdGhpcy5jb25maWc7XG4gICAgICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKGVmZmVjdGl2ZUNvbmZpZy5hZG1pbkFwaVVzZXIgfHwgdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWFsbVNlcnZpY2UuY3JlYXRlUmVhbG0oZWZmZWN0aXZlQ29uZmlnLnJlYWxtQXBpVXNlci5yZWFsbSwgZWZmZWN0aXZlQ29uZmlnLnJlYWxtQ29uZmlnID8/IHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy53YWl0Rm9yUmVhbG0oZWZmZWN0aXZlQ29uZmlnLnJlYWxtQXBpVXNlci5yZWFsbSwgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IHJlYWxtVXNlclVVSUQgPSBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmNyZWF0ZVJlYWxtVXNlcihlZmZlY3RpdmVDb25maWcucmVhbG1BcGlVc2VyLCB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIGVmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIudXNlcm5hbWVVVUlEID0gcmVhbG1Vc2VyVVVJRDtcbiAgICAgICAgY29uc3QgcmVhbG1NYW5hZ2VtZW50VVVJRCA9IGF3YWl0IHRoaXMuY2xpZW50U2VydmljZS5nZXRDbGllbnRVVUlEKGFkbWluQWNjZXNzVG9rZW4sIGVmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIucmVhbG0sIFwicmVhbG0tbWFuYWdlbWVudFwiLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yb2xlU2VydmljZS5hc3NpZ25Sb2xlc1RvVXNlcihgL2FkbWluL3JlYWxtcy8ke2VmZmVjdGl2ZUNvbmZpZy5yZWFsbUFwaVVzZXIucmVhbG19L2NsaWVudHMvJHtyZWFsbU1hbmFnZW1lbnRVVUlEfS9yb2xlc2AsIGAvYWRtaW4vcmVhbG1zLyR7ZWZmZWN0aXZlQ29uZmlnLnJlYWxtQXBpVXNlci5yZWFsbX0vdXNlcnMvJHtyZWFsbVVzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL2NsaWVudHMvJHtyZWFsbU1hbmFnZW1lbnRVVUlEfWAsIFtcIm1hbmFnZS1jbGllbnRzXCIsIFwibWFuYWdlLWlkZW50aXR5LXByb3ZpZGVyc1wiXSwgYWRtaW5BY2Nlc3NUb2tlbiwgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGNsaWVudFVVSUQgPSBhd2FpdCB0aGlzLmNsaWVudFNlcnZpY2UuY3JlYXRlQ2xpZW50KGVmZmVjdGl2ZUNvbmZpZywgdW5kZWZpbmVkLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgZWZmZWN0aXZlQ29uZmlnLmNsaWVudC5jbGllbnRVVUlEID0gY2xpZW50VVVJRDtcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVDbGllbnRTY29wZXNSb2xlc01hcHBlcnMoZWZmZWN0aXZlQ29uZmlnLnJlYWxtQXBpVXNlciwgLi4uY3R4QXJncyk7XG4gICAgICAgIHJldHVybiBlZmZlY3RpdmVDb25maWc7XG4gICAgfVxuICAgIGFzeW5jIHNldHVwT3JnYW5pemF0aW9uU1NPKGtleWNsb2FrU2V0dXBDb25maWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJzZXR1cE9yZ2FuaXphdGlvblNTT1wiLCB0cnVlKSkuZm9yKHRoaXMuc2V0dXBPcmdhbml6YXRpb25TU08pO1xuICAgICAgICBhd2FpdCB0aGlzLmNsaWVudFNlcnZpY2UuY3JlYXRlQ2xpZW50Um9sZXMoa2V5Y2xvYWtTZXR1cENvbmZpZywgdW5kZWZpbmVkLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgaWYgKGtleWNsb2FrU2V0dXBDb25maWcuaWRlbnRpdHlQcm92aWRlcikge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5pZGVudGl0eVByb3ZpZGVyU2VydmljZS5jcmVhdGVJZGVudGl0eVByb3ZpZGVyKGtleWNsb2FrU2V0dXBDb25maWcsIHVuZGVmaW5lZCwgLi4uY3R4QXJncyk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmlkZW50aXR5UHJvdmlkZXJTZXJ2aWNlLmNyZWF0ZUlkZW50aXR5UHJvdmlkZXJNYXBwZXJzKGtleWNsb2FrU2V0dXBDb25maWcsIHVuZGVmaW5lZCwgLi4uY3R4QXJncyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgZGVsZXRlT3JnYW5pemF0aW9uKHJlYWxtTmFtZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZU9yZ2FuaXphdGlvblwiLCB0cnVlKSkuZm9yKHRoaXMuZGVsZXRlT3JnYW5pemF0aW9uKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWFsbVNlcnZpY2UucmVtb3ZlUmVhbG0ocmVhbG1OYW1lLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgY3JlYXRlSHR0cENsaWVudChjb25maWcpIHtcbiAgICAgICAgcmV0dXJuIEF4aW9zLmNyZWF0ZSh7XG4gICAgICAgICAgICBiYXNlVVJMOiBgJHtjb25maWcucHJvdG9jb2x9Oi8vJHtjb25maWcuaG9zdH1gLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICAgICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogdGhpcy5pc1Byb2R1Y3Rpb24oKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgd2FpdEZvclJlYWxtKHJlYWxtTmFtZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcIndhaXRGb3JSZWFsbVwiLCB0cnVlKSkuZm9yKHRoaXMud2FpdEZvclJlYWxtKTtcbiAgICAgICAgY29uc3QgZGVhZGxpbmUgPSBEYXRlLm5vdygpICsgMTUwMDA7XG4gICAgICAgIHdoaWxlIChEYXRlLm5vdygpIDwgZGVhZGxpbmUpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yZWFsbVNlcnZpY2UuZ2V0UmVhbG0ocmVhbG1OYW1lLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgNTAwKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYFRpbWVkIG91dCB3YWl0aW5nIGZvciByZWFsbSAke3JlYWxtTmFtZX1gKTtcbiAgICB9XG4gICAgYXN5bmMgdXBkYXRlQ2xpZW50U2NvcGVzUm9sZXNNYXBwZXJzKGtleWNsb2FrVXNlciwgLi4uYXJncykge1xuICAgICAgICB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZUNsaWVudFNjb3Blc1JvbGVzTWFwcGVycyk7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudCh0aGlzLmNvbmZpZyk7XG4gICAgICAgIGNvbnN0IHJlYWxtQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmF1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKGtleWNsb2FrVXNlciwgLi4uYXJncyk7XG4gICAgICAgIGNvbnN0IHJvbGVzUmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICAgICAgICB1cmw6IGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuaG9zdH0vYWRtaW4vcmVhbG1zLyR7a2V5Y2xvYWtVc2VyLnJlYWxtfS9jbGllbnQtc2NvcGVzYCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7cmVhbG1BY2Nlc3NUb2tlbn1gLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgY2xpZW50U2NvcGVzID0gdGhpcy5wYXJzZUpzb25SZXNwb25zZShyb2xlc1Jlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgICAgICBjb25zdCByb2xlc1Njb3BlID0gY2xpZW50U2NvcGVzLmZpbmQoKHNjb3BlKSA9PiBzY29wZS5uYW1lID09PSBcInJvbGVzXCIpO1xuICAgICAgICBjb25zdCBjbGllbnRSb2xlc01hcHBlciA9IHJvbGVzU2NvcGU/LnByb3RvY29sTWFwcGVycz8uZmluZCgobWFwcGVyKSA9PiBtYXBwZXIubmFtZSA9PT0gXCJjbGllbnQgcm9sZXNcIik7XG4gICAgICAgIGlmICghcm9sZXNTY29wZSB8fCAhY2xpZW50Um9sZXNNYXBwZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKFwiVW5hYmxlIHRvIGZpbmQgY2xpZW50IHJvbGVzIG1hcHBlclwiKTtcbiAgICAgICAgfVxuICAgICAgICBjbGllbnRSb2xlc01hcHBlci5jb25maWdbXCJpZC50b2tlbi5jbGFpbVwiXSA9IFwidHJ1ZVwiO1xuICAgICAgICBhd2FpdCBjbGllbnQucmVxdWVzdCh7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUFVUXCIsXG4gICAgICAgICAgICB1cmw6IGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuaG9zdH0vYWRtaW4vcmVhbG1zLyR7a2V5Y2xvYWtVc2VyLnJlYWxtfS9jbGllbnQtc2NvcGVzLyR7cm9sZXNTY29wZS5pZH0vcHJvdG9jb2wtbWFwcGVycy9tb2RlbHMvJHtjbGllbnRSb2xlc01hcHBlci5pZH1gLFxuICAgICAgICAgICAgZGF0YTogSlNPTi5zdHJpbmdpZnkoY2xpZW50Um9sZXNNYXBwZXIpLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtyZWFsbUFjY2Vzc1Rva2VufWAsXG4gICAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwYXJzZUpzb25SZXNwb25zZShkYXRhKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbn07XG5LZXljbG9ha1NlcnZpY2UgPSBfX2RlY29yYXRlKFtcbiAgICBkZXNjcmlwdGlvbihcIk9yY2hlc3RyYXRlcyBLZXljbG9hayByZWFsbS91c2VyL2NsaWVudCBwcm92aXNpb25pbmcgYWNyb3NzIHRoZSBpbm5lciBLZXljbG9hayBzZXJ2aWNlc1wiKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW10pXG5dLCBLZXljbG9ha1NlcnZpY2UpO1xuZXhwb3J0IHsgS2V5Y2xvYWtTZXJ2aWNlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lTMlY1WTJ4dllXdFRaWEoyYVdObExtcHpJaXdpYzI5MWNtTmxVbTl2ZENJNklpSXNJbk52ZFhKalpYTWlPbHNpTGk0dkxpNHZMaTR2TGk0dmMzSmpMMnRsZVdOc2IyRnJMM05sY25acFkyVnpMMHRsZVdOc2IyRnJVMlZ5ZG1salpTNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdRVUZCUVN4UFFVRlBMRVZCUVVVc1YwRkJWeXhGUVVGRkxFMUJRVTBzYzBKQlFYTkNMRU5CUVVNN1FVRkRia1FzVDBGQlR5eEZRVU5NTEd0Q1FVRnJRaXhGUVVkc1FpeFBRVUZQTEVkQlExSXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU40UWl4UFFVRlBMRVZCUVVVc1lVRkJZU3hGUVVGRkxHRkJRV0VzUlVGQlJTeE5RVUZOTEhsQ1FVRjVRaXhEUVVGRE8wRkJSWFpGTEU5QlFVOHNTMEZCZDBJc1RVRkJUU3hQUVVGUExFTkJRVU03UVVGRE4wTXNUMEZCVHl4TFFVRkxMRXRCUVVzc1RVRkJUU3haUVVGWkxFTkJRVU03UVVGRmNFTXNUMEZCVHl4RlFVRkZMRzlDUVVGdlFpeEZRVUZGTEd0RFFVRXJRanRCUVVNNVJDeFBRVUZQTEVWQlFVVXNiVUpCUVcxQ0xFVkJRVVVzYVVOQlFUaENPMEZCUXpWRUxFOUJRVThzUlVGQlJTeHRRa0ZCYlVJc1JVRkJSU3hwUTBGQk9FSTdRVUZETlVRc1QwRkJUeXhGUVVGRkxIRkNRVUZ4UWl4RlFVRkZMRzFEUVVGblF6dEJRVU5vUlN4UFFVRlBMRVZCUVVVc0swSkJRU3RDTEVWQlFVVXNOa05CUVRCRE8wRkJRM0JHTEU5QlFVOHNSVUZCUlN4dFFrRkJiVUlzUlVGQlJTeHBRMEZCT0VJN1FVRkROVVFzVDBGQlR5eEZRVUZGTERaQ1FVRTJRaXhGUVVGRkxIRkNRVUZyUWp0QlFWTnVSQ3hKUVVGTkxHVkJRV1VzUjBGQmNrSXNUVUZCVFN4bFFVRm5RaXhUUVVGUkxHdENRVWR3UXp0SlFXRkRPMUZCUTBVc1MwRkJTeXhGUVVGRkxFTkJRVU03U1VGRFZpeERRVUZETzBsQlJWTXNXVUZCV1R0UlFVTndRaXhQUVVGUExFTkJRVU1zUTBGQlF5eGhRVUZoTEVWQlFVVXNUMEZCVHl4RFFVRkRMRU5CUVVNc1VVRkJVU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU03U1VGRE0wVXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhWUVVGVkxFTkJRMlFzUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4WlFVRlpMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlEzaEZMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRMmhDTEVOQlFVTTdVVUZEUml4TlFVRk5MRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUYzUWl4RFFVRkRPMUZCUTJwRUxFMUJRVTBzWVVGQllTeEhRVUVyUWp0WlFVTm9SQ3hIUVVGSExFMUJRVTA3V1VGRFZDeFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETzFOQlF6TkRMRU5CUVVNN1VVRkRSaXhKUVVGSkxFTkJRVU1zVDBGQlR5eEhRVUZITEdGQlFXRXNRMEZCUXp0UlFVTTNRaXcyUWtGQk5rSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUlRWRUxFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNNa0pCUVRKQ0xFTkJRVU1zUTBGQlF6dFJRVU4yUXl4UFFVRlBMRVZCUVVVc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4RFFVRkRPMUZCUTJoRExFOUJRVThzUlVGQlJTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFTkJRVU03VVVGREwwSXNUMEZCVHl4RlFVRkZMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXp0UlFVTXZRaXhQUVVGUExFVkJRVVVzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhEUVVGRE8xRkJRMnBETEU5QlFVOHNSVUZCUlN4RFFVRkRMQ3RDUVVFclFpeERRVUZETEVOQlFVTTdVVUZETTBNc1QwRkJUeXhGUVVGRkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1EwRkJRenRSUVVVdlFpeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMR2REUVVGblF5eERRVUZETEVOQlFVTTdVVUZETlVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eEpRVUZKTEc5Q1FVRnZRaXhGUVVGRkxFTkJRVU03VVVGREwwTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExGVkJRVlVzUTBGQlF5eGhRVUZoTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVNNVJDeEpRVUZKTEVOQlFVTXNWMEZCVnl4SFFVRkhMRWxCUVVrc2JVSkJRVzFDTEVWQlFVVXNRMEZCUXp0UlFVTTNReXhOUVVGTkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlFVTXNWVUZCVlN4RFFVRkRMR0ZCUVdFc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzFGQlF6ZEVMRWxCUVVrc1EwRkJReXhYUVVGWExFZEJRVWNzU1VGQlNTeHRRa0ZCYlVJc1JVRkJSU3hEUVVGRE8xRkJRemRETEUxQlFVMHNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhWUVVGVkxFTkJRVU1zWVVGQllTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkROMFFzU1VGQlNTeERRVUZETEdGQlFXRXNSMEZCUnl4SlFVRkpMSEZDUVVGeFFpeEZRVUZGTEVOQlFVTTdVVUZEYWtRc1RVRkJUU3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEZWQlFWVXNRMEZCUXl4aFFVRmhMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU12UkN4SlFVRkpMRU5CUVVNc2RVSkJRWFZDTEVkQlFVY3NTVUZCU1N3clFrRkJLMElzUlVGQlJTeERRVUZETzFGQlEzSkZMRTFCUVUwc1NVRkJTU3hEUVVGRExIVkNRVUYxUWl4RFFVRkRMRlZCUVZVc1EwRkJReXhoUVVGaExFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTjZSU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eEhRVUZITEVsQlFVa3NiVUpCUVcxQ0xFVkJRVVVzUTBGQlF6dFJRVU0zUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVlVGQlZTeERRVUZETEdGQlFXRXNSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJSVGRFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4aFFVRmhMRU5CUVVNc1EwRkJRenRSUVVOd1JDeEpRVUZKTEVOQlFVTXNUMEZCVHl4SFFVRkhMRTFCUVUwc1EwRkJRenRSUVVOMFFpeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVTlFMRFpEUVVFMlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRM1JGTEVOQlFVTTdVVUZEUml4UFFVRlBMRVZCUVVVc1RVRkJUU3hGUVVGRkxFMUJRVTBzUlVGQlJTeERRVUZETzBsQlF6VkNMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zWVVGQllTeERRVU5xUWl4dFFrRkJkME1zUlVGRGVFTXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMR1ZCUVdVc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZEZEVVc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGRGJrSXNRMEZCUXp0UlFVVkdMRTFCUVUwc1owSkJRV2RDTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExHTkJRV01zUTBGRE5VUXNiVUpCUVcxQ0xFTkJRVU1zV1VGQllTeEZRVU5xUXl4RlFVRkZMRVZCUTBZc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dFJRVU5HTEcxQ1FVRnRRaXhEUVVGRExGbEJRV0VzUTBGQlF5eFpRVUZaTEVkQlFVY3NaMEpCUVdkQ0xFTkJRVU03VVVGRGJFVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1YwRkJWeXhEUVVGRExIRkNRVUZ4UWl4RFFVTXhReXh0UWtGQmJVSXNRMEZCUXl4WlFVRmhMRU5CUVVNc1MwRkJTeXhGUVVOMlF5eG5Ra0ZCWjBJc1JVRkRhRUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZEVkN4SFFVRkhMRTlCUVU4c1EwRkRXQ3hEUVVGRE8xRkJRMFlzVDBGQlR5eHRRa0ZCYlVJc1EwRkJRenRKUVVNM1FpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkRXaXhUUVVGcFFpeEZRVU5xUWl4UFFVRlpMRVZCUTFvc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxGVkJRVlVzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkRha1VzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZEWkN4RFFVRkRPMUZCUTBZc1RVRkJUU3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4VFFVRlRMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdTVUZEYmtVc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlEySXNVMEZCYVVJc1JVRkRha0lzVDBGQldTeEZRVU5hTEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4WFFVRlhMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlEyeEZMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRMllzUTBGQlF6dFJRVU5HTEUxQlFVMHNTVUZCU1N4RFFVRkRMRmxCUVZrc1EwRkJReXhUUVVGVExFTkJRVU1zVTBGQlV5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRM0JGTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVObUxGTkJRV2xDTEVWQlEycENMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hoUVVGaExFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUTNCRkxFbEJRVWtzUTBGQlF5eFhRVUZYTEVOQlEycENMRU5CUVVNN1VVRkRSaXhOUVVGTkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNWMEZCVnl4RFFVRkRMRk5CUVZNc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzBsQlF6ZEVMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zWTBGQll5eERRVU5zUWl4WlFVRXdRaXhGUVVNeFFpeFBRVUZaTEVWQlExb3NSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMR2RDUVVGblFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVOMlJTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVTndRaXhEUVVGRE8xRkJRMFlzVDBGQlR5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMR05CUVdNc1EwRkJReXhaUVVGWkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1NVRkROVVVzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUTFvc1UwRkJhVUlzUlVGRGFrSXNVVUZCWjBJc1JVRkRhRUlzVDBGQldTeEZRVU5hTEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4VlFVRlZMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlEycEZMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRMlFzUTBGQlF6dFJRVU5HTEUxQlFVMHNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhSUVVGUkxFTkJRVU1zVTBGQlV5eEZRVUZGTEZGQlFWRXNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU0xUlN4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHMUNRVUZ0UWl4RFFVTjJRaXhUUVVGcFFpeEZRVU5xUWl4UlFVRm5RaXhGUVVOb1FpeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMSEZDUVVGeFFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTnlSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dFJRVU5vUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1UwRkJVeXhGUVVGRkxGRkJRVkVzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUXpsRkxFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRM1pDTEZOQlFXbENMRVZCUTJwQ0xGRkJRV2RDTEVWQlEyaENMRk5CUVcxQ0xFVkJRMjVDTEVkQlFVY3NTVUZCTmtJN1VVRkZhRU1zVFVGQlRTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUTJ4Q0xFMUJRVTBzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc2NVSkJRWEZDTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUTNKRUxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eERRVUZETzFGQlEyaERMRTFCUVUwc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eHhRa0ZCY1VJc1EwRkRNVU1zVTBGQlV5eEZRVU5VTEZGQlFWRXNSVUZEVWl4VFFVRlRMRVZCUTFRc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkRzN1QwRkZSenRKUVVOSUxFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlEyNUNMRk5CUVdsQ0xFVkJRMnBDTEZGQlFXZENMRVZCUTJoQ0xHTkJRVzlETEVWQlEzQkRMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hwUWtGQmFVSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGRGVFVXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkRja0lzUTBGQlF6dFJRVU5HTEUxQlFVMHNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhsUVVGbExFTkJRM0JETEZOQlFWTXNSVUZEVkN4UlFVRlJMRVZCUTFJc1kwRkJZeXhGUVVOa0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRN08wOUJSVWM3U1VGRFNDeExRVUZMTEVOQlFVTXNXVUZCV1N4RFFVTm9RaXhOUVVFeVFpeEZRVU16UWl4VFFVRjFSU3hGUVVOMlJTeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNZMEZCWXl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eERRVU55UlN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVOc1FpeERRVUZETzFGQlEwWXNUMEZCVHl4SlFVRkpMRU5CUVVNc1lVRkJZU3hEUVVGRExGbEJRVmtzUTBGQlF5eE5RVUZOTEVWQlFVVXNVMEZCVXl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGVFVXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXh2UWtGQmIwSXNRMEZEZUVJc1UwRkJhVUlzUlVGRGFrSXNWVUZCYTBJc1JVRkRiRUlzVVVGQlowSXNSVUZEYUVJc1UwRkJiVUlzUlVGRGJrSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3h6UWtGQmMwSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRkRVFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVOQlFVTTdVVUZEYWtNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEhOQ1FVRnpRaXhEUVVNelF5eFRRVUZUTEVWQlExUXNWVUZCVlN4RlFVTldMRkZCUVZFc1JVRkRVaXhUUVVGVExFVkJRMVFzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zYTBKQlFXdENMRU5CUTNSQ0xHMUNRVUYzUXl4RlFVTjRReXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU5zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEc5Q1FVRnZRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU53UkN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1EwRkJRenRSUVVNdlFpeE5RVUZOTEdWQlFXVXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zWTBGQll5eERRVU16UkN4dFFrRkJiVUlzUTBGQlF5eFhRVUZaTEVWQlEyaERMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFJpeE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVNdlFpeGxRVUZsTEVWQlEyWXNiVUpCUVcxQ0xFTkJRVU1zV1VGQllTeEZRVU5xUXl4SFFVRkhMRTlCUVU4c1EwRkRXQ3hEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4cFFrRkJhVUlzUTBGRGNrSXNUVUZCTkVJc1JVRkROVUlzUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4dFFrRkJiVUlzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZEYmtRc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEdsQ1FVRnBRaXhEUVVGRExFTkJRVU03VVVGRE9VSXNUVUZCVFN4bFFVRmxMRWRCUVVjc1RVRkJUU3hKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTTdVVUZGT1VNc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zWTBGQll5eERRVU0xUkN4bFFVRmxMRU5CUVVNc1dVRkJXU3hKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNXVUZCWVN4RlFVTjZSQ3hIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzFGQlJVWXNUVUZCVFN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExGZEJRVmNzUTBGRGFrTXNaVUZCWlN4RFFVRkRMRmxCUVdFc1EwRkJReXhMUVVGTExFVkJRMjVETEdWQlFXVXNRMEZCUXl4WFFVRlhMRWxCUVVrc1JVRkJSU3hGUVVOcVF5eEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMUZCUTBZc1RVRkJUU3hKUVVGSkxFTkJRVU1zV1VGQldTeERRVUZETEdWQlFXVXNRMEZCUXl4WlFVRmhMRU5CUVVNc1MwRkJTeXhGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZGZWtVc1RVRkJUU3hoUVVGaExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMR1ZCUVdVc1EwRkRNVVFzWlVGQlpTeERRVUZETEZsQlFXRXNSVUZETjBJc1JVRkJSU3hGUVVOR0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEUml4bFFVRmxMRU5CUVVNc1dVRkJZU3hEUVVGRExGbEJRVmtzUjBGQlJ5eGhRVUZoTEVOQlFVTTdVVUZGTTBRc1RVRkJUU3h0UWtGQmJVSXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zWVVGQllTeERRVU5vUlN4blFrRkJaMElzUlVGRGFFSXNaVUZCWlN4RFFVRkRMRmxCUVdFc1EwRkJReXhMUVVGTExFVkJRMjVETEd0Q1FVRnJRaXhGUVVOc1FpeEhRVUZITEU5QlFVOHNRMEZEV0N4RFFVRkRPMUZCUTBZc1RVRkJUU3hKUVVGSkxFTkJRVU1zVjBGQlZ5eERRVUZETEdsQ1FVRnBRaXhEUVVOMFF5eHBRa0ZCYVVJc1pVRkJaU3hEUVVGRExGbEJRV0VzUTBGQlF5eExRVUZMTEZsQlFWa3NiVUpCUVcxQ0xGRkJRVkVzUlVGRE0wWXNhVUpCUVdsQ0xHVkJRV1VzUTBGQlF5eFpRVUZoTEVOQlFVTXNTMEZCU3l4VlFVRlZMR0ZCUVdFc01FSkJRVEJDTEcxQ1FVRnRRaXhGUVVGRkxFVkJRekZJTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzTWtKQlFUSkNMRU5CUVVNc1JVRkRMME1zWjBKQlFXZENMRVZCUTJoQ0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZGUml4TlFVRk5MRlZCUVZVc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNXVUZCV1N4RFFVTjBSQ3hsUVVGbExFVkJRMllzVTBGQlV5eEZRVU5VTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhsUVVGbExFTkJRVU1zVFVGQlRTeERRVUZETEZWQlFWVXNSMEZCUnl4VlFVRlZMRU5CUVVNN1VVRkZMME1zVFVGQlRTeEpRVUZKTEVOQlFVTXNPRUpCUVRoQ0xFTkJRM1pETEdWQlFXVXNRMEZCUXl4WlFVRmhMRVZCUXpkQ0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZGUml4UFFVRlBMR1ZCUVdVc1EwRkJRenRKUVVONlFpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRzlDUVVGdlFpeERRVU40UWl4dFFrRkJkME1zUlVGRGVFTXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3h6UWtGQmMwSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRkRVFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeERRVUZETEVOQlFVTTdVVUZGYWtNc1RVRkJUU3hKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEdsQ1FVRnBRaXhEUVVONFF5eHRRa0ZCYlVJc1JVRkRia0lzVTBGQlV5eEZRVU5VTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhKUVVGSkxHMUNRVUZ0UWl4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEVOQlFVTTdXVUZEZWtNc1RVRkJUU3hKUVVGSkxFTkJRVU1zZFVKQlFYVkNMRU5CUVVNc2MwSkJRWE5DTEVOQlEzWkVMRzFDUVVGdFFpeEZRVU51UWl4VFFVRlRMRVZCUTFRc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dFpRVU5HTEUxQlFVMHNTVUZCU1N4RFFVRkRMSFZDUVVGMVFpeERRVUZETERaQ1FVRTJRaXhEUVVNNVJDeHRRa0ZCYlVJc1JVRkRia0lzVTBGQlV5eEZRVU5VTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRTaXhEUVVGRE8wbEJRMGdzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4clFrRkJhMElzUTBGRGRFSXNVMEZCYVVJc1JVRkRha0lzUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4dlFrRkJiMElzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZEY0VRc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExFTkJRVU03VVVGREwwSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExGZEJRVmNzUTBGQlF5eFRRVUZUTEVWQlFVVXNSMEZCUnl4UFFVRlBMRU5CUVVNc1EwRkJRenRKUVVNM1JDeERRVUZETzBsQlJVOHNaMEpCUVdkQ0xFTkJRVU1zVFVGQk1rSTdVVUZEYkVRc1QwRkJUeXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETzFsQlEyeENMRTlCUVU4c1JVRkJSU3hIUVVGSExFMUJRVTBzUTBGQlF5eFJRVUZSTEUxQlFVMHNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSVHRaUVVNNVF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4alFVRmpMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVTdXVUZETDBNc1kwRkJZeXhGUVVGRkxFZEJRVWNzUlVGQlJTeERRVUZETEVsQlFVazdXVUZETVVJc1ZVRkJWU3hGUVVGRkxFbEJRVWtzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXp0blFrRkRNVUlzYTBKQlFXdENMRVZCUVVVc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJUdGhRVU40UXl4RFFVRkRPMU5CUTBnc1EwRkJReXhEUVVGRE8wbEJRMHdzUTBGQlF6dEpRVVZQTEV0QlFVc3NRMEZCUXl4WlFVRlpMRU5CUTNoQ0xGTkJRV2xDTEVWQlEycENMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hqUVVGakxFVkJRVVVzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUTNKRkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlEyeENMRU5CUVVNN1VVRkZSaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RlFVRkZMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRM0JETEU5QlFVOHNTVUZCU1N4RFFVRkRMRWRCUVVjc1JVRkJSU3hIUVVGSExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlF6ZENMRWxCUVVrc1EwRkJRenRuUWtGRFNDeE5RVUZOTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1VVRkJVU3hEUVVGRExGTkJRVk1zUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMmRDUVVONFJDeFBRVUZQTzFsQlExUXNRMEZCUXp0WlFVRkRMRTFCUVUwc1EwRkJRenRuUWtGRFVDeE5RVUZOTEVsQlFVa3NUMEZCVHl4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRE0wUXNRMEZCUXp0UlFVTklMRU5CUVVNN1VVRkRSQ3hOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETEN0Q1FVRXJRaXhUUVVGVExFVkJRVVVzUTBGQlF5eERRVUZETzBsQlEzUkZMRU5CUVVNN1NVRkZUeXhMUVVGTExFTkJRVU1zT0VKQlFUaENMRU5CUXpGRExGbEJRVEJDTEVWQlF6RkNMRWRCUVVjc1NVRkJlVUk3VVVGRk5VSXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETERoQ1FVRTRRaXhEUVVGRExFTkJRVU03VVVGRmRrUXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dFJRVU5zUkN4TlFVRk5MR2RDUVVGblFpeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRmRCUVZjc1EwRkJReXhqUVVGakxFTkJRelZFTEZsQlFWa3NSVUZEV2l4SFFVRkhMRWxCUVVrc1EwRkRVaXhEUVVGRE8xRkJRMFlzVFVGQlRTeGhRVUZoTEVkQlFVY3NUVUZCVFN4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRE8xbEJRM3BETEUxQlFVMHNSVUZCUlN4TFFVRkxPMWxCUTJJc1IwRkJSeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEdsQ1FVRnBRaXhaUVVGWkxFTkJRVU1zUzBGQlN5eG5Ra0ZCWjBJN1dVRkRja2NzVDBGQlR5eEZRVUZGTzJkQ1FVTlFMR0ZCUVdFc1JVRkJSU3hWUVVGVkxHZENRVUZuUWl4RlFVRkZPMkZCUXpWRE8xbEJRMFFzWTBGQll5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrN1UwRkRNMElzUTBGQlF5eERRVUZETzFGQlEwZ3NUVUZCVFN4WlFVRlpMRWRCUTJoQ0xFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRlZjRUlzWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRSUVVNNVFpeE5RVUZOTEZWQlFWVXNSMEZCUnl4WlFVRlpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUzBGQlN5eEZRVUZGTEVWQlFVVXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hMUVVGTExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzaEZMRTFCUVUwc2FVSkJRV2xDTEVkQlFVY3NWVUZCVlN4RlFVRkZMR1ZCUVdVc1JVRkJSU3hKUVVGSkxFTkJRM3BFTEVOQlFVTXNUVUZCVFN4RlFVRkZMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeExRVUZMTEdOQlFXTXNRMEZETTBNc1EwRkJRenRSUVVOR0xFbEJRVWtzUTBGQlF5eFZRVUZWTEVsQlFVa3NRMEZCUXl4cFFrRkJhVUlzUlVGQlJTeERRVUZETzFsQlEzUkRMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRVU1zYjBOQlFXOURMRU5CUVVNc1EwRkJRenRSUVVOb1JTeERRVUZETzFGQlEwUXNhVUpCUVdsQ0xFTkJRVU1zVFVGQlRTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETzFGQlEzQkVMRTFCUVUwc1RVRkJUU3hEUVVGRExFOUJRVThzUTBGQlF6dFpRVU51UWl4TlFVRk5MRVZCUVVVc1MwRkJTenRaUVVOaUxFZEJRVWNzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4cFFrRkJhVUlzV1VGQldTeERRVUZETEV0QlFVc3NhMEpCUVd0Q0xGVkJRVlVzUTBGQlF5eEZRVUZGTERSQ1FVRTBRaXhwUWtGQmFVSXNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRkRXNzU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTTdXVUZEZGtNc1QwRkJUeXhGUVVGRk8yZENRVU5RTEdGQlFXRXNSVUZCUlN4VlFVRlZMR2RDUVVGblFpeEZRVUZGTzJkQ1FVTXpReXhqUVVGakxFVkJRVVVzYTBKQlFXdENPMkZCUTI1RE8xbEJRMFFzWTBGQll5eEZRVUZGTEVkQlFVY3NSVUZCUlN4RFFVRkRMRWxCUVVrN1UwRkRNMElzUTBGQlF5eERRVUZETzBsQlEwd3NRMEZCUXp0SlFVVlBMR2xDUVVGcFFpeERRVUZKTEVsQlFXRTdVVUZEZUVNc1NVRkJTU3hQUVVGUExFbEJRVWtzUzBGQlN5eFJRVUZSTEVWQlFVVXNRMEZCUXp0WlFVTTNRaXhKUVVGSkxFTkJRVU03WjBKQlEwZ3NUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlRTeERRVUZETzFsQlF5OUNMRU5CUVVNN1dVRkJReXhOUVVGTkxFTkJRVU03WjBKQlExQXNUMEZCVHl4VFFVRlRMRU5CUVVNN1dVRkRia0lzUTBGQlF6dFJRVU5JTEVOQlFVTTdVVUZEUkN4UFFVRlBMRWxCUVZNc1EwRkJRenRKUVVOdVFpeERRVUZETzBOQlEwWXNRMEZCUVR0QlFTOWhXU3hsUVVGbE8wbEJTRE5DTEZkQlFWY3NRMEZEVml4NVJrRkJlVVlzUTBGRE1VWTdPMGRCUTFrc1pVRkJaU3hEUVN0aE0wSWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdleUJrWlhOamNtbHdkR2x2YmlCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEdsdmJsd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1EyeHBaVzUwUW1GelpXUlRaWEoyYVdObExGeHVJQ0JEYjI1MFpYaDBkV0ZzUVhKbmN5eGNiaUFnVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuTEZ4dUlDQnpaWEoyYVdObExGeHVmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMk52Y21WY0lqdGNibWx0Y0c5eWRDQjdJRWx1ZEdWeWJtRnNSWEp5YjNJc0lFNXZkRVp2ZFc1a1JYSnliM0lnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSaUxXUmxZMjl5WVhSdmNuTmNJanRjYm1sdGNHOXlkQ0IwZVhCbElIc2dTMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeXdnUzJWNVkyeHZZV3RWYzJWeUlIMGdabkp2YlNCY0lpNHVMM1I1Y0dWelhDSTdYRzVwYlhCdmNuUWdRWGhwYjNNc0lIc2dRWGhwYjNOSmJuTjBZVzVqWlNCOUlHWnliMjBnWENKaGVHbHZjMXdpTzF4dWFXMXdiM0owSUNvZ1lYTWdhSFIwY0hNZ1puSnZiU0JjSW01dlpHVTZhSFIwY0hOY0lqdGNibHh1YVcxd2IzSjBJSHNnUzJWNVkyeHZZV3RTWldGc2JWTmxjblpwWTJVZ2ZTQm1jbTl0SUZ3aUxpOUxaWGxqYkc5aGExSmxZV3h0VTJWeWRtbGpaVndpTzF4dWFXMXdiM0owSUhzZ1MyVjVZMnh2WVd0VmMyVnlVMlZ5ZG1salpTQjlJR1p5YjIwZ1hDSXVMMHRsZVdOc2IyRnJWWE5sY2xObGNuWnBZMlZjSWp0Y2JtbHRjRzl5ZENCN0lFdGxlV05zYjJGclVtOXNaVk5sY25acFkyVWdmU0JtY205dElGd2lMaTlMWlhsamJHOWhhMUp2YkdWVFpYSjJhV05sWENJN1hHNXBiWEJ2Y25RZ2V5QkxaWGxqYkc5aGEwTnNhV1Z1ZEZObGNuWnBZMlVnZlNCbWNtOXRJRndpTGk5TFpYbGpiRzloYTBOc2FXVnVkRk5sY25acFkyVmNJanRjYm1sdGNHOXlkQ0I3SUV0bGVXTnNiMkZyU1dSbGJuUnBkSGxRY205MmFXUmxjbE5sY25acFkyVWdmU0JtY205dElGd2lMaTlMWlhsamJHOWhhMGxrWlc1MGFYUjVVSEp2ZG1sa1pYSlRaWEoyYVdObFhDSTdYRzVwYlhCdmNuUWdleUJMWlhsamJHOWhhMEYxZEdoVFpYSjJhV05sSUgwZ1puSnZiU0JjSWk0dlMyVjVZMnh2WVd0QmRYUm9VMlZ5ZG1salpWd2lPMXh1YVcxd2IzSjBJSHNnYzJWMFMyVjVZMnh2WVd0UWNtOWtkV04wYVc5dVVtVnpiMngyWlhJZ2ZTQm1jbTl0SUZ3aUxpOXlkVzUwYVcxbFhDSTdYRzVjYm5SNWNHVWdTMlY1WTJ4dllXdFNkVzUwYVcxbFUyVjBkWEJEYjI1bWFXY2dQU0JMWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuSUNZZ2UxeHVJQ0JwYzFCeWIyUjFZM1JwYjI0b0tUb2dZbTl2YkdWaGJqdGNibjA3WEc1Y2JrQmtaWE5qY21sd2RHbHZiaWhjYmlBZ1hDSlBjbU5vWlhOMGNtRjBaWE1nUzJWNVkyeHZZV3NnY21WaGJHMHZkWE5sY2k5amJHbGxiblFnY0hKdmRtbHphVzl1YVc1bklHRmpjbTl6Y3lCMGFHVWdhVzV1WlhJZ1MyVjVZMnh2WVdzZ2MyVnlkbWxqWlhOY0lseHVLVnh1Wlhod2IzSjBJR05zWVhOeklFdGxlV05zYjJGclUyVnlkbWxqWlNCbGVIUmxibVJ6SUVOc2FXVnVkRUpoYzJWa1UyVnlkbWxqWlR4Y2JpQWdRWGhwYjNOSmJuTjBZVzVqWlN4Y2JpQWdTMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaMXh1UGlCN1hHNGdJSEJ5YjNSbFkzUmxaQ0J5WldGc2JWTmxjblpwWTJVaE9pQkxaWGxqYkc5aGExSmxZV3h0VTJWeWRtbGpaVHRjYmx4dUlDQndjbTkwWldOMFpXUWdkWE5sY2xObGNuWnBZMlVoT2lCTFpYbGpiRzloYTFWelpYSlRaWEoyYVdObE8xeHVYRzRnSUhCeWIzUmxZM1JsWkNCeWIyeGxVMlZ5ZG1salpTRTZJRXRsZVdOc2IyRnJVbTlzWlZObGNuWnBZMlU3WEc1Y2JpQWdjSEp2ZEdWamRHVmtJR05zYVdWdWRGTmxjblpwWTJVaE9pQkxaWGxqYkc5aGEwTnNhV1Z1ZEZObGNuWnBZMlU3WEc1Y2JpQWdjSEp2ZEdWamRHVmtJR2xrWlc1MGFYUjVVSEp2ZG1sa1pYSlRaWEoyYVdObElUb2dTMlY1WTJ4dllXdEpaR1Z1ZEdsMGVWQnliM1pwWkdWeVUyVnlkbWxqWlR0Y2JseHVJQ0J3Y205MFpXTjBaV1FnWVhWMGFGTmxjblpwWTJVaE9pQkxaWGxqYkc5aGEwRjFkR2hUWlhKMmFXTmxPMXh1WEc0Z0lHTnZibk4wY25WamRHOXlLQ2tnZTF4dUlDQWdJSE4xY0dWeUtDazdYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnYVhOUWNtOWtkV04wYVc5dUtDazZJR0p2YjJ4bFlXNGdlMXh1SUNBZ0lISmxkSFZ5YmlBaFcxd2laR1YyWld4dmNHMWxiblJjSWl3Z1hDSnNiMk5oYkZ3aVhTNXBibU5zZFdSbGN5aHdjbTlqWlhOekxtVnVkbHRjSWs1UFJFVmZSVTVXWENKZElEOC9JRndpWENJcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2FXNXBkR2xoYkdsNlpTaGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIc2dZMjl1Wm1sbk9pQkxaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5PeUJqYkdsbGJuUTZJRUY0YVc5elNXNXpkR0Z1WTJVZ2ZUNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhoQmNtZHpJSDBnUFNBb1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKcGJtbDBhV0ZzYVhwbFhDSXNJSFJ5ZFdVcEtTNW1iM0lvWEc0Z0lDQWdJQ0IwYUdsekxtbHVhWFJwWVd4cGVtVmNiaUFnSUNBcE8xeHVJQ0FnSUdOdmJuTjBJR052Ym1acFp5QTlJR04wZUVGeVozTmJNRjBnWVhNZ1MyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp6dGNiaUFnSUNCamIyNXpkQ0J5ZFc1MGFXMWxRMjl1Wm1sbk9pQkxaWGxqYkc5aGExSjFiblJwYldWVFpYUjFjRU52Ym1acFp5QTlJSHRjYmlBZ0lDQWdJQzR1TG1OdmJtWnBaeXhjYmlBZ0lDQWdJR2x6VUhKdlpIVmpkR2x2YmpvZ2RHaHBjeTVwYzFCeWIyUjFZM1JwYjI0dVltbHVaQ2gwYUdsektTeGNiaUFnSUNCOU8xeHVJQ0FnSUhSb2FYTXVYMk52Ym1acFp5QTlJSEoxYm5ScGJXVkRiMjVtYVdjN1hHNGdJQ0FnYzJWMFMyVjVZMnh2WVd0UWNtOWtkV04wYVc5dVVtVnpiMngyWlhJb2RHaHBjeTVwYzFCeWIyUjFZM1JwYjI0dVltbHVaQ2gwYUdsektTazdYRzVjYmlBZ0lDQnNiMmN1WkdWaWRXY29ZRUpwYm1ScGJtY2dhVzV1WlhJZ2MyVnlkbWxqWlhNdUxpNWdLVHRjYmlBZ0lDQnpaWEoyYVdObEtDa29TMlY1WTJ4dllXdFNaV0ZzYlZObGNuWnBZMlVwTzF4dUlDQWdJSE5sY25acFkyVW9LU2hMWlhsamJHOWhhMVZ6WlhKVFpYSjJhV05sS1R0Y2JpQWdJQ0J6WlhKMmFXTmxLQ2tvUzJWNVkyeHZZV3RTYjJ4bFUyVnlkbWxqWlNrN1hHNGdJQ0FnYzJWeWRtbGpaU2dwS0V0bGVXTnNiMkZyUTJ4cFpXNTBVMlZ5ZG1salpTazdYRzRnSUNBZ2MyVnlkbWxqWlNncEtFdGxlV05zYjJGclNXUmxiblJwZEhsUWNtOTJhV1JsY2xObGNuWnBZMlVwTzF4dUlDQWdJSE5sY25acFkyVW9LU2hMWlhsamJHOWhhMEYxZEdoVFpYSjJhV05sS1R0Y2JseHVJQ0FnSUd4dlp5NWtaV0oxWnloZ1NXNXBkR2xoYkdsNmFXNW5JR2x1Ym1WeUlITmxjblpwWTJWekxpNHVZQ2s3WEc0Z0lDQWdkR2hwY3k1eVpXRnNiVk5sY25acFkyVWdQU0J1WlhjZ1MyVjVZMnh2WVd0U1pXRnNiVk5sY25acFkyVW9LVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbkpsWVd4dFUyVnlkbWxqWlM1cGJtbDBhV0ZzYVhwbEtISjFiblJwYldWRGIyNW1hV2NzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0FnSUhSb2FYTXVkWE5sY2xObGNuWnBZMlVnUFNCdVpYY2dTMlY1WTJ4dllXdFZjMlZ5VTJWeWRtbGpaU2dwTzF4dUlDQWdJR0YzWVdsMElIUm9hWE11ZFhObGNsTmxjblpwWTJVdWFXNXBkR2xoYkdsNlpTaHlkVzUwYVcxbFEyOXVabWxuTENBdUxpNWpkSGhCY21kektUdGNiaUFnSUNCMGFHbHpMbkp2YkdWVFpYSjJhV05sSUQwZ2JtVjNJRXRsZVdOc2IyRnJVbTlzWlZObGNuWnBZMlVvS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5KdmJHVlRaWEoyYVdObExtbHVhWFJwWVd4cGVtVW9jblZ1ZEdsdFpVTnZibVpwWnl3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUNBZ2RHaHBjeTVqYkdsbGJuUlRaWEoyYVdObElEMGdibVYzSUV0bGVXTnNiMkZyUTJ4cFpXNTBVMlZ5ZG1salpTZ3BPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVZMnhwWlc1MFUyVnlkbWxqWlM1cGJtbDBhV0ZzYVhwbEtISjFiblJwYldWRGIyNW1hV2NzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0FnSUhSb2FYTXVhV1JsYm5ScGRIbFFjbTkyYVdSbGNsTmxjblpwWTJVZ1BTQnVaWGNnUzJWNVkyeHZZV3RKWkdWdWRHbDBlVkJ5YjNacFpHVnlVMlZ5ZG1salpTZ3BPMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVhV1JsYm5ScGRIbFFjbTkyYVdSbGNsTmxjblpwWTJVdWFXNXBkR2xoYkdsNlpTaHlkVzUwYVcxbFEyOXVabWxuTENBdUxpNWpkSGhCY21kektUdGNiaUFnSUNCMGFHbHpMbUYxZEdoVFpYSjJhV05sSUQwZ2JtVjNJRXRsZVdOc2IyRnJRWFYwYUZObGNuWnBZMlVvS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG1GMWRHaFRaWEoyYVdObExtbHVhWFJwWVd4cGVtVW9jblZ1ZEdsdFpVTnZibVpwWnl3Z0xpNHVZM1I0UVhKbmN5azdYRzVjYmlBZ0lDQmpiMjV6ZENCamJHbGxiblFnUFNCMGFHbHpMbU55WldGMFpVaDBkSEJEYkdsbGJuUW9jblZ1ZEdsdFpVTnZibVpwWnlrN1hHNGdJQ0FnZEdocGN5NWZZMnhwWlc1MElEMGdZMnhwWlc1ME8xeHVJQ0FnSUd4dlp5NWtaV0oxWnloY2JpQWdJQ0FnSUdCTFpYbGpiRzloYXlCVFpYSjJhV05sSUdsdWFYUnBZV3hwZW1Wa0lIZHBkR2dnWTI5dVptbG5PaUFrZTBwVFQwNHVjM1J5YVc1bmFXWjVLR052Ym1acFp5bDlZRnh1SUNBZ0lDazdYRzRnSUNBZ2NtVjBkWEp1SUhzZ1kyOXVabWxuTENCamJHbGxiblFnZlR0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUhObGRIVndTMlY1WTJ4dllXc29YRzRnSUNBZ2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp6b2dTMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQRXRsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2MrSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW5ObGRIVndTMlY1WTJ4dllXdGNJaXdnZEhKMVpTa3BMbVp2Y2loY2JpQWdJQ0FnSUhSb2FYTXVjMlYwZFhCTFpYbGpiRzloYTF4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0JqYjI1emRDQmhaRzFwYmtGd2FWVnpaWEpWVlVsRUlEMGdZWGRoYVhRZ2RHaHBjeTUxYzJWeVUyVnlkbWxqWlM1aFpHUlZjMlZ5Vkc5U1pXRnNiU2hjYmlBZ0lDQWdJR3RsZVdOc2IyRnJVMlYwZFhCRGIyNW1hV2N1WVdSdGFXNUJjR2xWYzJWeUlTeGNiaUFnSUNBZ0lIdDlMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5NWhaRzFwYmtGd2FWVnpaWEloTG5WelpYSnVZVzFsVlZWSlJDQTlJR0ZrYldsdVFYQnBWWE5sY2xWVlNVUTdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NXliMnhsVTJWeWRtbGpaUzVuY21GdWRGSmxZV3h0VW05c1pYTlViMVZ6WlhJb1hHNGdJQ0FnSUNCclpYbGpiRzloYTFObGRIVndRMjl1Wm1sbkxtRmtiV2x1UVhCcFZYTmxjaUV1Y21WaGJHMHNYRzRnSUNBZ0lDQmhaRzFwYmtGd2FWVnpaWEpWVlVsRUxGeHVJQ0FnSUNBZ1cxd2lZV1J0YVc1Y0lsMHNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCeVpYUjFjbTRnYTJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWnp0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdGa1pGSmxZV3h0S0Z4dUlDQWdJSEpsWVd4dFRtRnRaVG9nYzNSeWFXNW5MRnh1SUNBZ0lIQmhlV3h2WVdRNklHRnVlU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltRmtaRkpsWVd4dFhDSXNJSFJ5ZFdVcEtTNW1iM0lvWEc0Z0lDQWdJQ0IwYUdsekxtRmtaRkpsWVd4dFhHNGdJQ0FnS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5KbFlXeHRVMlZ5ZG1salpTNWhaR1JTWldGc2JTaHlaV0ZzYlU1aGJXVXNJSEJoZVd4dllXUXNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWldScGRGSmxZV3h0S0Z4dUlDQWdJSEpsWVd4dFRtRnRaVG9nYzNSeWFXNW5MRnh1SUNBZ0lIQmhlV3h2WVdRNklHRnVlU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltVmthWFJTWldGc2JWd2lMQ0IwY25WbEtTa3VabTl5S0Z4dUlDQWdJQ0FnZEdocGN5NWxaR2wwVW1WaGJHMWNiaUFnSUNBcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWNtVmhiRzFUWlhKMmFXTmxMbVZrYVhSU1pXRnNiU2h5WldGc2JVNWhiV1VzSUhCaGVXeHZZV1FzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2NtVnRiM1psVW1WaGJHMG9YRzRnSUNBZ2NtVmhiRzFPWVcxbE9pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0p5WlcxdmRtVlNaV0ZzYlZ3aUxDQjBjblZsS1NrdVptOXlLRnh1SUNBZ0lDQWdkR2hwY3k1eVpXMXZkbVZTWldGc2JWeHVJQ0FnSUNrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1eVpXRnNiVk5sY25acFkyVXVjbVZ0YjNabFVtVmhiRzBvY21WaGJHMU9ZVzFsTENBdUxpNWpkSGhCY21kektUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHRmtaRlZ6WlhKVWIxSmxZV3h0S0Z4dUlDQWdJR3RsZVdOc2IyRnJWWE5sY2pvZ1MyVjVZMnh2WVd0VmMyVnlMRnh1SUNBZ0lIQmhlV3h2WVdRNklHRnVlU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSE4wY21sdVp6NGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lZV1JrVlhObGNsUnZVbVZoYkcxY0lpd2dkSEoxWlNrcExtWnZjaWhjYmlBZ0lDQWdJSFJvYVhNdVlXUmtWWE5sY2xSdlVtVmhiRzFjYmlBZ0lDQXBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMblZ6WlhKVFpYSjJhV05sTG1Ga1pGVnpaWEpVYjFKbFlXeHRLR3RsZVdOc2IyRnJWWE5sY2l3Z2NHRjViRzloWkN3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmxaR2wwVlhObGNpaGNiaUFnSUNCeVpXRnNiVTVoYldVNklITjBjbWx1Wnl4Y2JpQWdJQ0IxYzJWeVZWVkpSRG9nYzNSeWFXNW5MRnh1SUNBZ0lIQmhlV3h2WVdRNklHRnVlU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0ltVmthWFJWYzJWeVhDSXNJSFJ5ZFdVcEtTNW1iM0lvWEc0Z0lDQWdJQ0IwYUdsekxtVmthWFJWYzJWeVhHNGdJQ0FnS1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5WelpYSlRaWEoyYVdObExtVmthWFJWYzJWeUtISmxZV3h0VG1GdFpTd2dkWE5sY2xWVlNVUXNJSEJoZVd4dllXUXNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nY21WdGIzWmxWWE5sY2taeWIyMVNaV0ZzYlNoY2JpQWdJQ0J5WldGc2JVNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQjFjMlZ5VlZWSlJEb2djM1J5YVc1bkxGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0p5WlcxdmRtVlZjMlZ5Um5KdmJWSmxZV3h0WENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTV5WlcxdmRtVlZjMlZ5Um5KdmJWSmxZV3h0S1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5WelpYSlRaWEoyYVdObExuSmxiVzkyWlZWelpYSkdjbTl0VW1WaGJHMG9jbVZoYkcxT1lXMWxMQ0IxYzJWeVZWVkpSQ3dnTGk0dVkzUjRRWEpuY3lrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCaFpHUlNaV0ZzYlZKdmJHVnpWRzlWYzJWeUtGeHVJQ0FnSUhKbFlXeHRUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJSFZ6WlhKVlZVbEVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NtOXNaVTVoYldWek9pQnpkSEpwYm1kYlhTeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpWVdSa1VtVmhiRzFTYjJ4bGMxUnZWWE5sY2x3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11WVdSa1VtVmhiRzFTYjJ4bGMxUnZWWE5sY2lrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1eWIyeGxVMlZ5ZG1salpTNW5jbUZ1ZEZKbFlXeHRVbTlzWlhOVWIxVnpaWElvWEc0Z0lDQWdJQ0J5WldGc2JVNWhiV1VzWEc0Z0lDQWdJQ0IxYzJWeVZWVkpSQ3hjYmlBZ0lDQWdJSEp2YkdWT1lXMWxjeXhjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnTHlvcVhHNGdJQ0FxSUVOeVpXRjBaWE1nWVNCeVpXRnNiUzFzWlhabGJDQnliMnhsTENCdmNIUnBiMjVoYkd4NUlHRnpJR0VnWTI5dGNHOXphWFJsSUc5bUlHVjRhWE4wYVc1bklISnZiR1Z6TGx4dUlDQWdLaTljYmlBZ1lYTjVibU1nWTNKbFlYUmxVbVZoYkcxU2IyeGxLRnh1SUNBZ0lISmxZV3h0VG1GdFpUb2djM1J5YVc1bkxGeHVJQ0FnSUhKdmJHVk9ZVzFsT2lCemRISnBibWNzWEc0Z0lDQWdZMjl0Y0c5emFYUmxVbTlzWlhNNklITjBjbWx1WjF0ZElId2dkVzVrWldacGJtVmtMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aVkzSmxZWFJsVW1WaGJHMVNiMnhsWENJc0lIUnlkV1VwS1M1bWIzSW9YRzRnSUNBZ0lDQjBhR2x6TG1OeVpXRjBaVkpsWVd4dFVtOXNaVnh1SUNBZ0lDazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NXliMnhsVTJWeWRtbGpaUzVqY21WaGRHVlNaV0ZzYlZKdmJHVW9YRzRnSUNBZ0lDQnlaV0ZzYlU1aGJXVXNYRzRnSUNBZ0lDQnliMnhsVG1GdFpTeGNiaUFnSUNBZ0lHTnZiWEJ2YzJsMFpWSnZiR1Z6TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1EzSmxZWFJsY3lCaElHTnNhV1Z1ZENCcGJpQjBhR1VnWTI5dVptbG5kWEpsWkNCeVpXRnNiU0JoYm1RZ2NtVjBkWEp1Y3lCcGRITWdWVlZKUkM1Y2JpQWdJQ292WEc0Z0lHRnplVzVqSUdOeVpXRjBaVU5zYVdWdWRDaGNiaUFnSUNCamIyNW1hV2M2SUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjc1hHNGdJQ0FnYjNabGNuSnBaR1Z6T2lCUVlYSjBhV0ZzUEdsdGNHOXlkQ2hjSWk0dUwzUjVjR1Z6WENJcExrdGxlV05zYjJGclEyeHBaVzUwUTI5dVptbG5QaUI4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhOMGNtbHVaejRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0dGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpWTNKbFlYUmxRMnhwWlc1MFhDSXNJSFJ5ZFdVcEtTNW1iM0lvWEc0Z0lDQWdJQ0IwYUdsekxtTnlaV0YwWlVOc2FXVnVkRnh1SUNBZ0lDazdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZMnhwWlc1MFUyVnlkbWxqWlM1amNtVmhkR1ZEYkdsbGJuUW9ZMjl1Wm1sbkxDQnZkbVZ5Y21sa1pYTXNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWVdSa1EyeHBaVzUwVW05c1pYTlViMVZ6WlhJb1hHNGdJQ0FnY21WaGJHMU9ZVzFsT2lCemRISnBibWNzWEc0Z0lDQWdZMnhwWlc1MFZWVkpSRG9nYzNSeWFXNW5MRnh1SUNBZ0lIVnpaWEpWVlVsRU9pQnpkSEpwYm1jc1hHNGdJQ0FnY205c1pVNWhiV1Z6T2lCemRISnBibWRiWFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lZV1JrUTJ4cFpXNTBVbTlzWlhOVWIxVnpaWEpjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbUZrWkVOc2FXVnVkRkp2YkdWelZHOVZjMlZ5S1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5KdmJHVlRaWEoyYVdObExtZHlZVzUwUTJ4cFpXNTBVbTlzWlhOVWIxVnpaWElvWEc0Z0lDQWdJQ0J5WldGc2JVNWhiV1VzWEc0Z0lDQWdJQ0JqYkdsbGJuUlZWVWxFTEZ4dUlDQWdJQ0FnZFhObGNsVlZTVVFzWEc0Z0lDQWdJQ0J5YjJ4bFRtRnRaWE1zWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR1JsYkdWMFpVRmtiV2x1UVhCcFZYTmxjaWhjYmlBZ0lDQnJaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5PaUJMWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSmtaV3hsZEdWQlpHMXBia0Z3YVZWelpYSmNJaXdnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtUmxiR1YwWlVGa2JXbHVRWEJwVlhObGNpazdYRzRnSUNBZ1kyOXVjM1FnY205dmRFRmpZMlZ6YzFSdmEyVnVJRDBnWVhkaGFYUWdkR2hwY3k1aGRYUm9VMlZ5ZG1salpTNW5aWFJCWTJObGMzTlViMnRsYmloY2JpQWdJQ0FnSUd0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjdWNtOXZkRUZ3YVZWelpYSWhMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NTFjMlZ5VTJWeWRtbGpaUzVrWld4bGRHVlZjMlZ5S0Z4dUlDQWdJQ0FnY205dmRFRmpZMlZ6YzFSdmEyVnVMRnh1SUNBZ0lDQWdhMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeTVoWkcxcGJrRndhVlZ6WlhJaExGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCelpYUjFjRTl5WjJGdWFYcGhkR2x2YmloY2JpQWdJQ0JqYjI1bWFXYy9PaUJMWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4UzJWNVkyeHZZV3RUWlhSMWNFTnZibVpwWno0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKelpYUjFjRTl5WjJGdWFYcGhkR2x2Ymx3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11YzJWMGRYQlBjbWRoYm1sNllYUnBiMjRwTzF4dUlDQWdJR052Ym5OMElHVm1abVZqZEdsMlpVTnZibVpwWnlBOUlHTnZibVpwWnlBL1B5QjBhR2x6TG1OdmJtWnBaenRjYmx4dUlDQWdJR052Ym5OMElHRmtiV2x1UVdOalpYTnpWRzlyWlc0Z1BTQmhkMkZwZENCMGFHbHpMbUYxZEdoVFpYSjJhV05sTG1kbGRFRmpZMlZ6YzFSdmEyVnVLRnh1SUNBZ0lDQWdaV1ptWldOMGFYWmxRMjl1Wm1sbkxtRmtiV2x1UVhCcFZYTmxjaUI4ZkNCMGFHbHpMbU52Ym1acFp5NWhaRzFwYmtGd2FWVnpaWEloTEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5KbFlXeHRVMlZ5ZG1salpTNWpjbVZoZEdWU1pXRnNiU2hjYmlBZ0lDQWdJR1ZtWm1WamRHbDJaVU52Ym1acFp5NXlaV0ZzYlVGd2FWVnpaWEloTG5KbFlXeHRMRnh1SUNBZ0lDQWdaV1ptWldOMGFYWmxRMjl1Wm1sbkxuSmxZV3h0UTI5dVptbG5JRDgvSUh0OUxGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1M1lXbDBSbTl5VW1WaGJHMG9aV1ptWldOMGFYWmxRMjl1Wm1sbkxuSmxZV3h0UVhCcFZYTmxjaUV1Y21WaGJHMHNJQzR1TG1OMGVFRnlaM01wTzF4dVhHNGdJQ0FnWTI5dWMzUWdjbVZoYkcxVmMyVnlWVlZKUkNBOUlHRjNZV2wwSUhSb2FYTXVkWE5sY2xObGNuWnBZMlV1WTNKbFlYUmxVbVZoYkcxVmMyVnlLRnh1SUNBZ0lDQWdaV1ptWldOMGFYWmxRMjl1Wm1sbkxuSmxZV3h0UVhCcFZYTmxjaUVzWEc0Z0lDQWdJQ0I3ZlN4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQWdJR1ZtWm1WamRHbDJaVU52Ym1acFp5NXlaV0ZzYlVGd2FWVnpaWEloTG5WelpYSnVZVzFsVlZWSlJDQTlJSEpsWVd4dFZYTmxjbFZWU1VRN1hHNWNiaUFnSUNCamIyNXpkQ0J5WldGc2JVMWhibUZuWlcxbGJuUlZWVWxFSUQwZ1lYZGhhWFFnZEdocGN5NWpiR2xsYm5SVFpYSjJhV05sTG1kbGRFTnNhV1Z1ZEZWVlNVUW9YRzRnSUNBZ0lDQmhaRzFwYmtGalkyVnpjMVJ2YTJWdUxGeHVJQ0FnSUNBZ1pXWm1aV04wYVhabFEyOXVabWxuTG5KbFlXeHRRWEJwVlhObGNpRXVjbVZoYkcwc1hHNGdJQ0FnSUNCY0luSmxZV3h0TFcxaGJtRm5aVzFsYm5SY0lpeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWNtOXNaVk5sY25acFkyVXVZWE56YVdkdVVtOXNaWE5VYjFWelpYSW9YRzRnSUNBZ0lDQmdMMkZrYldsdUwzSmxZV3h0Y3k4a2UyVm1abVZqZEdsMlpVTnZibVpwWnk1eVpXRnNiVUZ3YVZWelpYSWhMbkpsWVd4dGZTOWpiR2xsYm5Sekx5UjdjbVZoYkcxTllXNWhaMlZ0Wlc1MFZWVkpSSDB2Y205c1pYTmdMRnh1SUNBZ0lDQWdZQzloWkcxcGJpOXlaV0ZzYlhNdkpIdGxabVpsWTNScGRtVkRiMjVtYVdjdWNtVmhiRzFCY0dsVmMyVnlJUzV5WldGc2JYMHZkWE5sY25NdkpIdHlaV0ZzYlZWelpYSlZWVWxFZlM5eWIyeGxMVzFoY0hCcGJtZHpMMk5zYVdWdWRITXZKSHR5WldGc2JVMWhibUZuWlcxbGJuUlZWVWxFZldBc1hHNGdJQ0FnSUNCYlhDSnRZVzVoWjJVdFkyeHBaVzUwYzF3aUxDQmNJbTFoYm1GblpTMXBaR1Z1ZEdsMGVTMXdjbTkyYVdSbGNuTmNJbDBzWEc0Z0lDQWdJQ0JoWkcxcGJrRmpZMlZ6YzFSdmEyVnVMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzVjYmlBZ0lDQmpiMjV6ZENCamJHbGxiblJWVlVsRUlEMGdZWGRoYVhRZ2RHaHBjeTVqYkdsbGJuUlRaWEoyYVdObExtTnlaV0YwWlVOc2FXVnVkQ2hjYmlBZ0lDQWdJR1ZtWm1WamRHbDJaVU52Ym1acFp5eGNiaUFnSUNBZ0lIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUdWbVptVmpkR2wyWlVOdmJtWnBaeTVqYkdsbGJuUXVZMnhwWlc1MFZWVkpSQ0E5SUdOc2FXVnVkRlZWU1VRN1hHNWNiaUFnSUNCaGQyRnBkQ0IwYUdsekxuVndaR0YwWlVOc2FXVnVkRk5qYjNCbGMxSnZiR1Z6VFdGd2NHVnljeWhjYmlBZ0lDQWdJR1ZtWm1WamRHbDJaVU52Ym1acFp5NXlaV0ZzYlVGd2FWVnpaWEloTEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc1Y2JpQWdJQ0J5WlhSMWNtNGdaV1ptWldOMGFYWmxRMjl1Wm1sbk8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2MyVjBkWEJQY21kaGJtbDZZWFJwYjI1VFUwOG9YRzRnSUNBZ2EyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp6b2dTMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aWMyVjBkWEJQY21kaGJtbDZZWFJwYjI1VFUwOWNJaXdnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxuTmxkSFZ3VDNKbllXNXBlbUYwYVc5dVUxTlBLVHRjYmx4dUlDQWdJR0YzWVdsMElIUm9hWE11WTJ4cFpXNTBVMlZ5ZG1salpTNWpjbVZoZEdWRGJHbGxiblJTYjJ4bGN5aGNiaUFnSUNBZ0lHdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXY3NYRzRnSUNBZ0lDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCcFppQW9hMlY1WTJ4dllXdFRaWFIxY0VOdmJtWnBaeTVwWkdWdWRHbDBlVkJ5YjNacFpHVnlLU0I3WEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG1sa1pXNTBhWFI1VUhKdmRtbGtaWEpUWlhKMmFXTmxMbU55WldGMFpVbGtaVzUwYVhSNVVISnZkbWxrWlhJb1hHNGdJQ0FnSUNBZ0lHdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXY3NYRzRnSUNBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWFXUmxiblJwZEhsUWNtOTJhV1JsY2xObGNuWnBZMlV1WTNKbFlYUmxTV1JsYm5ScGRIbFFjbTkyYVdSbGNrMWhjSEJsY25Nb1hHNGdJQ0FnSUNBZ0lHdGxlV05zYjJGclUyVjBkWEJEYjI1bWFXY3NYRzRnSUNBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJrWld4bGRHVlBjbWRoYm1sNllYUnBiMjRvWEc0Z0lDQWdjbVZoYkcxT1lXMWxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW1SbGJHVjBaVTl5WjJGdWFYcGhkR2x2Ymx3aUxDQjBjblZsS1Z4dUlDQWdJQ2t1Wm05eUtIUm9hWE11WkdWc1pYUmxUM0puWVc1cGVtRjBhVzl1S1R0Y2JpQWdJQ0JoZDJGcGRDQjBhR2x6TG5KbFlXeHRVMlZ5ZG1salpTNXlaVzF2ZG1WU1pXRnNiU2h5WldGc2JVNWhiV1VzSUM0dUxtTjBlRUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmpjbVZoZEdWSWRIUndRMnhwWlc1MEtHTnZibVpwWnpvZ1MyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5azZJRUY0YVc5elNXNXpkR0Z1WTJVZ2UxeHVJQ0FnSUhKbGRIVnliaUJCZUdsdmN5NWpjbVZoZEdVb2UxeHVJQ0FnSUNBZ1ltRnpaVlZTVERvZ1lDUjdZMjl1Wm1sbkxuQnliM1J2WTI5c2ZUb3ZMeVI3WTI5dVptbG5MbWh2YzNSOVlDeGNiaUFnSUNBZ0lHaGxZV1JsY25NNklIc2dYQ0pEYjI1MFpXNTBMVlI1Y0dWY0lqb2dYQ0poY0hCc2FXTmhkR2x2Ymk5cWMyOXVYQ0lnZlN4Y2JpQWdJQ0FnSUhaaGJHbGtZWFJsVTNSaGRIVnpPaUFvS1NBOVBpQjBjblZsTEZ4dUlDQWdJQ0FnYUhSMGNITkJaMlZ1ZERvZ2JtVjNJR2gwZEhCekxrRm5aVzUwS0h0Y2JpQWdJQ0FnSUNBZ2NtVnFaV04wVlc1aGRYUm9iM0pwZW1Wa09pQjBhR2x6TG1selVISnZaSFZqZEdsdmJpZ3BMRnh1SUNBZ0lDQWdmU2tzWEc0Z0lDQWdmU2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdGemVXNWpJSGRoYVhSR2IzSlNaV0ZzYlNoY2JpQWdJQ0J5WldGc2JVNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGhkMkZwZENCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCY0luZGhhWFJHYjNKU1pXRnNiVndpTENCMGNuVmxLU2t1Wm05eUtGeHVJQ0FnSUNBZ2RHaHBjeTUzWVdsMFJtOXlVbVZoYkcxY2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWTI5dWMzUWdaR1ZoWkd4cGJtVWdQU0JFWVhSbExtNXZkeWdwSUNzZ01UVXdNREE3WEc0Z0lDQWdkMmhwYkdVZ0tFUmhkR1V1Ym05M0tDa2dQQ0JrWldGa2JHbHVaU2tnZTF4dUlDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTV5WldGc2JWTmxjblpwWTJVdVoyVjBVbVZoYkcwb2NtVmhiRzFPWVcxbExDQXVMaTVqZEhoQmNtZHpLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lDQWdmU0JqWVhSamFDQjdYRzRnSUNBZ0lDQWdJR0YzWVdsMElHNWxkeUJRY205dGFYTmxLQ2h5WlhOdmJIWmxLU0E5UGlCelpYUlVhVzFsYjNWMEtISmxjMjlzZG1Vc0lEVXdNQ2twTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loZ1ZHbHRaV1FnYjNWMElIZGhhWFJwYm1jZ1ptOXlJSEpsWVd4dElDUjdjbVZoYkcxT1lXMWxmV0FwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUIxY0dSaGRHVkRiR2xsYm5SVFkyOXdaWE5TYjJ4bGMwMWhjSEJsY25Nb1hHNGdJQ0FnYTJWNVkyeHZZV3RWYzJWeU9pQkxaWGxqYkc5aGExVnpaWElzWEc0Z0lDQWdMaTR1WVhKbmN6b2dRMjl1ZEdWNGRIVmhiRUZ5WjNNOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0IwYUdsekxuVndaR0YwWlVOc2FXVnVkRk5qYjNCbGMxSnZiR1Z6VFdGd2NHVnljeWs3WEc1Y2JpQWdJQ0JqYjI1emRDQmpiR2xsYm5RZ1BTQjBhR2x6TG1OeVpXRjBaVWgwZEhCRGJHbGxiblFvZEdocGN5NWpiMjVtYVdjcE8xeHVJQ0FnSUdOdmJuTjBJSEpsWVd4dFFXTmpaWE56Vkc5clpXNGdQU0JoZDJGcGRDQjBhR2x6TG1GMWRHaFRaWEoyYVdObExtZGxkRUZqWTJWemMxUnZhMlZ1S0Z4dUlDQWdJQ0FnYTJWNVkyeHZZV3RWYzJWeUxGeHVJQ0FnSUNBZ0xpNHVZWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ2NtOXNaWE5TWlhOd2IyNXpaU0E5SUdGM1lXbDBJR05zYVdWdWRDNXlaWEYxWlhOMEtIdGNiaUFnSUNBZ0lHMWxkR2h2WkRvZ1hDSkhSVlJjSWl4Y2JpQWdJQ0FnSUhWeWJEb2dZQ1I3ZEdocGN5NWpiMjVtYVdjdWNISnZkRzlqYjJ4OU9pOHZKSHQwYUdsekxtTnZibVpwWnk1b2IzTjBmUzloWkcxcGJpOXlaV0ZzYlhNdkpIdHJaWGxqYkc5aGExVnpaWEl1Y21WaGJHMTlMMk5zYVdWdWRDMXpZMjl3WlhOZ0xGeHVJQ0FnSUNBZ2FHVmhaR1Z5Y3pvZ2UxeHVJQ0FnSUNBZ0lDQkJkWFJvYjNKcGVtRjBhVzl1T2lCZ1FtVmhjbVZ5SUNSN2NtVmhiRzFCWTJObGMzTlViMnRsYm4xZ0xGeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lIWmhiR2xrWVhSbFUzUmhkSFZ6T2lBb0tTQTlQaUIwY25WbExGeHVJQ0FnSUgwcE8xeHVJQ0FnSUdOdmJuTjBJR05zYVdWdWRGTmpiM0JsY3lBOVhHNGdJQ0FnSUNCMGFHbHpMbkJoY25ObFNuTnZibEpsYzNCdmJuTmxQRnh1SUNBZ0lDQWdJQ0JCY25KaGVUeDdYRzRnSUNBZ0lDQWdJQ0FnYVdRNklITjBjbWx1Wnp0Y2JpQWdJQ0FnSUNBZ0lDQnVZVzFsT2lCemRISnBibWM3WEc0Z0lDQWdJQ0FnSUNBZ2NISnZkRzlqYjJ4TllYQndaWEp6UHpvZ1FYSnlZWGs4ZTF4dUlDQWdJQ0FnSUNBZ0lDQWdhV1E2SUhOMGNtbHVaenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHNWhiV1U2SUhOMGNtbHVaenRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZibVpwWnpvZ1VtVmpiM0prUEhOMGNtbHVaeXdnYzNSeWFXNW5QanRjYmlBZ0lDQWdJQ0FnSUNCOVBqdGNiaUFnSUNBZ0lDQWdmVDVjYmlBZ0lDQWdJRDRvY205c1pYTlNaWE53YjI1elpTNWtZWFJoS1NBL1B5QmJYVHRjYmlBZ0lDQmpiMjV6ZENCeWIyeGxjMU5qYjNCbElEMGdZMnhwWlc1MFUyTnZjR1Z6TG1acGJtUW9LSE5qYjNCbEtTQTlQaUJ6WTI5d1pTNXVZVzFsSUQwOVBTQmNJbkp2YkdWelhDSXBPMXh1SUNBZ0lHTnZibk4wSUdOc2FXVnVkRkp2YkdWelRXRndjR1Z5SUQwZ2NtOXNaWE5UWTI5d1pUOHVjSEp2ZEc5amIyeE5ZWEJ3WlhKelB5NW1hVzVrS0Z4dUlDQWdJQ0FnS0cxaGNIQmxjaWtnUFQ0Z2JXRndjR1Z5TG01aGJXVWdQVDA5SUZ3aVkyeHBaVzUwSUhKdmJHVnpYQ0pjYmlBZ0lDQXBPMXh1SUNBZ0lHbG1JQ2doY205c1pYTlRZMjl3WlNCOGZDQWhZMnhwWlc1MFVtOXNaWE5OWVhCd1pYSXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJPYjNSR2IzVnVaRVZ5Y205eUtGd2lWVzVoWW14bElIUnZJR1pwYm1RZ1kyeHBaVzUwSUhKdmJHVnpJRzFoY0hCbGNsd2lLVHRjYmlBZ0lDQjlYRzRnSUNBZ1kyeHBaVzUwVW05c1pYTk5ZWEJ3WlhJdVkyOXVabWxuVzF3aWFXUXVkRzlyWlc0dVkyeGhhVzFjSWwwZ1BTQmNJblJ5ZFdWY0lqdGNiaUFnSUNCaGQyRnBkQ0JqYkdsbGJuUXVjbVZ4ZFdWemRDaDdYRzRnSUNBZ0lDQnRaWFJvYjJRNklGd2lVRlZVWENJc1hHNGdJQ0FnSUNCMWNtdzZJR0FrZTNSb2FYTXVZMjl1Wm1sbkxuQnliM1J2WTI5c2ZUb3ZMeVI3ZEdocGN5NWpiMjVtYVdjdWFHOXpkSDB2WVdSdGFXNHZjbVZoYkcxekx5UjdhMlY1WTJ4dllXdFZjMlZ5TG5KbFlXeHRmUzlqYkdsbGJuUXRjMk52Y0dWekx5UjdjbTlzWlhOVFkyOXdaUzVwWkgwdmNISnZkRzlqYjJ3dGJXRndjR1Z5Y3k5dGIyUmxiSE12Skh0amJHbGxiblJTYjJ4bGMwMWhjSEJsY2k1cFpIMWdMRnh1SUNBZ0lDQWdaR0YwWVRvZ1NsTlBUaTV6ZEhKcGJtZHBabmtvWTJ4cFpXNTBVbTlzWlhOTllYQndaWElwTEZ4dUlDQWdJQ0FnYUdWaFpHVnljem9nZTF4dUlDQWdJQ0FnSUNCQmRYUm9iM0pwZW1GMGFXOXVPaUJnUW1WaGNtVnlJQ1I3Y21WaGJHMUJZMk5sYzNOVWIydGxibjFnTEZ4dUlDQWdJQ0FnSUNCY0lrTnZiblJsYm5RdFZIbHdaVndpT2lCY0ltRndjR3hwWTJGMGFXOXVMMnB6YjI1Y0lpeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQjJZV3hwWkdGMFpWTjBZWFIxY3pvZ0tDa2dQVDRnZEhKMVpTeGNiaUFnSUNCOUtUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdjR0Z5YzJWS2MyOXVVbVZ6Y0c5dWMyVThWRDRvWkdGMFlUb2dkVzVyYm05M2JpazZJRlFnZkNCMWJtUmxabWx1WldRZ2UxeHVJQ0FnSUdsbUlDaDBlWEJsYjJZZ1pHRjBZU0E5UFQwZ1hDSnpkSEpwYm1kY0lpa2dlMXh1SUNBZ0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUVwVFQwNHVjR0Z5YzJVb1pHRjBZU2tnWVhNZ1ZEdGNiaUFnSUNBZ0lIMGdZMkYwWTJnZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JpQWdJQ0J5WlhSMWNtNGdaR0YwWVNCaGN5QlVPMXh1SUNCOVhHNTlYRzRpWFgwPSJdfQ==
|
|
@@ -273,5 +273,5 @@ class KeycloakUserService extends core_1.ClientBasedService {
|
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
275
|
exports.KeycloakUserService = KeycloakUserService;
|
|
276
|
-
//# sourceMappingURL=KeycloakUserService.js.map
|
|
277
|
-
//# sourceMappingURL=KeycloakUserService.cjs.map
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtVc2VyU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9rZXljbG9hay9zZXJ2aWNlcy9LZXljbG9ha1VzZXJTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRCxPQUFPLEtBQXdCLE1BQU0sT0FBTyxDQUFDO0FBQzdDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxxQkFBa0I7QUFpQnhELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFHeEM7SUFDQyxLQUFLLENBQUMsVUFBVSxDQUNkLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQ2xCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUM1QyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBd0IsQ0FBQztRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FDbEIsWUFBMEIsRUFDMUIsT0FBd0QsRUFDeEQsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsT0FBTyxFQUFF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TyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkUsT0FBTyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsT0FBTyxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sdUJBQXVCLENBQUMsUUFBYTtRQUMzQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQThCLENBQUM7UUFDakUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLGFBQWEsQ0FDckIscURBQXFELENBQ3RELENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRU8saUJBQWlCLENBQUksSUFBYTtRQUN4QyxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQztnQkFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFNLENBQUM7WUFDL0IsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxPQUFPLFNBQVMsQ0FBQztZQUNuQixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhZFJlcXVlc3RFcnJvcixcbiAgQ29uZmxpY3RFcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb250ZXh0dWFsQXJncywgTWF5YmVDb250ZXh0dWFsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB0eXBlIHsgS2V5Y2xvYWtTZXR1cENvbmZpZywgS2V5Y2xvYWtVc2VyIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgQXhpb3MsIHsgQXhpb3NJbnN0YW5jZSB9IGZyb20gXCJheGlvc1wiO1xuaW1wb3J0ICogYXMgaHR0cHMgZnJvbSBcIm5vZGU6aHR0cHNcIjtcbmltcG9ydCB7IHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbiB9IGZyb20gXCIuL3J1bnRpbWVcIjtcblxuZXhwb3J0IHR5cGUgS2V5Y2xvYWtVc2VyUmVwcmVzZW50YXRpb24gPSB7XG4gIHVzZXJuYW1lPzogc3RyaW5nO1xuICBmaXJzdE5hbWU/OiBzdHJpbmc7XG4gIGxhc3ROYW1lPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbiAgZW1haWxWZXJpZmllZD86IGJvb2xlYW47XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xuICBjcmVkZW50aWFscz86IEFycmF5PHtcbiAgICB0eXBlOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgICB0ZW1wb3Jhcnk/OiBib29sZWFuO1xuICB9PjtcbiAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn07XG5cbmV4cG9ydCBjbGFzcyBLZXljbG9ha1VzZXJTZXJ2aWNlIGV4dGVuZHMgQ2xpZW50QmFzZWRTZXJ2aWNlPFxuICBBeGlvc0luc3RhbmNlLFxuICBLZXljbG9ha1NldHVwQ29uZmlnXG4+IHtcbiAgYXN5bmMgaW5pdGlhbGl6ZShcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHsgY29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnOyBjbGllbnQ6IEF4aW9zSW5zdGFuY2UgfT4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJpbml0aWFsaXplXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5pbml0aWFsaXplKTtcbiAgICBjb25zdCBjb25maWcgPSBjdHhBcmdzWzBdIGFzIEtleWNsb2FrU2V0dXBDb25maWc7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgIGNvbnN0IGNsaWVudCA9IHRoaXMuY3JlYXRlSHR0cENsaWVudChjb25maWcpO1xuICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICByZXR1cm4geyBjb25maWcsIGNsaWVudCB9O1xuICB9XG5cbiAgYXN5bmMgYWRkVXNlclRvUmVhbG0oXG4gICAga2V5Y2xvYWtVc2VyOiBLZXljbG9ha1VzZXIsXG4gICAgcGF5bG9hZDogUGFydGlhbDxLZXljbG9ha1VzZXJSZXByZXNlbnRhdGlvbj4gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiYWRkVXNlclRvUmVhbG1cIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmFkZFVzZXJUb1JlYWxtKTtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVSZWFsbVVzZXIoa2V5Y2xvYWtVc2VyLCBwYXlsb2FkLCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGVkaXRVc2VyKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHVzZXJVVUlEOiBzdHJpbmcsXG4gICAgcGF5bG9hZDogUGFydGlhbDxLZXljbG9ha1VzZXJSZXByZXNlbnRhdGlvbj4sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImVkaXRVc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5lZGl0VXNlcik7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVSZWFsbVVzZXIocmVhbG1OYW1lLCB1c2VyVVVJRCwgcGF5bG9hZCwgLi4uY3R4QXJncyk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVSZWFsbVVzZXIoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgdXNlclVVSUQ6IHN0cmluZyxcbiAgICBwYXlsb2FkOiBQYXJ0aWFsPEtleWNsb2FrVXNlclJlcHJlc2VudGF0aW9uPixcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwidXBkYXRlUmVhbG1Vc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy51cGRhdGVSZWFsbVVzZXIpO1xuICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3VzZXJzLyR7dXNlclVVSUR9YCxcbiAgICAgIGFkbWluQWNjZXNzVG9rZW4sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICAyMDAsXG4gICAgICB7fSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGN1cnJlbnRVc2VyID1cbiAgICAgIHRoaXMucGFyc2VKc29uUmVzcG9uc2U8S2V5Y2xvYWtVc2VyUmVwcmVzZW50YXRpb24+KHJlc3BvbnNlLmRhdGEpID8/IHt9O1xuICAgIGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiUFVUXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH1gLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIHsgLi4uY3VycmVudFVzZXIsIC4uLnBheWxvYWQgfSxcbiAgICAgIDIwNCxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyByZW1vdmVVc2VyRnJvbVJlYWxtKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHVzZXJVVUlEOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInJlbW92ZVVzZXJGcm9tUmVhbG1cIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnJlbW92ZVVzZXJGcm9tUmVhbG0pO1xuICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFjY2Vzc1Rva2VuKFxuICAgICAgdGhpcy5jb25maWcuYWRtaW5BcGlVc2VyISxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlVXNlcihcbiAgICAgIGFkbWluQWNjZXNzVG9rZW4sXG4gICAgICB7XG4gICAgICAgIHJlYWxtOiByZWFsbU5hbWUsXG4gICAgICAgIHVzZXJuYW1lVVVJRDogdXNlclVVSUQsXG4gICAgICAgIGFwaUNsaWVudElkOiBcIlwiLFxuICAgICAgICB1c2VybmFtZTogXCJcIixcbiAgICAgICAgcGFzc3dvcmQ6IFwiXCIsXG4gICAgICB9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBkZWxldGVVc2VyKFxuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmcsXG4gICAga2V5Y2xvYWtVc2VyOiBLZXljbG9ha1VzZXIsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImRlbGV0ZVVzZXJcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmRlbGV0ZVVzZXIpO1xuICAgIGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiREVMRVRFXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke2tleWNsb2FrVXNlci5yZWFsbX0vdXNlcnMvJHtrZXljbG9ha1VzZXIudXNlcm5hbWVVVUlEfWAsXG4gICAgICBhY2Nlc3NUb2tlbixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIwNCxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVSZWFsbVVzZXIoXG4gICAga2V5Y2xvYWtVc2VyOiBLZXljbG9ha1VzZXIsXG4gICAgcGF5bG9hZDogUGFydGlhbDxLZXljbG9ha1VzZXJSZXByZXNlbnRhdGlvbj4gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiY3JlYXRlUmVhbG1Vc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVSZWFsbVVzZXIpO1xuICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgY29uc3QgdXNlclBheWxvYWQgPSB7XG4gICAgICB1c2VybmFtZToga2V5Y2xvYWtVc2VyLnVzZXJuYW1lLFxuICAgICAgZmlyc3ROYW1lOiBcIkFwaVwiLFxuICAgICAgbGFzdE5hbWU6IFwiQWRtaW5cIixcbiAgICAgIGVtYWlsOiBgJHtrZXljbG9ha1VzZXIuYXBpQ2xpZW50SWR9QCR7a2V5Y2xvYWtVc2VyLnJlYWxtfS5jb21gLFxuICAgICAgZW1haWxWZXJpZmllZDogdHJ1ZSxcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICBjcmVkZW50aWFsczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogXCJwYXNzd29yZFwiLFxuICAgICAgICAgIHZhbHVlOiBrZXljbG9ha1VzZXIucGFzc3dvcmQsXG4gICAgICAgICAgdGVtcG9yYXJ5OiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICAuLi5wYXlsb2FkLFxuICAgIH07XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIlBPU1RcIixcbiAgICAgIGAvYWRtaW4vcmVhbG1zLyR7a2V5Y2xvYWtVc2VyLnJlYWxtfS91c2Vyc2AsXG4gICAgICBhZG1pbkFjY2Vzc1Rva2VuLFxuICAgICAgdXNlclBheWxvYWQsXG4gICAgICAyMDEsXG4gICAgICB7fSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmV4dHJhY3RVVUlEZnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcbiAgfVxuXG4gIGFzeW5jIGFzc2lnblJvbGVzVG9Vc2VyKFxuICAgIHJvbGVzVXJsOiBzdHJpbmcsXG4gICAgc2V0Um9sZXNVcmw6IHN0cmluZyxcbiAgICByb2xlTmFtZXM6IHN0cmluZ1tdLFxuICAgIGFjY2Vzc1Rva2VuOiBzdHJpbmcsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImFzc2lnblJvbGVzVG9Vc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5hc3NpZ25Sb2xlc1RvVXNlcik7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgcm9sZXNVcmwsXG4gICAgICBhY2Nlc3NUb2tlbixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIwMCxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3Qgcm9sZXMgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlPGFueVtdPihyZXNwb25zZS5kYXRhKSA/PyBbXTtcbiAgICBjb25zdCBzZWxlY3RlZFJvbGVzID0gcm9sZXMuZmlsdGVyKChyb2xlKSA9PiByb2xlTmFtZXMuaW5jbHVkZXMocm9sZS5uYW1lKSk7XG4gICAgaWYgKHNlbGVjdGVkUm9sZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgTm8gcm9sZXMgbWF0Y2hlZCAke3JvbGVOYW1lcy5qb2luKFwiLCBcIil9YCk7XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2VzOiBQcm9taXNlPHZvaWQ+W10gPSBzZWxlY3RlZFJvbGVzLm1hcCgocm9sZSkgPT5cbiAgICAgIHRoaXMucmVxdWVzdChcbiAgICAgICAgXCJQT1NUXCIsXG4gICAgICAgIHNldFJvbGVzVXJsLFxuICAgICAgICBhY2Nlc3NUb2tlbixcbiAgICAgICAgW3JvbGVdLFxuICAgICAgICAyMDQsXG4gICAgICAgIHt9LFxuICAgICAgICAuLi5jdHhBcmdzXG4gICAgICApXG4gICAgKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gIH1cblxuICBhc3luYyBncmFudFJlYWxtUm9sZXNUb1VzZXIoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgdXNlclVVSUQ6IHN0cmluZyxcbiAgICByb2xlTmFtZXM6IHN0cmluZ1tdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJncmFudFJlYWxtUm9sZXNUb1VzZXJcIiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmdyYW50UmVhbG1Sb2xlc1RvVXNlcik7XG4gICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICBhd2FpdCB0aGlzLmFzc2lnblJvbGVzVG9Vc2VyKFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3JvbGVzYCxcbiAgICAgIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL3JlYWxtYCxcbiAgICAgIHJvbGVOYW1lcyxcbiAgICAgIGFkbWluQWNjZXNzVG9rZW4sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdyYW50Q2xpZW50Um9sZXNUb1VzZXIoXG4gICAgcmVhbG1OYW1lOiBzdHJpbmcsXG4gICAgY2xpZW50VVVJRDogc3RyaW5nLFxuICAgIHVzZXJVVUlEOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiZ3JhbnRDbGllbnRSb2xlc1RvVXNlclwiLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZ3JhbnRDbGllbnRSb2xlc1RvVXNlcik7XG4gICAgY29uc3QgYWRtaW5BY2Nlc3NUb2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5jdHhBcmdzKTtcbiAgICBhd2FpdCB0aGlzLmFzc2lnblJvbGVzVG9Vc2VyKFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L2NsaWVudHMvJHtjbGllbnRVVUlEfS9yb2xlc2AsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9jbGllbnRzLyR7Y2xpZW50VVVJRH1gLFxuICAgICAgcm9sZU5hbWVzLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmV2b2tlUmVhbG1Sb2xlc0Zyb21Vc2VyKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHVzZXJVVUlEOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmV2b2tlUmVhbG1Sb2xlc0Zyb21Vc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZXZva2VSZWFsbVJvbGVzRnJvbVVzZXIpO1xuICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgY29uc3Qgcm9sZXNSZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiR0VUXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vcm9sZXNgLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIwMCxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3Qgcm9sZXMgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlPGFueVtdPihyb2xlc1Jlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgIGNvbnN0IHNlbGVjdGVkUm9sZXMgPSByb2xlcy5maWx0ZXIoKHJvbGUpID0+IHJvbGVOYW1lcy5pbmNsdWRlcyhyb2xlLm5hbWUpKTtcbiAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkRFTEVURVwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3VzZXJzLyR7dXNlclVVSUR9L3JvbGUtbWFwcGluZ3MvcmVhbG1gLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIHNlbGVjdGVkUm9sZXMsXG4gICAgICAyMDQsXG4gICAgICB7fSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVwbGFjZVJlYWxtUm9sZXNGb3JVc2VyKFxuICAgIHJlYWxtTmFtZTogc3RyaW5nLFxuICAgIHVzZXJVVUlEOiBzdHJpbmcsXG4gICAgcm9sZU5hbWVzOiBzdHJpbmdbXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmVwbGFjZVJlYWxtUm9sZXNGb3JVc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZXBsYWNlUmVhbG1Sb2xlc0ZvclVzZXIpO1xuICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgY29uc3QgY3VycmVudFJvbGVzUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3VzZXJzLyR7dXNlclVVSUR9L3JvbGUtbWFwcGluZ3MvcmVhbG1gLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIwMCxcbiAgICAgIHt9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgY3VycmVudFJvbGVzID1cbiAgICAgIHRoaXMucGFyc2VKc29uUmVzcG9uc2U8YW55W10+KGN1cnJlbnRSb2xlc1Jlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgIGlmIChjdXJyZW50Um9sZXMubGVuZ3RoID4gMCkge1xuICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgICBcIkRFTEVURVwiLFxuICAgICAgICBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9yZWFsbWAsXG4gICAgICAgIGFkbWluQWNjZXNzVG9rZW4sXG4gICAgICAgIGN1cnJlbnRSb2xlcyxcbiAgICAgICAgMjA0LFxuICAgICAgICB7fSxcbiAgICAgICAgLi4uY3R4QXJnc1xuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5ncmFudFJlYWxtUm9sZXNUb1VzZXIoXG4gICAgICByZWFsbU5hbWUsXG4gICAgICB1c2VyVVVJRCxcbiAgICAgIHJvbGVOYW1lcyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmV2b2tlQ2xpZW50Um9sZXNGcm9tVXNlcihcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBjbGllbnRVVUlEOiBzdHJpbmcsXG4gICAgdXNlclVVSUQ6IHN0cmluZyxcbiAgICByb2xlTmFtZXM6IHN0cmluZ1tdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZXZva2VDbGllbnRSb2xlc0Zyb21Vc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZXZva2VDbGllbnRSb2xlc0Zyb21Vc2VyKTtcbiAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgIGNvbnN0IHJvbGVzUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICBcIkdFVFwiLFxuICAgICAgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L2NsaWVudHMvJHtjbGllbnRVVUlEfS9yb2xlc2AsXG4gICAgICBhZG1pbkFjY2Vzc1Rva2VuLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMjAwLFxuICAgICAge30sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBjb25zdCByb2xlcyA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2U8YW55W10+KHJvbGVzUmVzcG9uc2UuZGF0YSkgPz8gW107XG4gICAgY29uc3Qgc2VsZWN0ZWRSb2xlcyA9IHJvbGVzLmZpbHRlcigocm9sZSkgPT4gcm9sZU5hbWVzLmluY2x1ZGVzKHJvbGUubmFtZSkpO1xuICAgIGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiREVMRVRFXCIsXG4gICAgICBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9jbGllbnRzLyR7Y2xpZW50VVVJRH1gLFxuICAgICAgYWRtaW5BY2Nlc3NUb2tlbixcbiAgICAgIHNlbGVjdGVkUm9sZXMsXG4gICAgICAyMDQsXG4gICAgICB7fSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVwbGFjZUNsaWVudFJvbGVzRm9yVXNlcihcbiAgICByZWFsbU5hbWU6IHN0cmluZyxcbiAgICBjbGllbnRVVUlEOiBzdHJpbmcsXG4gICAgdXNlclVVSUQ6IHN0cmluZyxcbiAgICByb2xlTmFtZXM6IHN0cmluZ1tdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxhbnk+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJyZXBsYWNlQ2xpZW50Um9sZXNGb3JVc2VyXCIsIHRydWUpXG4gICAgKS5mb3IodGhpcy5yZXBsYWNlQ2xpZW50Um9sZXNGb3JVc2VyKTtcbiAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgIGNvbnN0IGN1cnJlbnRSb2xlc1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFxuICAgICAgXCJHRVRcIixcbiAgICAgIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL2NsaWVudHMvJHtjbGllbnRVVUlEfWAsXG4gICAgICBhZG1pbkFjY2Vzc1Rva2VuLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMjAwLFxuICAgICAge30sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50Um9sZXMgPVxuICAgICAgdGhpcy5wYXJzZUpzb25SZXNwb25zZTxhbnlbXT4oY3VycmVudFJvbGVzUmVzcG9uc2UuZGF0YSkgPz8gW107XG4gICAgaWYgKGN1cnJlbnRSb2xlcy5sZW5ndGggPiAwKSB7XG4gICAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXG4gICAgICAgIFwiREVMRVRFXCIsXG4gICAgICAgIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL2NsaWVudHMvJHtjbGllbnRVVUlEfWAsXG4gICAgICAgIGFkbWluQWNjZXNzVG9rZW4sXG4gICAgICAgIGN1cnJlbnRSb2xlcyxcbiAgICAgICAgMjA0LFxuICAgICAgICB7fSxcbiAgICAgICAgLi4uY3R4QXJnc1xuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5ncmFudENsaWVudFJvbGVzVG9Vc2VyKFxuICAgICAgcmVhbG1OYW1lLFxuICAgICAgY2xpZW50VVVJRCxcbiAgICAgIHVzZXJVVUlELFxuICAgICAgcm9sZU5hbWVzLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUh0dHBDbGllbnQoY29uZmlnOiBLZXljbG9ha1NldHVwQ29uZmlnKTogQXhpb3NJbnN0YW5jZSB7XG4gICAgcmV0dXJuIEF4aW9zLmNyZWF0ZSh7XG4gICAgICBiYXNlVVJMOiBgJHtjb25maWcucHJvdG9jb2x9Oi8vJHtjb25maWcuaG9zdH1gLFxuICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24odGhpcy5jb25maWcgYXMgYW55KSksXG4gICAgICB9KSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QWRtaW5BY2Nlc3NUb2tlbihcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4pO1xuICAgIHJldHVybiB0aGlzLmdldEFjY2Vzc1Rva2VuKHRoaXMuY29uZmlnLmFkbWluQXBpVXNlciEsIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRBY2Nlc3NUb2tlbihcbiAgICBrZXljbG9ha1VzZXI6IEtleWNsb2FrVXNlcixcbiAgICAuLi5hcmdzOiBDb250ZXh0dWFsQXJnczxhbnk+XG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmdldEFjY2Vzc1Rva2VuKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcbiAgICAgIFwiUE9TVFwiLFxuICAgICAgYC9yZWFsbXMvJHtrZXljbG9ha1VzZXIucmVhbG19L3Byb3RvY29sL29wZW5pZC1jb25uZWN0L3Rva2VuYCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICBjbGllbnRfaWQ6IGtleWNsb2FrVXNlci5hcGlDbGllbnRJZCxcbiAgICAgICAgdXNlcm5hbWU6IGtleWNsb2FrVXNlci51c2VybmFtZSxcbiAgICAgICAgcGFzc3dvcmQ6IGtleWNsb2FrVXNlci5wYXNzd29yZCxcbiAgICAgICAgZ3JhbnRfdHlwZTogXCJwYXNzd29yZFwiLFxuICAgICAgfSkudG9TdHJpbmcoKSxcbiAgICAgIDIwMCxcbiAgICAgIHsgXCJjb250ZW50LXR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiB9LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2U8eyBhY2Nlc3NfdG9rZW4/OiBzdHJpbmcgfT4oXG4gICAgICByZXNwb25zZS5kYXRhXG4gICAgKTtcbiAgICBpZiAoZGF0YT8uYWNjZXNzX3Rva2VuKSByZXR1cm4gZGF0YS5hY2Nlc3NfdG9rZW47XG4gICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihcbiAgICAgIGBVbmFibGUgdG8gZ2V0IEtleWNsb2FrIGFjY2VzcyB0b2tlbiBmb3IgdXNlciAke2tleWNsb2FrVXNlci51c2VybmFtZX1gXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVxdWVzdChcbiAgICBtZXRob2Q6IFwiR0VUXCIgfCBcIlBPU1RcIiB8IFwiUFVUXCIgfCBcIkRFTEVURVwiLFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBhY2Nlc3NUb2tlbjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIHBheWxvYWQ6IHVua25vd24sXG4gICAgc3VjY2Vzc0NvZGU6IG51bWJlcixcbiAgICBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPGFueT5cbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlcXVlc3QpO1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucmVxdWVzdCh7XG4gICAgICBtZXRob2QsXG4gICAgICB1cmw6IGAke3RoaXMuY29uZmlnLnByb3RvY29sfTovLyR7dGhpcy5jb25maWcuaG9zdH0ke3BhdGh9YCxcbiAgICAgIGRhdGE6XG4gICAgICAgIHBheWxvYWQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiB0eXBlb2YgcGF5bG9hZCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgPyBwYXlsb2FkXG4gICAgICAgICAgICA6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICAuLi4oYWNjZXNzVG9rZW4gPyB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gIH0gOiB7fSksXG4gICAgICAgIC4uLihwYXlsb2FkICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIHBheWxvYWQgIT09IFwic3RyaW5nXCJcbiAgICAgICAgICA/IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSxcbiAgICAgIGh0dHBzQWdlbnQ6IG5ldyBodHRwcy5BZ2VudCh7XG4gICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbih0aGlzLmNvbmZpZyBhcyBhbnkpKSxcbiAgICAgIH0pLFxuICAgICAgdmFsaWRhdGVTdGF0dXM6ICgpID0+IHRydWUsXG4gICAgfSk7XG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gc3VjY2Vzc0NvZGUpIHtcbiAgICAgIHRoaXMuaGFuZGxlSHR0cFJlc3BvbnNlKHJlc3BvbnNlLCBzdWNjZXNzQ29kZSk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSHR0cFJlc3BvbnNlKFxuICAgIHJlc3BvbnNlOiBhbnksXG4gICAgc3VjY2Vzc0NvZGU6IG51bWJlcixcbiAgICBlcnJvck1zZz86IHN0cmluZ1xuICApOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0dXMgPSByZXNwb25zZS5zdGF0dXMgYXMgbnVtYmVyO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvck1zZ1xuICAgICAgPyBgJHtlcnJvck1zZ306IEV4cGVjdGVkICR7c3VjY2Vzc0NvZGV9LCByZWNlaXZlZCAke3Jlc3BvbnNlLnN0YXR1c306ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH0uYFxuICAgICAgOiBgRXhwZWN0ZWQgJHtzdWNjZXNzQ29kZX0sIHJlY2VpdmVkICR7cmVzcG9uc2Uuc3RhdHVzfTogJHtyZXNwb25zZS5zdGF0dXNUZXh0fWA7XG4gICAgaWYgKHN0YXR1cyA9PT0gNDA0IHx8IG1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSkge1xuICAgICAgdGhyb3cgbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09IDQwOSB8fCBtZXNzYWdlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoXCJjb25mbGljdFwiKSkge1xuICAgICAgdGhyb3cgbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09IDQwMCkge1xuICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgaWYgKHN0YXR1cyA9PT0gNDAxIHx8IHN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcGFyc2VFcnJvcihlcnJvcjogRXJyb3IpOiBFcnJvciB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2UgfHwgZXJyb3IubmFtZSB8fCBcIlVua25vd24gZXJyb3JcIjtcbiAgICBjb25zdCBsb3dlck1lc3NhZ2UgPSBtZXNzYWdlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJhbHJlYWR5IGV4aXN0c1wiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJjb25mbGljdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDlcIikpIHtcbiAgICAgIHJldHVybiBuZXcgQ29uZmxpY3RFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiaW52YWxpZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJiYWQgcmVxdWVzdFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDBcIikpIHtcbiAgICAgIHJldHVybiBuZXcgQmFkUmVxdWVzdEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJ1bmF1dGhvcml6ZWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAxXCIpKSB7XG4gICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImZvcmJpZGRlblwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDNcIikpIHtcbiAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEludGVybmFsRXJyb3IobWVzc2FnZSk7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RVVUlEZnJvbVJlc3BvbnNlKHJlc3BvbnNlOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxvY2F0aW9uID0gcmVzcG9uc2UuaGVhZGVycy5sb2NhdGlvbiBhcyBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgaWYgKCFsb2NhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiS2V5Y2xvYWsgcmVzcG9uc2UgZGlkIG5vdCBpbmNsdWRlIGEgbG9jYXRpb24gaGVhZGVyXCJcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBsb2NhdGlvbi5zcGxpdChcIi9cIikucG9wKCkgPz8gXCJcIjtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VKc29uUmVzcG9uc2U8VD4oZGF0YTogdW5rbm93bik6IFQgfCB1bmRlZmluZWQge1xuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSkgYXMgVDtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YSBhcyBUO1xuICB9XG59XG4iXX0=
|
|
277
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2V5Y2xvYWtVc2VyU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIktleWNsb2FrVXNlclNlcnZpY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkRBQXdHO0FBQ3hHLHlDQUFvRDtBQUNwRCxrREFBMEI7QUFDMUIsa0RBQW9DO0FBQ3BDLDZDQUEyRDtBQUMzRCxNQUFhLG1CQUFvQixTQUFRLHlCQUFrQjtJQUN2RCxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSTtRQUNwQixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkYsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJO1FBQy9DLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9GLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLEdB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QUksNkJBQWEsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxJQUFJO1FBQ2xCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixDQUFDO1lBQ0QsTUFBTSxDQUFDO2dCQUNILE9BQU8sU0FBUyxDQUFDO1lBQ3JCLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBck9ELGtEQXFPQztBQUNELDAxdUNBQTAxdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYWRSZXF1ZXN0RXJyb3IsIENvbmZsaWN0RXJyb3IsIEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IsIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDbGllbnRCYXNlZFNlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCBBeGlvcyBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCAqIGFzIGh0dHBzIGZyb20gXCJub2RlOmh0dHBzXCI7XG5pbXBvcnQgeyByZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24gfSBmcm9tIFwiLi9ydW50aW1lLmpzXCI7XG5leHBvcnQgY2xhc3MgS2V5Y2xvYWtVc2VyU2VydmljZSBleHRlbmRzIENsaWVudEJhc2VkU2VydmljZSB7XG4gICAgYXN5bmMgaW5pdGlhbGl6ZSguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiaW5pdGlhbGl6ZVwiLCB0cnVlKSkuZm9yKHRoaXMuaW5pdGlhbGl6ZSk7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IGN0eEFyZ3NbMF07XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5jcmVhdGVIdHRwQ2xpZW50KGNvbmZpZyk7XG4gICAgICAgIHRoaXMuX2NsaWVudCA9IGNsaWVudDtcbiAgICAgICAgcmV0dXJuIHsgY29uZmlnLCBjbGllbnQgfTtcbiAgICB9XG4gICAgYXN5bmMgYWRkVXNlclRvUmVhbG0oa2V5Y2xvYWtVc2VyLCBwYXlsb2FkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiYWRkVXNlclRvUmVhbG1cIiwgdHJ1ZSkpLmZvcih0aGlzLmFkZFVzZXJUb1JlYWxtKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVhbG1Vc2VyKGtleWNsb2FrVXNlciwgcGF5bG9hZCwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGVkaXRVc2VyKHJlYWxtTmFtZSwgdXNlclVVSUQsIHBheWxvYWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJlZGl0VXNlclwiLCB0cnVlKSkuZm9yKHRoaXMuZWRpdFVzZXIpO1xuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZVJlYWxtVXNlcihyZWFsbU5hbWUsIHVzZXJVVUlELCBwYXlsb2FkLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgdXBkYXRlUmVhbG1Vc2VyKHJlYWxtTmFtZSwgdXNlclVVSUQsIHBheWxvYWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJ1cGRhdGVSZWFsbVVzZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLnVwZGF0ZVJlYWxtVXNlcik7XG4gICAgICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiR0VUXCIsIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfWAsIGFkbWluQWNjZXNzVG9rZW4sIHVuZGVmaW5lZCwgMjAwLCB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRVc2VyID0gdGhpcy5wYXJzZUpzb25SZXNwb25zZShyZXNwb25zZS5kYXRhKSA/PyB7fTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUFVUXCIsIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfWAsIGFkbWluQWNjZXNzVG9rZW4sIHsgLi4uY3VycmVudFVzZXIsIC4uLnBheWxvYWQgfSwgMjA0LCB7fSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHJlbW92ZVVzZXJGcm9tUmVhbG0ocmVhbG1OYW1lLCB1c2VyVVVJRCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInJlbW92ZVVzZXJGcm9tUmVhbG1cIiwgdHJ1ZSkpLmZvcih0aGlzLnJlbW92ZVVzZXJGcm9tUmVhbG0pO1xuICAgICAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBY2Nlc3NUb2tlbih0aGlzLmNvbmZpZy5hZG1pbkFwaVVzZXIsIC4uLmN0eEFyZ3MpO1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZVVzZXIoYWRtaW5BY2Nlc3NUb2tlbiwge1xuICAgICAgICAgICAgcmVhbG06IHJlYWxtTmFtZSxcbiAgICAgICAgICAgIHVzZXJuYW1lVVVJRDogdXNlclVVSUQsXG4gICAgICAgICAgICBhcGlDbGllbnRJZDogXCJcIixcbiAgICAgICAgICAgIHVzZXJuYW1lOiBcIlwiLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IFwiXCIsXG4gICAgICAgIH0sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBkZWxldGVVc2VyKGFjY2Vzc1Rva2VuLCBrZXljbG9ha1VzZXIsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJkZWxldGVVc2VyXCIsIHRydWUpKS5mb3IodGhpcy5kZWxldGVVc2VyKTtcbiAgICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFwiREVMRVRFXCIsIGAvYWRtaW4vcmVhbG1zLyR7a2V5Y2xvYWtVc2VyLnJlYWxtfS91c2Vycy8ke2tleWNsb2FrVXNlci51c2VybmFtZVVVSUR9YCwgYWNjZXNzVG9rZW4sIHVuZGVmaW5lZCwgMjA0LCB7fSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZVJlYWxtVXNlcihrZXljbG9ha1VzZXIsIHBheWxvYWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJjcmVhdGVSZWFsbVVzZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZVJlYWxtVXNlcik7XG4gICAgICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IHVzZXJQYXlsb2FkID0ge1xuICAgICAgICAgICAgdXNlcm5hbWU6IGtleWNsb2FrVXNlci51c2VybmFtZSxcbiAgICAgICAgICAgIGZpcnN0TmFtZTogXCJBcGlcIixcbiAgICAgICAgICAgIGxhc3ROYW1lOiBcIkFkbWluXCIsXG4gICAgICAgICAgICBlbWFpbDogYCR7a2V5Y2xvYWtVc2VyLmFwaUNsaWVudElkfUAke2tleWNsb2FrVXNlci5yZWFsbX0uY29tYCxcbiAgICAgICAgICAgIGVtYWlsVmVyaWZpZWQ6IHRydWUsXG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwicGFzc3dvcmRcIixcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGtleWNsb2FrVXNlci5wYXNzd29yZCxcbiAgICAgICAgICAgICAgICAgICAgdGVtcG9yYXJ5OiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIC4uLnBheWxvYWQsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUE9TVFwiLCBgL2FkbWluL3JlYWxtcy8ke2tleWNsb2FrVXNlci5yZWFsbX0vdXNlcnNgLCBhZG1pbkFjY2Vzc1Rva2VuLCB1c2VyUGF5bG9hZCwgMjAxLCB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RVVUlEZnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcbiAgICB9XG4gICAgYXN5bmMgYXNzaWduUm9sZXNUb1VzZXIocm9sZXNVcmwsIHNldFJvbGVzVXJsLCByb2xlTmFtZXMsIGFjY2Vzc1Rva2VuLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwiYXNzaWduUm9sZXNUb1VzZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLmFzc2lnblJvbGVzVG9Vc2VyKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnJlcXVlc3QoXCJHRVRcIiwgcm9sZXNVcmwsIGFjY2Vzc1Rva2VuLCB1bmRlZmluZWQsIDIwMCwge30sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCByb2xlcyA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2UocmVzcG9uc2UuZGF0YSkgPz8gW107XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUm9sZXMgPSByb2xlcy5maWx0ZXIoKHJvbGUpID0+IHJvbGVOYW1lcy5pbmNsdWRlcyhyb2xlLm5hbWUpKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkUm9sZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgTm8gcm9sZXMgbWF0Y2hlZCAke3JvbGVOYW1lcy5qb2luKFwiLCBcIil9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBzZWxlY3RlZFJvbGVzLm1hcCgocm9sZSkgPT4gdGhpcy5yZXF1ZXN0KFwiUE9TVFwiLCBzZXRSb2xlc1VybCwgYWNjZXNzVG9rZW4sIFtyb2xlXSwgMjA0LCB7fSwgLi4uY3R4QXJncykpO1xuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgfVxuICAgIGFzeW5jIGdyYW50UmVhbG1Sb2xlc1RvVXNlcihyZWFsbU5hbWUsIHVzZXJVVUlELCByb2xlTmFtZXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgXCJncmFudFJlYWxtUm9sZXNUb1VzZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLmdyYW50UmVhbG1Sb2xlc1RvVXNlcik7XG4gICAgICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMuYXNzaWduUm9sZXNUb1VzZXIoYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3JvbGVzYCwgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3VzZXJzLyR7dXNlclVVSUR9L3JvbGUtbWFwcGluZ3MvcmVhbG1gLCByb2xlTmFtZXMsIGFkbWluQWNjZXNzVG9rZW4sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBncmFudENsaWVudFJvbGVzVG9Vc2VyKHJlYWxtTmFtZSwgY2xpZW50VVVJRCwgdXNlclVVSUQsIHJvbGVOYW1lcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcImdyYW50Q2xpZW50Um9sZXNUb1VzZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLmdyYW50Q2xpZW50Um9sZXNUb1VzZXIpO1xuICAgICAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgICAgICBhd2FpdCB0aGlzLmFzc2lnblJvbGVzVG9Vc2VyKGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS9jbGllbnRzLyR7Y2xpZW50VVVJRH0vcm9sZXNgLCBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9jbGllbnRzLyR7Y2xpZW50VVVJRH1gLCByb2xlTmFtZXMsIGFkbWluQWNjZXNzVG9rZW4sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyByZXZva2VSZWFsbVJvbGVzRnJvbVVzZXIocmVhbG1OYW1lLCB1c2VyVVVJRCwgcm9sZU5hbWVzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmV2b2tlUmVhbG1Sb2xlc0Zyb21Vc2VyXCIsIHRydWUpKS5mb3IodGhpcy5yZXZva2VSZWFsbVJvbGVzRnJvbVVzZXIpO1xuICAgICAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCByb2xlc1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiR0VUXCIsIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS9yb2xlc2AsIGFkbWluQWNjZXNzVG9rZW4sIHVuZGVmaW5lZCwgMjAwLCB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IHJvbGVzID0gdGhpcy5wYXJzZUpzb25SZXNwb25zZShyb2xlc1Jlc3BvbnNlLmRhdGEpID8/IFtdO1xuICAgICAgICBjb25zdCBzZWxlY3RlZFJvbGVzID0gcm9sZXMuZmlsdGVyKChyb2xlKSA9PiByb2xlTmFtZXMuaW5jbHVkZXMocm9sZS5uYW1lKSk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdChcIkRFTEVURVwiLCBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9yZWFsbWAsIGFkbWluQWNjZXNzVG9rZW4sIHNlbGVjdGVkUm9sZXMsIDIwNCwge30sIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyByZXBsYWNlUmVhbG1Sb2xlc0ZvclVzZXIocmVhbG1OYW1lLCB1c2VyVVVJRCwgcm9sZU5hbWVzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmVwbGFjZVJlYWxtUm9sZXNGb3JVc2VyXCIsIHRydWUpKS5mb3IodGhpcy5yZXBsYWNlUmVhbG1Sb2xlc0ZvclVzZXIpO1xuICAgICAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCBjdXJyZW50Um9sZXNSZXNwb25zZSA9IGF3YWl0IHRoaXMucmVxdWVzdChcIkdFVFwiLCBgL2FkbWluL3JlYWxtcy8ke3JlYWxtTmFtZX0vdXNlcnMvJHt1c2VyVVVJRH0vcm9sZS1tYXBwaW5ncy9yZWFsbWAsIGFkbWluQWNjZXNzVG9rZW4sIHVuZGVmaW5lZCwgMjAwLCB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRSb2xlcyA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2UoY3VycmVudFJvbGVzUmVzcG9uc2UuZGF0YSkgPz8gW107XG4gICAgICAgIGlmIChjdXJyZW50Um9sZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFwiREVMRVRFXCIsIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL3JlYWxtYCwgYWRtaW5BY2Nlc3NUb2tlbiwgY3VycmVudFJvbGVzLCAyMDQsIHt9LCAuLi5jdHhBcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCB0aGlzLmdyYW50UmVhbG1Sb2xlc1RvVXNlcihyZWFsbU5hbWUsIHVzZXJVVUlELCByb2xlTmFtZXMsIC4uLmN0eEFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyByZXZva2VDbGllbnRSb2xlc0Zyb21Vc2VyKHJlYWxtTmFtZSwgY2xpZW50VVVJRCwgdXNlclVVSUQsIHJvbGVOYW1lcywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBcInJldm9rZUNsaWVudFJvbGVzRnJvbVVzZXJcIiwgdHJ1ZSkpLmZvcih0aGlzLnJldm9rZUNsaWVudFJvbGVzRnJvbVVzZXIpO1xuICAgICAgICBjb25zdCBhZG1pbkFjY2Vzc1Rva2VuID0gYXdhaXQgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCByb2xlc1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiR0VUXCIsIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS9jbGllbnRzLyR7Y2xpZW50VVVJRH0vcm9sZXNgLCBhZG1pbkFjY2Vzc1Rva2VuLCB1bmRlZmluZWQsIDIwMCwge30sIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCByb2xlcyA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2Uocm9sZXNSZXNwb25zZS5kYXRhKSA/PyBbXTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRSb2xlcyA9IHJvbGVzLmZpbHRlcigocm9sZSkgPT4gcm9sZU5hbWVzLmluY2x1ZGVzKHJvbGUubmFtZSkpO1xuICAgICAgICBhd2FpdCB0aGlzLnJlcXVlc3QoXCJERUxFVEVcIiwgYC9hZG1pbi9yZWFsbXMvJHtyZWFsbU5hbWV9L3VzZXJzLyR7dXNlclVVSUR9L3JvbGUtbWFwcGluZ3MvY2xpZW50cy8ke2NsaWVudFVVSUR9YCwgYWRtaW5BY2Nlc3NUb2tlbiwgc2VsZWN0ZWRSb2xlcywgMjA0LCB7fSwgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHJlcGxhY2VDbGllbnRSb2xlc0ZvclVzZXIocmVhbG1OYW1lLCBjbGllbnRVVUlELCB1c2VyVVVJRCwgcm9sZU5hbWVzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFwicmVwbGFjZUNsaWVudFJvbGVzRm9yVXNlclwiLCB0cnVlKSkuZm9yKHRoaXMucmVwbGFjZUNsaWVudFJvbGVzRm9yVXNlcik7XG4gICAgICAgIGNvbnN0IGFkbWluQWNjZXNzVG9rZW4gPSBhd2FpdCB0aGlzLmdldEFkbWluQWNjZXNzVG9rZW4oLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRSb2xlc1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiR0VUXCIsIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL2NsaWVudHMvJHtjbGllbnRVVUlEfWAsIGFkbWluQWNjZXNzVG9rZW4sIHVuZGVmaW5lZCwgMjAwLCB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRSb2xlcyA9IHRoaXMucGFyc2VKc29uUmVzcG9uc2UoY3VycmVudFJvbGVzUmVzcG9uc2UuZGF0YSkgPz8gW107XG4gICAgICAgIGlmIChjdXJyZW50Um9sZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0KFwiREVMRVRFXCIsIGAvYWRtaW4vcmVhbG1zLyR7cmVhbG1OYW1lfS91c2Vycy8ke3VzZXJVVUlEfS9yb2xlLW1hcHBpbmdzL2NsaWVudHMvJHtjbGllbnRVVUlEfWAsIGFkbWluQWNjZXNzVG9rZW4sIGN1cnJlbnRSb2xlcywgMjA0LCB7fSwgLi4uY3R4QXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5ncmFudENsaWVudFJvbGVzVG9Vc2VyKHJlYWxtTmFtZSwgY2xpZW50VVVJRCwgdXNlclVVSUQsIHJvbGVOYW1lcywgLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGNyZWF0ZUh0dHBDbGllbnQoY29uZmlnKSB7XG4gICAgICAgIHJldHVybiBBeGlvcy5jcmVhdGUoe1xuICAgICAgICAgICAgYmFzZVVSTDogYCR7Y29uZmlnLnByb3RvY29sfTovLyR7Y29uZmlnLmhvc3R9YCxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgaHR0cHNBZ2VudDogbmV3IGh0dHBzLkFnZW50KHtcbiAgICAgICAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6IChyZXNvbHZlS2V5Y2xvYWtJc1Byb2R1Y3Rpb24odGhpcy5jb25maWcpKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0QWRtaW5BY2Nlc3NUb2tlbiguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5nZXRBZG1pbkFjY2Vzc1Rva2VuKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWNjZXNzVG9rZW4odGhpcy5jb25maWcuYWRtaW5BcGlVc2VyLCAuLi5jdHhBcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0QWNjZXNzVG9rZW4oa2V5Y2xvYWtVc2VyLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5nZXRBY2Nlc3NUb2tlbik7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5yZXF1ZXN0KFwiUE9TVFwiLCBgL3JlYWxtcy8ke2tleWNsb2FrVXNlci5yZWFsbX0vcHJvdG9jb2wvb3BlbmlkLWNvbm5lY3QvdG9rZW5gLCB1bmRlZmluZWQsIG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICAgICAgY2xpZW50X2lkOiBrZXljbG9ha1VzZXIuYXBpQ2xpZW50SWQsXG4gICAgICAgICAgICB1c2VybmFtZToga2V5Y2xvYWtVc2VyLnVzZXJuYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGtleWNsb2FrVXNlci5wYXNzd29yZCxcbiAgICAgICAgICAgIGdyYW50X3R5cGU6IFwicGFzc3dvcmRcIixcbiAgICAgICAgfSkudG9TdHJpbmcoKSwgMjAwLCB7IFwiY29udGVudC10eXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIgfSwgLi4uY3R4QXJncyk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLnBhcnNlSnNvblJlc3BvbnNlKHJlc3BvbnNlLmRhdGEpO1xuICAgICAgICBpZiAoZGF0YT8uYWNjZXNzX3Rva2VuKVxuICAgICAgICAgICAgcmV0dXJuIGRhdGEuYWNjZXNzX3Rva2VuO1xuICAgICAgICB0aHJvdyBuZXcgQmFkUmVxdWVzdEVycm9yKGBVbmFibGUgdG8gZ2V0IEtleWNsb2FrIGFjY2VzcyB0b2tlbiBmb3IgdXNlciAke2tleWNsb2FrVXNlci51c2VybmFtZX1gKTtcbiAgICB9XG4gICAgYXN5bmMgcmVxdWVzdChtZXRob2QsIHBhdGgsIGFjY2Vzc1Rva2VuLCBwYXlsb2FkLCBzdWNjZXNzQ29kZSwgaGVhZGVycywgLi4uYXJncykge1xuICAgICAgICB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlcXVlc3QpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnJlcXVlc3Qoe1xuICAgICAgICAgICAgbWV0aG9kLFxuICAgICAgICAgICAgdXJsOiBgJHt0aGlzLmNvbmZpZy5wcm90b2NvbH06Ly8ke3RoaXMuY29uZmlnLmhvc3R9JHtwYXRofWAsXG4gICAgICAgICAgICBkYXRhOiBwYXlsb2FkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIDogdHlwZW9mIHBheWxvYWQgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICAgICAgPyBwYXlsb2FkXG4gICAgICAgICAgICAgICAgICAgIDogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgICAgICAgICAgICAuLi4oYWNjZXNzVG9rZW4gPyB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgLi4uKHBheWxvYWQgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgcGF5bG9hZCAhPT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgICAgICA/IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfVxuICAgICAgICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBodHRwc0FnZW50OiBuZXcgaHR0cHMuQWdlbnQoe1xuICAgICAgICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogKHJlc29sdmVLZXljbG9ha0lzUHJvZHVjdGlvbih0aGlzLmNvbmZpZykpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB2YWxpZGF0ZVN0YXR1czogKCkgPT4gdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT09IHN1Y2Nlc3NDb2RlKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUh0dHBSZXNwb25zZShyZXNwb25zZSwgc3VjY2Vzc0NvZGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9XG4gICAgaGFuZGxlSHR0cFJlc3BvbnNlKHJlc3BvbnNlLCBzdWNjZXNzQ29kZSwgZXJyb3JNc2cpIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gZXJyb3JNc2dcbiAgICAgICAgICAgID8gYCR7ZXJyb3JNc2d9OiBFeHBlY3RlZCAke3N1Y2Nlc3NDb2RlfSwgcmVjZWl2ZWQgJHtyZXNwb25zZS5zdGF0dXN9OiAke3Jlc3BvbnNlLnN0YXR1c1RleHR9LmBcbiAgICAgICAgICAgIDogYEV4cGVjdGVkICR7c3VjY2Vzc0NvZGV9LCByZWNlaXZlZCAke3Jlc3BvbnNlLnN0YXR1c306ICR7cmVzcG9uc2Uuc3RhdHVzVGV4dH1gO1xuICAgICAgICBpZiAoc3RhdHVzID09PSA0MDQgfHwgbWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwibm90IGZvdW5kXCIpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdHVzID09PSA0MDkgfHwgbWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKFwiY29uZmxpY3RcIikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb25mbGljdEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGF0dXMgPT09IDQwMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhdHVzID09PSA0MDEgfHwgc3RhdHVzID09PSA0MDMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBwYXJzZUVycm9yKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvci5tZXNzYWdlIHx8IGVycm9yLm5hbWUgfHwgXCJVbmtub3duIGVycm9yXCI7XG4gICAgICAgIGNvbnN0IGxvd2VyTWVzc2FnZSA9IG1lc3NhZ2UudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIm5vdCBmb3VuZFwiKSB8fCBsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIikpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTm90Rm91bmRFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYWxyZWFkeSBleGlzdHNcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiY29uZmxpY3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDA5XCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbmZsaWN0RXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcImludmFsaWRcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiYmFkIHJlcXVlc3RcIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAwXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEJhZFJlcXVlc3RFcnJvcihtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwidW5hdXRob3JpemVkXCIpIHx8IGxvd2VyTWVzc2FnZS5pbmNsdWRlcyhcIjQwMVwiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOb3RGb3VuZEVycm9yKG1lc3NhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChsb3dlck1lc3NhZ2UuaW5jbHVkZXMoXCJmb3JiaWRkZW5cIikgfHwgbG93ZXJNZXNzYWdlLmluY2x1ZGVzKFwiNDAzXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5vdEZvdW5kRXJyb3IobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBJbnRlcm5hbEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBleHRyYWN0VVVJRGZyb21SZXNwb25zZShyZXNwb25zZSkge1xuICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHJlc3BvbnNlLmhlYWRlcnMubG9jYXRpb247XG4gICAgICAgIGlmICghbG9jYXRpb24pIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiS2V5Y2xvYWsgcmVzcG9uc2UgZGlkIG5vdCBpbmNsdWRlIGEgbG9jYXRpb24gaGVhZGVyXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsb2NhdGlvbi5zcGxpdChcIi9cIikucG9wKCkgPz8gXCJcIjtcbiAgICB9XG4gICAgcGFyc2VKc29uUmVzcG9uc2UoZGF0YSkge1xuICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG59XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lTMlY1WTJ4dllXdFZjMlZ5VTJWeWRtbGpaUzVxY3lJc0luTnZkWEpqWlZKdmIzUWlPaUlpTENKemIzVnlZMlZ6SWpwYklpNHVMeTR1THk0dUx5NHVMM055WXk5clpYbGpiRzloYXk5elpYSjJhV05sY3k5TFpYbGpiRzloYTFWelpYSlRaWEoyYVdObExuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZEVEN4bFFVRmxMRVZCUTJZc1lVRkJZU3hGUVVOaUxHRkJRV0VzUlVGRFlpeGhRVUZoTEVkQlEyUXNUVUZCVFN4NVFrRkJlVUlzUTBGQlF6dEJRVVZxUXl4UFFVRlBMRVZCUVVVc2EwSkJRV3RDTEVWQlFVVXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVVZ3UkN4UFFVRlBMRXRCUVhkQ0xFMUJRVTBzVDBGQlR5eERRVUZETzBGQlF6ZERMRTlCUVU4c1MwRkJTeXhMUVVGTExFMUJRVTBzV1VGQldTeERRVUZETzBGQlEzQkRMRTlCUVU4c1JVRkJSU3d5UWtGQk1rSXNSVUZCUlN4eFFrRkJhMEk3UVVGcFFuaEVMRTFCUVUwc1QwRkJUeXh0UWtGQmIwSXNVMEZCVVN4clFrRkhlRU03U1VGRFF5eExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVTmtMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTTFReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRka0lzVFVGQlRTeE5RVUZOTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJkMElzUTBGQlF6dFJRVU5xUkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhIUVVGSExFMUJRVTBzUTBGQlF6dFJRVU4wUWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRE4wTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1IwRkJSeXhOUVVGTkxFTkJRVU03VVVGRGRFSXNUMEZCVHl4RlFVRkZMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVVVzUTBGQlF6dEpRVU0xUWl4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHTkJRV01zUTBGRGJFSXNXVUZCTUVJc1JVRkRNVUlzVDBGQmQwUXNSVUZEZUVRc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeG5Ra0ZCWjBJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGFFUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzFGQlF6TkNMRTlCUVU4c1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eFpRVUZaTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRGFrVXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRMW9zVTBGQmFVSXNSVUZEYWtJc1VVRkJaMElzUlVGRGFFSXNUMEZCTkVNc1JVRkROVU1zUjBGQlJ5eEpRVUUyUWp0UlFVVm9ReXhOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEVkQlFVY3NRMEZEYkVJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4VlFVRlZMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRekZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVU55UWl4TlFVRk5MRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zVTBGQlV5eEZRVUZGTEZGQlFWRXNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU4yUlN4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHVkJRV1VzUTBGRGJrSXNVMEZCYVVJc1JVRkRha0lzVVVGQlowSXNSVUZEYUVJc1QwRkJORU1zUlVGRE5VTXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hwUWtGQmFVSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRha1FzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRE8xRkJRelZDTEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTndSU3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUTJwRExFdEJRVXNzUlVGRFRDeHBRa0ZCYVVJc1UwRkJVeXhWUVVGVkxGRkJRVkVzUlVGQlJTeEZRVU01UXl4blFrRkJaMElzUlVGRGFFSXNVMEZCVXl4RlFVTlVMRWRCUVVjc1JVRkRTQ3hGUVVGRkxFVkJRMFlzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0UlFVTkdMRTFCUVUwc1YwRkJWeXhIUVVObUxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJOa0lzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRSUVVNeFJTeE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUTJoQ0xFdEJRVXNzUlVGRFRDeHBRa0ZCYVVJc1UwRkJVeXhWUVVGVkxGRkJRVkVzUlVGQlJTeEZRVU01UXl4blFrRkJaMElzUlVGRGFFSXNSVUZCUlN4SFFVRkhMRmRCUVZjc1JVRkJSU3hIUVVGSExFOUJRVThzUlVGQlJTeEZRVU01UWl4SFFVRkhMRVZCUTBnc1JVRkJSU3hGUVVOR0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHMUNRVUZ0UWl4RFFVTjJRaXhUUVVGcFFpeEZRVU5xUWl4UlFVRm5RaXhGUVVOb1FpeEhRVUZITEVsQlFUWkNPMUZCUldoRExFMUJRVTBzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4RFFVTnNRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RlFVRkZMSEZDUVVGeFFpeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTnlSQ3hEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUTBGQlF6dFJRVU5vUXl4TlFVRk5MR2RDUVVGblFpeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkRhRVFzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4WlFVRmhMRVZCUTNwQ0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdVVUZEUml4TlFVRk5MRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRMjVDTEdkQ1FVRm5RaXhGUVVOb1FqdFpRVU5GTEV0QlFVc3NSVUZCUlN4VFFVRlRPMWxCUTJoQ0xGbEJRVmtzUlVGQlJTeFJRVUZSTzFsQlEzUkNMRmRCUVZjc1JVRkJSU3hGUVVGRk8xbEJRMllzVVVGQlVTeEZRVUZGTEVWQlFVVTdXVUZEV2l4UlFVRlJMRVZCUVVVc1JVRkJSVHRUUVVOaUxFVkJRMFFzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVU5rTEZkQlFXMUNMRVZCUTI1Q0xGbEJRVEJDTEVWQlF6RkNMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzV1VGQldTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVTTFReXhEUVVGRExFZEJRVWNzUTBGQlF5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRka0lzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVTm9RaXhSUVVGUkxFVkJRMUlzYVVKQlFXbENMRmxCUVZrc1EwRkJReXhMUVVGTExGVkJRVlVzV1VGQldTeERRVUZETEZsQlFWa3NSVUZCUlN4RlFVTjRSU3hYUVVGWExFVkJRMWdzVTBGQlV5eEZRVU5VTEVkQlFVY3NSVUZEU0N4RlFVRkZMRVZCUTBZc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1pVRkJaU3hEUVVOdVFpeFpRVUV3UWl4RlFVTXhRaXhQUVVGM1JDeEZRVU40UkN4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOc1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxHbENRVUZwUWl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVOcVJDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExFTkJRVU03VVVGRE5VSXNUVUZCVFN4blFrRkJaMElzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTNCRkxFMUJRVTBzVjBGQlZ5eEhRVUZITzFsQlEyeENMRkZCUVZFc1JVRkJSU3haUVVGWkxFTkJRVU1zVVVGQlVUdFpRVU12UWl4VFFVRlRMRVZCUVVVc1MwRkJTenRaUVVOb1FpeFJRVUZSTEVWQlFVVXNUMEZCVHp0WlFVTnFRaXhMUVVGTExFVkJRVVVzUjBGQlJ5eFpRVUZaTEVOQlFVTXNWMEZCVnl4SlFVRkpMRmxCUVZrc1EwRkJReXhMUVVGTExFMUJRVTA3V1VGRE9VUXNZVUZCWVN4RlFVRkZMRWxCUVVrN1dVRkRia0lzVDBGQlR5eEZRVUZGTEVsQlFVazdXVUZEWWl4WFFVRlhMRVZCUVVVN1owSkJRMWc3YjBKQlEwVXNTVUZCU1N4RlFVRkZMRlZCUVZVN2IwSkJRMmhDTEV0QlFVc3NSVUZCUlN4WlFVRlpMRU5CUVVNc1VVRkJVVHR2UWtGRE5VSXNVMEZCVXl4RlFVRkZMRXRCUVVzN2FVSkJRMnBDTzJGQlEwWTdXVUZEUkN4SFFVRkhMRTlCUVU4N1UwRkRXQ3hEUVVGRE8xRkJRMFlzVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVOcVF5eE5RVUZOTEVWQlEwNHNhVUpCUVdsQ0xGbEJRVmtzUTBGQlF5eExRVUZMTEZGQlFWRXNSVUZETTBNc1owSkJRV2RDTEVWQlEyaENMRmRCUVZjc1JVRkRXQ3hIUVVGSExFVkJRMGdzUlVGQlJTeEZRVU5HTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhQUVVGUExFbEJRVWtzUTBGQlF5eDFRa0ZCZFVJc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEpRVU5vUkN4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHbENRVUZwUWl4RFFVTnlRaXhSUVVGblFpeEZRVU5vUWl4WFFVRnRRaXhGUVVOdVFpeFRRVUZ0UWl4RlFVTnVRaXhYUVVGdFFpeEZRVU51UWl4SFFVRkhMRWxCUVRaQ08xRkJSV2hETEUxQlFVMHNSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhEUVVOc1FpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxHMUNRVUZ0UWl4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVOdVJDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXp0UlFVTTVRaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUTJwRExFdEJRVXNzUlVGRFRDeFJRVUZSTEVWQlExSXNWMEZCVnl4RlFVTllMRk5CUVZNc1JVRkRWQ3hIUVVGSExFVkJRMGdzUlVGQlJTeEZRVU5HTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhOUVVGTkxFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVkVzVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRSUVVOcVJTeE5RVUZOTEdGQlFXRXNSMEZCUnl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeEZRVUZGTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpWRkxFbEJRVWtzWVVGQllTeERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVNdlFpeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMRzlDUVVGdlFpeFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF6dFJRVU4wUlN4RFFVRkRPMUZCUTBRc1RVRkJUU3hSUVVGUkxFZEJRVzlDTEdGQlFXRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeERRVU16UkN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVOV0xFMUJRVTBzUlVGRFRpeFhRVUZYTEVWQlExZ3NWMEZCVnl4RlFVTllMRU5CUVVNc1NVRkJTU3hEUVVGRExFVkJRMDRzUjBGQlJ5eEZRVU5JTEVWQlFVVXNSVUZEUml4SFFVRkhMRTlCUVU4c1EwRkRXQ3hEUVVOR0xFTkJRVU03VVVGRFJpeE5RVUZOTEU5QlFVOHNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03U1VGRE9VSXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXh4UWtGQmNVSXNRMEZEZWtJc1UwRkJhVUlzUlVGRGFrSXNVVUZCWjBJc1JVRkRhRUlzVTBGQmJVSXNSVUZEYmtJc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUTBGRGJFSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeDFRa0ZCZFVJc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGRrUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN1VVRkRiRU1zVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzQkZMRTFCUVUwc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVTXhRaXhwUWtGQmFVSXNVMEZCVXl4UlFVRlJMRVZCUTJ4RExHbENRVUZwUWl4VFFVRlRMRlZCUVZVc1VVRkJVU3h6UWtGQmMwSXNSVUZEYkVVc1UwRkJVeXhGUVVOVUxHZENRVUZuUWl4RlFVTm9RaXhIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXh6UWtGQmMwSXNRMEZETVVJc1UwRkJhVUlzUlVGRGFrSXNWVUZCYTBJc1JVRkRiRUlzVVVGQlowSXNSVUZEYUVJc1UwRkJiVUlzUlVGRGJrSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkRiRUlzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3gzUWtGQmQwSXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRlRVFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMSE5DUVVGelFpeERRVUZETEVOQlFVTTdVVUZEYmtNc1RVRkJUU3huUWtGQlowSXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0JGTEUxQlFVMHNTVUZCU1N4RFFVRkRMR2xDUVVGcFFpeERRVU14UWl4cFFrRkJhVUlzVTBGQlV5eFpRVUZaTEZWQlFWVXNVVUZCVVN4RlFVTjRSQ3hwUWtGQmFVSXNVMEZCVXl4VlFVRlZMRkZCUVZFc01FSkJRVEJDTEZWQlFWVXNSVUZCUlN4RlFVTnNSaXhUUVVGVExFVkJRMVFzWjBKQlFXZENMRVZCUTJoQ0xFZEJRVWNzVDBGQlR5eERRVU5ZTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExIZENRVUYzUWl4RFFVTTFRaXhUUVVGcFFpeEZRVU5xUWl4UlFVRm5RaXhGUVVOb1FpeFRRVUZ0UWl4RlFVTnVRaXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU5zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTERCQ1FVRXdRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU14UkN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zZDBKQlFYZENMRU5CUVVNc1EwRkJRenRSUVVOeVF5eE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VVc1RVRkJUU3hoUVVGaExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVTjBReXhMUVVGTExFVkJRMHdzYVVKQlFXbENMRk5CUVZNc1VVRkJVU3hGUVVOc1F5eG5Ra0ZCWjBJc1JVRkRhRUlzVTBGQlV5eEZRVU5VTEVkQlFVY3NSVUZEU0N4RlFVRkZMRVZCUTBZc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dFJRVU5HTEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZCVVN4aFFVRmhMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFGQlEzUkZMRTFCUVUwc1lVRkJZU3hIUVVGSExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRExGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRE5VVXNUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVOb1FpeFJRVUZSTEVWQlExSXNhVUpCUVdsQ0xGTkJRVk1zVlVGQlZTeFJRVUZSTEhOQ1FVRnpRaXhGUVVOc1JTeG5Ra0ZCWjBJc1JVRkRhRUlzWVVGQllTeEZRVU5pTEVkQlFVY3NSVUZEU0N4RlFVRkZMRVZCUTBZc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc2QwSkJRWGRDTEVOQlF6VkNMRk5CUVdsQ0xFVkJRMnBDTEZGQlFXZENMRVZCUTJoQ0xGTkJRVzFDTEVWQlEyNUNMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFTkJRMnhDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzTUVKQlFUQkNMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRekZFTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4RFFVRkRPMUZCUTNKRExFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zYlVKQlFXMUNMRU5CUVVNc1IwRkJSeXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU53UlN4TlFVRk5MRzlDUVVGdlFpeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkROME1zUzBGQlN5eEZRVU5NTEdsQ1FVRnBRaXhUUVVGVExGVkJRVlVzVVVGQlVTeHpRa0ZCYzBJc1JVRkRiRVVzWjBKQlFXZENMRVZCUTJoQ0xGTkJRVk1zUlVGRFZDeEhRVUZITEVWQlEwZ3NSVUZCUlN4RlFVTkdMRWRCUVVjc1QwRkJUeXhEUVVOWUxFTkJRVU03VVVGRFJpeE5RVUZOTEZsQlFWa3NSMEZEYUVJc1NVRkJTU3hEUVVGRExHbENRVUZwUWl4RFFVRlJMRzlDUVVGdlFpeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRSUVVOcVJTeEpRVUZKTEZsQlFWa3NRMEZCUXl4TlFVRk5MRWRCUVVjc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRE5VSXNUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVOb1FpeFJRVUZSTEVWQlExSXNhVUpCUVdsQ0xGTkJRVk1zVlVGQlZTeFJRVUZSTEhOQ1FVRnpRaXhGUVVOc1JTeG5Ra0ZCWjBJc1JVRkRhRUlzV1VGQldTeEZRVU5hTEVkQlFVY3NSVUZEU0N4RlFVRkZMRVZCUTBZc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZEUkN4TlFVRk5MRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZET1VJc1UwRkJVeXhGUVVOVUxGRkJRVkVzUlVGRFVpeFRRVUZUTEVWQlExUXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNlVUpCUVhsQ0xFTkJRemRDTEZOQlFXbENMRVZCUTJwQ0xGVkJRV3RDTEVWQlEyeENMRkZCUVdkQ0xFVkJRMmhDTEZOQlFXMUNMRVZCUTI1Q0xFZEJRVWNzU1VGQk5rSTdVVUZGYUVNc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlEyeENMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNNa0pCUVRKQ0xFVkJRVVVzU1VGQlNTeERRVUZETEVOQlF6TkVMRU5CUVVNc1IwRkJSeXhEUVVGRExFbEJRVWtzUTBGQlF5eDVRa0ZCZVVJc1EwRkJReXhEUVVGRE8xRkJRM1JETEUxQlFVMHNaMEpCUVdkQ0xFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU1zUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTndSU3hOUVVGTkxHRkJRV0VzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUTNSRExFdEJRVXNzUlVGRFRDeHBRa0ZCYVVJc1UwRkJVeXhaUVVGWkxGVkJRVlVzVVVGQlVTeEZRVU40UkN4blFrRkJaMElzUlVGRGFFSXNVMEZCVXl4RlFVTlVMRWRCUVVjc1JVRkRTQ3hGUVVGRkxFVkJRMFlzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0UlFVTkdMRTFCUVUwc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJVU3hoUVVGaExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMUZCUTNSRkxFMUJRVTBzWVVGQllTeEhRVUZITEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeERRVUZETEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdVVUZETlVVc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVU5vUWl4UlFVRlJMRVZCUTFJc2FVSkJRV2xDTEZOQlFWTXNWVUZCVlN4UlFVRlJMREJDUVVFd1FpeFZRVUZWTEVWQlFVVXNSVUZEYkVZc1owSkJRV2RDTEVWQlEyaENMR0ZCUVdFc1JVRkRZaXhIUVVGSExFVkJRMGdzUlVGQlJTeEZRVU5HTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEhsQ1FVRjVRaXhEUVVNM1FpeFRRVUZwUWl4RlFVTnFRaXhWUVVGclFpeEZRVU5zUWl4UlFVRm5RaXhGUVVOb1FpeFRRVUZ0UWl4RlFVTnVRaXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU5zUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTERKQ1FVRXlRaXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU16UkN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zZVVKQlFYbENMRU5CUVVNc1EwRkJRenRSUVVOMFF5eE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEcxQ1FVRnRRaXhEUVVGRExFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VVc1RVRkJUU3h2UWtGQmIwSXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRemRETEV0QlFVc3NSVUZEVEN4cFFrRkJhVUlzVTBGQlV5eFZRVUZWTEZGQlFWRXNNRUpCUVRCQ0xGVkJRVlVzUlVGQlJTeEZRVU5zUml4blFrRkJaMElzUlVGRGFFSXNVMEZCVXl4RlFVTlVMRWRCUVVjc1JVRkRTQ3hGUVVGRkxFVkJRMFlzUjBGQlJ5eFBRVUZQTEVOQlExZ3NRMEZCUXp0UlFVTkdMRTFCUVUwc1dVRkJXU3hIUVVOb1FpeEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVkVzYjBKQlFXOUNMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFGQlEycEZMRWxCUVVrc1dVRkJXU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTTFRaXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlEyaENMRkZCUVZFc1JVRkRVaXhwUWtGQmFVSXNVMEZCVXl4VlFVRlZMRkZCUVZFc01FSkJRVEJDTEZWQlFWVXNSVUZCUlN4RlFVTnNSaXhuUWtGQlowSXNSVUZEYUVJc1dVRkJXU3hGUVVOYUxFZEJRVWNzUlVGRFNDeEZRVUZGTEVWQlEwWXNSMEZCUnl4UFFVRlBMRU5CUTFnc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRFJDeE5RVUZOTEVsQlFVa3NRMEZCUXl4elFrRkJjMElzUTBGREwwSXNVMEZCVXl4RlFVTlVMRlZCUVZVc1JVRkRWaXhSUVVGUkxFVkJRMUlzVTBGQlV5eEZRVU5VTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVThzWjBKQlFXZENMRU5CUVVNc1RVRkJNa0k3VVVGRGJFUXNUMEZCVHl4TFFVRkxMRU5CUVVNc1RVRkJUU3hEUVVGRE8xbEJRMnhDTEU5QlFVOHNSVUZCUlN4SFFVRkhMRTFCUVUwc1EwRkJReXhSUVVGUkxFMUJRVTBzVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlR0WlFVTTVReXhQUVVGUExFVkJRVVVzUlVGQlJTeGpRVUZqTEVWQlFVVXNhMEpCUVd0Q0xFVkJRVVU3V1VGREwwTXNZMEZCWXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hEUVVGRExFbEJRVWs3V1VGRE1VSXNWVUZCVlN4RlFVRkZMRWxCUVVrc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF6dG5Ra0ZETVVJc2EwSkJRV3RDTEVWQlFVVXNRMEZCUXl3eVFrRkJNa0lzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCWVN4RFFVRkRMRU5CUVVNN1lVRkRkRVVzUTBGQlF6dFRRVU5JTEVOQlFVTXNRMEZCUXp0SlFVTk1MRU5CUVVNN1NVRkZUeXhMUVVGTExFTkJRVU1zYlVKQlFXMUNMRU5CUXk5Q0xFZEJRVWNzU1VGQmVVSTdVVUZGTlVJc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhEUVVGRE8xRkJRMmhGTEU5QlFVOHNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZsQlFXRXNSVUZCUlN4SFFVRkhMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRM0JGTEVOQlFVTTdTVUZGVHl4TFFVRkxMRU5CUVVNc1kwRkJZeXhEUVVNeFFpeFpRVUV3UWl4RlFVTXhRaXhIUVVGSExFbEJRWGxDTzFGQlJUVkNMRTFCUVUwc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zWTBGQll5eERRVUZETEVOQlFVTTdVVUZETTBRc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVTnFReXhOUVVGTkxFVkJRMDRzVjBGQlZ5eFpRVUZaTEVOQlFVTXNTMEZCU3l4blEwRkJaME1zUlVGRE4wUXNVMEZCVXl4RlFVTlVMRWxCUVVrc1pVRkJaU3hEUVVGRE8xbEJRMnhDTEZOQlFWTXNSVUZCUlN4WlFVRlpMRU5CUVVNc1YwRkJWenRaUVVOdVF5eFJRVUZSTEVWQlFVVXNXVUZCV1N4RFFVRkRMRkZCUVZFN1dVRkRMMElzVVVGQlVTeEZRVUZGTEZsQlFWa3NRMEZCUXl4UlFVRlJPMWxCUXk5Q0xGVkJRVlVzUlVGQlJTeFZRVUZWTzFOQlEzWkNMRU5CUVVNc1EwRkJReXhSUVVGUkxFVkJRVVVzUlVGRFlpeEhRVUZITEVWQlEwZ3NSVUZCUlN4alFVRmpMRVZCUVVVc2JVTkJRVzFETEVWQlFVVXNSVUZEZGtRc1IwRkJSeXhQUVVGUExFTkJRMWdzUTBGQlF6dFJRVU5HTEUxQlFVMHNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhwUWtGQmFVSXNRMEZEYWtNc1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGRFpDeERRVUZETzFGQlEwWXNTVUZCU1N4SlFVRkpMRVZCUVVVc1dVRkJXVHRaUVVGRkxFOUJRVThzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXp0UlFVTnFSQ3hOUVVGTkxFbEJRVWtzWlVGQlpTeERRVU4yUWl4blJFRkJaMFFzV1VGQldTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVTjRSU3hEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZQTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUTI1Q0xFMUJRWGxETEVWQlEzcERMRWxCUVZrc1JVRkRXaXhYUVVFclFpeEZRVU12UWl4UFFVRm5RaXhGUVVOb1FpeFhRVUZ0UWl4RlFVTnVRaXhQUVVFclFpeEZRVU12UWl4SFFVRkhMRWxCUVhsQ08xRkJSVFZDTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTm9ReXhOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRE8xbEJRM3BETEUxQlFVMDdXVUZEVGl4SFFVRkhMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUjBGQlJ5eEpRVUZKTEVWQlFVVTdXVUZETTBRc1NVRkJTU3hGUVVOR0xFOUJRVThzUzBGQlN5eFRRVUZUTzJkQ1FVTnVRaXhEUVVGRExFTkJRVU1zVTBGQlV6dG5Ra0ZEV0N4RFFVRkRMRU5CUVVNc1QwRkJUeXhQUVVGUExFdEJRVXNzVVVGQlVUdHZRa0ZETTBJc1EwRkJReXhEUVVGRExFOUJRVTg3YjBKQlExUXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVDBGQlR5eERRVUZETzFsQlF5OUNMRTlCUVU4c1JVRkJSVHRuUWtGRFVDeEhRVUZITEU5QlFVODdaMEpCUTFZc1IwRkJSeXhEUVVGRExGZEJRVmNzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4aFFVRmhMRVZCUVVVc1ZVRkJWU3hYUVVGWExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1owSkJRMnhGTEVkQlFVY3NRMEZCUXl4UFFVRlBMRXRCUVVzc1UwRkJVeXhKUVVGSkxFOUJRVThzVDBGQlR5eExRVUZMTEZGQlFWRTdiMEpCUTNSRUxFTkJRVU1zUTBGQlF5eEZRVUZGTEdOQlFXTXNSVUZCUlN4clFrRkJhMElzUlVGQlJUdHZRa0ZEZUVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dGhRVU5TTzFsQlEwUXNWVUZCVlN4RlFVRkZMRWxCUVVrc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF6dG5Ra0ZETVVJc2EwSkJRV3RDTEVWQlFVVXNRMEZCUXl3eVFrRkJNa0lzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCWVN4RFFVRkRMRU5CUVVNN1lVRkRkRVVzUTBGQlF6dFpRVU5HTEdOQlFXTXNSVUZCUlN4SFFVRkhMRVZCUVVVc1EwRkJReXhKUVVGSk8xTkJRek5DTEVOQlFVTXNRMEZCUXp0UlFVTklMRWxCUVVrc1VVRkJVU3hEUVVGRExFMUJRVTBzUzBGQlN5eFhRVUZYTEVWQlFVVXNRMEZCUXp0WlFVTndReXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRU5CUVVNc1VVRkJVU3hGUVVGRkxGZEJRVmNzUTBGQlF5eERRVUZETzFGQlEycEVMRU5CUVVNN1VVRkRSQ3hQUVVGUExGRkJRVkVzUTBGQlF6dEpRVU5zUWl4RFFVRkRPMGxCUlU4c2EwSkJRV3RDTEVOQlEzaENMRkZCUVdFc1JVRkRZaXhYUVVGdFFpeEZRVU51UWl4UlFVRnBRanRSUVVWcVFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4UlFVRlJMRU5CUVVNc1RVRkJaMElzUTBGQlF6dFJRVU42UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhSUVVGUk8xbEJRM1JDTEVOQlFVTXNRMEZCUXl4SFFVRkhMRkZCUVZFc1kwRkJZeXhYUVVGWExHTkJRV01zVVVGQlVTeERRVUZETEUxQlFVMHNTMEZCU3l4UlFVRlJMRU5CUVVNc1ZVRkJWU3hIUVVGSE8xbEJRemxHTEVOQlFVTXNRMEZCUXl4WlFVRlpMRmRCUVZjc1kwRkJZeXhSUVVGUkxFTkJRVU1zVFVGQlRTeExRVUZMTEZGQlFWRXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenRSUVVOdVJpeEpRVUZKTEUxQlFVMHNTMEZCU3l4SFFVRkhMRWxCUVVrc1QwRkJUeXhEUVVGRExGZEJRVmNzUlVGQlJTeERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRMnhGTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGJrTXNRMEZCUXp0UlFVTkVMRWxCUVVrc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeFBRVUZQTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNc1VVRkJVU3hEUVVGRExGVkJRVlVzUTBGQlF5eEZRVUZGTEVOQlFVTTdXVUZEYWtVc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTnVReXhEUVVGRE8xRkJRMFFzU1VGQlNTeE5RVUZOTEV0QlFVc3NSMEZCUnl4RlFVRkZMRU5CUVVNN1dVRkRia0lzVFVGQlRTeEpRVUZKTEdWQlFXVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOeVF5eERRVUZETzFGQlEwUXNTVUZCU1N4TlFVRk5MRXRCUVVzc1IwRkJSeXhKUVVGSkxFMUJRVTBzUzBGQlN5eEhRVUZITEVWQlFVVXNRMEZCUXp0WlFVTnlReXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTI1RExFTkJRVU03VVVGRFJDeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8wbEJRMjVETEVOQlFVTTdTVUZGVXl4VlFVRlZMRU5CUVVNc1MwRkJXVHRSUVVNdlFpeE5RVUZOTEU5QlFVOHNSMEZCUnl4TFFVRkxMRU5CUVVNc1QwRkJUeXhKUVVGSkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVsQlFVa3NaVUZCWlN4RFFVRkRPMUZCUXk5RUxFMUJRVTBzV1VGQldTeEhRVUZITEU5QlFVOHNRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJRenRSUVVVelF5eEpRVUZKTEZsQlFWa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1YwRkJWeXhEUVVGRExFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRE8xbEJRM1pGTEU5QlFVOHNTVUZCU1N4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGNFTXNRMEZCUXp0UlFVVkVMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1dVRkJXU3hEUVVGRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUTJwSUxFOUJRVThzU1VGQlNTeGhRVUZoTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRjRU1zUTBGQlF6dFJRVVZFTEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhUUVVGVExFTkJRVU1zU1VGQlNTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RFFVRkRMR0ZCUVdFc1EwRkJReXhKUVVGSkxGbEJRVmtzUTBGQlF5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVNM1J5eFBRVUZQTEVsQlFVa3NaVUZCWlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM1JETEVOQlFVTTdVVUZGUkN4SlFVRkpMRmxCUVZrc1EwRkJReXhSUVVGUkxFTkJRVU1zWTBGQll5eERRVUZETEVsQlFVa3NXVUZCV1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlF6RkZMRTlCUVU4c1NVRkJTU3hoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEY0VNc1EwRkJRenRSUVVWRUxFbEJRVWtzV1VGQldTeERRVUZETEZGQlFWRXNRMEZCUXl4WFFVRlhMRU5CUVVNc1NVRkJTU3haUVVGWkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNN1dVRkRka1VzVDBGQlR5eEpRVUZKTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRSUVVOd1F5eERRVUZETzFGQlJVUXNUMEZCVHl4SlFVRkpMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dEpRVU53UXl4RFFVRkRPMGxCUlU4c2RVSkJRWFZDTEVOQlFVTXNVVUZCWVR0UlFVTXpReXhOUVVGTkxGRkJRVkVzUjBGQlJ5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVRoQ0xFTkJRVU03VVVGRGFrVXNTVUZCU1N4RFFVRkRMRkZCUVZFc1JVRkJSU3hEUVVGRE8xbEJRMlFzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZEY2tJc2NVUkJRWEZFTEVOQlEzUkVMRU5CUVVNN1VVRkRTaXhEUVVGRE8xRkJRMFFzVDBGQlR5eFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEpRVUZKTEVWQlFVVXNRMEZCUXp0SlFVTjZReXhEUVVGRE8wbEJSVThzYVVKQlFXbENMRU5CUVVrc1NVRkJZVHRSUVVONFF5eEpRVUZKTEU5QlFVOHNTVUZCU1N4TFFVRkxMRkZCUVZFc1JVRkJSU3hEUVVGRE8xbEJRemRDTEVsQlFVa3NRMEZCUXp0blFrRkRTQ3hQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRk5MRU5CUVVNN1dVRkRMMElzUTBGQlF6dFpRVUZETEUxQlFVMHNRMEZCUXp0blFrRkRVQ3hQUVVGUExGTkJRVk1zUTBGQlF6dFpRVU51UWl4RFFVRkRPMUZCUTBnc1EwRkJRenRSUVVORUxFOUJRVThzU1VGQlV5eERRVUZETzBsQlEyNUNMRU5CUVVNN1EwRkRSaUlzSW5OdmRYSmpaWE5EYjI1MFpXNTBJanBiSW1sdGNHOXlkQ0I3WEc0Z0lFSmhaRkpsY1hWbGMzUkZjbkp2Y2l4Y2JpQWdRMjl1Wm14cFkzUkZjbkp2Y2l4Y2JpQWdTVzUwWlhKdVlXeEZjbkp2Y2l4Y2JpQWdUbTkwUm05MWJtUkZjbkp2Y2l4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtZaTFrWldOdmNtRjBiM0p6WENJN1hHNXBiWEJ2Y25RZ2V5QkRiMjUwWlhoMGRXRnNRWEpuY3l3Z1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKbklIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWpiM0psWENJN1hHNXBiWEJ2Y25RZ2V5QkRiR2xsYm5SQ1lYTmxaRk5sY25acFkyVWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMk52Y21WY0lqdGNibWx0Y0c5eWRDQjBlWEJsSUhzZ1MyVjVZMnh2WVd0VFpYUjFjRU52Ym1acFp5d2dTMlY1WTJ4dllXdFZjMlZ5SUgwZ1puSnZiU0JjSWk0dUwzUjVjR1Z6WENJN1hHNXBiWEJ2Y25RZ1FYaHBiM01zSUhzZ1FYaHBiM05KYm5OMFlXNWpaU0I5SUdaeWIyMGdYQ0poZUdsdmMxd2lPMXh1YVcxd2IzSjBJQ29nWVhNZ2FIUjBjSE1nWm5KdmJTQmNJbTV2WkdVNmFIUjBjSE5jSWp0Y2JtbHRjRzl5ZENCN0lISmxjMjlzZG1WTFpYbGpiRzloYTBselVISnZaSFZqZEdsdmJpQjlJR1p5YjIwZ1hDSXVMM0oxYm5ScGJXVmNJanRjYmx4dVpYaHdiM0owSUhSNWNHVWdTMlY1WTJ4dllXdFZjMlZ5VW1Wd2NtVnpaVzUwWVhScGIyNGdQU0I3WEc0Z0lIVnpaWEp1WVcxbFB6b2djM1J5YVc1bk8xeHVJQ0JtYVhKemRFNWhiV1UvT2lCemRISnBibWM3WEc0Z0lHeGhjM1JPWVcxbFB6b2djM1J5YVc1bk8xeHVJQ0JsYldGcGJEODZJSE4wY21sdVp6dGNiaUFnWlcxaGFXeFdaWEpwWm1sbFpEODZJR0p2YjJ4bFlXNDdYRzRnSUdWdVlXSnNaV1EvT2lCaWIyOXNaV0Z1TzF4dUlDQmpjbVZrWlc1MGFXRnNjejg2SUVGeWNtRjVQSHRjYmlBZ0lDQjBlWEJsT2lCemRISnBibWM3WEc0Z0lDQWdkbUZzZFdVNklITjBjbWx1Wnp0Y2JpQWdJQ0IwWlcxd2IzSmhjbmsvT2lCaWIyOXNaV0Z1TzF4dUlDQjlQanRjYmlBZ1cydGxlVG9nYzNSeWFXNW5YVG9nZFc1cmJtOTNianRjYm4wN1hHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCTFpYbGpiRzloYTFWelpYSlRaWEoyYVdObElHVjRkR1Z1WkhNZ1EyeHBaVzUwUW1GelpXUlRaWEoyYVdObFBGeHVJQ0JCZUdsdmMwbHVjM1JoYm1ObExGeHVJQ0JMWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuWEc0K0lIdGNiaUFnWVhONWJtTWdhVzVwZEdsaGJHbDZaU2hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSHNnWTI5dVptbG5PaUJMWlhsamJHOWhhMU5sZEhWd1EyOXVabWxuT3lCamJHbGxiblE2SUVGNGFXOXpTVzV6ZEdGdVkyVWdmVDRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0pwYm1sMGFXRnNhWHBsWENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTVwYm1sMGFXRnNhWHBsS1R0Y2JpQWdJQ0JqYjI1emRDQmpiMjVtYVdjZ1BTQmpkSGhCY21keld6QmRJR0Z6SUV0bGVXTnNiMkZyVTJWMGRYQkRiMjVtYVdjN1hHNGdJQ0FnZEdocGN5NWZZMjl1Wm1sbklEMGdZMjl1Wm1sbk8xeHVJQ0FnSUdOdmJuTjBJR05zYVdWdWRDQTlJSFJvYVhNdVkzSmxZWFJsU0hSMGNFTnNhV1Z1ZENoamIyNW1hV2NwTzF4dUlDQWdJSFJvYVhNdVgyTnNhV1Z1ZENBOUlHTnNhV1Z1ZER0Y2JpQWdJQ0J5WlhSMWNtNGdleUJqYjI1bWFXY3NJR05zYVdWdWRDQjlPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdZV1JrVlhObGNsUnZVbVZoYkcwb1hHNGdJQ0FnYTJWNVkyeHZZV3RWYzJWeU9pQkxaWGxqYkc5aGExVnpaWElzWEc0Z0lDQWdjR0Y1Ykc5aFpEb2dVR0Z5ZEdsaGJEeExaWGxqYkc5aGExVnpaWEpTWlhCeVpYTmxiblJoZEdsdmJqNGdmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHh6ZEhKcGJtYytJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lZV1JrVlhObGNsUnZVbVZoYkcxY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG1Ga1pGVnpaWEpVYjFKbFlXeHRLVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVqY21WaGRHVlNaV0ZzYlZWelpYSW9hMlY1WTJ4dllXdFZjMlZ5TENCd1lYbHNiMkZrTENBdUxpNWpkSGhCY21kektUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHVmthWFJWYzJWeUtGeHVJQ0FnSUhKbFlXeHRUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJSFZ6WlhKVlZVbEVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NHRjViRzloWkRvZ1VHRnlkR2xoYkR4TFpYbGpiRzloYTFWelpYSlNaWEJ5WlhObGJuUmhkR2x2Ymo0c1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbVZrYVhSVmMyVnlYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NWxaR2wwVlhObGNpazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NTFjR1JoZEdWU1pXRnNiVlZ6WlhJb2NtVmhiRzFPWVcxbExDQjFjMlZ5VlZWSlJDd2djR0Y1Ykc5aFpDd2dMaTR1WTNSNFFYSm5jeWs3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUIxY0dSaGRHVlNaV0ZzYlZWelpYSW9YRzRnSUNBZ2NtVmhiRzFPWVcxbE9pQnpkSEpwYm1jc1hHNGdJQ0FnZFhObGNsVlZTVVE2SUhOMGNtbHVaeXhjYmlBZ0lDQndZWGxzYjJGa09pQlFZWEowYVdGc1BFdGxlV05zYjJGclZYTmxjbEpsY0hKbGMyVnVkR0YwYVc5dVBpeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpZFhCa1lYUmxVbVZoYkcxVmMyVnlYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NTFjR1JoZEdWU1pXRnNiVlZ6WlhJcE8xeHVJQ0FnSUdOdmJuTjBJR0ZrYldsdVFXTmpaWE56Vkc5clpXNGdQU0JoZDJGcGRDQjBhR2x6TG1kbGRFRmtiV2x1UVdOalpYTnpWRzlyWlc0b0xpNHVZM1I0UVhKbmN5azdYRzRnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxuSmxjWFZsYzNRb1hHNGdJQ0FnSUNCY0lrZEZWRndpTEZ4dUlDQWdJQ0FnWUM5aFpHMXBiaTl5WldGc2JYTXZKSHR5WldGc2JVNWhiV1Y5TDNWelpYSnpMeVI3ZFhObGNsVlZTVVI5WUN4Y2JpQWdJQ0FnSUdGa2JXbHVRV05qWlhOelZHOXJaVzRzWEc0Z0lDQWdJQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdJQ0F5TURBc1hHNGdJQ0FnSUNCN2ZTeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUdOdmJuTjBJR04xY25KbGJuUlZjMlZ5SUQxY2JpQWdJQ0FnSUhSb2FYTXVjR0Z5YzJWS2MyOXVVbVZ6Y0c5dWMyVThTMlY1WTJ4dllXdFZjMlZ5VW1Wd2NtVnpaVzUwWVhScGIyNCtLSEpsYzNCdmJuTmxMbVJoZEdFcElEOC9JSHQ5TzF4dUlDQWdJR0YzWVdsMElIUm9hWE11Y21WeGRXVnpkQ2hjYmlBZ0lDQWdJRndpVUZWVVhDSXNYRzRnSUNBZ0lDQmdMMkZrYldsdUwzSmxZV3h0Y3k4a2UzSmxZV3h0VG1GdFpYMHZkWE5sY25NdkpIdDFjMlZ5VlZWSlJIMWdMRnh1SUNBZ0lDQWdZV1J0YVc1QlkyTmxjM05VYjJ0bGJpeGNiaUFnSUNBZ0lIc2dMaTR1WTNWeWNtVnVkRlZ6WlhJc0lDNHVMbkJoZVd4dllXUWdmU3hjYmlBZ0lDQWdJREl3TkN4Y2JpQWdJQ0FnSUh0OUxGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCeVpXMXZkbVZWYzJWeVJuSnZiVkpsWVd4dEtGeHVJQ0FnSUhKbFlXeHRUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJSFZ6WlhKVlZVbEVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBHRnVlVDVjYmlBZ0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JjSW5KbGJXOTJaVlZ6WlhKR2NtOXRVbVZoYkcxY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG5KbGJXOTJaVlZ6WlhKR2NtOXRVbVZoYkcwcE8xeHVJQ0FnSUdOdmJuTjBJR0ZrYldsdVFXTmpaWE56Vkc5clpXNGdQU0JoZDJGcGRDQjBhR2x6TG1kbGRFRmpZMlZ6YzFSdmEyVnVLRnh1SUNBZ0lDQWdkR2hwY3k1amIyNW1hV2N1WVdSdGFXNUJjR2xWYzJWeUlTeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdVpHVnNaWFJsVlhObGNpaGNiaUFnSUNBZ0lHRmtiV2x1UVdOalpYTnpWRzlyWlc0c1hHNGdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lISmxZV3h0T2lCeVpXRnNiVTVoYldVc1hHNGdJQ0FnSUNBZ0lIVnpaWEp1WVcxbFZWVkpSRG9nZFhObGNsVlZTVVFzWEc0Z0lDQWdJQ0FnSUdGd2FVTnNhV1Z1ZEVsa09pQmNJbHdpTEZ4dUlDQWdJQ0FnSUNCMWMyVnlibUZ0WlRvZ1hDSmNJaXhjYmlBZ0lDQWdJQ0FnY0dGemMzZHZjbVE2SUZ3aVhDSXNYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmtaV3hsZEdWVmMyVnlLRnh1SUNBZ0lHRmpZMlZ6YzFSdmEyVnVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2EyVjVZMnh2WVd0VmMyVnlPaUJMWlhsamJHOWhhMVZ6WlhJc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbVJsYkdWMFpWVnpaWEpjSWl3Z2RISjFaU2xjYmlBZ0lDQXBMbVp2Y2loMGFHbHpMbVJsYkdWMFpWVnpaWElwTzF4dUlDQWdJR0YzWVdsMElIUm9hWE11Y21WeGRXVnpkQ2hjYmlBZ0lDQWdJRndpUkVWTVJWUkZYQ0lzWEc0Z0lDQWdJQ0JnTDJGa2JXbHVMM0psWVd4dGN5OGtlMnRsZVdOc2IyRnJWWE5sY2k1eVpXRnNiWDB2ZFhObGNuTXZKSHRyWlhsamJHOWhhMVZ6WlhJdWRYTmxjbTVoYldWVlZVbEVmV0FzWEc0Z0lDQWdJQ0JoWTJObGMzTlViMnRsYml4Y2JpQWdJQ0FnSUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0FnSURJd05DeGNiaUFnSUNBZ0lIdDlMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmpjbVZoZEdWU1pXRnNiVlZ6WlhJb1hHNGdJQ0FnYTJWNVkyeHZZV3RWYzJWeU9pQkxaWGxqYkc5aGExVnpaWElzWEc0Z0lDQWdjR0Y1Ykc5aFpEb2dVR0Z5ZEdsaGJEeExaWGxqYkc5aGExVnpaWEpTWlhCeVpYTmxiblJoZEdsdmJqNGdmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHh6ZEhKcGJtYytJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2lZM0psWVhSbFVtVmhiRzFWYzJWeVhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1amNtVmhkR1ZTWldGc2JWVnpaWElwTzF4dUlDQWdJR052Ym5OMElHRmtiV2x1UVdOalpYTnpWRzlyWlc0Z1BTQmhkMkZwZENCMGFHbHpMbWRsZEVGa2JXbHVRV05qWlhOelZHOXJaVzRvTGk0dVkzUjRRWEpuY3lrN1hHNGdJQ0FnWTI5dWMzUWdkWE5sY2xCaGVXeHZZV1FnUFNCN1hHNGdJQ0FnSUNCMWMyVnlibUZ0WlRvZ2EyVjVZMnh2WVd0VmMyVnlMblZ6WlhKdVlXMWxMRnh1SUNBZ0lDQWdabWx5YzNST1lXMWxPaUJjSWtGd2FWd2lMRnh1SUNBZ0lDQWdiR0Z6ZEU1aGJXVTZJRndpUVdSdGFXNWNJaXhjYmlBZ0lDQWdJR1Z0WVdsc09pQmdKSHRyWlhsamJHOWhhMVZ6WlhJdVlYQnBRMnhwWlc1MFNXUjlRQ1I3YTJWNVkyeHZZV3RWYzJWeUxuSmxZV3h0ZlM1amIyMWdMRnh1SUNBZ0lDQWdaVzFoYVd4V1pYSnBabWxsWkRvZ2RISjFaU3hjYmlBZ0lDQWdJR1Z1WVdKc1pXUTZJSFJ5ZFdVc1hHNGdJQ0FnSUNCamNtVmtaVzUwYVdGc2N6b2dXMXh1SUNBZ0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUNBZ2RIbHdaVG9nWENKd1lYTnpkMjl5WkZ3aUxGeHVJQ0FnSUNBZ0lDQWdJSFpoYkhWbE9pQnJaWGxqYkc5aGExVnpaWEl1Y0dGemMzZHZjbVFzWEc0Z0lDQWdJQ0FnSUNBZ2RHVnRjRzl5WVhKNU9pQm1ZV3h6WlN4Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lGMHNYRzRnSUNBZ0lDQXVMaTV3WVhsc2IyRmtMRnh1SUNBZ0lIMDdYRzRnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxuSmxjWFZsYzNRb1hHNGdJQ0FnSUNCY0lsQlBVMVJjSWl4Y2JpQWdJQ0FnSUdBdllXUnRhVzR2Y21WaGJHMXpMeVI3YTJWNVkyeHZZV3RWYzJWeUxuSmxZV3h0ZlM5MWMyVnljMkFzWEc0Z0lDQWdJQ0JoWkcxcGJrRmpZMlZ6YzFSdmEyVnVMRnh1SUNBZ0lDQWdkWE5sY2xCaGVXeHZZV1FzWEc0Z0lDQWdJQ0F5TURFc1hHNGdJQ0FnSUNCN2ZTeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtVjRkSEpoWTNSVlZVbEVabkp2YlZKbGMzQnZibk5sS0hKbGMzQnZibk5sS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdGemMybG5ibEp2YkdWelZHOVZjMlZ5S0Z4dUlDQWdJSEp2YkdWelZYSnNPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2MyVjBVbTlzWlhOVmNtdzZJSE4wY21sdVp5eGNiaUFnSUNCeWIyeGxUbUZ0WlhNNklITjBjbWx1WjF0ZExGeHVJQ0FnSUdGalkyVnpjMVJ2YTJWdU9pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQmNJbUZ6YzJsbmJsSnZiR1Z6Vkc5VmMyVnlYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NWhjM05wWjI1U2IyeGxjMVJ2VlhObGNpazdYRzRnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxuSmxjWFZsYzNRb1hHNGdJQ0FnSUNCY0lrZEZWRndpTEZ4dUlDQWdJQ0FnY205c1pYTlZjbXdzWEc0Z0lDQWdJQ0JoWTJObGMzTlViMnRsYml4Y2JpQWdJQ0FnSUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0FnSURJd01DeGNiaUFnSUNBZ0lIdDlMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnY205c1pYTWdQU0IwYUdsekxuQmhjbk5sU25OdmJsSmxjM0J2Ym5ObFBHRnVlVnRkUGloeVpYTndiMjV6WlM1a1lYUmhLU0EvUHlCYlhUdGNiaUFnSUNCamIyNXpkQ0J6Wld4bFkzUmxaRkp2YkdWeklEMGdjbTlzWlhNdVptbHNkR1Z5S0NoeWIyeGxLU0E5UGlCeWIyeGxUbUZ0WlhNdWFXNWpiSFZrWlhNb2NtOXNaUzV1WVcxbEtTazdYRzRnSUNBZ2FXWWdLSE5sYkdWamRHVmtVbTlzWlhNdWJHVnVaM1JvSUQwOVBTQXdLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVG05MFJtOTFibVJGY25KdmNpaGdUbThnY205c1pYTWdiV0YwWTJobFpDQWtlM0p2YkdWT1lXMWxjeTVxYjJsdUtGd2lMQ0JjSWlsOVlDazdYRzRnSUNBZ2ZWeHVJQ0FnSUdOdmJuTjBJSEJ5YjIxcGMyVnpPaUJRY205dGFYTmxQSFp2YVdRK1cxMGdQU0J6Wld4bFkzUmxaRkp2YkdWekxtMWhjQ2dvY205c1pTa2dQVDVjYmlBZ0lDQWdJSFJvYVhNdWNtVnhkV1Z6ZENoY2JpQWdJQ0FnSUNBZ1hDSlFUMU5VWENJc1hHNGdJQ0FnSUNBZ0lITmxkRkp2YkdWelZYSnNMRnh1SUNBZ0lDQWdJQ0JoWTJObGMzTlViMnRsYml4Y2JpQWdJQ0FnSUNBZ1czSnZiR1ZkTEZ4dUlDQWdJQ0FnSUNBeU1EUXNYRzRnSUNBZ0lDQWdJSHQ5TEZ4dUlDQWdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnSUNBcFhHNGdJQ0FnS1R0Y2JpQWdJQ0JoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2h3Y205dGFYTmxjeWs3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJuY21GdWRGSmxZV3h0VW05c1pYTlViMVZ6WlhJb1hHNGdJQ0FnY21WaGJHMU9ZVzFsT2lCemRISnBibWNzWEc0Z0lDQWdkWE5sY2xWVlNVUTZJSE4wY21sdVp5eGNiaUFnSUNCeWIyeGxUbUZ0WlhNNklITjBjbWx1WjF0ZExGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElIc2dZM1I0UVhKbmN5QjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dYQ0puY21GdWRGSmxZV3h0VW05c1pYTlViMVZ6WlhKY0lpd2dkSEoxWlNsY2JpQWdJQ0FwTG1admNpaDBhR2x6TG1keVlXNTBVbVZoYkcxU2IyeGxjMVJ2VlhObGNpazdYRzRnSUNBZ1kyOXVjM1FnWVdSdGFXNUJZMk5sYzNOVWIydGxiaUE5SUdGM1lXbDBJSFJvYVhNdVoyVjBRV1J0YVc1QlkyTmxjM05VYjJ0bGJpZ3VMaTVqZEhoQmNtZHpLVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbUZ6YzJsbmJsSnZiR1Z6Vkc5VmMyVnlLRnh1SUNBZ0lDQWdZQzloWkcxcGJpOXlaV0ZzYlhNdkpIdHlaV0ZzYlU1aGJXVjlMM0p2YkdWellDeGNiaUFnSUNBZ0lHQXZZV1J0YVc0dmNtVmhiRzF6THlSN2NtVmhiRzFPWVcxbGZTOTFjMlZ5Y3k4a2UzVnpaWEpWVlVsRWZTOXliMnhsTFcxaGNIQnBibWR6TDNKbFlXeHRZQ3hjYmlBZ0lDQWdJSEp2YkdWT1lXMWxjeXhjYmlBZ0lDQWdJR0ZrYldsdVFXTmpaWE56Vkc5clpXNHNYRzRnSUNBZ0lDQXVMaTVqZEhoQmNtZHpYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHZHlZVzUwUTJ4cFpXNTBVbTlzWlhOVWIxVnpaWElvWEc0Z0lDQWdjbVZoYkcxT1lXMWxPaUJ6ZEhKcGJtY3NYRzRnSUNBZ1kyeHBaVzUwVlZWSlJEb2djM1J5YVc1bkxGeHVJQ0FnSUhWelpYSlZWVWxFT2lCemRISnBibWNzWEc0Z0lDQWdjbTlzWlU1aGJXVnpPaUJ6ZEhKcGJtZGJYU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVFRnlaM01nZlNBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUZ3aVozSmhiblJEYkdsbGJuUlNiMnhsYzFSdlZYTmxjbHdpTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXVaM0poYm5SRGJHbGxiblJTYjJ4bGMxUnZWWE5sY2lrN1hHNGdJQ0FnWTI5dWMzUWdZV1J0YVc1QlkyTmxjM05VYjJ0bGJpQTlJR0YzWVdsMElIUm9hWE11WjJWMFFXUnRhVzVCWTJObGMzTlViMnRsYmlndUxpNWpkSGhCY21kektUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxtRnpjMmxuYmxKdmJHVnpWRzlWYzJWeUtGeHVJQ0FnSUNBZ1lDOWhaRzFwYmk5eVpXRnNiWE12Skh0eVpXRnNiVTVoYldWOUwyTnNhV1Z1ZEhNdkpIdGpiR2xsYm5SVlZVbEVmUzl5YjJ4bGMyQXNYRzRnSUNBZ0lDQmdMMkZrYldsdUwzSmxZV3h0Y3k4a2UzSmxZV3h0VG1GdFpYMHZkWE5sY25NdkpIdDFjMlZ5VlZWSlJIMHZjbTlzWlMxdFlYQndhVzVuY3k5amJHbGxiblJ6THlSN1kyeHBaVzUwVlZWSlJIMWdMRnh1SUNBZ0lDQWdjbTlzWlU1aGJXVnpMRnh1SUNBZ0lDQWdZV1J0YVc1QlkyTmxjM05VYjJ0bGJpeGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2NtVjJiMnRsVW1WaGJHMVNiMnhsYzBaeWIyMVZjMlZ5S0Z4dUlDQWdJSEpsWVd4dFRtRnRaVG9nYzNSeWFXNW5MRnh1SUNBZ0lIVnpaWEpWVlVsRU9pQnpkSEpwYm1jc1hHNGdJQ0FnY205c1pVNWhiV1Z6T2lCemRISnBibWRiWFN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJOWVhsaVpVTnZiblJsZUhSMVlXeEJjbWM4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHTjBlRUZ5WjNNZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lGd2ljbVYyYjJ0bFVtVmhiRzFTYjJ4bGMwWnliMjFWYzJWeVhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1eVpYWnZhMlZTWldGc2JWSnZiR1Z6Um5KdmJWVnpaWElwTzF4dUlDQWdJR052Ym5OMElHRmtiV2x1UVdOalpYTnpWRzlyWlc0Z1BTQmhkMkZwZENCMGFHbHpMbWRsZEVGa2JXbHVRV05qWlhOelZHOXJaVzRvTGk0dVkzUjRRWEpuY3lrN1hHNGdJQ0FnWTI5dWMzUWdjbTlzWlhOU1pYTndiMjV6WlNBOUlHRjNZV2wwSUhSb2FYTXVjbVZ4ZFdWemRDaGNiaUFnSUNBZ0lGd2lSMFZVWENJc1hHNGdJQ0FnSUNCZ0wyRmtiV2x1TDNKbFlXeHRjeThrZTNKbFlXeHRUbUZ0WlgwdmNtOXNaWE5nTEZ4dUlDQWdJQ0FnWVdSdGFXNUJZMk5sYzNOVWIydGxiaXhjYmlBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJREl3TUN4Y2JpQWdJQ0FnSUh0OUxGeHVJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdjbTlzWlhNZ1BTQjBhR2x6TG5CaGNuTmxTbk52YmxKbGMzQnZibk5sUEdGdWVWdGRQaWh5YjJ4bGMxSmxjM0J2Ym5ObExtUmhkR0VwSUQ4L0lGdGRPMXh1SUNBZ0lHTnZibk4wSUhObGJHVmpkR1ZrVW05c1pYTWdQU0J5YjJ4bGN5NW1hV3gwWlhJb0tISnZiR1VwSUQwK0lISnZiR1ZPWVcxbGN5NXBibU5zZFdSbGN5aHliMnhsTG01aGJXVXBLVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJa1JGVEVWVVJWd2lMRnh1SUNBZ0lDQWdZQzloWkcxcGJpOXlaV0ZzYlhNdkpIdHlaV0ZzYlU1aGJXVjlMM1Z6WlhKekx5UjdkWE5sY2xWVlNVUjlMM0p2YkdVdGJXRndjR2x1WjNNdmNtVmhiRzFnTEZ4dUlDQWdJQ0FnWVdSdGFXNUJZMk5sYzNOVWIydGxiaXhjYmlBZ0lDQWdJSE5sYkdWamRHVmtVbTlzWlhNc1hHNGdJQ0FnSUNBeU1EUXNYRzRnSUNBZ0lDQjdmU3hjYmlBZ0lDQWdJQzR1TG1OMGVFRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdjbVZ3YkdGalpWSmxZV3h0VW05c1pYTkdiM0pWYzJWeUtGeHVJQ0FnSUhKbFlXeHRUbUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJSFZ6WlhKVlZVbEVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NtOXNaVTVoYldWek9pQnpkSEpwYm1kYlhTeGNiaUFnSUNBdUxpNWhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQbHh1SUNBcE9pQlFjbTl0YVhObFBIWnZhV1ErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRndpY21Wd2JHRmpaVkpsWVd4dFVtOXNaWE5HYjNKVmMyVnlYQ0lzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NXlaWEJzWVdObFVtVmhiRzFTYjJ4bGMwWnZjbFZ6WlhJcE8xeHVJQ0FnSUdOdmJuTjBJR0ZrYldsdVFXTmpaWE56Vkc5clpXNGdQU0JoZDJGcGRDQjBhR2x6TG1kbGRFRmtiV2x1UVdOalpYTnpWRzlyWlc0b0xpNHVZM1I0UVhKbmN5azdYRzRnSUNBZ1kyOXVjM1FnWTNWeWNtVnVkRkp2YkdWelVtVnpjRzl1YzJVZ1BTQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJa2RGVkZ3aUxGeHVJQ0FnSUNBZ1lDOWhaRzFwYmk5eVpXRnNiWE12Skh0eVpXRnNiVTVoYldWOUwzVnpaWEp6THlSN2RYTmxjbFZWU1VSOUwzSnZiR1V0YldGd2NHbHVaM012Y21WaGJHMWdMRnh1SUNBZ0lDQWdZV1J0YVc1QlkyTmxjM05VYjJ0bGJpeGNiaUFnSUNBZ0lIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBZ0lESXdNQ3hjYmlBZ0lDQWdJSHQ5TEZ4dUlDQWdJQ0FnTGk0dVkzUjRRWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ1kzVnljbVZ1ZEZKdmJHVnpJRDFjYmlBZ0lDQWdJSFJvYVhNdWNHRnljMlZLYzI5dVVtVnpjRzl1YzJVOFlXNTVXMTArS0dOMWNuSmxiblJTYjJ4bGMxSmxjM0J2Ym5ObExtUmhkR0VwSUQ4L0lGdGRPMXh1SUNBZ0lHbG1JQ2hqZFhKeVpXNTBVbTlzWlhNdWJHVnVaM1JvSUQ0Z01Da2dlMXh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTV5WlhGMVpYTjBLRnh1SUNBZ0lDQWdJQ0JjSWtSRlRFVlVSVndpTEZ4dUlDQWdJQ0FnSUNCZ0wyRmtiV2x1TDNKbFlXeHRjeThrZTNKbFlXeHRUbUZ0WlgwdmRYTmxjbk12Skh0MWMyVnlWVlZKUkgwdmNtOXNaUzF0WVhCd2FXNW5jeTl5WldGc2JXQXNYRzRnSUNBZ0lDQWdJR0ZrYldsdVFXTmpaWE56Vkc5clpXNHNYRzRnSUNBZ0lDQWdJR04xY25KbGJuUlNiMnhsY3l4Y2JpQWdJQ0FnSUNBZ01qQTBMRnh1SUNBZ0lDQWdJQ0I3ZlN4Y2JpQWdJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1bmNtRnVkRkpsWVd4dFVtOXNaWE5VYjFWelpYSW9YRzRnSUNBZ0lDQnlaV0ZzYlU1aGJXVXNYRzRnSUNBZ0lDQjFjMlZ5VlZWSlJDeGNiaUFnSUNBZ0lISnZiR1ZPWVcxbGN5eGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2NtVjJiMnRsUTJ4cFpXNTBVbTlzWlhOR2NtOXRWWE5sY2loY2JpQWdJQ0J5WldGc2JVNWhiV1U2SUhOMGNtbHVaeXhjYmlBZ0lDQmpiR2xsYm5SVlZVbEVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2RYTmxjbFZWU1VRNklITjBjbWx1Wnl4Y2JpQWdJQ0J5YjJ4bFRtRnRaWE02SUhOMGNtbHVaMXRkTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRRWEpuY3lCOUlEMGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYjJkRGRIZ29ZWEpuY3l3Z1hDSnlaWFp2YTJWRGJHbGxiblJTYjJ4bGMwWnliMjFWYzJWeVhDSXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1eVpYWnZhMlZEYkdsbGJuUlNiMnhsYzBaeWIyMVZjMlZ5S1R0Y2JpQWdJQ0JqYjI1emRDQmhaRzFwYmtGalkyVnpjMVJ2YTJWdUlEMGdZWGRoYVhRZ2RHaHBjeTVuWlhSQlpHMXBia0ZqWTJWemMxUnZhMlZ1S0M0dUxtTjBlRUZ5WjNNcE8xeHVJQ0FnSUdOdmJuTjBJSEp2YkdWelVtVnpjRzl1YzJVZ1BTQmhkMkZwZENCMGFHbHpMbkpsY1hWbGMzUW9YRzRnSUNBZ0lDQmNJa2RGVkZ3aUxGeHVJQ0FnSUNBZ1lDOWhaRzFwYmk5eVpXRnNiWE12Skh0eVpXRnNiVTVoYldWOUwyTnNhV1Z1ZEhNdkpIdGpiR2xsYm5SVlZVbEVmUzl5YjJ4bGMyQXNYRzRnSUNBZ0lDQmhaRzFwYmtGalkyVnpjMVJ2YTJWdUxGeHVJQ0FnSUNBZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ01qQXdMRnh1SUNBZ0lDQWdlMzBzWEc0Z0lDQWdJQ0F1TGk1amRIaEJjbWR6WEc0Z0lDQWdLVHRjYmlBZ0lDQmpiMjV6ZENCeWIyeGxjeUE5SUhSb2FYTXVjR0Z5YzJWS2MyOXVVbVZ6Y0c5dWMyVThZVzU1VzEwK0tISnZiR1Z6VW1WemNHOXVjMlV1WkdGMFlTa2dQejhnVzEwN1hHNGdJQ0FnWTI5dWMzUWdjMlZzWldOMFpXUlNiMnhsY3lBOUlISnZiR1Z6TG1acGJIUmxjaWdvY205c1pTa2dQVDRnY205c1pVNWhiV1Z6TG1sdVkyeDFaR1Z6S0hKdmJHVXVibUZ0WlNrcE8xeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWNtVnhkV1Z6ZENoY2JpQWdJQ0FnSUZ3aVJFVk1SVlJGWENJc1hHNGdJQ0FnSUNCZ0wyRmtiV2x1TDNKbFlXeHRjeThrZTNKbFlXeHRUbUZ0WlgwdmRYTmxjbk12Skh0MWMyVnlWVlZKUkgwdmNtOXNaUzF0WVhCd2FXNW5jeTlqYkdsbGJuUnpMeVI3WTJ4cFpXNTBWVlZKUkgxZ0xGeHVJQ0FnSUNBZ1lXUnRhVzVCWTJObGMzTlViMnRsYml4Y2JpQWdJQ0FnSUhObGJHVmpkR1ZrVW05c1pYTXNYRzRnSUNBZ0lDQXlNRFFzWEc0Z0lDQWdJQ0I3ZlN4Y2JpQWdJQ0FnSUM0dUxtTjBlRUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nY21Wd2JHRmpaVU5zYVdWdWRGSnZiR1Z6Um05eVZYTmxjaWhjYmlBZ0lDQnlaV0ZzYlU1aGJXVTZJSE4wY21sdVp5eGNiaUFnSUNCamJHbGxiblJWVlVsRU9pQnpkSEpwYm1jc1hHNGdJQ0FnZFhObGNsVlZTVVE2SUhOMGNtbHVaeXhjYmlBZ0lDQnliMnhsVG1GdFpYTTZJSE4wY21sdVoxdGRMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eGhibmsrWEc0Z0lDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNFFYSm5jeUI5SUQwZ0tGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNiMmREZEhnb1lYSm5jeXdnWENKeVpYQnNZV05sUTJ4cFpXNTBVbTlzWlhOR2IzSlZjMlZ5WENJc0lIUnlkV1VwWEc0Z0lDQWdLUzVtYjNJb2RHaHBjeTV5WlhCc1lXTmxRMnhwWlc1MFVtOXNaWE5HYjNKVmMyVnlLVHRjYmlBZ0lDQmpiMjV6ZENCaFpHMXBia0ZqWTJWemMxUnZhMlZ1SUQwZ1lYZGhhWFFnZEdocGN5NW5aWFJCWkcxcGJrRmpZMlZ6YzFSdmEyVnVLQzR1TG1OMGVFRnlaM01wTzF4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5SU2IyeGxjMUpsYzNCdmJuTmxJRDBnWVhkaGFYUWdkR2hwY3k1eVpYRjFaWE4wS0Z4dUlDQWdJQ0FnWENKSFJWUmNJaXhjYmlBZ0lDQWdJR0F2WVdSdGFXNHZjbVZoYkcxekx5UjdjbVZoYkcxT1lXMWxmUzkxYzJWeWN5OGtlM1Z6WlhKVlZVbEVmUzl5YjJ4bExXMWhjSEJwYm1kekwyTnNhV1Z1ZEhNdkpIdGpiR2xsYm5SVlZVbEVmV0FzWEc0Z0lDQWdJQ0JoWkcxcGJrRmpZMlZ6YzFSdmEyVnVMRnh1SUNBZ0lDQWdkVzVrWldacGJtVmtMRnh1SUNBZ0lDQWdNakF3TEZ4dUlDQWdJQ0FnZTMwc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdJQ0JqYjI1emRDQmpkWEp5Wlc1MFVtOXNaWE1nUFZ4dUlDQWdJQ0FnZEdocGN5NXdZWEp6WlVwemIyNVNaWE53YjI1elpUeGhibmxiWFQ0b1kzVnljbVZ1ZEZKdmJHVnpVbVZ6Y0c5dWMyVXVaR0YwWVNrZ1B6OGdXMTA3WEc0Z0lDQWdhV1lnS0dOMWNuSmxiblJTYjJ4bGN5NXNaVzVuZEdnZ1BpQXdLU0I3WEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG5KbGNYVmxjM1FvWEc0Z0lDQWdJQ0FnSUZ3aVJFVk1SVlJGWENJc1hHNGdJQ0FnSUNBZ0lHQXZZV1J0YVc0dmNtVmhiRzF6THlSN2NtVmhiRzFPWVcxbGZTOTFjMlZ5Y3k4a2UzVnpaWEpWVlVsRWZTOXliMnhsTFcxaGNIQnBibWR6TDJOc2FXVnVkSE12Skh0amJHbGxiblJWVlVsRWZXQXNYRzRnSUNBZ0lDQWdJR0ZrYldsdVFXTmpaWE56Vkc5clpXNHNYRzRnSUNBZ0lDQWdJR04xY25KbGJuUlNiMnhsY3l4Y2JpQWdJQ0FnSUNBZ01qQTBMRnh1SUNBZ0lDQWdJQ0I3ZlN4Y2JpQWdJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1bmNtRnVkRU5zYVdWdWRGSnZiR1Z6Vkc5VmMyVnlLRnh1SUNBZ0lDQWdjbVZoYkcxT1lXMWxMRnh1SUNBZ0lDQWdZMnhwWlc1MFZWVkpSQ3hjYmlBZ0lDQWdJSFZ6WlhKVlZVbEVMRnh1SUNBZ0lDQWdjbTlzWlU1aGJXVnpMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR055WldGMFpVaDBkSEJEYkdsbGJuUW9ZMjl1Wm1sbk9pQkxaWGxqYkc5aGExTmxkSFZ3UTI5dVptbG5LVG9nUVhocGIzTkpibk4wWVc1alpTQjdYRzRnSUNBZ2NtVjBkWEp1SUVGNGFXOXpMbU55WldGMFpTaDdYRzRnSUNBZ0lDQmlZWE5sVlZKTU9pQmdKSHRqYjI1bWFXY3VjSEp2ZEc5amIyeDlPaTh2Skh0amIyNW1hV2N1YUc5emRIMWdMRnh1SUNBZ0lDQWdhR1ZoWkdWeWN6b2dleUJjSWtOdmJuUmxiblF0Vkhsd1pWd2lPaUJjSW1Gd2NHeHBZMkYwYVc5dUwycHpiMjVjSWlCOUxGeHVJQ0FnSUNBZ2RtRnNhV1JoZEdWVGRHRjBkWE02SUNncElEMCtJSFJ5ZFdVc1hHNGdJQ0FnSUNCb2RIUndjMEZuWlc1ME9pQnVaWGNnYUhSMGNITXVRV2RsYm5Rb2UxeHVJQ0FnSUNBZ0lDQnlaV3BsWTNSVmJtRjFkR2h2Y21sNlpXUTZJQ2h5WlhOdmJIWmxTMlY1WTJ4dllXdEpjMUJ5YjJSMVkzUnBiMjRvZEdocGN5NWpiMjVtYVdjZ1lYTWdZVzU1S1Nrc1hHNGdJQ0FnSUNCOUtTeGNiaUFnSUNCOUtUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZWE41Ym1NZ1oyVjBRV1J0YVc1QlkyTmxjM05VYjJ0bGJpaGNiaUFnSUNBdUxpNWhjbWR6T2lCRGIyNTBaWGgwZFdGc1FYSm5jenhoYm5rK1hHNGdJQ2s2SUZCeWIyMXBjMlU4YzNSeWFXNW5QaUI3WEc0Z0lDQWdZMjl1YzNRZ2V5QmpkSGhCY21keklIMGdQU0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0IwYUdsekxtZGxkRUZrYldsdVFXTmpaWE56Vkc5clpXNHBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWRsZEVGalkyVnpjMVJ2YTJWdUtIUm9hWE11WTI5dVptbG5MbUZrYldsdVFYQnBWWE5sY2lFc0lDNHVMbU4wZUVGeVozTXBPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JoYzNsdVl5Qm5aWFJCWTJObGMzTlViMnRsYmloY2JpQWdJQ0JyWlhsamJHOWhhMVZ6WlhJNklFdGxlV05zYjJGclZYTmxjaXhjYmlBZ0lDQXVMaTVoY21kek9pQkRiMjUwWlhoMGRXRnNRWEpuY3p4aGJuaytYRzRnSUNrNklGQnliMjFwYzJVOGMzUnlhVzVuUGlCN1hHNGdJQ0FnWTI5dWMzUWdleUJqZEhoQmNtZHpJSDBnUFNCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCMGFHbHpMbWRsZEVGalkyVnpjMVJ2YTJWdUtUdGNiaUFnSUNCamIyNXpkQ0J5WlhOd2IyNXpaU0E5SUdGM1lXbDBJSFJvYVhNdWNtVnhkV1Z6ZENoY2JpQWdJQ0FnSUZ3aVVFOVRWRndpTEZ4dUlDQWdJQ0FnWUM5eVpXRnNiWE12Skh0clpYbGpiRzloYTFWelpYSXVjbVZoYkcxOUwzQnliM1J2WTI5c0wyOXdaVzVwWkMxamIyNXVaV04wTDNSdmEyVnVZQ3hjYmlBZ0lDQWdJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJRzVsZHlCVlVreFRaV0Z5WTJoUVlYSmhiWE1vZTF4dUlDQWdJQ0FnSUNCamJHbGxiblJmYVdRNklHdGxlV05zYjJGclZYTmxjaTVoY0dsRGJHbGxiblJKWkN4Y2JpQWdJQ0FnSUNBZ2RYTmxjbTVoYldVNklHdGxlV05zYjJGclZYTmxjaTUxYzJWeWJtRnRaU3hjYmlBZ0lDQWdJQ0FnY0dGemMzZHZjbVE2SUd0bGVXTnNiMkZyVlhObGNpNXdZWE56ZDI5eVpDeGNiaUFnSUNBZ0lDQWdaM0poYm5SZmRIbHdaVG9nWENKd1lYTnpkMjl5WkZ3aUxGeHVJQ0FnSUNBZ2ZTa3VkRzlUZEhKcGJtY29LU3hjYmlBZ0lDQWdJREl3TUN4Y2JpQWdJQ0FnSUhzZ1hDSmpiMjUwWlc1MExYUjVjR1ZjSWpvZ1hDSmhjSEJzYVdOaGRHbHZiaTk0TFhkM2R5MW1iM0p0TFhWeWJHVnVZMjlrWldSY0lpQjlMRnh1SUNBZ0lDQWdMaTR1WTNSNFFYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnWkdGMFlTQTlJSFJvYVhNdWNHRnljMlZLYzI5dVVtVnpjRzl1YzJVOGV5QmhZMk5sYzNOZmRHOXJaVzQvT2lCemRISnBibWNnZlQ0b1hHNGdJQ0FnSUNCeVpYTndiMjV6WlM1a1lYUmhYRzRnSUNBZ0tUdGNiaUFnSUNCcFppQW9aR0YwWVQ4dVlXTmpaWE56WDNSdmEyVnVLU0J5WlhSMWNtNGdaR0YwWVM1aFkyTmxjM05mZEc5clpXNDdYRzRnSUNBZ2RHaHliM2NnYm1WM0lFSmhaRkpsY1hWbGMzUkZjbkp2Y2loY2JpQWdJQ0FnSUdCVmJtRmliR1VnZEc4Z1oyVjBJRXRsZVdOc2IyRnJJR0ZqWTJWemN5QjBiMnRsYmlCbWIzSWdkWE5sY2lBa2UydGxlV05zYjJGclZYTmxjaTUxYzJWeWJtRnRaWDFnWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnWVhONWJtTWdjbVZ4ZFdWemRDaGNiaUFnSUNCdFpYUm9iMlE2SUZ3aVIwVlVYQ0lnZkNCY0lsQlBVMVJjSWlCOElGd2lVRlZVWENJZ2ZDQmNJa1JGVEVWVVJWd2lMRnh1SUNBZ0lIQmhkR2c2SUhOMGNtbHVaeXhjYmlBZ0lDQmhZMk5sYzNOVWIydGxiam9nYzNSeWFXNW5JSHdnZFc1a1pXWnBibVZrTEZ4dUlDQWdJSEJoZVd4dllXUTZJSFZ1YTI1dmQyNHNYRzRnSUNBZ2MzVmpZMlZ6YzBOdlpHVTZJRzUxYldKbGNpeGNiaUFnSUNCb1pXRmtaWEp6T2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0J6ZEhKcGJtYytMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFTnZiblJsZUhSMVlXeEJjbWR6UEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4aGJuaytJSHRjYmlBZ0lDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQjBhR2x6TG5KbGNYVmxjM1FwTzF4dUlDQWdJR052Ym5OMElISmxjM0J2Ym5ObElEMGdZWGRoYVhRZ2RHaHBjeTVqYkdsbGJuUXVjbVZ4ZFdWemRDaDdYRzRnSUNBZ0lDQnRaWFJvYjJRc1hHNGdJQ0FnSUNCMWNtdzZJR0FrZTNSb2FYTXVZMjl1Wm1sbkxuQnliM1J2WTI5c2ZUb3ZMeVI3ZEdocGN5NWpiMjVtYVdjdWFHOXpkSDBrZTNCaGRHaDlZQ3hjYmlBZ0lDQWdJR1JoZEdFNlhHNGdJQ0FnSUNBZ0lIQmhlV3h2WVdRZ1BUMDlJSFZ1WkdWbWFXNWxaRnh1SUNBZ0lDQWdJQ0FnSUQ4Z2RXNWtaV1pwYm1Wa1hHNGdJQ0FnSUNBZ0lDQWdPaUIwZVhCbGIyWWdjR0Y1Ykc5aFpDQTlQVDBnWENKemRISnBibWRjSWx4dUlDQWdJQ0FnSUNBZ0lDQWdQeUJ3WVhsc2IyRmtYRzRnSUNBZ0lDQWdJQ0FnSUNBNklFcFRUMDR1YzNSeWFXNW5hV1o1S0hCaGVXeHZZV1FwTEZ4dUlDQWdJQ0FnYUdWaFpHVnljem9nZTF4dUlDQWdJQ0FnSUNBdUxpNW9aV0ZrWlhKekxGeHVJQ0FnSUNBZ0lDQXVMaTRvWVdOalpYTnpWRzlyWlc0Z1B5QjdJRUYxZEdodmNtbDZZWFJwYjI0NklHQkNaV0Z5WlhJZ0pIdGhZMk5sYzNOVWIydGxibjFnSUgwZ09pQjdmU2tzWEc0Z0lDQWdJQ0FnSUM0dUxpaHdZWGxzYjJGa0lDRTlQU0IxYm1SbFptbHVaV1FnSmlZZ2RIbHdaVzltSUhCaGVXeHZZV1FnSVQwOUlGd2ljM1J5YVc1blhDSmNiaUFnSUNBZ0lDQWdJQ0EvSUhzZ1hDSkRiMjUwWlc1MExWUjVjR1ZjSWpvZ1hDSmhjSEJzYVdOaGRHbHZiaTlxYzI5dVhDSWdmVnh1SUNBZ0lDQWdJQ0FnSURvZ2UzMHBMRnh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJR2gwZEhCelFXZGxiblE2SUc1bGR5Qm9kSFJ3Y3k1QloyVnVkQ2g3WEc0Z0lDQWdJQ0FnSUhKbGFtVmpkRlZ1WVhWMGFHOXlhWHBsWkRvZ0tISmxjMjlzZG1WTFpYbGpiRzloYTBselVISnZaSFZqZEdsdmJpaDBhR2x6TG1OdmJtWnBaeUJoY3lCaGJua3BLU3hjYmlBZ0lDQWdJSDBwTEZ4dUlDQWdJQ0FnZG1Gc2FXUmhkR1ZUZEdGMGRYTTZJQ2dwSUQwK0lIUnlkV1VzWEc0Z0lDQWdmU2s3WEc0Z0lDQWdhV1lnS0hKbGMzQnZibk5sTG5OMFlYUjFjeUFoUFQwZ2MzVmpZMlZ6YzBOdlpHVXBJSHRjYmlBZ0lDQWdJSFJvYVhNdWFHRnVaR3hsU0hSMGNGSmxjM0J2Ym5ObEtISmxjM0J2Ym5ObExDQnpkV05qWlhOelEyOWtaU2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCeVpYTndiMjV6WlR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2FHRnVaR3hsU0hSMGNGSmxjM0J2Ym5ObEtGeHVJQ0FnSUhKbGMzQnZibk5sT2lCaGJua3NYRzRnSUNBZ2MzVmpZMlZ6YzBOdlpHVTZJRzUxYldKbGNpeGNiaUFnSUNCbGNuSnZjazF6Wno4NklITjBjbWx1WjF4dUlDQXBPaUIyYjJsa0lIdGNiaUFnSUNCamIyNXpkQ0J6ZEdGMGRYTWdQU0J5WlhOd2IyNXpaUzV6ZEdGMGRYTWdZWE1nYm5WdFltVnlPMXh1SUNBZ0lHTnZibk4wSUcxbGMzTmhaMlVnUFNCbGNuSnZjazF6WjF4dUlDQWdJQ0FnUHlCZ0pIdGxjbkp2Y2sxelozMDZJRVY0Y0dWamRHVmtJQ1I3YzNWalkyVnpjME52WkdWOUxDQnlaV05sYVhabFpDQWtlM0psYzNCdmJuTmxMbk4wWVhSMWMzMDZJQ1I3Y21WemNHOXVjMlV1YzNSaGRIVnpWR1Y0ZEgwdVlGeHVJQ0FnSUNBZ09pQmdSWGh3WldOMFpXUWdKSHR6ZFdOalpYTnpRMjlrWlgwc0lISmxZMlZwZG1Wa0lDUjdjbVZ6Y0c5dWMyVXVjM1JoZEhWemZUb2dKSHR5WlhOd2IyNXpaUzV6ZEdGMGRYTlVaWGgwZldBN1hHNGdJQ0FnYVdZZ0tITjBZWFIxY3lBOVBUMGdOREEwSUh4OElHMWxjM05oWjJVdWRHOU1iM2RsY2tOaGMyVW9LUzVwYm1Oc2RXUmxjeWhjSW01dmRDQm1iM1Z1WkZ3aUtTa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRTV2ZEVadmRXNWtSWEp5YjNJb2JXVnpjMkZuWlNrN1hHNGdJQ0FnZlZ4dUlDQWdJR2xtSUNoemRHRjBkWE1nUFQwOUlEUXdPU0I4ZkNCdFpYTnpZV2RsTG5SdlRHOTNaWEpEWVhObEtDa3VhVzVqYkhWa1pYTW9YQ0pqYjI1bWJHbGpkRndpS1NrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lFTnZibVpzYVdOMFJYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1SUNBZ0lHbG1JQ2h6ZEdGMGRYTWdQVDA5SURRd01Da2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRUpoWkZKbGNYVmxjM1JGY25KdmNpaHRaWE56WVdkbEtUdGNiaUFnSUNCOVhHNGdJQ0FnYVdZZ0tITjBZWFIxY3lBOVBUMGdOREF4SUh4OElITjBZWFIxY3lBOVBUMGdOREF6S1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1RtOTBSbTkxYm1SRmNuSnZjaWh0WlhOellXZGxLVHRjYmlBZ0lDQjlYRzRnSUNBZ2RHaHliM2NnYm1WM0lFbHVkR1Z5Ym1Gc1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lIMWNibHh1SUNCd2NtOTBaV04wWldRZ2NHRnljMlZGY25KdmNpaGxjbkp2Y2pvZ1JYSnliM0lwT2lCRmNuSnZjaUI3WEc0Z0lDQWdZMjl1YzNRZ2JXVnpjMkZuWlNBOUlHVnljbTl5TG0xbGMzTmhaMlVnZkh3Z1pYSnliM0l1Ym1GdFpTQjhmQ0JjSWxWdWEyNXZkMjRnWlhKeWIzSmNJanRjYmlBZ0lDQmpiMjV6ZENCc2IzZGxjazFsYzNOaFoyVWdQU0J0WlhOellXZGxMblJ2VEc5M1pYSkRZWE5sS0NrN1hHNWNiaUFnSUNCcFppQW9iRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aWJtOTBJR1p2ZFc1a1hDSXBJSHg4SUd4dmQyVnlUV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJalF3TkZ3aUtTa2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlHNWxkeUJPYjNSR2IzVnVaRVZ5Y205eUtHMWxjM05oWjJVcE8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaHNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKaGJISmxZV1I1SUdWNGFYTjBjMXdpS1NCOGZDQnNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKamIyNW1iR2xqZEZ3aUtTQjhmQ0JzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSTBNRGxjSWlrcElIdGNiaUFnSUNBZ0lISmxkSFZ5YmlCdVpYY2dRMjl1Wm14cFkzUkZjbkp2Y2lodFpYTnpZV2RsS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2JHOTNaWEpOWlhOellXZGxMbWx1WTJ4MVpHVnpLRndpYVc1MllXeHBaRndpS1NCOGZDQnNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENKaVlXUWdjbVZ4ZFdWemRGd2lLU0I4ZkNCc2IzZGxjazFsYzNOaFoyVXVhVzVqYkhWa1pYTW9YQ0kwTURCY0lpa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQnVaWGNnUW1Ga1VtVnhkV1Z6ZEVWeWNtOXlLRzFsYzNOaFoyVXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHbG1JQ2hzYjNkbGNrMWxjM05oWjJVdWFXNWpiSFZrWlhNb1hDSjFibUYxZEdodmNtbDZaV1JjSWlrZ2ZId2diRzkzWlhKTlpYTnpZV2RsTG1sdVkyeDFaR1Z6S0Z3aU5EQXhYQ0lwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYm1WM0lFNXZkRVp2ZFc1a1JYSnliM0lvYldWemMyRm5aU2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0d4dmQyVnlUV1Z6YzJGblpTNXBibU5zZFdSbGN5aGNJbVp2Y21KcFpHUmxibHdpS1NCOGZDQnNiM2RsY2sxbGMzTmhaMlV1YVc1amJIVmtaWE1vWENJME1ETmNJaWtwSUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhjZ1RtOTBSbTkxYm1SRmNuSnZjaWh0WlhOellXZGxLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb2JXVnpjMkZuWlNrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHVjRkSEpoWTNSVlZVbEVabkp2YlZKbGMzQnZibk5sS0hKbGMzQnZibk5sT2lCaGJua3BPaUJ6ZEhKcGJtY2dlMXh1SUNBZ0lHTnZibk4wSUd4dlkyRjBhVzl1SUQwZ2NtVnpjRzl1YzJVdWFHVmhaR1Z5Y3k1c2IyTmhkR2x2YmlCaGN5QnpkSEpwYm1jZ2ZDQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2FXWWdLQ0ZzYjJOaGRHbHZiaWtnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQWdJRndpUzJWNVkyeHZZV3NnY21WemNHOXVjMlVnWkdsa0lHNXZkQ0JwYm1Oc2RXUmxJR0VnYkc5allYUnBiMjRnYUdWaFpHVnlYQ0pjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCc2IyTmhkR2x2Ymk1emNHeHBkQ2hjSWk5Y0lpa3VjRzl3S0NrZ1B6OGdYQ0pjSWp0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ2NHRnljMlZLYzI5dVVtVnpjRzl1YzJVOFZENG9aR0YwWVRvZ2RXNXJibTkzYmlrNklGUWdmQ0IxYm1SbFptbHVaV1FnZTF4dUlDQWdJR2xtSUNoMGVYQmxiMllnWkdGMFlTQTlQVDBnWENKemRISnBibWRjSWlrZ2UxeHVJQ0FnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJRXBUVDA0dWNHRnljMlVvWkdGMFlTa2dZWE1nVkR0Y2JpQWdJQ0FnSUgwZ1kyRjBZMmdnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnZFc1a1pXWnBibVZrTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z1pHRjBZU0JoY3lCVU8xeHVJQ0I5WEc1OVhHNGlYWDA9Il19
|
|
@@ -26,5 +26,5 @@ __exportStar(require("./KeycloakRealmService.cjs"), exports);
|
|
|
26
26
|
__exportStar(require("./KeycloakRoleService.cjs"), exports);
|
|
27
27
|
__exportStar(require("./KeycloakService.cjs"), exports);
|
|
28
28
|
__exportStar(require("./KeycloakUserService.cjs"), exports);
|
|
29
|
-
//# sourceMappingURL=
|
|
30
|
-
//# sourceMappingURL=
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMva2V5Y2xvYWsvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILHlDQUFzQztBQUN0QywyQ0FBd0M7QUFDeEMscURBQWtEO0FBQ2xELDBDQUF1QztBQUN2Qyx5Q0FBc0M7QUFDdEMscUNBQWtDO0FBQ2xDLHlDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMva2V5Y2xvYWsvc2VydmljZXNcbiAqIEBzdW1tYXJ5IEtleWNsb2FrIHByb3Zpc2lvbmluZyBzZXJ2aWNlcy5cbiAqIEBkZXNjcmlwdGlvbiBSZS1leHBvcnRzIHRoZSBvcmNoZXN0cmF0b3IgYW5kIGxvd2VyLWxldmVsIHNlcnZpY2VzIHVzZWQgdG8gbWFuYWdlIHJlYWxtcywgcm9sZXMsIGNsaWVudHMsIHVzZXJzLCBpZGVudGl0eSBwcm92aWRlcnMsIGFuZCBhY2Nlc3MgdG9rZW5zLlxuICovXG5leHBvcnQgKiBmcm9tIFwiLi9LZXljbG9ha0F1dGhTZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9LZXljbG9ha0NsaWVudFNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0tleWNsb2FrSWRlbnRpdHlQcm92aWRlclNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0tleWNsb2FrUmVhbG1TZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9LZXljbG9ha1JvbGVTZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9LZXljbG9ha1NlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0tleWNsb2FrVXNlclNlcnZpY2VcIjtcbiJdfQ==
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7R0FJRztBQUNILDJEQUF5QztBQUN6Qyw2REFBMkM7QUFDM0MsdUVBQXFEO0FBQ3JELDREQUEwQztBQUMxQywyREFBeUM7QUFDekMsdURBQXFDO0FBQ3JDLDJEQUF5QztBQUN6Qyw4bUNBQThtQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMva2V5Y2xvYWsvc2VydmljZXNcbiAqIEBzdW1tYXJ5IEtleWNsb2FrIHByb3Zpc2lvbmluZyBzZXJ2aWNlcy5cbiAqIEBkZXNjcmlwdGlvbiBSZS1leHBvcnRzIHRoZSBvcmNoZXN0cmF0b3IgYW5kIGxvd2VyLWxldmVsIHNlcnZpY2VzIHVzZWQgdG8gbWFuYWdlIHJlYWxtcywgcm9sZXMsIGNsaWVudHMsIHVzZXJzLCBpZGVudGl0eSBwcm92aWRlcnMsIGFuZCBhY2Nlc3MgdG9rZW5zLlxuICovXG5leHBvcnQgKiBmcm9tIFwiLi9LZXljbG9ha0F1dGhTZXJ2aWNlLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9LZXljbG9ha0NsaWVudFNlcnZpY2UuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0tleWNsb2FrSWRlbnRpdHlQcm92aWRlclNlcnZpY2UuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0tleWNsb2FrUmVhbG1TZXJ2aWNlLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9LZXljbG9ha1JvbGVTZXJ2aWNlLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9LZXljbG9ha1NlcnZpY2UuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL0tleWNsb2FrVXNlclNlcnZpY2UuanNcIjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWFXNWtaWGd1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdmEyVjVZMnh2WVdzdmMyVnlkbWxqWlhNdmFXNWtaWGd1ZEhNaVhTd2libUZ0WlhNaU9sdGRMQ0p0WVhCd2FXNW5jeUk2SWtGQlFVRTdPenM3UjBGSlJ6dEJRVU5JTEhsRFFVRnpRenRCUVVOMFF5d3lRMEZCZDBNN1FVRkRlRU1zY1VSQlFXdEVPMEZCUTJ4RUxEQkRRVUYxUXp0QlFVTjJReXg1UTBGQmMwTTdRVUZEZEVNc2NVTkJRV3RETzBGQlEyeERMSGxEUVVGelF5SXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJaThxS2x4dUlDb2dRRzF2WkhWc1pTQnBiblJsWjNKaGRHbHZibk12YTJWNVkyeHZZV3N2YzJWeWRtbGpaWE5jYmlBcUlFQnpkVzF0WVhKNUlFdGxlV05zYjJGcklIQnliM1pwYzJsdmJtbHVaeUJ6WlhKMmFXTmxjeTVjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJTWlMxbGVIQnZjblJ6SUhSb1pTQnZjbU5vWlhOMGNtRjBiM0lnWVc1a0lHeHZkMlZ5TFd4bGRtVnNJSE5sY25acFkyVnpJSFZ6WldRZ2RHOGdiV0Z1WVdkbElISmxZV3h0Y3l3Z2NtOXNaWE1zSUdOc2FXVnVkSE1zSUhWelpYSnpMQ0JwWkdWdWRHbDBlU0J3Y205MmFXUmxjbk1zSUdGdVpDQmhZMk5sYzNNZ2RHOXJaVzV6TGx4dUlDb3ZYRzVsZUhCdmNuUWdLaUJtY205dElGd2lMaTlMWlhsamJHOWhhMEYxZEdoVFpYSjJhV05sWENJN1hHNWxlSEJ2Y25RZ0tpQm1jbTl0SUZ3aUxpOUxaWGxqYkc5aGEwTnNhV1Z1ZEZObGNuWnBZMlZjSWp0Y2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwwdGxlV05zYjJGclNXUmxiblJwZEhsUWNtOTJhV1JsY2xObGNuWnBZMlZjSWp0Y2JtVjRjRzl5ZENBcUlHWnliMjBnWENJdUwwdGxlV05zYjJGclVtVmhiRzFUWlhKMmFXTmxYQ0k3WEc1bGVIQnZjblFnS2lCbWNtOXRJRndpTGk5TFpYbGpiRzloYTFKdmJHVlRaWEoyYVdObFhDSTdYRzVsZUhCdmNuUWdLaUJtY205dElGd2lMaTlMWlhsamJHOWhhMU5sY25acFkyVmNJanRjYm1WNGNHOXlkQ0FxSUdaeWIyMGdYQ0l1TDB0bGVXTnNiMkZyVlhObGNsTmxjblpwWTJWY0lqdGNiaUpkZlE9PSJdfQ==
|