@decaf-ts/integrations 0.5.1 → 0.6.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/dist/integrations.cjs +2 -2087
- package/dist/integrations.cjs.map +1 -0
- package/dist/integrations.js +2 -2356
- package/dist/integrations.js.map +1 -0
- package/docker/keycloak-broker-compose.yml +128 -0
- package/docker/traefik-broker.yml +51 -0
- package/eslint.config.js +1 -0
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/azure/AzureBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/azure/index.cjs +2 -2
- package/lib/cjs/blob/azure/index.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobErrors.cjs +2 -2
- package/lib/cjs/blob/core/BlobErrors.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobKey.cjs +2 -2
- package/lib/cjs/blob/core/BlobKey.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobStoreFactory.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreFactory.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/core/BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobTypes.cjs +2 -2
- package/lib/cjs/blob/core/BlobTypes.cjs.map +1 -0
- package/lib/cjs/blob/core/BlobValue.cjs +2 -2
- package/lib/cjs/blob/core/BlobValue.cjs.map +1 -0
- package/lib/cjs/blob/core/index.cjs +2 -2
- package/lib/cjs/blob/core/index.cjs.map +1 -0
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/gcp/index.cjs +2 -2
- package/lib/cjs/blob/gcp/index.cjs.map +1 -0
- package/lib/cjs/blob/index.cjs +2 -2
- package/lib/cjs/blob/index.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/IpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/LocalJsonIpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/MemoryIpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs +2 -2
- package/lib/cjs/blob/ipfs/PostgresIpfsKeyIndex.cjs.map +1 -0
- package/lib/cjs/blob/ipfs/index.cjs +2 -2
- package/lib/cjs/blob/ipfs/index.cjs.map +1 -0
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/local/index.cjs +2 -2
- package/lib/cjs/blob/local/index.cjs.map +1 -0
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/memory/index.cjs +2 -2
- package/lib/cjs/blob/memory/index.cjs.map +1 -0
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobStoreService.cjs.map +1 -0
- package/lib/cjs/blob/s3/index.cjs +2 -2
- package/lib/cjs/blob/s3/index.cjs.map +1 -0
- package/lib/cjs/docker/DockerComposeService.cjs +2 -2
- package/lib/cjs/docker/DockerComposeService.cjs.map +1 -0
- package/lib/cjs/docker/index.cjs +2 -2
- package/lib/cjs/docker/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/constants.cjs +2 -2
- package/lib/cjs/feature-flags/constants.cjs.map +1 -0
- package/lib/cjs/feature-flags/decorators.cjs +2 -2
- package/lib/cjs/feature-flags/decorators.cjs.map +1 -0
- package/lib/cjs/feature-flags/environment.cjs +2 -2
- package/lib/cjs/feature-flags/environment.cjs.map +1 -0
- package/lib/cjs/feature-flags/index.cjs +2 -2
- package/lib/cjs/feature-flags/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlag.model.cjs.map +1 -0
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs +2 -2
- package/lib/cjs/feature-flags/models/FeatureFlagAccess.model.cjs.map +1 -0
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs +2 -2
- package/lib/cjs/feature-flags/readers/FeatureFlagReader.cjs.map +1 -0
- package/lib/cjs/feature-flags/readers/index.cjs +2 -2
- package/lib/cjs/feature-flags/readers/index.cjs.map +1 -0
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs +2 -2
- package/lib/cjs/feature-flags/services/FeatureFlag.service.cjs.map +1 -0
- package/lib/cjs/feature-flags/types.cjs +2 -2
- package/lib/cjs/feature-flags/types.cjs.map +1 -0
- package/lib/cjs/feature-flags/utils.cjs +2 -2
- package/lib/cjs/feature-flags/utils.cjs.map +1 -0
- package/lib/cjs/graph/engine/constants.cjs +2 -2
- package/lib/cjs/graph/engine/constants.cjs.map +1 -0
- package/lib/cjs/graph/engine/decorators.cjs +2 -2
- package/lib/cjs/graph/engine/decorators.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphBreakSignal.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphBreakSignal.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphCycleError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphExecutionError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphInputError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphLoopLimitError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPinningError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphPortError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphStoreError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs +2 -2
- package/lib/cjs/graph/engine/errors/GraphTopologyError.cjs.map +1 -0
- package/lib/cjs/graph/engine/errors/index.cjs +2 -2
- package/lib/cjs/graph/engine/errors/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEvent.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventEmitter.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionEventFactory.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs +2 -2
- package/lib/cjs/graph/engine/events/GraphExecutionObserver.cjs.map +1 -0
- package/lib/cjs/graph/engine/events/index.cjs +2 -2
- package/lib/cjs/graph/engine/events/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs +5 -3
- package/lib/cjs/graph/engine/execution/BreakGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/execution/CodeSandboxEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionContext.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionEngine.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionFrame.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphExecutionResult.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/GraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/LogGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/execution/SwitchGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/execution/index.cjs +2 -2
- package/lib/cjs/graph/engine/execution/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/index.cjs +2 -2
- package/lib/cjs/graph/engine/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/ConditionExpressionEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs +3 -3
- package/lib/cjs/graph/engine/loops/ForeachGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs +2 -2
- package/lib/cjs/graph/engine/loops/GraphConditionEvaluator.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs +2 -2
- package/lib/cjs/graph/engine/loops/GraphLoopExecutionContext.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/UntilGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs +2 -2
- package/lib/cjs/graph/engine/loops/WhileGraphNodeExecutor.cjs.map +1 -0
- package/lib/cjs/graph/engine/loops/index.cjs +2 -2
- package/lib/cjs/graph/engine/loops/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningDependencyResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningMetadata.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningPolicy.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/GraphPinningService.cjs.map +1 -0
- package/lib/cjs/graph/engine/pinning/index.cjs +2 -2
- package/lib/cjs/graph/engine/pinning/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlan.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanEdge.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanLayer.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanNode.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphExecutionPlanner.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphRelationResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs +2 -2
- package/lib/cjs/graph/engine/planning/GraphTopology.cjs.map +1 -0
- package/lib/cjs/graph/engine/planning/index.cjs +2 -2
- package/lib/cjs/graph/engine/planning/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorRegistry.cjs.map +1 -0
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs +2 -2
- package/lib/cjs/graph/engine/registry/GraphNodeExecutorResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/registry/index.cjs +2 -2
- package/lib/cjs/graph/engine/registry/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/GraphExecutionSnapshotMapper.cjs.map +1 -0
- package/lib/cjs/graph/engine/snapshots/index.cjs +2 -2
- package/lib/cjs/graph/engine/snapshots/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphCachedValue.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueKey.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStore.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/GraphValueStoreAdapter.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs +2 -2
- package/lib/cjs/graph/engine/store/InMemoryGraphValueStoreAdapter.cjs.map +1 -0
- package/lib/cjs/graph/engine/store/index.cjs +2 -2
- package/lib/cjs/graph/engine/store/index.cjs.map +1 -0
- package/lib/cjs/graph/engine/types.cjs +2 -2
- package/lib/cjs/graph/engine/types.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphDefinitionValidator.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphPortSchemaResolver.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs +2 -2
- package/lib/cjs/graph/engine/validation/GraphValueValidator.cjs.map +1 -0
- package/lib/cjs/graph/engine/validation/index.cjs +2 -2
- package/lib/cjs/graph/engine/validation/index.cjs.map +1 -0
- package/lib/cjs/graph/index.cjs +2 -2
- package/lib/cjs/graph/index.cjs.map +1 -0
- package/lib/cjs/graph/shared/constants.cjs +2 -2
- package/lib/cjs/graph/shared/constants.cjs.map +1 -0
- package/lib/cjs/graph/shared/index.cjs +2 -2
- package/lib/cjs/graph/shared/index.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/agent.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/agent.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/base.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/base.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/category-styles.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/category-styles.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/flow-control.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/flow-control.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/index.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/index.cjs.map +1 -0
- package/lib/cjs/graph/shared/nodes/triggers.cjs +2 -2
- package/lib/cjs/graph/shared/nodes/triggers.cjs.map +1 -0
- package/lib/cjs/graph/shared/types.cjs +2 -2
- package/lib/cjs/graph/shared/types.cjs.map +1 -0
- package/lib/cjs/index.cjs +5 -5
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/keycloak/broker.cjs +22 -0
- package/lib/cjs/keycloak/broker.cjs.map +1 -0
- package/lib/cjs/keycloak/index.cjs +3 -2
- package/lib/cjs/keycloak/index.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakAuthService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakClientService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs +71 -2
- package/lib/cjs/keycloak/services/KeycloakIdentityProviderService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRealmService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakRoleService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakService.cjs +6 -2
- package/lib/cjs/keycloak/services/KeycloakService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs +2 -2
- package/lib/cjs/keycloak/services/KeycloakUserService.cjs.map +1 -0
- package/lib/cjs/keycloak/services/index.cjs +2 -2
- package/lib/cjs/keycloak/services/index.cjs.map +1 -0
- package/lib/cjs/keycloak/services/runtime.cjs +2 -2
- package/lib/cjs/keycloak/services/runtime.cjs.map +1 -0
- package/lib/cjs/keycloak/types.cjs +2 -2
- package/lib/cjs/keycloak/types.cjs.map +1 -0
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilder.cjs.map +1 -0
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs +2 -2
- package/lib/cjs/kibana/builders/KibanaIndexBuilderCollection.cjs.map +1 -0
- package/lib/cjs/kibana/builders/index.cjs +2 -2
- package/lib/cjs/kibana/builders/index.cjs.map +1 -0
- package/lib/cjs/kibana/helpers.cjs +2 -2
- package/lib/cjs/kibana/helpers.cjs.map +1 -0
- package/lib/cjs/kibana/index.cjs +2 -2
- package/lib/cjs/kibana/index.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaAuthService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaAuthService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDashboardService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaDataViewService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaRoleService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaRoleService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaSpaceService.cjs.map +1 -0
- package/lib/cjs/kibana/services/KibanaUserService.cjs +2 -2
- package/lib/cjs/kibana/services/KibanaUserService.cjs.map +1 -0
- package/lib/cjs/kibana/services/index.cjs +2 -2
- package/lib/cjs/kibana/services/index.cjs.map +1 -0
- package/lib/cjs/kibana/services/runtime.cjs +2 -2
- package/lib/cjs/kibana/services/runtime.cjs.map +1 -0
- package/lib/cjs/kibana/types.cjs +2 -2
- package/lib/cjs/kibana/types.cjs.map +1 -0
- package/lib/cjs/loader/ObjectLoader.cjs +2 -2
- package/lib/cjs/loader/ObjectLoader.cjs.map +1 -0
- package/lib/cjs/loader/families.cjs +2 -2
- package/lib/cjs/loader/families.cjs.map +1 -0
- package/lib/cjs/loader/index.cjs +2 -2
- package/lib/cjs/loader/index.cjs.map +1 -0
- package/lib/cjs/loader/types.cjs +2 -2
- package/lib/cjs/loader/types.cjs.map +1 -0
- package/lib/cjs/namespaces/index.cjs +2 -2
- package/lib/cjs/namespaces/index.cjs.map +1 -0
- package/lib/cjs/namespaces/models/authorization-model.cjs +2 -2
- package/lib/cjs/namespaces/models/authorization-model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/effective-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/effective-permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/group-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/group.model.cjs +2 -2
- package/lib/cjs/namespaces/models/group.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/index.cjs +2 -2
- package/lib/cjs/namespaces/models/index.cjs.map +1 -0
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs +2 -2
- package/lib/cjs/namespaces/models/inheritance-block.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-closure.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit-profile.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/org-unit.model.cjs +2 -2
- package/lib/cjs/namespaces/models/org-unit.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/principal.model.cjs +2 -2
- package/lib/cjs/namespaces/models/principal.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/protected-resource.model.cjs +2 -2
- package/lib/cjs/namespaces/models/protected-resource.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/resource-grant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/resource-grant.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role-assignment.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-assignment.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role-permission.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role-permission.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/role.model.cjs +2 -2
- package/lib/cjs/namespaces/models/role.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/storage-binding.model.cjs +2 -2
- package/lib/cjs/namespaces/models/storage-binding.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-membership.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant-profile.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/tenant.model.cjs +2 -2
- package/lib/cjs/namespaces/models/tenant.model.cjs.map +1 -0
- package/lib/cjs/namespaces/models/user.model.cjs +2 -2
- package/lib/cjs/namespaces/models/user.model.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.models.cjs.map +1 -0
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs +2 -2
- package/lib/cjs/namespaces/org-based-authorization-system.services.cjs.map +1 -0
- package/lib/cjs/namespaces/services/authz.service.cjs +2 -2
- package/lib/cjs/namespaces/services/authz.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/services/bootstrap.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/effective-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/effective-permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/group-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/group.service.cjs +2 -2
- package/lib/cjs/namespaces/services/group.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/index.cjs +2 -2
- package/lib/cjs/namespaces/services/index.cjs.map +1 -0
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs +2 -2
- package/lib/cjs/namespaces/services/inheritance-block.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-closure.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit-profile.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/org-unit.service.cjs +2 -2
- package/lib/cjs/namespaces/services/org-unit.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/principal.service.cjs +2 -2
- package/lib/cjs/namespaces/services/principal.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/protected-resource.service.cjs +2 -2
- package/lib/cjs/namespaces/services/protected-resource.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/resource-grant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-grant.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs +2 -2
- package/lib/cjs/namespaces/services/resource-lifecycle.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role-assignment.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-assignment.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role-permission.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role-permission.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/role.service.cjs +2 -2
- package/lib/cjs/namespaces/services/role.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/storage-binding.service.cjs +2 -2
- package/lib/cjs/namespaces/services/storage-binding.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/system-management.service.cjs +2 -2
- package/lib/cjs/namespaces/services/system-management.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-membership.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant-profile.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/tenant.service.cjs +2 -2
- package/lib/cjs/namespaces/services/tenant.service.cjs.map +1 -0
- package/lib/cjs/namespaces/services/user.service.cjs +2 -2
- package/lib/cjs/namespaces/services/user.service.cjs.map +1 -0
- package/lib/cjs/namespaces/types.cjs +2 -2
- package/lib/cjs/namespaces/types.cjs.map +1 -0
- package/lib/cjs/namespaces/utils.cjs +2 -2
- package/lib/cjs/namespaces/utils.cjs.map +1 -0
- package/lib/cjs/nest/decorators.cjs +2 -2
- package/lib/cjs/nest/decorators.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutionController.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionController.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionModule.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutionResultModel.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs +2 -2
- package/lib/cjs/nest/graph/GraphExecutorRegistryFactory.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphResultService.cjs +2 -2
- package/lib/cjs/nest/graph/GraphResultService.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs +2 -2
- package/lib/cjs/nest/graph/GraphWorkflowModel.cjs.map +1 -0
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs +2 -2
- package/lib/cjs/nest/graph/GraphWorkflowService.cjs.map +1 -0
- package/lib/cjs/nest/graph/index.cjs +2 -2
- package/lib/cjs/nest/graph/index.cjs.map +1 -0
- package/lib/cjs/nest/graph/main.cjs +2 -2
- package/lib/cjs/nest/graph/main.cjs.map +1 -0
- package/lib/cjs/nest/index.cjs +2 -2
- package/lib/cjs/nest/index.cjs.map +1 -0
- package/lib/cjs/nest/keycloakAuthHandler.cjs +2 -2
- package/lib/cjs/nest/keycloakAuthHandler.cjs.map +1 -0
- package/lib/cjs/nest/keycloakModule.cjs +2 -2
- package/lib/cjs/nest/keycloakModule.cjs.map +1 -0
- package/lib/cjs/nest/logging.cjs +2 -2
- package/lib/cjs/nest/logging.cjs.map +1 -0
- package/lib/cjs/nest/types.cjs +2 -2
- package/lib/cjs/nest/types.cjs.map +1 -0
- package/lib/cjs/nest/utils.cjs +2 -2
- package/lib/cjs/nest/utils.cjs.map +1 -0
- package/lib/cjs/plugins/contract.cjs +2 -2
- package/lib/cjs/plugins/contract.cjs.map +1 -0
- package/lib/cjs/plugins/index.cjs +2 -2
- package/lib/cjs/plugins/index.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/host.cjs +2 -2
- package/lib/cjs/plugins/kibana/host.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/index.cjs +2 -2
- package/lib/cjs/plugins/kibana/index.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/installer.cjs +2 -2
- package/lib/cjs/plugins/kibana/installer.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/manifest.cjs +2 -2
- package/lib/cjs/plugins/kibana/manifest.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/templates.cjs +2 -2
- package/lib/cjs/plugins/kibana/templates.cjs.map +1 -0
- package/lib/cjs/plugins/kibana/types.cjs +2 -2
- package/lib/cjs/plugins/kibana/types.cjs.map +1 -0
- package/lib/cjs/plugins/superset/host.cjs +2 -2
- package/lib/cjs/plugins/superset/host.cjs.map +1 -0
- package/lib/cjs/plugins/superset/index.cjs +2 -2
- package/lib/cjs/plugins/superset/index.cjs.map +1 -0
- package/lib/cjs/plugins/superset/installer.cjs +2 -2
- package/lib/cjs/plugins/superset/installer.cjs.map +1 -0
- package/lib/cjs/plugins/superset/manifest.cjs +2 -2
- package/lib/cjs/plugins/superset/manifest.cjs.map +1 -0
- package/lib/cjs/plugins/superset/templates.cjs +2 -2
- package/lib/cjs/plugins/superset/templates.cjs.map +1 -0
- package/lib/cjs/plugins/superset/types.cjs +2 -2
- package/lib/cjs/plugins/superset/types.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretService.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/aws/index.cjs +2 -2
- package/lib/cjs/secrets/aws/index.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureKeyVaultSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/azure/index.cjs +2 -2
- package/lib/cjs/secrets/azure/index.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretErrors.cjs +2 -2
- package/lib/cjs/secrets/core/SecretErrors.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretName.cjs +2 -2
- package/lib/cjs/secrets/core/SecretName.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretReference.cjs +2 -2
- package/lib/cjs/secrets/core/SecretReference.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretSerialization.cjs +2 -2
- package/lib/cjs/secrets/core/SecretSerialization.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretService.cjs +2 -2
- package/lib/cjs/secrets/core/SecretService.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretTypes.cjs +2 -2
- package/lib/cjs/secrets/core/SecretTypes.cjs.map +1 -0
- package/lib/cjs/secrets/core/index.cjs +2 -2
- package/lib/cjs/secrets/core/index.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerService.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretManagerServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/index.cjs +2 -2
- package/lib/cjs/secrets/gcp/index.cjs.map +1 -0
- package/lib/cjs/secrets/index.cjs +2 -2
- package/lib/cjs/secrets/index.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretCrypto.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretService.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/model/Secret.cjs +2 -2
- package/lib/cjs/secrets/model/Secret.cjs.map +1 -0
- package/lib/cjs/secrets/model/index.cjs +2 -2
- package/lib/cjs/secrets/model/index.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/onepassword/index.cjs +2 -2
- package/lib/cjs/secrets/onepassword/index.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretService.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/vault/index.cjs +2 -2
- package/lib/cjs/secrets/vault/index.cjs.map +1 -0
- package/lib/cjs/shared/runtime.cjs +2 -2
- package/lib/cjs/shared/runtime.cjs.map +1 -0
- package/lib/cjs/utils.cjs +2 -2
- package/lib/cjs/utils.cjs.map +1 -0
- package/lib/esm/blob/azure/AzureBlobStoreService.js +1 -1
- package/lib/esm/blob/azure/AzureBlobStoreService.js.map +1 -0
- package/lib/esm/blob/azure/index.js +1 -1
- package/lib/esm/blob/azure/index.js.map +1 -0
- package/lib/esm/blob/core/BlobErrors.js +1 -1
- package/lib/esm/blob/core/BlobErrors.js.map +1 -0
- package/lib/esm/blob/core/BlobKey.js +1 -1
- package/lib/esm/blob/core/BlobKey.js.map +1 -0
- package/lib/esm/blob/core/BlobStoreFactory.js +1 -1
- package/lib/esm/blob/core/BlobStoreFactory.js.map +1 -0
- package/lib/esm/blob/core/BlobStoreService.js +1 -1
- package/lib/esm/blob/core/BlobStoreService.js.map +1 -0
- package/lib/esm/blob/core/BlobTypes.js +1 -1
- package/lib/esm/blob/core/BlobTypes.js.map +1 -0
- package/lib/esm/blob/core/BlobValue.js +1 -1
- package/lib/esm/blob/core/BlobValue.js.map +1 -0
- package/lib/esm/blob/core/index.js +1 -1
- package/lib/esm/blob/core/index.js.map +1 -0
- package/lib/esm/blob/gcp/GcsBlobStoreService.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobStoreService.js.map +1 -0
- package/lib/esm/blob/gcp/index.js +1 -1
- package/lib/esm/blob/gcp/index.js.map +1 -0
- package/lib/esm/blob/index.js +1 -1
- package/lib/esm/blob/index.js.map +1 -0
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js +1 -1
- package/lib/esm/blob/ipfs/IpfsBlobStoreService.js.map +1 -0
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/IpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/LocalJsonIpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/MemoryIpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js +1 -1
- package/lib/esm/blob/ipfs/PostgresIpfsKeyIndex.js.map +1 -0
- package/lib/esm/blob/ipfs/index.js +1 -1
- package/lib/esm/blob/ipfs/index.js.map +1 -0
- package/lib/esm/blob/local/LocalBlobStoreService.js +1 -1
- package/lib/esm/blob/local/LocalBlobStoreService.js.map +1 -0
- package/lib/esm/blob/local/index.js +1 -1
- package/lib/esm/blob/local/index.js.map +1 -0
- package/lib/esm/blob/memory/MemoryBlobStoreService.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobStoreService.js.map +1 -0
- package/lib/esm/blob/memory/index.js +1 -1
- package/lib/esm/blob/memory/index.js.map +1 -0
- package/lib/esm/blob/s3/MinioBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/MinioBlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/R2BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/R2BlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/S3BlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3BlobStoreService.js.map +1 -0
- package/lib/esm/blob/s3/index.js +1 -1
- package/lib/esm/blob/s3/index.js.map +1 -0
- package/lib/esm/docker/DockerComposeService.js +1 -1
- package/lib/esm/docker/DockerComposeService.js.map +1 -0
- package/lib/esm/docker/index.js +1 -1
- package/lib/esm/docker/index.js.map +1 -0
- package/lib/esm/feature-flags/constants.js +1 -1
- package/lib/esm/feature-flags/constants.js.map +1 -0
- package/lib/esm/feature-flags/decorators.js +1 -1
- package/lib/esm/feature-flags/decorators.js.map +1 -0
- package/lib/esm/feature-flags/environment.js +1 -1
- package/lib/esm/feature-flags/environment.js.map +1 -0
- package/lib/esm/feature-flags/index.js +1 -1
- package/lib/esm/feature-flags/index.js.map +1 -0
- package/lib/esm/feature-flags/models/FeatureFlag.model.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlag.model.js.map +1 -0
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js +1 -1
- package/lib/esm/feature-flags/models/FeatureFlagAccess.model.js.map +1 -0
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js +1 -1
- package/lib/esm/feature-flags/readers/FeatureFlagReader.js.map +1 -0
- package/lib/esm/feature-flags/readers/index.js +1 -1
- package/lib/esm/feature-flags/readers/index.js.map +1 -0
- package/lib/esm/feature-flags/services/FeatureFlag.service.js +1 -1
- package/lib/esm/feature-flags/services/FeatureFlag.service.js.map +1 -0
- package/lib/esm/feature-flags/types.js +1 -1
- package/lib/esm/feature-flags/types.js.map +1 -0
- package/lib/esm/feature-flags/utils.js +1 -1
- package/lib/esm/feature-flags/utils.js.map +1 -0
- package/lib/esm/graph/engine/constants.js +1 -1
- package/lib/esm/graph/engine/constants.js.map +1 -0
- package/lib/esm/graph/engine/decorators.js +1 -1
- package/lib/esm/graph/engine/decorators.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphBreakSignal.js +1 -1
- package/lib/esm/graph/engine/errors/GraphBreakSignal.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphCycleError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphCycleError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphExecutionError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphExecutionError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphInputError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphInputError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphLoopLimitError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphPinningError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPinningError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphPortError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphPortError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphStoreError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphStoreError.js.map +1 -0
- package/lib/esm/graph/engine/errors/GraphTopologyError.js +1 -1
- package/lib/esm/graph/engine/errors/GraphTopologyError.js.map +1 -0
- package/lib/esm/graph/engine/errors/index.js +1 -1
- package/lib/esm/graph/engine/errors/index.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEvent.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventEmitter.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionEventFactory.js.map +1 -0
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js +1 -1
- package/lib/esm/graph/engine/events/GraphExecutionObserver.js.map +1 -0
- package/lib/esm/graph/engine/events/index.js +1 -1
- package/lib/esm/graph/engine/events/index.js.map +1 -0
- package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js +4 -2
- package/lib/esm/graph/engine/execution/BreakGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/CodeGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js +1 -1
- package/lib/esm/graph/engine/execution/CodeSandboxEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionContext.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionEngine.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionFrame.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js +1 -1
- package/lib/esm/graph/engine/execution/GraphExecutionResult.js.map +1 -0
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/GraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js +1 -1
- package/lib/esm/graph/engine/execution/IsolatedVmCodeSandboxEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/LogGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/execution/SwitchGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/execution/index.js +1 -1
- package/lib/esm/graph/engine/execution/index.js.map +1 -0
- package/lib/esm/graph/engine/index.js +1 -1
- package/lib/esm/graph/engine/index.js.map +1 -0
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/ConditionExpressionEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js +2 -2
- package/lib/esm/graph/engine/loops/ForeachGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js +1 -1
- package/lib/esm/graph/engine/loops/GraphConditionEvaluator.js.map +1 -0
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js +1 -1
- package/lib/esm/graph/engine/loops/GraphLoopExecutionContext.js.map +1 -0
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/UntilGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js +1 -1
- package/lib/esm/graph/engine/loops/WhileGraphNodeExecutor.js.map +1 -0
- package/lib/esm/graph/engine/loops/index.js +1 -1
- package/lib/esm/graph/engine/loops/index.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningDependencyResolver.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningMetadata.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningPolicy.js.map +1 -0
- package/lib/esm/graph/engine/pinning/GraphPinningService.js +1 -1
- package/lib/esm/graph/engine/pinning/GraphPinningService.js.map +1 -0
- package/lib/esm/graph/engine/pinning/index.js +1 -1
- package/lib/esm/graph/engine/pinning/index.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlan.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanEdge.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanLayer.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanNode.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js +1 -1
- package/lib/esm/graph/engine/planning/GraphExecutionPlanner.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js +1 -1
- package/lib/esm/graph/engine/planning/GraphRelationResolver.js.map +1 -0
- package/lib/esm/graph/engine/planning/GraphTopology.js +1 -1
- package/lib/esm/graph/engine/planning/GraphTopology.js.map +1 -0
- package/lib/esm/graph/engine/planning/index.js +1 -1
- package/lib/esm/graph/engine/planning/index.js.map +1 -0
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorRegistry.js.map +1 -0
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js +1 -1
- package/lib/esm/graph/engine/registry/GraphNodeExecutorResolver.js.map +1 -0
- package/lib/esm/graph/engine/registry/index.js +1 -1
- package/lib/esm/graph/engine/registry/index.js.map +1 -0
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js +1 -1
- package/lib/esm/graph/engine/snapshots/GraphExecutionSnapshotMapper.js.map +1 -0
- package/lib/esm/graph/engine/snapshots/index.js +1 -1
- package/lib/esm/graph/engine/snapshots/index.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphCachedValue.js +1 -1
- package/lib/esm/graph/engine/store/GraphCachedValue.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphValueKey.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueKey.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphValueStore.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStore.js.map +1 -0
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/GraphValueStoreAdapter.js.map +1 -0
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js +1 -1
- package/lib/esm/graph/engine/store/InMemoryGraphValueStoreAdapter.js.map +1 -0
- package/lib/esm/graph/engine/store/index.js +1 -1
- package/lib/esm/graph/engine/store/index.js.map +1 -0
- package/lib/esm/graph/engine/types.js +1 -1
- package/lib/esm/graph/engine/types.js.map +1 -0
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js +1 -1
- package/lib/esm/graph/engine/validation/GraphDefinitionValidator.js.map +1 -0
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js +1 -1
- package/lib/esm/graph/engine/validation/GraphPortSchemaResolver.js.map +1 -0
- package/lib/esm/graph/engine/validation/GraphValueValidator.js +1 -1
- package/lib/esm/graph/engine/validation/GraphValueValidator.js.map +1 -0
- package/lib/esm/graph/engine/validation/index.js +1 -1
- package/lib/esm/graph/engine/validation/index.js.map +1 -0
- package/lib/esm/graph/index.js +1 -1
- package/lib/esm/graph/index.js.map +1 -0
- package/lib/esm/graph/shared/constants.js +1 -1
- package/lib/esm/graph/shared/constants.js.map +1 -0
- package/lib/esm/graph/shared/index.js +1 -1
- package/lib/esm/graph/shared/index.js.map +1 -0
- package/lib/esm/graph/shared/nodes/agent.js +1 -1
- package/lib/esm/graph/shared/nodes/agent.js.map +1 -0
- package/lib/esm/graph/shared/nodes/base.js +1 -1
- package/lib/esm/graph/shared/nodes/base.js.map +1 -0
- package/lib/esm/graph/shared/nodes/category-styles.js +1 -1
- package/lib/esm/graph/shared/nodes/category-styles.js.map +1 -0
- package/lib/esm/graph/shared/nodes/flow-control.js +1 -1
- package/lib/esm/graph/shared/nodes/flow-control.js.map +1 -0
- package/lib/esm/graph/shared/nodes/index.js +1 -1
- package/lib/esm/graph/shared/nodes/index.js.map +1 -0
- package/lib/esm/graph/shared/nodes/triggers.js +1 -1
- package/lib/esm/graph/shared/nodes/triggers.js.map +1 -0
- package/lib/esm/graph/shared/types.js +1 -1
- package/lib/esm/graph/shared/types.js.map +1 -0
- package/lib/esm/index.js +4 -4
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/keycloak/broker.js +17 -0
- package/lib/esm/keycloak/broker.js.map +1 -0
- package/lib/esm/keycloak/index.js +2 -1
- package/lib/esm/keycloak/index.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakAuthService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakAuthService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakClientService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakClientService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js +69 -1
- package/lib/esm/keycloak/services/KeycloakIdentityProviderService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakRealmService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRealmService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakRoleService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakRoleService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakService.js +5 -1
- package/lib/esm/keycloak/services/KeycloakService.js.map +1 -0
- package/lib/esm/keycloak/services/KeycloakUserService.js +1 -1
- package/lib/esm/keycloak/services/KeycloakUserService.js.map +1 -0
- package/lib/esm/keycloak/services/index.js +1 -1
- package/lib/esm/keycloak/services/index.js.map +1 -0
- package/lib/esm/keycloak/services/runtime.js +1 -1
- package/lib/esm/keycloak/services/runtime.js.map +1 -0
- package/lib/esm/keycloak/types.js +1 -1
- package/lib/esm/keycloak/types.js.map +1 -0
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilder.js.map +1 -0
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js +1 -1
- package/lib/esm/kibana/builders/KibanaIndexBuilderCollection.js.map +1 -0
- package/lib/esm/kibana/builders/index.js +1 -1
- package/lib/esm/kibana/builders/index.js.map +1 -0
- package/lib/esm/kibana/helpers.js +1 -1
- package/lib/esm/kibana/helpers.js.map +1 -0
- package/lib/esm/kibana/index.js +1 -1
- package/lib/esm/kibana/index.js.map +1 -0
- package/lib/esm/kibana/services/KibanaAuthService.js +1 -1
- package/lib/esm/kibana/services/KibanaAuthService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaDashboardService.js +1 -1
- package/lib/esm/kibana/services/KibanaDashboardService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaDataViewService.js +1 -1
- package/lib/esm/kibana/services/KibanaDataViewService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaRoleService.js +1 -1
- package/lib/esm/kibana/services/KibanaRoleService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaService.js +1 -1
- package/lib/esm/kibana/services/KibanaService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaSpaceService.js +1 -1
- package/lib/esm/kibana/services/KibanaSpaceService.js.map +1 -0
- package/lib/esm/kibana/services/KibanaUserService.js +1 -1
- package/lib/esm/kibana/services/KibanaUserService.js.map +1 -0
- package/lib/esm/kibana/services/index.js +1 -1
- package/lib/esm/kibana/services/index.js.map +1 -0
- package/lib/esm/kibana/services/runtime.js +1 -1
- package/lib/esm/kibana/services/runtime.js.map +1 -0
- package/lib/esm/kibana/types.js +1 -1
- package/lib/esm/kibana/types.js.map +1 -0
- package/lib/esm/loader/ObjectLoader.js +1 -1
- package/lib/esm/loader/ObjectLoader.js.map +1 -0
- package/lib/esm/loader/families.js +1 -1
- package/lib/esm/loader/families.js.map +1 -0
- package/lib/esm/loader/index.js +1 -1
- package/lib/esm/loader/index.js.map +1 -0
- package/lib/esm/loader/types.js +1 -1
- package/lib/esm/loader/types.js.map +1 -0
- package/lib/esm/namespaces/index.js +1 -1
- package/lib/esm/namespaces/index.js.map +1 -0
- package/lib/esm/namespaces/models/authorization-model.js +1 -1
- package/lib/esm/namespaces/models/authorization-model.js.map +1 -0
- package/lib/esm/namespaces/models/effective-permission.model.js +1 -1
- package/lib/esm/namespaces/models/effective-permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/group-membership.model.js +1 -1
- package/lib/esm/namespaces/models/group-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/group.model.js +1 -1
- package/lib/esm/namespaces/models/group.model.js.map +1 -0
- package/lib/esm/namespaces/models/index.js +1 -1
- package/lib/esm/namespaces/models/index.js.map +1 -0
- package/lib/esm/namespaces/models/inheritance-block.model.js +1 -1
- package/lib/esm/namespaces/models/inheritance-block.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-closure.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-closure.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-membership.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit-profile.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit-profile.model.js.map +1 -0
- package/lib/esm/namespaces/models/org-unit.model.js +1 -1
- package/lib/esm/namespaces/models/org-unit.model.js.map +1 -0
- package/lib/esm/namespaces/models/permission.model.js +1 -1
- package/lib/esm/namespaces/models/permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/principal.model.js +1 -1
- package/lib/esm/namespaces/models/principal.model.js.map +1 -0
- package/lib/esm/namespaces/models/protected-resource.model.js +1 -1
- package/lib/esm/namespaces/models/protected-resource.model.js.map +1 -0
- package/lib/esm/namespaces/models/resource-grant.model.js +1 -1
- package/lib/esm/namespaces/models/resource-grant.model.js.map +1 -0
- package/lib/esm/namespaces/models/role-assignment.model.js +1 -1
- package/lib/esm/namespaces/models/role-assignment.model.js.map +1 -0
- package/lib/esm/namespaces/models/role-permission.model.js +1 -1
- package/lib/esm/namespaces/models/role-permission.model.js.map +1 -0
- package/lib/esm/namespaces/models/role.model.js +1 -1
- package/lib/esm/namespaces/models/role.model.js.map +1 -0
- package/lib/esm/namespaces/models/storage-binding.model.js +1 -1
- package/lib/esm/namespaces/models/storage-binding.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant-membership.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-membership.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant-profile.model.js +1 -1
- package/lib/esm/namespaces/models/tenant-profile.model.js.map +1 -0
- package/lib/esm/namespaces/models/tenant.model.js +1 -1
- package/lib/esm/namespaces/models/tenant.model.js.map +1 -0
- package/lib/esm/namespaces/models/user.model.js +1 -1
- package/lib/esm/namespaces/models/user.model.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.models.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.models.js.map +1 -0
- package/lib/esm/namespaces/org-based-authorization-system.services.js +1 -1
- package/lib/esm/namespaces/org-based-authorization-system.services.js.map +1 -0
- package/lib/esm/namespaces/services/authz.service.js +1 -1
- package/lib/esm/namespaces/services/authz.service.js.map +1 -0
- package/lib/esm/namespaces/services/bootstrap.service.js +1 -1
- package/lib/esm/namespaces/services/bootstrap.service.js.map +1 -0
- package/lib/esm/namespaces/services/effective-permission.service.js +1 -1
- package/lib/esm/namespaces/services/effective-permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/group-membership.service.js +1 -1
- package/lib/esm/namespaces/services/group-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/group.service.js +1 -1
- package/lib/esm/namespaces/services/group.service.js.map +1 -0
- package/lib/esm/namespaces/services/index.js +1 -1
- package/lib/esm/namespaces/services/index.js.map +1 -0
- package/lib/esm/namespaces/services/inheritance-block.service.js +1 -1
- package/lib/esm/namespaces/services/inheritance-block.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-closure.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-closure.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-membership.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit-profile.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit-profile.service.js.map +1 -0
- package/lib/esm/namespaces/services/org-unit.service.js +1 -1
- package/lib/esm/namespaces/services/org-unit.service.js.map +1 -0
- package/lib/esm/namespaces/services/permission.service.js +1 -1
- package/lib/esm/namespaces/services/permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/principal.service.js +1 -1
- package/lib/esm/namespaces/services/principal.service.js.map +1 -0
- package/lib/esm/namespaces/services/protected-resource.service.js +1 -1
- package/lib/esm/namespaces/services/protected-resource.service.js.map +1 -0
- package/lib/esm/namespaces/services/resource-grant.service.js +1 -1
- package/lib/esm/namespaces/services/resource-grant.service.js.map +1 -0
- package/lib/esm/namespaces/services/resource-lifecycle.service.js +1 -1
- package/lib/esm/namespaces/services/resource-lifecycle.service.js.map +1 -0
- package/lib/esm/namespaces/services/role-assignment.service.js +1 -1
- package/lib/esm/namespaces/services/role-assignment.service.js.map +1 -0
- package/lib/esm/namespaces/services/role-permission.service.js +1 -1
- package/lib/esm/namespaces/services/role-permission.service.js.map +1 -0
- package/lib/esm/namespaces/services/role.service.js +1 -1
- package/lib/esm/namespaces/services/role.service.js.map +1 -0
- package/lib/esm/namespaces/services/storage-binding.service.js +1 -1
- package/lib/esm/namespaces/services/storage-binding.service.js.map +1 -0
- package/lib/esm/namespaces/services/system-management.service.js +1 -1
- package/lib/esm/namespaces/services/system-management.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant-membership.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-membership.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant-profile.service.js +1 -1
- package/lib/esm/namespaces/services/tenant-profile.service.js.map +1 -0
- package/lib/esm/namespaces/services/tenant.service.js +1 -1
- package/lib/esm/namespaces/services/tenant.service.js.map +1 -0
- package/lib/esm/namespaces/services/user.service.js +1 -1
- package/lib/esm/namespaces/services/user.service.js.map +1 -0
- package/lib/esm/namespaces/types.js +1 -1
- package/lib/esm/namespaces/types.js.map +1 -0
- package/lib/esm/namespaces/utils.js +1 -1
- package/lib/esm/namespaces/utils.js.map +1 -0
- package/lib/esm/nest/decorators.js +1 -1
- package/lib/esm/nest/decorators.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutionController.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionController.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutionModule.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionModule.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutionResultModel.js +1 -1
- package/lib/esm/nest/graph/GraphExecutionResultModel.js.map +1 -0
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js +1 -1
- package/lib/esm/nest/graph/GraphExecutorRegistryFactory.js.map +1 -0
- package/lib/esm/nest/graph/GraphResultService.js +1 -1
- package/lib/esm/nest/graph/GraphResultService.js.map +1 -0
- package/lib/esm/nest/graph/GraphWorkflowModel.js +1 -1
- package/lib/esm/nest/graph/GraphWorkflowModel.js.map +1 -0
- package/lib/esm/nest/graph/GraphWorkflowService.js +1 -1
- package/lib/esm/nest/graph/GraphWorkflowService.js.map +1 -0
- package/lib/esm/nest/graph/index.js +1 -1
- package/lib/esm/nest/graph/index.js.map +1 -0
- package/lib/esm/nest/graph/main.js +1 -1
- package/lib/esm/nest/graph/main.js.map +1 -0
- package/lib/esm/nest/index.js +1 -1
- package/lib/esm/nest/index.js.map +1 -0
- package/lib/esm/nest/keycloakAuthHandler.js +1 -1
- package/lib/esm/nest/keycloakAuthHandler.js.map +1 -0
- package/lib/esm/nest/keycloakModule.js +1 -1
- package/lib/esm/nest/keycloakModule.js.map +1 -0
- package/lib/esm/nest/logging.js +1 -1
- package/lib/esm/nest/logging.js.map +1 -0
- package/lib/esm/nest/types.js +1 -1
- package/lib/esm/nest/types.js.map +1 -0
- package/lib/esm/nest/utils.js +1 -1
- package/lib/esm/nest/utils.js.map +1 -0
- package/lib/esm/plugins/contract.js +1 -1
- package/lib/esm/plugins/contract.js.map +1 -0
- package/lib/esm/plugins/index.js +1 -1
- package/lib/esm/plugins/index.js.map +1 -0
- package/lib/esm/plugins/kibana/host.js +1 -1
- package/lib/esm/plugins/kibana/host.js.map +1 -0
- package/lib/esm/plugins/kibana/index.js +1 -1
- package/lib/esm/plugins/kibana/index.js.map +1 -0
- package/lib/esm/plugins/kibana/installer.js +1 -1
- package/lib/esm/plugins/kibana/installer.js.map +1 -0
- package/lib/esm/plugins/kibana/manifest.js +1 -1
- package/lib/esm/plugins/kibana/manifest.js.map +1 -0
- package/lib/esm/plugins/kibana/templates.js +1 -1
- package/lib/esm/plugins/kibana/templates.js.map +1 -0
- package/lib/esm/plugins/kibana/types.js +1 -1
- package/lib/esm/plugins/kibana/types.js.map +1 -0
- package/lib/esm/plugins/superset/host.js +1 -1
- package/lib/esm/plugins/superset/host.js.map +1 -0
- package/lib/esm/plugins/superset/index.js +1 -1
- package/lib/esm/plugins/superset/index.js.map +1 -0
- package/lib/esm/plugins/superset/installer.js +1 -1
- package/lib/esm/plugins/superset/installer.js.map +1 -0
- package/lib/esm/plugins/superset/manifest.js +1 -1
- package/lib/esm/plugins/superset/manifest.js.map +1 -0
- package/lib/esm/plugins/superset/templates.js +1 -1
- package/lib/esm/plugins/superset/templates.js.map +1 -0
- package/lib/esm/plugins/superset/types.js +1 -1
- package/lib/esm/plugins/superset/types.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretService.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretService.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/aws/index.js +1 -1
- package/lib/esm/secrets/aws/index.js.map +1 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretService.js.map +1 -0
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/azure/AzureKeyVaultSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/azure/index.js +1 -1
- package/lib/esm/secrets/azure/index.js.map +1 -0
- package/lib/esm/secrets/core/SecretErrors.js +1 -1
- package/lib/esm/secrets/core/SecretErrors.js.map +1 -0
- package/lib/esm/secrets/core/SecretName.js +1 -1
- package/lib/esm/secrets/core/SecretName.js.map +1 -0
- package/lib/esm/secrets/core/SecretReference.js +1 -1
- package/lib/esm/secrets/core/SecretReference.js.map +1 -0
- package/lib/esm/secrets/core/SecretSerialization.js +1 -1
- package/lib/esm/secrets/core/SecretSerialization.js.map +1 -0
- package/lib/esm/secrets/core/SecretService.js +1 -1
- package/lib/esm/secrets/core/SecretService.js.map +1 -0
- package/lib/esm/secrets/core/SecretTypes.js +1 -1
- package/lib/esm/secrets/core/SecretTypes.js.map +1 -0
- package/lib/esm/secrets/core/index.js +1 -1
- package/lib/esm/secrets/core/index.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerService.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretManagerServiceConfig.js.map +1 -0
- package/lib/esm/secrets/gcp/index.js +1 -1
- package/lib/esm/secrets/gcp/index.js.map +1 -0
- package/lib/esm/secrets/index.js +1 -1
- package/lib/esm/secrets/index.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretCrypto.js +1 -1
- package/lib/esm/secrets/model/ModelSecretCrypto.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretService.js +1 -1
- package/lib/esm/secrets/model/ModelSecretService.js.map +1 -0
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/model/ModelSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/model/Secret.js +1 -1
- package/lib/esm/secrets/model/Secret.js.map +1 -0
- package/lib/esm/secrets/model/index.js +1 -1
- package/lib/esm/secrets/model/index.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretService.js.map +1 -0
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/onepassword/index.js +1 -1
- package/lib/esm/secrets/onepassword/index.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretService.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretService.js.map +1 -0
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/vault/index.js +1 -1
- package/lib/esm/secrets/vault/index.js.map +1 -0
- package/lib/esm/shared/runtime.js +1 -1
- package/lib/esm/shared/runtime.js.map +1 -0
- package/lib/esm/utils.js +1 -1
- package/lib/esm/utils.js.map +1 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/keycloak/broker.d.cts +6 -0
- package/lib/types/keycloak/broker.d.mts +6 -0
- package/lib/types/keycloak/index.d.cts +1 -0
- package/lib/types/keycloak/index.d.mts +1 -0
- package/lib/types/keycloak/services/KeycloakIdentityProviderService.d.cts +4 -1
- package/lib/types/keycloak/services/KeycloakIdentityProviderService.d.mts +4 -1
- package/lib/types/keycloak/services/KeycloakService.d.cts +2 -1
- package/lib/types/keycloak/services/KeycloakService.d.mts +2 -1
- package/lib/types/keycloak/types.d.cts +52 -0
- package/lib/types/keycloak/types.d.mts +52 -0
- package/package.json +8 -4
|
@@ -1051,5 +1051,5 @@ __decorate([
|
|
|
1051
1051
|
__metadata("design:paramtypes", [String, String, String, Object]),
|
|
1052
1052
|
__metadata("design:returntype", Promise)
|
|
1053
1053
|
], SystemManagementService.prototype, "reactivateUserInTenant", null);
|
|
1054
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtLnNlcnZpY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25hbWVzcGFjZXMvb3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtLnNlcnZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGdCQUFnQixFQUVoQixhQUFhLEVBRWIsU0FBUyxFQUNULGtCQUFrQixFQUVsQixFQUFFLEVBQ0YsVUFBVSxFQUNWLGFBQWEsR0FDZCw0Q0FBeUM7QUFlMUMsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixLQUFLLEVBQ0wsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixPQUFPLEVBQ1AsY0FBYyxFQUNkLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsVUFBVSxFQUNWLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsYUFBYSxFQUNiLElBQUksRUFDSixjQUFjLEVBQ2QsY0FBYyxFQUNkLGNBQWMsRUFDZCxNQUFNLEVBQ04sZ0JBQWdCLEVBQ2hCLGFBQWEsRUFDYixJQUFJLEdBQ0wsbURBQWdEO0FBQ2pELEVBQUU7QUFDRixtQ0FBbUM7QUFDbkMsbUVBQW1FO0FBQ25FLE1BQU0sVUFBVSxHQUFHLENBQUMsU0FBa0IsRUFBRSxRQUFnQixFQUFXLEVBQUUsQ0FDbkUsVUFBVSxDQUFDLFNBQW9DLENBQUMsS0FBSyxRQUFRLENBQUM7QUFDaEUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxLQUFjLEVBQUUsTUFBMEIsRUFBVyxFQUFFLENBQzVFLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQWdDLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUMzRSxNQUFNLFNBQVMsR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFLENBQzFDLEtBQUs7S0FDRixJQUFJLEVBQUU7S0FDTixXQUFXLEVBQUU7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LGtCQUFrQixFQUNsQixnQkFBZ0IsQ0FBQyxTQUFTLEVBQzFCLEdBQUcsSUFBSSxDQUNSLENBQUM7UUFDRixNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxrQkFBa0IsQ0FDdEQsUUFBUSxFQUNSLFdBQVcsRUFDWCxHQUFHLElBQUksQ0FDUixDQUFDO0lBQ0osQ0FBQztJQUdLLEFBQU4sS0FBSyxDQUFDLHNCQUFzQixDQUMxQixrQkFBMEIsRUFDMUIsUUFBZ0IsRUFDaEIsV0FBbUIsRUFDbkIsR0FBRyxJQUFXO1FBRWQsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUNwQyxrQkFBa0IsRUFDbEIsZ0JBQWdCLENBQUMsTUFBTSxFQUN2QixHQUFHLElBQUksQ0FDUixDQUFDO1FBQ0YsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsbUJBQW1CLENBQ3ZELFFBQVEsRUFDUixXQUFXLEVBQ1gsR0FBRyxJQUFJLENBQ1IsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWpJTztJQURMLGFBQWEsRUFBRTs7Ozs0RUFnRGY7QUFHSztJQURMLGFBQWEsRUFBRTs7OztnRUF5Q2Y7QUFHSztJQURMLGFBQWEsRUFBRTs7OztrRUFpQmY7QUFHSztJQURMLGFBQWEsRUFBRTs7OztxRUFpQmYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlTW9kZWxTZXJ2aWNlLFxuICBJc29sYXRpb25UaWVyLFxuICBNZW1iZXJzaGlwU3RhdHVzLFxuICBQZXJtaXNzaW9uQ2F0ZWdvcnksXG4gIFByaW5jaXBhbEtpbmQsXG4gIFJlc291cmNlVmlzaWJpbGl0eSxcbiAgU2NvcGVLaW5kLFxuICBTdG9yYWdlQmluZGluZ0tpbmQsXG4gIFN0b3JhZ2VLaW5kLFxuICBpZCxcbiAgcmVsYXRpb25JZCxcbiAgdHJhbnNhY3Rpb25hbCxcbn0gZnJvbSBcIi4vb3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEFzc2lnblJvbGVJbnB1dCxcbiAgQm9vdHN0cmFwT3JnVW5pdCxcbiAgQm9vdHN0cmFwVGVtcGxhdGUsXG4gIENyZWF0ZU9yZ1VuaXRJbnB1dCxcbiAgQ3JlYXRlUGVybWlzc2lvbklucHV0LFxuICBDcmVhdGVSb2xlSW5wdXQsXG4gIENyZWF0ZVN0b3JhZ2VCaW5kaW5nSW5wdXQsXG4gIENyZWF0ZVRlbmFudElucHV0LFxuICBDcmVhdGVVc2VySW5wdXQsXG4gIEVmZmVjdGl2ZVBlcm1pc3Npb25TbmFwc2hvdCxcbiAgR3JhbnRSZXNvdXJjZUlucHV0LFxuICBSZWdpc3RlclJlc291cmNlSW5wdXQsXG59IGZyb20gXCIuL29yZy1iYXNlZC1hdXRob3JpemF0aW9uLXN5c3RlbVwiO1xuaW1wb3J0IHtcbiAgRWZmZWN0aXZlUGVybWlzc2lvbixcbiAgR3JvdXAsXG4gIEdyb3VwTWVtYmVyc2hpcCxcbiAgSW5oZXJpdGFuY2VCbG9jayxcbiAgT3JnVW5pdCxcbiAgT3JnVW5pdENsb3N1cmUsXG4gIE9yZ1VuaXRNZW1iZXJzaGlwLFxuICBPcmdVbml0UHJvZmlsZSxcbiAgUGVybWlzc2lvbixcbiAgUHJvdGVjdGVkUmVzb3VyY2UsXG4gIFByaW5jaXBhbCxcbiAgUmVzb3VyY2VHcmFudCxcbiAgUm9sZSxcbiAgUm9sZUFzc2lnbm1lbnQsXG4gIFJvbGVQZXJtaXNzaW9uLFxuICBTdG9yYWdlQmluZGluZyxcbiAgVGVuYW50LFxuICBUZW5hbnRNZW1iZXJzaGlwLFxuICBUZW5hbnRQcm9maWxlLFxuICBVc2VyLFxufSBmcm9tIFwiLi9vcmctYmFzZWQtYXV0aG9yaXphdGlvbi1zeXN0ZW0ubW9kZWxzXCI7XG4vL1xuLy8gY29uc3Qgbm93SXNvID0gKCkgPT4gbmV3IERhdGUoKTtcbi8vIGNvbnN0IGFzQXJyYXkgPSA8VD4odmFsdWU6IFRbXSB8IHVuZGVmaW5lZCk6IFRbXSA9PiB2YWx1ZSA/PyBbXTtcbmNvbnN0IHNhbWVUZW5hbnQgPSAocm93VGVuYW50OiB1bmtub3duLCB0ZW5hbnRJZDogc3RyaW5nKTogYm9vbGVhbiA9PlxuICByZWxhdGlvbklkKHJvd1RlbmFudCBhcyB7IGlkOiBzdHJpbmcgfSB8IHN0cmluZykgPT09IHRlbmFudElkO1xuY29uc3QgcmVsYXRpb25NYXRjaCA9ICh2YWx1ZTogdW5rbm93biwgdGFyZ2V0OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuID0+XG4gIHRhcmdldCA/IHJlbGF0aW9uSWQodmFsdWUgYXMgeyBpZDogc3RyaW5nIH0gfCBzdHJpbmcpID09PSB0YXJnZXQgOiBmYWxzZTtcbmNvbnN0IGxvd2VyU2x1ZyA9ICh2YWx1ZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIHZhbHVlXG4gICAgLnRyaW0oKVxuICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgLnJlcGxhY2UoL1teYS16MC05XSsvZywgXCItXCIpXG4gICAgLnJlcGxhY2UoL14tK3wtKyQvZywgXCJcIikgfHwgXCJpdGVtXCI7XG5cbmFzeW5jIGZ1bmN0aW9uIGRlbGV0ZU1hbnlCeUlkKFxuICBzZXJ2aWNlOiBCYXNlTW9kZWxTZXJ2aWNlPGFueT4sXG4gIHJvd3M6IEFycmF5PHsgaWQ6IHN0cmluZyB9PixcbiAgLi4uYXJnczogYW55W11cbik6IFByb21pc2U8dm9pZD4ge1xuICBmb3IgKGNvbnN0IHJvdyBvZiByb3dzKSB7XG4gICAgYXdhaXQgc2VydmljZS5kZWxldGVCeUlkKHJvdy5pZCwgLi4uYXJncyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbmFudFByb2ZpbGVTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxUZW5hbnRQcm9maWxlPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFRlbmFudFByb2ZpbGUpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUHJvZmlsZShcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHByb2ZpbGVLZXk6IHN0cmluZyxcbiAgICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8VGVuYW50UHJvZmlsZT4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uZShcbiAgICAgIHtcbiAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgIHRlbmFudDogdGVuYW50SWQsXG4gICAgICAgIHByb2ZpbGVLZXksXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdEZvclRlbmFudChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8VGVuYW50UHJvZmlsZVtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigocHJvZmlsZSkgPT5cbiAgICAgIHJlbGF0aW9uTWF0Y2gocHJvZmlsZS50ZW5hbnQsIHRlbmFudElkKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBkZWxldGVGb3JUZW5hbnQodGVuYW50SWQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBkZWxldGVNYW55QnlJZChcbiAgICAgIHRoaXMsXG4gICAgICBhd2FpdCB0aGlzLmxpc3RGb3JUZW5hbnQodGVuYW50SWQsIC4uLmFyZ3MpLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9yZ1VuaXRQcm9maWxlU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8T3JnVW5pdFByb2ZpbGU+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoT3JnVW5pdFByb2ZpbGUpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlUHJvZmlsZShcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICBwcm9maWxlS2V5OiBzdHJpbmcsXG4gICAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE9yZ1VuaXRQcm9maWxlPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgb3JnVW5pdDogb3JnVW5pdElkLFxuICAgICAgICBwcm9maWxlS2V5LFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RGb3JPcmdVbml0KFxuICAgIG9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8T3JnVW5pdFByb2ZpbGVbXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKHByb2ZpbGUpID0+XG4gICAgICByZWxhdGlvbk1hdGNoKHByb2ZpbGUub3JnVW5pdCwgb3JnVW5pdElkKVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9yZ1VuaXRDbG9zdXJlU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8T3JnVW5pdENsb3N1cmU+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoT3JnVW5pdENsb3N1cmUpO1xuICB9XG5cbiAgYXN5bmMgbGlzdEFuY2VzdG9ycyhcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIG9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8T3JnVW5pdENsb3N1cmVbXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKHJvdykgPT5cbiAgICAgICAgICBzYW1lVGVuYW50KHJvdy50ZW5hbnQsIHRlbmFudElkKSAmJlxuICAgICAgICAgIHJlbGF0aW9uTWF0Y2gocm93LmRlc2NlbmRhbnQsIG9yZ1VuaXRJZClcbiAgICAgIClcbiAgICAgIC5zb3J0KChsZWZ0LCByaWdodCkgPT4gbGVmdC5kZXB0aCAtIHJpZ2h0LmRlcHRoKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3REZXNjZW5kYW50cyhcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIG9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8T3JnVW5pdENsb3N1cmVbXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKHJvdykgPT5cbiAgICAgICAgICBzYW1lVGVuYW50KHJvdy50ZW5hbnQsIHRlbmFudElkKSAmJlxuICAgICAgICAgIHJlbGF0aW9uTWF0Y2gocm93LmFuY2VzdG9yLCBvcmdVbml0SWQpXG4gICAgICApXG4gICAgICAuc29ydCgobGVmdCwgcmlnaHQpID0+IGxlZnQuZGVwdGggLSByaWdodC5kZXB0aCk7XG4gIH1cblxuICBhc3luYyBpc0FuY2VzdG9yT2YoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBhbmNlc3Rvck9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIGRlc2NlbmRhbnRPcmdVbml0SWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5saXN0QW5jZXN0b3JzKHRlbmFudElkLCBkZXNjZW5kYW50T3JnVW5pdElkLCAuLi5hcmdzKVxuICAgICkuc29tZSgocm93KSA9PiByZWxhdGlvbk1hdGNoKHJvdy5hbmNlc3RvciwgYW5jZXN0b3JPcmdVbml0SWQpKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNlbGZMaW5rKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxPcmdVbml0Q2xvc3VyZT4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uZShcbiAgICAgIHtcbiAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgIHRlbmFudDogdGVuYW50SWQsXG4gICAgICAgIGFuY2VzdG9yOiBvcmdVbml0SWQsXG4gICAgICAgIGRlc2NlbmRhbnQ6IG9yZ1VuaXRJZCxcbiAgICAgICAgZGVwdGg6IDAsXG4gICAgICB9LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBpbnNlcnRBbmNlc3RvckxpbmtzRm9yTmV3Q2hpbGQoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwYXJlbnRPcmdVbml0SWQ6IHN0cmluZyxcbiAgICBjaGlsZE9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGFuY2VzdG9yTGlua3MgPSBhd2FpdCB0aGlzLmxpc3RBbmNlc3RvcnMoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHBhcmVudE9yZ1VuaXRJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgYW5jZXN0b3JMaW5rcy5tYXAoKGxpbmspID0+XG4gICAgICAgIHRoaXMuY3JlYXRlT25lKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBpZCgpLFxuICAgICAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAgICAgIGFuY2VzdG9yOiBsaW5rLmFuY2VzdG9yLFxuICAgICAgICAgICAgZGVzY2VuZGFudDogY2hpbGRPcmdVbml0SWQsXG4gICAgICAgICAgICBkZXB0aDogbGluay5kZXB0aCArIDEsXG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi5hcmdzXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlTGlua3NGb3JTdWJ0cmVlKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc3VidHJlZSA9IGF3YWl0IHRoaXMubGlzdERlc2NlbmRhbnRzKHRlbmFudElkLCBvcmdVbml0SWQsIC4uLmFyZ3MpO1xuICAgIGNvbnN0IGRlc2NlbmRhbnRJZHMgPSBuZXcgU2V0KFtcbiAgICAgIG9yZ1VuaXRJZCxcbiAgICAgIC4uLnN1YnRyZWUubWFwKChyb3cpID0+IHJlbGF0aW9uSWQocm93LmRlc2NlbmRhbnQpKSxcbiAgICBdKTtcbiAgICBjb25zdCBhbmNlc3RvcklkcyA9IG5ldyBTZXQoW1xuICAgICAgb3JnVW5pdElkLFxuICAgICAgLi4uc3VidHJlZS5tYXAoKHJvdykgPT4gcmVsYXRpb25JZChyb3cuYW5jZXN0b3IpKSxcbiAgICBdKTtcbiAgICBjb25zdCByb3dzID0gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKFxuICAgICAgKHJvdykgPT5cbiAgICAgICAgc2FtZVRlbmFudChyb3cudGVuYW50LCB0ZW5hbnRJZCkgJiZcbiAgICAgICAgKGRlc2NlbmRhbnRJZHMuaGFzKHJlbGF0aW9uSWQocm93LmRlc2NlbmRhbnQpKSB8fFxuICAgICAgICAgIGFuY2VzdG9ySWRzLmhhcyhyZWxhdGlvbklkKHJvdy5hbmNlc3RvcikpKVxuICAgICk7XG4gICAgYXdhaXQgZGVsZXRlTWFueUJ5SWQodGhpcywgcm93cywgLi4uYXJncyk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEluaGVyaXRhbmNlQmxvY2tTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxJbmhlcml0YW5jZUJsb2NrPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKEluaGVyaXRhbmNlQmxvY2spO1xuICB9XG5cbiAgYXN5bmMgYmxvY2tDYXRlZ29yeShcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIG9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIHBlcm1pc3Npb25DYXRlZ29yeTogUGVybWlzc2lvbkNhdGVnb3J5LFxuICAgIGJsb2NrZWRGcm9tQW5jZXN0b3JJZD86IHN0cmluZyxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxJbmhlcml0YW5jZUJsb2NrPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAgb3JnVW5pdDogb3JnVW5pdElkLFxuICAgICAgICBibG9ja2VkRnJvbUFuY2VzdG9yOiBibG9ja2VkRnJvbUFuY2VzdG9ySWQsXG4gICAgICAgIHBlcm1pc3Npb25DYXRlZ29yeSxcbiAgICAgICAgcmVhc29uLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgdW5ibG9ja0NhdGVnb3J5KGJsb2NrSWQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZUJ5SWQoYmxvY2tJZCwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyBsaXN0Rm9yT3JnVW5pdChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIG9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8SW5oZXJpdGFuY2VCbG9ja1tdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcihcbiAgICAgIChibG9jaykgPT5cbiAgICAgICAgc2FtZVRlbmFudChibG9jay50ZW5hbnQsIHRlbmFudElkKSAmJlxuICAgICAgICByZWxhdGlvbk1hdGNoKGJsb2NrLm9yZ1VuaXQsIG9yZ1VuaXRJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgY2F0ZWdvcnlCbG9ja2VkRm9yQW5jZXN0b3IoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICBhbmNlc3Rvck9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIGNhdGVnb3J5OiBQZXJtaXNzaW9uQ2F0ZWdvcnksXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RGb3JPcmdVbml0KHRlbmFudElkLCBvcmdVbml0SWQsIC4uLmFyZ3MpKS5zb21lKFxuICAgICAgKGJsb2NrKSA9PlxuICAgICAgICBibG9jay5wZXJtaXNzaW9uQ2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICghYmxvY2suYmxvY2tlZEZyb21BbmNlc3RvciB8fFxuICAgICAgICAgIHJlbGF0aW9uTWF0Y2goYmxvY2suYmxvY2tlZEZyb21BbmNlc3RvciwgYW5jZXN0b3JPcmdVbml0SWQpKVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRlbmFudFNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlPFRlbmFudD4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihUZW5hbnQpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlVGVuYW50KFxuICAgIGlucHV0OiBDcmVhdGVUZW5hbnRJbnB1dCxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFRlbmFudD4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uZShcbiAgICAgIHtcbiAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgIHNsdWc6IGlucHV0LnNsdWcsXG4gICAgICAgIG5hbWU6IGlucHV0Lm5hbWUsXG4gICAgICAgIGlzb2xhdGlvblRpZXI6IGlucHV0Lmlzb2xhdGlvblRpZXIgPz8gSXNvbGF0aW9uVGllci5Qb29sZWQsXG4gICAgICB9LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXRCeVNsdWcoc2x1Zzogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8VGVuYW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZmluZE9uZUJ5KFwic2x1Z1wiLCBzbHVnIGFzIG5ldmVyLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIHJlbmFtZVRlbmFudChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFRlbmFudD4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZSh0ZW5hbnRJZCwgeyBuYW1lIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgY2hhbmdlU2x1ZyhcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHNsdWc6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFRlbmFudD4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZSh0ZW5hbnRJZCwgeyBzbHVnIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgc2V0SXNvbGF0aW9uVGllcihcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIGlzb2xhdGlvblRpZXI6IElzb2xhdGlvblRpZXIsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxUZW5hbnQ+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUodGVuYW50SWQsIHsgaXNvbGF0aW9uVGllciB9LCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZVRlbmFudENvbnRyb2xsZWQoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZUJ5SWQodGVuYW50SWQsIC4uLmFyZ3MpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPcmdVbml0U2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8T3JnVW5pdD4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihPcmdVbml0KTtcbiAgfVxuXG4gIHByaXZhdGUgb3JnVW5pdFBhdGgocGFyZW50UGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLCBuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlZ21lbnQgPSBsb3dlclNsdWcobmFtZSk7XG4gICAgcmV0dXJuIHBhcmVudFBhdGhcbiAgICAgID8gYCR7cGFyZW50UGF0aC5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpfS8ke3NlZ21lbnR9YFxuICAgICAgOiBgLyR7c2VnbWVudH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjcmVhdGVQcm9maWxlSWZOZWVkZWQoXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgcHJvZmlsZUtleTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIHByb2ZpbGVNZXRhZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCFwcm9maWxlS2V5KSByZXR1cm47XG4gICAgY29uc3QgcHJvZmlsZVNlcnZpY2UgPSBuZXcgT3JnVW5pdFByb2ZpbGVTZXJ2aWNlKCk7XG4gICAgYXdhaXQgcHJvZmlsZVNlcnZpY2UuY3JlYXRlUHJvZmlsZShcbiAgICAgIG9yZ1VuaXRJZCxcbiAgICAgIHByb2ZpbGVLZXksXG4gICAgICBwcm9maWxlTWV0YWRhdGEsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIEB0cmFuc2FjdGlvbmFsKClcbiAgYXN5bmMgY3JlYXRlUm9vdChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIHByb2ZpbGVLZXk/OiBzdHJpbmcsXG4gICAgcHJvZmlsZU1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxPcmdVbml0PiB7XG4gICAgY29uc3Qgb3JnVW5pdCA9IGF3YWl0IHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcGF0aDogdGhpcy5vcmdVbml0UGF0aCh1bmRlZmluZWQsIG5hbWUpLFxuICAgICAgICBtZXRhZGF0YSxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVByb2ZpbGVJZk5lZWRlZChcbiAgICAgIG9yZ1VuaXQuaWQsXG4gICAgICBwcm9maWxlS2V5LFxuICAgICAgcHJvZmlsZU1ldGFkYXRhLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgY29uc3QgY2xvc3VyZVNlcnZpY2UgPSBuZXcgT3JnVW5pdENsb3N1cmVTZXJ2aWNlKCk7XG4gICAgYXdhaXQgY2xvc3VyZVNlcnZpY2UuY3JlYXRlU2VsZkxpbmsodGVuYW50SWQsIG9yZ1VuaXQuaWQsIC4uLmFyZ3MpO1xuICAgIHJldHVybiBvcmdVbml0O1xuICB9XG5cbiAgQHRyYW5zYWN0aW9uYWwoKVxuICBhc3luYyBjcmVhdGVDaGlsZChcbiAgICBpbnB1dDogQ3JlYXRlT3JnVW5pdElucHV0LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8T3JnVW5pdD4ge1xuICAgIGNvbnN0IHBhcmVudCA9IGlucHV0LnBhcmVudE9yZ1VuaXRJZFxuICAgICAgPyBhd2FpdCB0aGlzLmdldEJ5SWQoaW5wdXQucGFyZW50T3JnVW5pdElkLCAuLi5hcmdzKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb3JnVW5pdCA9IGF3YWl0IHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgdGVuYW50OiBpbnB1dC50ZW5hbnRJZCxcbiAgICAgICAgcGFyZW50OiBwYXJlbnQ/LmlkID8/IGlucHV0LnBhcmVudE9yZ1VuaXRJZCxcbiAgICAgICAgbmFtZTogaW5wdXQubmFtZSxcbiAgICAgICAgcGF0aDogdGhpcy5vcmdVbml0UGF0aChwYXJlbnQ/LnBhdGgsIGlucHV0Lm5hbWUpLFxuICAgICAgICBtZXRhZGF0YTogaW5wdXQubWV0YWRhdGEsXG4gICAgICB9LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy5jcmVhdGVQcm9maWxlSWZOZWVkZWQoXG4gICAgICBvcmdVbml0LmlkLFxuICAgICAgaW5wdXQucHJvZmlsZUtleSxcbiAgICAgIGlucHV0LnByb2ZpbGVNZXRhZGF0YSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGNsb3N1cmVTZXJ2aWNlID0gbmV3IE9yZ1VuaXRDbG9zdXJlU2VydmljZSgpO1xuICAgIGF3YWl0IGNsb3N1cmVTZXJ2aWNlLmNyZWF0ZVNlbGZMaW5rKGlucHV0LnRlbmFudElkLCBvcmdVbml0LmlkLCAuLi5hcmdzKTtcbiAgICBpZiAoaW5wdXQucGFyZW50T3JnVW5pdElkKSB7XG4gICAgICBhd2FpdCBjbG9zdXJlU2VydmljZS5pbnNlcnRBbmNlc3RvckxpbmtzRm9yTmV3Q2hpbGQoXG4gICAgICAgIGlucHV0LnRlbmFudElkLFxuICAgICAgICBpbnB1dC5wYXJlbnRPcmdVbml0SWQsXG4gICAgICAgIG9yZ1VuaXQuaWQsXG4gICAgICAgIC4uLmFyZ3NcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBvcmdVbml0O1xuICB9XG5cbiAgYXN5bmMgbGlzdENoaWxkcmVuKFxuICAgIHBhcmVudE9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8T3JnVW5pdFtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigob3JnVW5pdCkgPT5cbiAgICAgIHJlbGF0aW9uTWF0Y2gob3JnVW5pdC5wYXJlbnQsIHBhcmVudE9yZ1VuaXRJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRlbmFudE9yZ1VuaXRzKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxPcmdVbml0W10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChvcmdVbml0KSA9PlxuICAgICAgc2FtZVRlbmFudChvcmdVbml0LnRlbmFudCwgdGVuYW50SWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3REZXNjZW5kYW50T3JnVW5pdHMoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICBpbmNsdWRlU2VsZiA9IGZhbHNlLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8T3JnVW5pdFtdPiB7XG4gICAgY29uc3QgY2xvc3VyZVNlcnZpY2UgPSBuZXcgT3JnVW5pdENsb3N1cmVTZXJ2aWNlKCk7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSBhd2FpdCBjbG9zdXJlU2VydmljZS5saXN0RGVzY2VuZGFudHMoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIG9yZ1VuaXRJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGlkcyA9IG5ldyBTZXQoZGVzY2VuZGFudHMubWFwKChyb3cpID0+IHJlbGF0aW9uSWQocm93LmRlc2NlbmRhbnQpKSk7XG4gICAgaWYgKGluY2x1ZGVTZWxmKSBpZHMuYWRkKG9yZ1VuaXRJZCk7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RUZW5hbnRPcmdVbml0cyh0ZW5hbnRJZCwgLi4uYXJncykpLmZpbHRlcihcbiAgICAgIChvcmdVbml0KSA9PiBpZHMuaGFzKG9yZ1VuaXQuaWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RBbmNlc3Rvck9yZ1VuaXRzKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgaW5jbHVkZVNlbGYgPSBmYWxzZSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE9yZ1VuaXRbXT4ge1xuICAgIGNvbnN0IGNsb3N1cmVTZXJ2aWNlID0gbmV3IE9yZ1VuaXRDbG9zdXJlU2VydmljZSgpO1xuICAgIGNvbnN0IGFuY2VzdG9ycyA9IGF3YWl0IGNsb3N1cmVTZXJ2aWNlLmxpc3RBbmNlc3RvcnMoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIG9yZ1VuaXRJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGNvbnN0IGlkcyA9IG5ldyBTZXQoYW5jZXN0b3JzLm1hcCgocm93KSA9PiByZWxhdGlvbklkKHJvdy5hbmNlc3RvcikpKTtcbiAgICBpZiAoaW5jbHVkZVNlbGYpIGlkcy5hZGQob3JnVW5pdElkKTtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdFRlbmFudE9yZ1VuaXRzKHRlbmFudElkLCAuLi5hcmdzKSkuZmlsdGVyKFxuICAgICAgKG9yZ1VuaXQpID0+IGlkcy5oYXMob3JnVW5pdC5pZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVuYW1lT3JnVW5pdChcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxPcmdVbml0PiB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLmdldEJ5SWQob3JnVW5pdElkLCAuLi5hcmdzKTtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUoXG4gICAgICBvcmdVbml0SWQsXG4gICAgICB7IG5hbWUsIHBhdGg6IHRoaXMub3JnVW5pdFBhdGgodW5kZWZpbmVkLCBuYW1lKSB9LFxuICAgICAgLi4uYXJnc1xuICAgICkudGhlbihhc3luYyAodXBkYXRlZCkgPT4ge1xuICAgICAgdXBkYXRlZC5wYXRoID0gZXhpc3RpbmcucGFyZW50XG4gICAgICAgID8gdGhpcy5vcmdVbml0UGF0aCh1bmRlZmluZWQsIG5hbWUpXG4gICAgICAgIDogdGhpcy5vcmdVbml0UGF0aCh1bmRlZmluZWQsIG5hbWUpO1xuICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgfSk7XG4gIH1cblxuICBAdHJhbnNhY3Rpb25hbCgpXG4gIGFzeW5jIG1vdmVPcmdVbml0KFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgbmV3UGFyZW50T3JnVW5pdElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxPcmdVbml0PiB7XG4gICAgY29uc3QgbmV3UGFyZW50ID0gYXdhaXQgdGhpcy5nZXRCeUlkKG5ld1BhcmVudE9yZ1VuaXRJZCwgLi4uYXJncyk7XG4gICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLmdldEJ5SWQob3JnVW5pdElkLCAuLi5hcmdzKTtcbiAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgdGhpcy51cGRhdGVPbmUoXG4gICAgICBvcmdVbml0SWQsXG4gICAgICB7XG4gICAgICAgIHBhcmVudDogbmV3UGFyZW50LmlkLFxuICAgICAgICBwYXRoOiB0aGlzLm9yZ1VuaXRQYXRoKG5ld1BhcmVudC5wYXRoLCBleGlzdGluZy5uYW1lKSxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnJlYnVpbGRUZW5hbnRDbG9zdXJlKHRlbmFudElkLCAuLi5hcmdzKTtcbiAgICByZXR1cm4gdXBkYXRlZDtcbiAgfVxuXG4gIEB0cmFuc2FjdGlvbmFsKClcbiAgYXN5bmMgcmVidWlsZFRlbmFudENsb3N1cmUodGVuYW50SWQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjbG9zdXJlU2VydmljZSA9IG5ldyBPcmdVbml0Q2xvc3VyZVNlcnZpY2UoKTtcbiAgICBjb25zdCBleGlzdGluZ0xpbmtzID0gYXdhaXQgY2xvc3VyZVNlcnZpY2UubGlzdEFsbCguLi5hcmdzKTtcbiAgICBhd2FpdCBkZWxldGVNYW55QnlJZChcbiAgICAgIGNsb3N1cmVTZXJ2aWNlLFxuICAgICAgZXhpc3RpbmdMaW5rcy5maWx0ZXIoKHJvdykgPT4gc2FtZVRlbmFudChyb3cudGVuYW50LCB0ZW5hbnRJZCkpLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG5cbiAgICBjb25zdCBvcmdVbml0cyA9IChhd2FpdCB0aGlzLmxpc3RUZW5hbnRPcmdVbml0cyh0ZW5hbnRJZCwgLi4uYXJncykpLnNvcnQoXG4gICAgICAobGVmdCwgcmlnaHQpID0+IHtcbiAgICAgICAgY29uc3QgbGVmdERlcHRoID0gbGVmdC5wYXRoLnNwbGl0KFwiL1wiKS5maWx0ZXIoQm9vbGVhbikubGVuZ3RoO1xuICAgICAgICBjb25zdCByaWdodERlcHRoID0gcmlnaHQucGF0aC5zcGxpdChcIi9cIikuZmlsdGVyKEJvb2xlYW4pLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIGxlZnREZXB0aCAtIHJpZ2h0RGVwdGg7XG4gICAgICB9XG4gICAgKTtcblxuICAgIGZvciAoY29uc3Qgb3JnVW5pdCBvZiBvcmdVbml0cykge1xuICAgICAgYXdhaXQgY2xvc3VyZVNlcnZpY2UuY3JlYXRlU2VsZkxpbmsodGVuYW50SWQsIG9yZ1VuaXQuaWQsIC4uLmFyZ3MpO1xuICAgICAgaWYgKG9yZ1VuaXQucGFyZW50KSB7XG4gICAgICAgIGF3YWl0IGNsb3N1cmVTZXJ2aWNlLmluc2VydEFuY2VzdG9yTGlua3NGb3JOZXdDaGlsZChcbiAgICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgICByZWxhdGlvbklkKG9yZ1VuaXQucGFyZW50KSxcbiAgICAgICAgICBvcmdVbml0LmlkLFxuICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAdHJhbnNhY3Rpb25hbCgpXG4gIGFzeW5jIGRlbGV0ZU9yZ1VuaXRUcmVlKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY2xvc3VyZVNlcnZpY2UgPSBuZXcgT3JnVW5pdENsb3N1cmVTZXJ2aWNlKCk7XG4gICAgY29uc3QgZGVzY2VuZGFudHMgPSBhd2FpdCB0aGlzLmxpc3REZXNjZW5kYW50T3JnVW5pdHMoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIG9yZ1VuaXRJZCxcbiAgICAgIHRydWUsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBjb25zdCBkZXNjZW5kYW50SWRzID0gbmV3IFNldChkZXNjZW5kYW50cy5tYXAoKG9yZ1VuaXQpID0+IG9yZ1VuaXQuaWQpKTtcbiAgICBjb25zdCBvcmdVbml0cyA9IChhd2FpdCB0aGlzLmxpc3RUZW5hbnRPcmdVbml0cyh0ZW5hbnRJZCwgLi4uYXJncykpLmZpbHRlcihcbiAgICAgIChvcmdVbml0KSA9PiBkZXNjZW5kYW50SWRzLmhhcyhvcmdVbml0LmlkKVxuICAgICk7XG4gICAgYXdhaXQgZGVsZXRlTWFueUJ5SWQodGhpcywgb3JnVW5pdHMsIC4uLmFyZ3MpO1xuICAgIGF3YWl0IGNsb3N1cmVTZXJ2aWNlLmRlbGV0ZUxpbmtzRm9yU3VidHJlZSh0ZW5hbnRJZCwgb3JnVW5pdElkLCAuLi5hcmdzKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlPFVzZXI+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoVXNlcik7XG4gIH1cblxuICBhc3luYyBjcmVhdGVVc2VyKGlucHV0OiBDcmVhdGVVc2VySW5wdXQsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgZW1haWw6IGlucHV0LmVtYWlsLFxuICAgICAgICBwaG9uZTogaW5wdXQucGhvbmUsXG4gICAgICAgIGRpc3BsYXlOYW1lOiBpbnB1dC5kaXNwbGF5TmFtZSxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdldEJ5RW1haWwoZW1haWw6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPFVzZXI+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmluZChcbiAgICAgICh1c2VyKSA9PiB1c2VyLmVtYWlsID09PSBlbWFpbFxuICAgICkgYXMgVXNlcjtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZURpc3BsYXlOYW1lKFxuICAgIHVzZXJJZDogc3RyaW5nLFxuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHVzZXJJZCwgeyBkaXNwbGF5TmFtZSB9LCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZUVtYWlsKFxuICAgIHVzZXJJZDogc3RyaW5nLFxuICAgIGVtYWlsOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHVzZXJJZCwgeyBlbWFpbCB9LCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVBob25lKFxuICAgIHVzZXJJZDogc3RyaW5nLFxuICAgIHBob25lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxVc2VyPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHVzZXJJZCwgeyBwaG9uZSB9LCAuLi5hcmdzKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHJpbmNpcGFsU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8UHJpbmNpcGFsPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFByaW5jaXBhbCk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVQcmluY2lwYWwoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBraW5kOiBQcmluY2lwYWxLaW5kLFxuICAgIHN1YmplY3RJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8UHJpbmNpcGFsPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAga2luZCxcbiAgICAgICAgc3ViamVjdElkLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0Rm9yU3ViamVjdChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIGtpbmQ6IFByaW5jaXBhbEtpbmQsXG4gICAgc3ViamVjdElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxQcmluY2lwYWwgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmluZChcbiAgICAgIChwcmluY2lwYWwpID0+XG4gICAgICAgIHNhbWVUZW5hbnQocHJpbmNpcGFsLnRlbmFudCwgdGVuYW50SWQpICYmXG4gICAgICAgIHByaW5jaXBhbC5raW5kID09PSBraW5kICYmXG4gICAgICAgIHByaW5jaXBhbC5zdWJqZWN0SWQgPT09IHN1YmplY3RJZFxuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXRPckNyZWF0ZUZvclN1YmplY3QoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBraW5kOiBQcmluY2lwYWxLaW5kLFxuICAgIHN1YmplY3RJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8UHJpbmNpcGFsPiB7XG4gICAgcmV0dXJuIChcbiAgICAgIChhd2FpdCB0aGlzLmdldEZvclN1YmplY3QodGVuYW50SWQsIGtpbmQsIHN1YmplY3RJZCwgLi4uYXJncykpID8/XG4gICAgICAoYXdhaXQgdGhpcy5jcmVhdGVQcmluY2lwYWwodGVuYW50SWQsIGtpbmQsIHN1YmplY3RJZCwgLi4uYXJncykpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdldFVzZXJQcmluY2lwYWwoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFByaW5jaXBhbD4ge1xuICAgIHJldHVybiB0aGlzLmdldE9yQ3JlYXRlRm9yU3ViamVjdChcbiAgICAgIHRlbmFudElkLFxuICAgICAgUHJpbmNpcGFsS2luZC5Vc2VyLFxuICAgICAgdXNlcklkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXRHcm91cFByaW5jaXBhbChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIGdyb3VwSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFByaW5jaXBhbD4ge1xuICAgIHJldHVybiB0aGlzLmdldE9yQ3JlYXRlRm9yU3ViamVjdChcbiAgICAgIHRlbmFudElkLFxuICAgICAgUHJpbmNpcGFsS2luZC5Hcm91cCxcbiAgICAgIGdyb3VwSWQsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVuYW50TWVtYmVyc2hpcFNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlPFRlbmFudE1lbWJlcnNoaXA+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoVGVuYW50TWVtYmVyc2hpcCk7XG4gIH1cblxuICBhc3luYyBhZGRVc2VyVG9UZW5hbnQoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICBzdGF0dXM6IE1lbWJlcnNoaXBTdGF0dXMgPSBNZW1iZXJzaGlwU3RhdHVzLkFjdGl2ZSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFRlbmFudE1lbWJlcnNoaXA+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoXG4gICAgICB7XG4gICAgICAgIGlkOiBpZCgpLFxuICAgICAgICB0ZW5hbnQ6IHRlbmFudElkLFxuICAgICAgICB1c2VyOiB1c2VySWQsXG4gICAgICAgIHN0YXR1cyxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNldFN0YXR1cyhcbiAgICBtZW1iZXJzaGlwSWQ6IHN0cmluZyxcbiAgICBzdGF0dXM6IE1lbWJlcnNoaXBTdGF0dXMsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxUZW5hbnRNZW1iZXJzaGlwPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKG1lbWJlcnNoaXBJZCwgeyBzdGF0dXMgfSwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyBsaXN0VXNlclRlbmFudHMoXG4gICAgdXNlcklkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxUZW5hbnRNZW1iZXJzaGlwW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChtZW1iZXJzaGlwKSA9PlxuICAgICAgcmVsYXRpb25NYXRjaChtZW1iZXJzaGlwLnVzZXIsIHVzZXJJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRlbmFudFVzZXJzKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxUZW5hbnRNZW1iZXJzaGlwW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChtZW1iZXJzaGlwKSA9PlxuICAgICAgc2FtZVRlbmFudChtZW1iZXJzaGlwLnRlbmFudCwgdGVuYW50SWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHJlbW92ZVVzZXJGcm9tVGVuYW50KFxuICAgIG1lbWJlcnNoaXBJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlQnlJZChtZW1iZXJzaGlwSWQsIC4uLmFyZ3MpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPcmdVbml0TWVtYmVyc2hpcFNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlPE9yZ1VuaXRNZW1iZXJzaGlwPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKE9yZ1VuaXRNZW1iZXJzaGlwKTtcbiAgfVxuXG4gIGFzeW5jIGFkZFVzZXJUb09yZ1VuaXQoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICBzdGF0dXM6IE1lbWJlcnNoaXBTdGF0dXMgPSBNZW1iZXJzaGlwU3RhdHVzLkFjdGl2ZSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE9yZ1VuaXRNZW1iZXJzaGlwPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAgb3JnVW5pdDogb3JnVW5pdElkLFxuICAgICAgICB1c2VyOiB1c2VySWQsXG4gICAgICAgIHN0YXR1cyxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHNldFN0YXR1cyhcbiAgICBtZW1iZXJzaGlwSWQ6IHN0cmluZyxcbiAgICBzdGF0dXM6IE1lbWJlcnNoaXBTdGF0dXMsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxPcmdVbml0TWVtYmVyc2hpcD4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZShtZW1iZXJzaGlwSWQsIHsgc3RhdHVzIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgbGlzdFVzZXJPcmdVbml0cyhcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE9yZ1VuaXRNZW1iZXJzaGlwW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChtZW1iZXJzaGlwKSA9PlxuICAgICAgcmVsYXRpb25NYXRjaChtZW1iZXJzaGlwLnVzZXIsIHVzZXJJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdE9yZ1VuaXRVc2VycyhcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPE9yZ1VuaXRNZW1iZXJzaGlwW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChtZW1iZXJzaGlwKSA9PlxuICAgICAgcmVsYXRpb25NYXRjaChtZW1iZXJzaGlwLm9yZ1VuaXQsIG9yZ1VuaXRJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlVXNlckZyb21PcmdVbml0KFxuICAgIG1lbWJlcnNoaXBJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlQnlJZChtZW1iZXJzaGlwSWQsIC4uLmFyZ3MpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHcm91cFNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlPEdyb3VwPiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKEdyb3VwKTtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUdyb3VwKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIG9yZ1VuaXRJZD86IHN0cmluZyxcbiAgICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8R3JvdXA+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoXG4gICAgICB7XG4gICAgICAgIGlkOiBpZCgpLFxuICAgICAgICB0ZW5hbnQ6IHRlbmFudElkLFxuICAgICAgICBvcmdVbml0OiBvcmdVbml0SWQsXG4gICAgICAgIG5hbWUsXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVuYW1lR3JvdXAoXG4gICAgZ3JvdXBJZDogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEdyb3VwPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKGdyb3VwSWQsIHsgbmFtZSB9LCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIG1vdmVHcm91cFRvT3JnVW5pdChcbiAgICBncm91cElkOiBzdHJpbmcsXG4gICAgb3JnVW5pdElkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxHcm91cD4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZShncm91cElkLCB7IG9yZ1VuaXQ6IG9yZ1VuaXRJZCB9LCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RUZW5hbnRHcm91cHModGVuYW50SWQ6IHN0cmluZywgLi4uYXJnczogYW55W10pOiBQcm9taXNlPEdyb3VwW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChncm91cCkgPT5cbiAgICAgIHNhbWVUZW5hbnQoZ3JvdXAudGVuYW50LCB0ZW5hbnRJZClcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHcm91cE1lbWJlcnNoaXBTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxHcm91cE1lbWJlcnNoaXA+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoR3JvdXBNZW1iZXJzaGlwKTtcbiAgfVxuXG4gIGFzeW5jIGFkZFByaW5jaXBhbFRvR3JvdXAoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBncm91cElkOiBzdHJpbmcsXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICBtZXRhZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8R3JvdXBNZW1iZXJzaGlwPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAgZ3JvdXA6IGdyb3VwSWQsXG4gICAgICAgIHByaW5jaXBhbDogcHJpbmNpcGFsSWQsXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdEdyb3VwTWVtYmVycyhcbiAgICBncm91cElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxHcm91cE1lbWJlcnNoaXBbXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKG1lbWJlcnNoaXApID0+XG4gICAgICByZWxhdGlvbk1hdGNoKG1lbWJlcnNoaXAuZ3JvdXAsIGdyb3VwSWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RQcmluY2lwYWxHcm91cHMoXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEdyb3VwTWVtYmVyc2hpcFtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigobWVtYmVyc2hpcCkgPT5cbiAgICAgIHJlbGF0aW9uTWF0Y2gobWVtYmVyc2hpcC5wcmluY2lwYWwsIHByaW5jaXBhbElkKVxuICAgICk7XG4gIH1cblxuICBhc3luYyByZW1vdmVQcmluY2lwYWxGcm9tR3JvdXAoXG4gICAgbWVtYmVyc2hpcElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5kZWxldGVCeUlkKG1lbWJlcnNoaXBJZCwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyByZXNvbHZlR3JvdXBQcmluY2lwYWxJZHNGb3JQcmluY2lwYWwoXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gICAgY29uc3QgcHJpbmNpcGFsU2VydmljZSA9IG5ldyBQcmluY2lwYWxTZXJ2aWNlKCk7XG4gICAgY29uc3QgbWVtYmVyc2hpcHMgPSBhd2FpdCB0aGlzLmxpc3RQcmluY2lwYWxHcm91cHMocHJpbmNpcGFsSWQsIC4uLmFyZ3MpO1xuICAgIGNvbnN0IHByaW5jaXBhbHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1lbWJlcnNoaXBzLm1hcChhc3luYyAobWVtYmVyc2hpcCkgPT4ge1xuICAgICAgICBjb25zdCB0ZW5hbnRJZCA9IHJlbGF0aW9uSWQobWVtYmVyc2hpcC50ZW5hbnQpO1xuICAgICAgICBjb25zdCBncm91cElkID0gcmVsYXRpb25JZChtZW1iZXJzaGlwLmdyb3VwKTtcbiAgICAgICAgY29uc3QgcHJpbmNpcGFsID0gYXdhaXQgcHJpbmNpcGFsU2VydmljZS5nZXRHcm91cFByaW5jaXBhbChcbiAgICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgICBncm91cElkLFxuICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHByaW5jaXBhbC5pZDtcbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gcHJpbmNpcGFscztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvblNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlPFBlcm1pc3Npb24+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoUGVybWlzc2lvbik7XG4gIH1cblxuICBhc3luYyBjcmVhdGVQZXJtaXNzaW9uKFxuICAgIGlucHV0OiBDcmVhdGVQZXJtaXNzaW9uSW5wdXQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxQZXJtaXNzaW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAga2V5OiBpbnB1dC5rZXksXG4gICAgICAgIGNhdGVnb3J5OiBpbnB1dC5jYXRlZ29yeSxcbiAgICAgICAgZGVzY3JpcHRpb246IGlucHV0LmRlc2NyaXB0aW9uLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0QnlLZXkoa2V5OiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxQZXJtaXNzaW9uPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbmQoXG4gICAgICAocGVybWlzc2lvbikgPT4gcGVybWlzc2lvbi5rZXkgPT09IGtleVxuICAgICkgYXMgUGVybWlzc2lvbjtcbiAgfVxuXG4gIGFzeW5jIGxpc3RCeUNhdGVnb3J5KFxuICAgIGNhdGVnb3J5OiBQZXJtaXNzaW9uQ2F0ZWdvcnksXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxQZXJtaXNzaW9uW10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKFxuICAgICAgKHBlcm1pc3Npb24pID0+IHBlcm1pc3Npb24uY2F0ZWdvcnkgPT09IGNhdGVnb3J5XG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZURlc2NyaXB0aW9uKFxuICAgIHBlcm1pc3Npb25JZDogc3RyaW5nLFxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxQZXJtaXNzaW9uPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHBlcm1pc3Npb25JZCwgeyBkZXNjcmlwdGlvbiB9LCAuLi5hcmdzKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUm9sZVNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlPFJvbGU+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoUm9sZSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVSb2xlKGlucHV0OiBDcmVhdGVSb2xlSW5wdXQsIC4uLmFyZ3M6IGFueVtdKTogUHJvbWlzZTxSb2xlPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKFxuICAgICAge1xuICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgdGVuYW50OiBpbnB1dC50ZW5hbnRJZCxcbiAgICAgICAga2V5OiBpbnB1dC5rZXksXG4gICAgICAgIG5hbWU6IGlucHV0Lm5hbWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBpbnB1dC5kZXNjcmlwdGlvbixcbiAgICAgICAgbWV0YWRhdGE6IGlucHV0Lm1ldGFkYXRhLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgZ2V0U3lzdGVtUm9sZUJ5S2V5KGtleTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8Um9sZT4ge1xuICAgIGNvbnN0IHJvbGUgPSAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maW5kKFxuICAgICAgKGNhbmRpZGF0ZSkgPT4gIWNhbmRpZGF0ZS50ZW5hbnQgJiYgY2FuZGlkYXRlLmtleSA9PT0ga2V5XG4gICAgKTtcbiAgICBpZiAoIXJvbGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUm9sZSBcIiR7a2V5fVwiIG5vdCBmb3VuZGApO1xuICAgIH1cbiAgICByZXR1cm4gcm9sZTtcbiAgfVxuXG4gIGFzeW5jIGdldFRlbmFudFJvbGVCeUtleShcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIGtleTogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZT4ge1xuICAgIGNvbnN0IHJvbGUgPSAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maW5kKFxuICAgICAgKGNhbmRpZGF0ZSkgPT5cbiAgICAgICAgc2FtZVRlbmFudChjYW5kaWRhdGUudGVuYW50LCB0ZW5hbnRJZCkgJiYgY2FuZGlkYXRlLmtleSA9PT0ga2V5XG4gICAgKTtcbiAgICBpZiAoIXJvbGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUm9sZSBcIiR7a2V5fVwiIG5vdCBmb3VuZCBmb3IgdGVuYW50ICR7dGVuYW50SWR9YCk7XG4gICAgfVxuICAgIHJldHVybiByb2xlO1xuICB9XG5cbiAgYXN5bmMgcmVuYW1lUm9sZShcbiAgICByb2xlSWQ6IHN0cmluZyxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxSb2xlPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHJvbGVJZCwgeyBuYW1lIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlUm9sZU1ldGFkYXRhKFxuICAgIHJvbGVJZDogc3RyaW5nLFxuICAgIG1ldGFkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFJvbGU+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUocm9sZUlkLCB7IG1ldGFkYXRhIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRlbmFudFJvbGVzKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgaW5jbHVkZVN5c3RlbSA9IGZhbHNlLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZVtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigocm9sZSkgPT5cbiAgICAgIGluY2x1ZGVTeXN0ZW1cbiAgICAgICAgPyAhcm9sZS50ZW5hbnQgfHwgc2FtZVRlbmFudChyb2xlLnRlbmFudCwgdGVuYW50SWQpXG4gICAgICAgIDogc2FtZVRlbmFudChyb2xlLnRlbmFudCwgdGVuYW50SWQpXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUm9sZVBlcm1pc3Npb25TZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxSb2xlUGVybWlzc2lvbj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihSb2xlUGVybWlzc2lvbik7XG4gIH1cblxuICBhc3luYyBhZGRQZXJtaXNzaW9uVG9Sb2xlKFxuICAgIHJvbGVJZDogc3RyaW5nLFxuICAgIHBlcm1pc3Npb25JZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZVBlcm1pc3Npb24+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoXG4gICAgICB7XG4gICAgICAgIGlkOiBpZCgpLFxuICAgICAgICByb2xlOiByb2xlSWQsXG4gICAgICAgIHBlcm1pc3Npb246IHBlcm1pc3Npb25JZCxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGFkZFBlcm1pc3Npb25LZXlUb1JvbGUoXG4gICAgcm9sZUlkOiBzdHJpbmcsXG4gICAgcGVybWlzc2lvbktleTogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZVBlcm1pc3Npb24+IHtcbiAgICBjb25zdCBwZXJtaXNzaW9uID0gYXdhaXQgbmV3IFBlcm1pc3Npb25TZXJ2aWNlKCkuZ2V0QnlLZXkoXG4gICAgICBwZXJtaXNzaW9uS2V5LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuYWRkUGVybWlzc2lvblRvUm9sZShyb2xlSWQsIHBlcm1pc3Npb24uaWQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgcmVtb3ZlUGVybWlzc2lvbkZyb21Sb2xlKFxuICAgIHJvbGVQZXJtaXNzaW9uSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZUJ5SWQocm9sZVBlcm1pc3Npb25JZCwgLi4uYXJncyk7XG4gIH1cblxuICBhc3luYyBsaXN0Um9sZVBlcm1pc3Npb25zKFxuICAgIHJvbGVJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZVBlcm1pc3Npb25bXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKHJvbGVQZXJtaXNzaW9uKSA9PlxuICAgICAgcmVsYXRpb25NYXRjaChyb2xlUGVybWlzc2lvbi5yb2xlLCByb2xlSWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RQZXJtaXNzaW9uUm9sZXMoXG4gICAgcGVybWlzc2lvbklkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxSb2xlUGVybWlzc2lvbltdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigocm9sZVBlcm1pc3Npb24pID0+XG4gICAgICByZWxhdGlvbk1hdGNoKHJvbGVQZXJtaXNzaW9uLnBlcm1pc3Npb24sIHBlcm1pc3Npb25JZClcbiAgICApO1xuICB9XG5cbiAgQHRyYW5zYWN0aW9uYWwoKVxuICBhc3luYyByZXBsYWNlUm9sZVBlcm1pc3Npb25zKFxuICAgIHJvbGVJZDogc3RyaW5nLFxuICAgIHBlcm1pc3Npb25JZHM6IHN0cmluZ1tdLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZVBlcm1pc3Npb25bXT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgdGhpcy5saXN0Um9sZVBlcm1pc3Npb25zKHJvbGVJZCwgLi4uYXJncyk7XG4gICAgYXdhaXQgZGVsZXRlTWFueUJ5SWQodGhpcywgZXhpc3RpbmcsIC4uLmFyZ3MpO1xuICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHBlcm1pc3Npb25JZHMubWFwKChwZXJtaXNzaW9uSWQpID0+XG4gICAgICAgIHRoaXMuYWRkUGVybWlzc2lvblRvUm9sZShyb2xlSWQsIHBlcm1pc3Npb25JZCwgLi4uYXJncylcbiAgICAgIClcbiAgICApO1xuICAgIHJldHVybiBjcmVhdGVkO1xuICB9XG5cbiAgQHRyYW5zYWN0aW9uYWwoKVxuICBhc3luYyBjcmVhdGVSb2xlV2l0aFBlcm1pc3Npb25zKFxuICAgIGlucHV0OiBDcmVhdGVSb2xlSW5wdXQsXG4gICAgcGVybWlzc2lvbktleXM6IHN0cmluZ1tdLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZT4ge1xuICAgIGNvbnN0IHJvbGUgPSBhd2FpdCBuZXcgUm9sZVNlcnZpY2UoKS5jcmVhdGVSb2xlKGlucHV0LCAuLi5hcmdzKTtcbiAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb25LZXkgb2YgcGVybWlzc2lvbktleXMpIHtcbiAgICAgIGF3YWl0IHRoaXMuYWRkUGVybWlzc2lvbktleVRvUm9sZShyb2xlLmlkLCBwZXJtaXNzaW9uS2V5LCAuLi5hcmdzKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvbGU7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJvbGVBc3NpZ25tZW50U2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8Um9sZUFzc2lnbm1lbnQ+IHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoUm9sZUFzc2lnbm1lbnQpO1xuICB9XG5cbiAgYXN5bmMgYXNzaWduUm9sZShcbiAgICBpbnB1dDogQXNzaWduUm9sZUlucHV0LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Um9sZUFzc2lnbm1lbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoXG4gICAgICB7XG4gICAgICAgIGlkOiBpZCgpLFxuICAgICAgICB0ZW5hbnQ6IGlucHV0LnRlbmFudElkLFxuICAgICAgICBwcmluY2lwYWw6IGlucHV0LnByaW5jaXBhbElkLFxuICAgICAgICByb2xlOiBpbnB1dC5yb2xlSWQsXG4gICAgICAgIHNjb3BlS2luZDogaW5wdXQuc2NvcGVLaW5kLFxuICAgICAgICBzY29wZUlkOiBpbnB1dC5zY29wZUlkLFxuICAgICAgICBpbmhlcml0RG93bjogaW5wdXQuaW5oZXJpdERvd24gPz8gZmFsc2UsXG4gICAgICAgIHN0YXJ0c0F0OiBpbnB1dC5zdGFydHNBdCxcbiAgICAgICAgZXhwaXJlc0F0OiBpbnB1dC5leHBpcmVzQXQsXG4gICAgICAgIGNvbmRpdGlvbnM6IGlucHV0LmNvbmRpdGlvbnMsXG4gICAgICB9LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBhc3luYyByZXZva2VBc3NpZ25tZW50KGFzc2lnbm1lbnRJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlQnlJZChhc3NpZ25tZW50SWQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgbGlzdFByaW5jaXBhbEFzc2lnbm1lbnRzKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFJvbGVBc3NpZ25tZW50W10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKFxuICAgICAgKGFzc2lnbm1lbnQpID0+XG4gICAgICAgIHNhbWVUZW5hbnQoYXNzaWdubWVudC50ZW5hbnQsIHRlbmFudElkKSAmJlxuICAgICAgICByZWxhdGlvbk1hdGNoKGFzc2lnbm1lbnQucHJpbmNpcGFsLCBwcmluY2lwYWxJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdFJvbGVBc3NpZ25tZW50cyhcbiAgICByb2xlSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFJvbGVBc3NpZ25tZW50W10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChhc3NpZ25tZW50KSA9PlxuICAgICAgcmVsYXRpb25NYXRjaChhc3NpZ25tZW50LnJvbGUsIHJvbGVJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRlbmFudEFzc2lnbm1lbnRzKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxSb2xlQXNzaWdubWVudFtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigoYXNzaWdubWVudCkgPT5cbiAgICAgIHNhbWVUZW5hbnQoYXNzaWdubWVudC50ZW5hbnQsIHRlbmFudElkKVxuICAgICk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVBc3NpZ25tZW50V2luZG93KFxuICAgIGFzc2lnbm1lbnRJZDogc3RyaW5nLFxuICAgIHN0YXJ0c0F0OiBEYXRlIHwgdW5kZWZpbmVkLFxuICAgIGV4cGlyZXNBdDogRGF0ZSB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFJvbGVBc3NpZ25tZW50PiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKGFzc2lnbm1lbnRJZCwgeyBzdGFydHNBdCwgZXhwaXJlc0F0IH0sIC4uLmFyZ3MpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2U8RWZmZWN0aXZlUGVybWlzc2lvbj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihFZmZlY3RpdmVQZXJtaXNzaW9uKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RGb3JQcmluY2lwYWwoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8RWZmZWN0aXZlUGVybWlzc2lvbltdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcihcbiAgICAgIChwZXJtaXNzaW9uKSA9PlxuICAgICAgICBzYW1lVGVuYW50KHBlcm1pc3Npb24udGVuYW50LCB0ZW5hbnRJZCkgJiZcbiAgICAgICAgcmVsYXRpb25NYXRjaChwZXJtaXNzaW9uLnByaW5jaXBhbCwgcHJpbmNpcGFsSWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RGb3JTY29wZShcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHNjb3BlS2luZDogU2NvcGVLaW5kLFxuICAgIHNjb3BlSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPEVmZmVjdGl2ZVBlcm1pc3Npb25bXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoXG4gICAgICAocGVybWlzc2lvbikgPT5cbiAgICAgICAgc2FtZVRlbmFudChwZXJtaXNzaW9uLnRlbmFudCwgdGVuYW50SWQpICYmXG4gICAgICAgIHBlcm1pc3Npb24uc2NvcGVLaW5kID09PSBzY29wZUtpbmQgJiZcbiAgICAgICAgcGVybWlzc2lvbi5zY29wZUlkID09PSBzY29wZUlkXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGhhc1Blcm1pc3Npb24oXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIHBlcm1pc3Npb25LZXk6IHN0cmluZyxcbiAgICBzY29wZUtpbmQ6IFNjb3BlS2luZCxcbiAgICBzY29wZUlkOiBzdHJpbmcsXG4gICAgYXQ/OiBEYXRlLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0Rm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncykpLnNvbWUoXG4gICAgICAocGVybWlzc2lvbikgPT5cbiAgICAgICAgcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5ID09PSBwZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgIHBlcm1pc3Npb24uc2NvcGVLaW5kID09PSBzY29wZUtpbmQgJiZcbiAgICAgICAgcGVybWlzc2lvbi5zY29wZUlkID09PSBzY29wZUlkICYmXG4gICAgICAgICghcGVybWlzc2lvbi5zdGFydHNBdCB8fCAhYXQgfHwgcGVybWlzc2lvbi5zdGFydHNBdCA8PSBhdCkgJiZcbiAgICAgICAgKCFwZXJtaXNzaW9uLmV4cGlyZXNBdCB8fCAhYXQgfHwgcGVybWlzc2lvbi5leHBpcmVzQXQgPj0gYXQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUZvclByaW5jaXBhbChcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIHByaW5jaXBhbElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgZGVsZXRlTWFueUJ5SWQoXG4gICAgICB0aGlzLFxuICAgICAgYXdhaXQgdGhpcy5saXN0Rm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncyksXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUZvclRlbmFudCh0ZW5hbnRJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IGRlbGV0ZU1hbnlCeUlkKFxuICAgICAgdGhpcyxcbiAgICAgIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigocGVybWlzc2lvbikgPT5cbiAgICAgICAgc2FtZVRlbmFudChwZXJtaXNzaW9uLnRlbmFudCwgdGVuYW50SWQpXG4gICAgICApLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBAdHJhbnNhY3Rpb25hbCgpXG4gIGFzeW5jIHJlYnVpbGRGb3JQcmluY2lwYWwoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8RWZmZWN0aXZlUGVybWlzc2lvbltdPiB7XG4gICAgYXdhaXQgdGhpcy5kZWxldGVGb3JQcmluY2lwYWwodGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKTtcblxuICAgIGNvbnN0IHJvbGVBc3NpZ25tZW50U2VydmljZSA9IG5ldyBSb2xlQXNzaWdubWVudFNlcnZpY2UoKTtcbiAgICBjb25zdCByb2xlUGVybWlzc2lvblNlcnZpY2UgPSBuZXcgUm9sZVBlcm1pc3Npb25TZXJ2aWNlKCk7XG4gICAgY29uc3QgcGVybWlzc2lvblNlcnZpY2UgPSBuZXcgUGVybWlzc2lvblNlcnZpY2UoKTtcbiAgICBjb25zdCBncm91cE1lbWJlcnNoaXBTZXJ2aWNlID0gbmV3IEdyb3VwTWVtYmVyc2hpcFNlcnZpY2UoKTtcbiAgICBjb25zdCBwcmluY2lwYWxTZXJ2aWNlID0gbmV3IFByaW5jaXBhbFNlcnZpY2UoKTtcbiAgICBjb25zdCBvcmdVbml0Q2xvc3VyZVNlcnZpY2UgPSBuZXcgT3JnVW5pdENsb3N1cmVTZXJ2aWNlKCk7XG4gICAgY29uc3QgaW5oZXJpdGFuY2VCbG9ja1NlcnZpY2UgPSBuZXcgSW5oZXJpdGFuY2VCbG9ja1NlcnZpY2UoKTtcblxuICAgIGNvbnN0IG1hdGVyaWFsaXplZDogRWZmZWN0aXZlUGVybWlzc2lvblNuYXBzaG90W10gPSBbXTtcbiAgICBjb25zdCBzb3VyY2VBc3NpZ25tZW50cyA9XG4gICAgICBhd2FpdCByb2xlQXNzaWdubWVudFNlcnZpY2UubGlzdFByaW5jaXBhbEFzc2lnbm1lbnRzKFxuICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgcHJpbmNpcGFsSWQsXG4gICAgICAgIC4uLmFyZ3NcbiAgICAgICk7XG4gICAgY29uc3QgZ3JvdXBNZW1iZXJzaGlwcyA9IGF3YWl0IGdyb3VwTWVtYmVyc2hpcFNlcnZpY2UubGlzdFByaW5jaXBhbEdyb3VwcyhcbiAgICAgIHByaW5jaXBhbElkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgY29uc3QgZ3JvdXBBc3NpZ25tZW50cyA9IChcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICBncm91cE1lbWJlcnNoaXBzLm1hcChhc3luYyAobWVtYmVyc2hpcCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGdyb3VwUHJpbmNpcGFsID0gYXdhaXQgcHJpbmNpcGFsU2VydmljZS5nZXRHcm91cFByaW5jaXBhbChcbiAgICAgICAgICAgIHJlbGF0aW9uSWQobWVtYmVyc2hpcC50ZW5hbnQpLFxuICAgICAgICAgICAgcmVsYXRpb25JZChtZW1iZXJzaGlwLmdyb3VwKSxcbiAgICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiByb2xlQXNzaWdubWVudFNlcnZpY2UubGlzdFByaW5jaXBhbEFzc2lnbm1lbnRzKFxuICAgICAgICAgICAgdGVuYW50SWQsXG4gICAgICAgICAgICBncm91cFByaW5jaXBhbC5pZCxcbiAgICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICkuZmxhdCgpO1xuXG4gICAgY29uc3QgYXNzaWdubWVudHMgPSBbLi4uc291cmNlQXNzaWdubWVudHMsIC4uLmdyb3VwQXNzaWdubWVudHNdO1xuICAgIGZvciAoY29uc3QgYXNzaWdubWVudCBvZiBhc3NpZ25tZW50cykge1xuICAgICAgY29uc3Qgcm9sZVBlcm1pc3Npb25zID0gYXdhaXQgcm9sZVBlcm1pc3Npb25TZXJ2aWNlLmxpc3RSb2xlUGVybWlzc2lvbnMoXG4gICAgICAgIHJlbGF0aW9uSWQoYXNzaWdubWVudC5yb2xlKSxcbiAgICAgICAgLi4uYXJnc1xuICAgICAgKTtcbiAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIHJvbGVQZXJtaXNzaW9ucy5tYXAoYXN5bmMgKHJvbGVQZXJtaXNzaW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGVybWlzc2lvbiA9IGF3YWl0IHBlcm1pc3Npb25TZXJ2aWNlLmZpbmRPbmVCeShcbiAgICAgICAgICAgIFwiaWRcIixcbiAgICAgICAgICAgIHJlbGF0aW9uSWQocm9sZVBlcm1pc3Npb24ucGVybWlzc2lvbikgYXMgbmV2ZXIsXG4gICAgICAgICAgICAuLi5hcmdzXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gcGVybWlzc2lvbjtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgcGVybWlzc2lvbnMpIHtcbiAgICAgICAgaWYgKCFwZXJtaXNzaW9uKSBjb250aW51ZTtcbiAgICAgICAgY29uc3Qgc2NvcGVLaW5kID0gYXNzaWdubWVudC5zY29wZUtpbmQ7XG4gICAgICAgIGNvbnN0IHNjb3BlSWQgPSBhc3NpZ25tZW50LnNjb3BlSWQ7XG4gICAgICAgIGNvbnN0IHNjb3BlczogQXJyYXk8eyBzY29wZUtpbmQ6IFNjb3BlS2luZDsgc2NvcGVJZDogc3RyaW5nIH0+ID0gW107XG4gICAgICAgIGlmIChzY29wZUtpbmQgPT09IFNjb3BlS2luZC5UZW5hbnQpIHtcbiAgICAgICAgICBzY29wZXMucHVzaCh7IHNjb3BlS2luZCwgc2NvcGVJZDogdGVuYW50SWQgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NvcGVLaW5kID09PSBTY29wZUtpbmQuUmVzb3VyY2UpIHtcbiAgICAgICAgICBzY29wZXMucHVzaCh7IHNjb3BlS2luZCwgc2NvcGVJZCB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChzY29wZUtpbmQgPT09IFNjb3BlS2luZC5PcmdVbml0ICYmICFhc3NpZ25tZW50LmluaGVyaXREb3duKSB7XG4gICAgICAgICAgc2NvcGVzLnB1c2goeyBzY29wZUtpbmQsIHNjb3BlSWQgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoc2NvcGVLaW5kID09PSBTY29wZUtpbmQuT3JnVW5pdCAmJiBhc3NpZ25tZW50LmluaGVyaXREb3duKSB7XG4gICAgICAgICAgY29uc3QgZGVzY2VuZGFudHMgPSBhd2FpdCBvcmdVbml0Q2xvc3VyZVNlcnZpY2UubGlzdERlc2NlbmRhbnRzKFxuICAgICAgICAgICAgdGVuYW50SWQsXG4gICAgICAgICAgICBzY29wZUlkLFxuICAgICAgICAgICAgLi4uYXJnc1xuICAgICAgICAgICk7XG4gICAgICAgICAgc2NvcGVzLnB1c2goXG4gICAgICAgICAgICAuLi5kZXNjZW5kYW50cy5tYXAoKHJvdykgPT4gKHtcbiAgICAgICAgICAgICAgc2NvcGVLaW5kLFxuICAgICAgICAgICAgICBzY29wZUlkOiByZWxhdGlvbklkKHJvdy5kZXNjZW5kYW50KSxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHNjb3BlZCBvZiBzY29wZXMpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBzY29wZUtpbmQgPT09IFNjb3BlS2luZC5PcmdVbml0ICYmXG4gICAgICAgICAgICBhc3NpZ25tZW50LmluaGVyaXREb3duICYmXG4gICAgICAgICAgICBzY29wZWQuc2NvcGVJZCAhPT0gc2NvcGVJZCAmJlxuICAgICAgICAgICAgKGF3YWl0IGluaGVyaXRhbmNlQmxvY2tTZXJ2aWNlLmNhdGVnb3J5QmxvY2tlZEZvckFuY2VzdG9yKFxuICAgICAgICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgICAgICAgc2NvcGVkLnNjb3BlSWQsXG4gICAgICAgICAgICAgIHNjb3BlSWQsXG4gICAgICAgICAgICAgIHBlcm1pc3Npb24uY2F0ZWdvcnksXG4gICAgICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgICAgICkpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbWF0ZXJpYWxpemVkLnB1c2goe1xuICAgICAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgICAgIHByaW5jaXBhbElkLFxuICAgICAgICAgICAgcGVybWlzc2lvbktleTogcGVybWlzc2lvbi5rZXksXG4gICAgICAgICAgICBzY29wZUtpbmQ6IHNjb3BlZC5zY29wZUtpbmQsXG4gICAgICAgICAgICBzY29wZUlkOiBzY29wZWQuc2NvcGVJZCxcbiAgICAgICAgICAgIHNvdXJjZUtpbmQ6IFwicm9sZV9hc3NpZ25tZW50XCIsXG4gICAgICAgICAgICBzb3VyY2VJZDogYXNzaWdubWVudC5pZCxcbiAgICAgICAgICAgIHN0YXJ0c0F0OiBhc3NpZ25tZW50LnN0YXJ0c0F0LFxuICAgICAgICAgICAgZXhwaXJlc0F0OiBhc3NpZ25tZW50LmV4cGlyZXNBdCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1hdGVyaWFsaXplZC5tYXAoKHBlcm1pc3Npb24pID0+XG4gICAgICAgIHRoaXMuY3JlYXRlT25lKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiBwZXJtaXNzaW9uLmlkLFxuICAgICAgICAgICAgdGVuYW50OiBwZXJtaXNzaW9uLnRlbmFudElkLFxuICAgICAgICAgICAgcHJpbmNpcGFsOiBwZXJtaXNzaW9uLnByaW5jaXBhbElkLFxuICAgICAgICAgICAgcGVybWlzc2lvbktleTogcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5LFxuICAgICAgICAgICAgc2NvcGVLaW5kOiBwZXJtaXNzaW9uLnNjb3BlS2luZCxcbiAgICAgICAgICAgIHNjb3BlSWQ6IHBlcm1pc3Npb24uc2NvcGVJZCxcbiAgICAgICAgICAgIHNvdXJjZUtpbmQ6IHBlcm1pc3Npb24uc291cmNlS2luZCxcbiAgICAgICAgICAgIHNvdXJjZUlkOiBwZXJtaXNzaW9uLnNvdXJjZUlkLFxuICAgICAgICAgICAgc3RhcnRzQXQ6IHBlcm1pc3Npb24uc3RhcnRzQXQsXG4gICAgICAgICAgICBleHBpcmVzQXQ6IHBlcm1pc3Npb24uZXhwaXJlc0F0LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4uYXJnc1xuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgICByZXR1cm4gY3JlYXRlZDtcbiAgfVxuXG4gIEB0cmFuc2FjdGlvbmFsKClcbiAgYXN5bmMgcmVidWlsZEZvclRlbmFudCh0ZW5hbnRJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHByaW5jaXBhbHMgPSAoYXdhaXQgbmV3IFByaW5jaXBhbFNlcnZpY2UoKS5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoXG4gICAgICAocHJpbmNpcGFsKSA9PiBzYW1lVGVuYW50KHByaW5jaXBhbC50ZW5hbnQsIHRlbmFudElkKVxuICAgICk7XG4gICAgZm9yIChjb25zdCBwcmluY2lwYWwgb2YgcHJpbmNpcGFscykge1xuICAgICAgYXdhaXQgdGhpcy5yZWJ1aWxkRm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWwuaWQsIC4uLmFyZ3MpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHJvdGVjdGVkUmVzb3VyY2VTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxQcm90ZWN0ZWRSZXNvdXJjZT4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihQcm90ZWN0ZWRSZXNvdXJjZSk7XG4gIH1cblxuICBhc3luYyByZWdpc3RlclJlc291cmNlKFxuICAgIGlucHV0OiBSZWdpc3RlclJlc291cmNlSW5wdXQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxQcm90ZWN0ZWRSZXNvdXJjZT4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uZShcbiAgICAgIHtcbiAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgIHRlbmFudDogaW5wdXQudGVuYW50SWQsXG4gICAgICAgIG9yZ1VuaXQ6IGlucHV0Lm9yZ1VuaXRJZCxcbiAgICAgICAgcmVzb3VyY2VUeXBlOiBpbnB1dC5yZXNvdXJjZVR5cGUsXG4gICAgICAgIHJlc291cmNlSWQ6IGlucHV0LnJlc291cmNlSWQsXG4gICAgICAgIHZpc2liaWxpdHk6IGlucHV0LnZpc2liaWxpdHksXG4gICAgICAgIG93bmVyOiBpbnB1dC5vd25lclByaW5jaXBhbElkLFxuICAgICAgICBzZW5zaXRpdml0eTogaW5wdXQuc2Vuc2l0aXZpdHksXG4gICAgICAgIG1ldGFkYXRhOiBpbnB1dC5tZXRhZGF0YSxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGdldEJ5RG9tYWluUmVzb3VyY2UoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICByZXNvdXJjZVR5cGU6IHN0cmluZyxcbiAgICByZXNvdXJjZUlkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxQcm90ZWN0ZWRSZXNvdXJjZSB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maW5kKFxuICAgICAgKHJlc291cmNlKSA9PlxuICAgICAgICBzYW1lVGVuYW50KHJlc291cmNlLnRlbmFudCwgdGVuYW50SWQpICYmXG4gICAgICAgIHJlc291cmNlLnJlc291cmNlVHlwZSA9PT0gcmVzb3VyY2VUeXBlICYmXG4gICAgICAgIHJlc291cmNlLnJlc291cmNlSWQgPT09IHJlc291cmNlSWRcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbW92ZVJlc291cmNlVG9PcmdVbml0KFxuICAgIHByb3RlY3RlZFJlc291cmNlSWQ6IHN0cmluZyxcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFByb3RlY3RlZFJlc291cmNlPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHByb3RlY3RlZFJlc291cmNlSWQsIHsgb3JnVW5pdDogb3JnVW5pdElkIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgc2V0VmlzaWJpbGl0eShcbiAgICBwcm90ZWN0ZWRSZXNvdXJjZUlkOiBzdHJpbmcsXG4gICAgdmlzaWJpbGl0eTogUmVzb3VyY2VWaXNpYmlsaXR5LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8UHJvdGVjdGVkUmVzb3VyY2U+IHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUocHJvdGVjdGVkUmVzb3VyY2VJZCwgeyB2aXNpYmlsaXR5IH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgdHJhbnNmZXJPd25lcnNoaXAoXG4gICAgcHJvdGVjdGVkUmVzb3VyY2VJZDogc3RyaW5nLFxuICAgIG93bmVyUHJpbmNpcGFsSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFByb3RlY3RlZFJlc291cmNlPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKFxuICAgICAgcHJvdGVjdGVkUmVzb3VyY2VJZCxcbiAgICAgIHsgb3duZXI6IG93bmVyUHJpbmNpcGFsSWQgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdE9yZ1VuaXRSZXNvdXJjZXMoXG4gICAgb3JnVW5pdElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxQcm90ZWN0ZWRSZXNvdXJjZVtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigocmVzb3VyY2UpID0+XG4gICAgICByZWxhdGlvbk1hdGNoKHJlc291cmNlLm9yZ1VuaXQsIG9yZ1VuaXRJZClcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRlbmFudFJlc291cmNlcyhcbiAgICB0ZW5hbnRJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8UHJvdGVjdGVkUmVzb3VyY2VbXT4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKHJlc291cmNlKSA9PlxuICAgICAgc2FtZVRlbmFudChyZXNvdXJjZS50ZW5hbnQsIHRlbmFudElkKVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlc291cmNlR3JhbnRTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxSZXNvdXJjZUdyYW50PiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFJlc291cmNlR3JhbnQpO1xuICB9XG5cbiAgYXN5bmMgZ3JhbnRSZXNvdXJjZShcbiAgICBpbnB1dDogR3JhbnRSZXNvdXJjZUlucHV0LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8UmVzb3VyY2VHcmFudD4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uZShcbiAgICAgIHtcbiAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgIHRlbmFudDogaW5wdXQudGVuYW50SWQsXG4gICAgICAgIHJlc291cmNlOiBpbnB1dC5yZXNvdXJjZUlkLFxuICAgICAgICBwcmluY2lwYWw6IGlucHV0LnByaW5jaXBhbElkLFxuICAgICAgICBwZXJtaXNzaW9uS2V5OiBpbnB1dC5wZXJtaXNzaW9uS2V5LFxuICAgICAgICBzdGFydHNBdDogaW5wdXQuc3RhcnRzQXQsXG4gICAgICAgIGV4cGlyZXNBdDogaW5wdXQuZXhwaXJlc0F0LFxuICAgICAgICBjb25kaXRpb25zOiBpbnB1dC5jb25kaXRpb25zLFxuICAgICAgICBjcmVhdGVkQnk6IGlucHV0LmNyZWF0ZWRCeVByaW5jaXBhbElkLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmV2b2tlR3JhbnQoZ3JhbnRJZDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGVsZXRlQnlJZChncmFudElkLCAuLi5hcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RSZXNvdXJjZUdyYW50cyhcbiAgICBwcm90ZWN0ZWRSZXNvdXJjZUlkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxSZXNvdXJjZUdyYW50W10+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChncmFudCkgPT5cbiAgICAgIHJlbGF0aW9uTWF0Y2goZ3JhbnQucmVzb3VyY2UsIHByb3RlY3RlZFJlc291cmNlSWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RQcmluY2lwYWxHcmFudHMoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8UmVzb3VyY2VHcmFudFtdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcihcbiAgICAgIChncmFudCkgPT5cbiAgICAgICAgc2FtZVRlbmFudChncmFudC50ZW5hbnQsIHRlbmFudElkKSAmJlxuICAgICAgICByZWxhdGlvbk1hdGNoKGdyYW50LnByaW5jaXBhbCwgcHJpbmNpcGFsSWQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGhhc0dyYW50KFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWRSZXNvdXJjZUlkOiBzdHJpbmcsXG4gICAgcGVybWlzc2lvbktleTogc3RyaW5nLFxuICAgIGF0PzogRGF0ZSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKFxuICAgICAgYXdhaXQgdGhpcy5saXN0UHJpbmNpcGFsR3JhbnRzKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncylcbiAgICApLnNvbWUoXG4gICAgICAoZ3JhbnQpID0+XG4gICAgICAgIHJlbGF0aW9uTWF0Y2goZ3JhbnQucmVzb3VyY2UsIHByb3RlY3RlZFJlc291cmNlSWQpICYmXG4gICAgICAgIGdyYW50LnBlcm1pc3Npb25LZXkgPT09IHBlcm1pc3Npb25LZXkgJiZcbiAgICAgICAgKCFncmFudC5zdGFydHNBdCB8fCAhYXQgfHwgZ3JhbnQuc3RhcnRzQXQgPD0gYXQpICYmXG4gICAgICAgICghZ3JhbnQuZXhwaXJlc0F0IHx8ICFhdCB8fCBncmFudC5leHBpcmVzQXQgPj0gYXQpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUFsbEZvclJlc291cmNlKFxuICAgIHByb3RlY3RlZFJlc291cmNlSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBkZWxldGVNYW55QnlJZChcbiAgICAgIHRoaXMsXG4gICAgICBhd2FpdCB0aGlzLmxpc3RSZXNvdXJjZUdyYW50cyhwcm90ZWN0ZWRSZXNvdXJjZUlkLCAuLi5hcmdzKSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZUxpZmVjeWNsZVNlcnZpY2Uge1xuICBhc3luYyB1bnJlZ2lzdGVyUmVzb3VyY2UoXG4gICAgcHJvdGVjdGVkUmVzb3VyY2VJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IG5ldyBSZXNvdXJjZUdyYW50U2VydmljZSgpLmRlbGV0ZUFsbEZvclJlc291cmNlKFxuICAgICAgcHJvdGVjdGVkUmVzb3VyY2VJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGF3YWl0IG5ldyBQcm90ZWN0ZWRSZXNvdXJjZVNlcnZpY2UoKS5kZWxldGVCeUlkKFxuICAgICAgcHJvdGVjdGVkUmVzb3VyY2VJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmVzb2x2ZVJlc291cmNlU2NvcGUoXG4gICAgcHJvdGVjdGVkUmVzb3VyY2VJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8e1xuICAgIHRlbmFudElkOiBzdHJpbmc7XG4gICAgb3JnVW5pdElkOiBzdHJpbmc7XG4gICAgdmlzaWJpbGl0eTogUmVzb3VyY2VWaXNpYmlsaXR5O1xuICAgIG93bmVyUHJpbmNpcGFsSWQ/OiBzdHJpbmc7XG4gIH0+IHtcbiAgICBjb25zdCByZXNvdXJjZSA9IGF3YWl0IG5ldyBQcm90ZWN0ZWRSZXNvdXJjZVNlcnZpY2UoKS5nZXRCeUlkKFxuICAgICAgcHJvdGVjdGVkUmVzb3VyY2VJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICB0ZW5hbnRJZDogcmVsYXRpb25JZChyZXNvdXJjZS50ZW5hbnQpLFxuICAgICAgb3JnVW5pdElkOiByZWxhdGlvbklkKHJlc291cmNlLm9yZ1VuaXQpLFxuICAgICAgdmlzaWJpbGl0eTogcmVzb3VyY2UudmlzaWJpbGl0eSxcbiAgICAgIG93bmVyUHJpbmNpcGFsSWQ6IHJlc291cmNlLm93bmVyID8gcmVsYXRpb25JZChyZXNvdXJjZS5vd25lcikgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3RvcmFnZUJpbmRpbmdTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZTxTdG9yYWdlQmluZGluZz4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihTdG9yYWdlQmluZGluZyk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVCaW5kaW5nKFxuICAgIGlucHV0OiBDcmVhdGVTdG9yYWdlQmluZGluZ0lucHV0LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8U3RvcmFnZUJpbmRpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoXG4gICAgICB7XG4gICAgICAgIGlkOiBpZCgpLFxuICAgICAgICB0ZW5hbnQ6IGlucHV0LnRlbmFudElkLFxuICAgICAgICBzdG9yYWdlS2luZDogaW5wdXQuc3RvcmFnZUtpbmQsXG4gICAgICAgIGJpbmRpbmdLaW5kOiBpbnB1dC5iaW5kaW5nS2luZCxcbiAgICAgICAgYmluZGluZ0tleTogaW5wdXQuYmluZGluZ0tleSxcbiAgICAgICAgcmVnaW9uOiBpbnB1dC5yZWdpb24sXG4gICAgICAgIGNvbmZpZzogaW5wdXQuY29uZmlnLFxuICAgICAgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgbGlzdFRlbmFudEJpbmRpbmdzKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxTdG9yYWdlQmluZGluZ1tdPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigoYmluZGluZykgPT5cbiAgICAgIHNhbWVUZW5hbnQoYmluZGluZy50ZW5hbnQsIHRlbmFudElkKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBnZXRCaW5kaW5nKFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgc3RvcmFnZUtpbmQ6IFN0b3JhZ2VLaW5kLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8U3RvcmFnZUJpbmRpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdFRlbmFudEJpbmRpbmdzKHRlbmFudElkLCAuLi5hcmdzKSkuZmluZChcbiAgICAgIChiaW5kaW5nKSA9PiBiaW5kaW5nLnN0b3JhZ2VLaW5kID09PSBzdG9yYWdlS2luZFxuICAgICk7XG4gIH1cblxuICBhc3luYyBzZXRCaW5kaW5nQ29uZmlnKFxuICAgIGJpbmRpbmdJZDogc3RyaW5nLFxuICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTxTdG9yYWdlQmluZGluZz4ge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZShiaW5kaW5nSWQsIHsgY29uZmlnIH0sIC4uLmFyZ3MpO1xuICB9XG5cbiAgYXN5bmMgcHJvbW90ZVRvRGVkaWNhdGVkKFxuICAgIGJpbmRpbmdJZDogc3RyaW5nLFxuICAgIGJpbmRpbmdLZXk6IHN0cmluZyxcbiAgICByZWdpb246IHN0cmluZyxcbiAgICBjb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFN0b3JhZ2VCaW5kaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKFxuICAgICAgYmluZGluZ0lkLFxuICAgICAgeyBiaW5kaW5nS2luZDogU3RvcmFnZUJpbmRpbmdLaW5kLkRlZGljYXRlZCwgYmluZGluZ0tleSwgcmVnaW9uLCBjb25maWcgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2V0U2hhcmVkKFxuICAgIGJpbmRpbmdJZDogc3RyaW5nLFxuICAgIGJpbmRpbmdLZXk6IHN0cmluZyxcbiAgICByZWdpb246IHN0cmluZyxcbiAgICBjb25maWc/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPFN0b3JhZ2VCaW5kaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKFxuICAgICAgYmluZGluZ0lkLFxuICAgICAgeyBiaW5kaW5nS2luZDogU3RvcmFnZUJpbmRpbmdLaW5kLlNoYXJlZCwgYmluZGluZ0tleSwgcmVnaW9uLCBjb25maWcgfSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCb290c3RyYXBTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB0ZW5hbnRTZXJ2aWNlID0gbmV3IFRlbmFudFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSB0ZW5hbnRQcm9maWxlU2VydmljZSA9IG5ldyBUZW5hbnRQcm9maWxlU2VydmljZSgpO1xuICBwcml2YXRlIG9yZ1VuaXRTZXJ2aWNlID0gbmV3IE9yZ1VuaXRTZXJ2aWNlKCk7XG4gIHByaXZhdGUgb3JnVW5pdFByb2ZpbGVTZXJ2aWNlID0gbmV3IE9yZ1VuaXRQcm9maWxlU2VydmljZSgpO1xuICBwcml2YXRlIHVzZXJTZXJ2aWNlID0gbmV3IFVzZXJTZXJ2aWNlKCk7XG4gIHByaXZhdGUgbWVtYmVyc2hpcFNlcnZpY2UgPSBuZXcgVGVuYW50TWVtYmVyc2hpcFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBwcmluY2lwYWxTZXJ2aWNlID0gbmV3IFByaW5jaXBhbFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBwZXJtaXNzaW9uU2VydmljZSA9IG5ldyBQZXJtaXNzaW9uU2VydmljZSgpO1xuICBwcml2YXRlIHJvbGVTZXJ2aWNlID0gbmV3IFJvbGVTZXJ2aWNlKCk7XG4gIHByaXZhdGUgcm9sZVBlcm1pc3Npb25TZXJ2aWNlID0gbmV3IFJvbGVQZXJtaXNzaW9uU2VydmljZSgpO1xuICBwcml2YXRlIHJvbGVBc3NpZ25tZW50U2VydmljZSA9IG5ldyBSb2xlQXNzaWdubWVudFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBlZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZSA9IG5ldyBFZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZSgpO1xuXG4gIEB0cmFuc2FjdGlvbmFsKClcbiAgYXN5bmMgYm9vdHN0cmFwVGVuYW50RnJvbVRlbXBsYXRlKFxuICAgIHRlbXBsYXRlOiBCb290c3RyYXBUZW1wbGF0ZSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHtcbiAgICB0ZW5hbnRJZDogc3RyaW5nO1xuICAgIHJvb3RPcmdVbml0SWQ6IHN0cmluZztcbiAgICBvd25lclVzZXJJZDogc3RyaW5nO1xuICAgIG93bmVyUHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgfT4ge1xuICAgIGNvbnN0IHRlbmFudCA9IGF3YWl0IHRoaXMudGVuYW50U2VydmljZS5jcmVhdGVUZW5hbnQoXG4gICAgICB0ZW1wbGF0ZS50ZW5hbnQsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBpZiAodGVtcGxhdGUudGVuYW50LnByb2ZpbGVLZXkpIHtcbiAgICAgIGF3YWl0IHRoaXMudGVuYW50UHJvZmlsZVNlcnZpY2UuY3JlYXRlUHJvZmlsZShcbiAgICAgICAgdGVuYW50LmlkLFxuICAgICAgICB0ZW1wbGF0ZS50ZW5hbnQucHJvZmlsZUtleSxcbiAgICAgICAgdGVtcGxhdGUudGVuYW50LnByb2ZpbGVNZXRhZGF0YSxcbiAgICAgICAgLi4uYXJnc1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBjcmVhdGVPcmdUcmVlID0gYXN5bmMgKFxuICAgICAgcGFyZW50SWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICAgIG9yZ1VuaXQ6IEJvb3RzdHJhcE9yZ1VuaXRcbiAgICApOiBQcm9taXNlPE9yZ1VuaXQ+ID0+IHtcbiAgICAgIGNvbnN0IGNyZWF0ZWQgPVxuICAgICAgICBwYXJlbnRJZCA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgPyBhd2FpdCB0aGlzLm9yZ1VuaXRTZXJ2aWNlLmNyZWF0ZVJvb3QoXG4gICAgICAgICAgICAgIHRlbmFudC5pZCxcbiAgICAgICAgICAgICAgb3JnVW5pdC5uYW1lLFxuICAgICAgICAgICAgICBvcmdVbml0Lm1ldGFkYXRhLFxuICAgICAgICAgICAgICBvcmdVbml0LnByb2ZpbGVLZXksXG4gICAgICAgICAgICAgIG9yZ1VuaXQubWV0YWRhdGEsXG4gICAgICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGF3YWl0IHRoaXMub3JnVW5pdFNlcnZpY2UuY3JlYXRlQ2hpbGQoXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0ZW5hbnRJZDogdGVuYW50LmlkLFxuICAgICAgICAgICAgICAgIHBhcmVudE9yZ1VuaXRJZDogcGFyZW50SWQsXG4gICAgICAgICAgICAgICAgbmFtZTogb3JnVW5pdC5uYW1lLFxuICAgICAgICAgICAgICAgIG1ldGFkYXRhOiBvcmdVbml0Lm1ldGFkYXRhLFxuICAgICAgICAgICAgICAgIHByb2ZpbGVLZXk6IG9yZ1VuaXQucHJvZmlsZUtleSxcbiAgICAgICAgICAgICAgICBwcm9maWxlTWV0YWRhdGE6IG9yZ1VuaXQubWV0YWRhdGEsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC4uLmFyZ3NcbiAgICAgICAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIG9yZ1VuaXQuY2hpbGRyZW4gPz8gW10pIHtcbiAgICAgICAgYXdhaXQgY3JlYXRlT3JnVHJlZShjcmVhdGVkLmlkLCBjaGlsZCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlZDtcbiAgICB9O1xuXG4gICAgY29uc3Qgcm9vdE9yZ1VuaXQgPSBhd2FpdCBjcmVhdGVPcmdUcmVlKHVuZGVmaW5lZCwgdGVtcGxhdGUucm9vdE9yZ1VuaXQpO1xuICAgIGNvbnN0IG93bmVyID0gYXdhaXQgdGhpcy51c2VyU2VydmljZS5jcmVhdGVVc2VyKFxuICAgICAgdGVtcGxhdGUub3duZXJVc2VyLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy5tZW1iZXJzaGlwU2VydmljZS5hZGRVc2VyVG9UZW5hbnQoXG4gICAgICB0ZW5hbnQuaWQsXG4gICAgICBvd25lci5pZCxcbiAgICAgIE1lbWJlcnNoaXBTdGF0dXMuQWN0aXZlLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgY29uc3Qgb3duZXJQcmluY2lwYWwgPSBhd2FpdCB0aGlzLnByaW5jaXBhbFNlcnZpY2UuZ2V0VXNlclByaW5jaXBhbChcbiAgICAgIHRlbmFudC5pZCxcbiAgICAgIG93bmVyLmlkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgdGVtcGxhdGUucGVybWlzc2lvbnMpIHtcbiAgICAgIGF3YWl0IHRoaXMucGVybWlzc2lvblNlcnZpY2UuY3JlYXRlUGVybWlzc2lvbihwZXJtaXNzaW9uLCAuLi5hcmdzKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHJvbGUgb2YgdGVtcGxhdGUucm9sZXMpIHtcbiAgICAgIGNvbnN0IGNyZWF0ZWRSb2xlID0gYXdhaXQgdGhpcy5yb2xlU2VydmljZS5jcmVhdGVSb2xlKFxuICAgICAgICB7XG4gICAgICAgICAgdGVuYW50SWQ6IHRlbmFudC5pZCxcbiAgICAgICAgICBrZXk6IHJvbGUua2V5LFxuICAgICAgICAgIG5hbWU6IHJvbGUubmFtZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogcm9sZS5kZXNjcmlwdGlvbixcbiAgICAgICAgfSxcbiAgICAgICAgLi4uYXJnc1xuICAgICAgKTtcbiAgICAgIGZvciAoY29uc3QgcGVybWlzc2lvbktleSBvZiByb2xlLnBlcm1pc3Npb25LZXlzKSB7XG4gICAgICAgIGF3YWl0IHRoaXMucm9sZVBlcm1pc3Npb25TZXJ2aWNlLmFkZFBlcm1pc3Npb25LZXlUb1JvbGUoXG4gICAgICAgICAgY3JlYXRlZFJvbGUuaWQsXG4gICAgICAgICAgcGVybWlzc2lvbktleSxcbiAgICAgICAgICAuLi5hcmdzXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3duZXJSb2xlID0gYXdhaXQgdGhpcy5yb2xlU2VydmljZS5nZXRUZW5hbnRSb2xlQnlLZXkoXG4gICAgICB0ZW5hbnQuaWQsXG4gICAgICB0ZW1wbGF0ZS5vd25lclJvbGVLZXksXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLnJvbGVBc3NpZ25tZW50U2VydmljZS5hc3NpZ25Sb2xlKFxuICAgICAge1xuICAgICAgICB0ZW5hbnRJZDogdGVuYW50LmlkLFxuICAgICAgICBwcmluY2lwYWxJZDogb3duZXJQcmluY2lwYWwuaWQsXG4gICAgICAgIHJvbGVJZDogb3duZXJSb2xlLmlkLFxuICAgICAgICBzY29wZUtpbmQ6IFNjb3BlS2luZC5PcmdVbml0LFxuICAgICAgICBzY29wZUlkOiByb290T3JnVW5pdC5pZCxcbiAgICAgICAgaW5oZXJpdERvd246IHRydWUsXG4gICAgICB9LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy5lZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZS5yZWJ1aWxkRm9yUHJpbmNpcGFsKFxuICAgICAgdGVuYW50LmlkLFxuICAgICAgb3duZXJQcmluY2lwYWwuaWQsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICB0ZW5hbnRJZDogdGVuYW50LmlkLFxuICAgICAgcm9vdE9yZ1VuaXRJZDogcm9vdE9yZ1VuaXQuaWQsXG4gICAgICBvd25lclVzZXJJZDogb3duZXIuaWQsXG4gICAgICBvd25lclByaW5jaXBhbElkOiBvd25lclByaW5jaXBhbC5pZCxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTeXN0ZW1NYW5hZ2VtZW50U2VydmljZSB7XG4gIHByaXZhdGUgbWVtYmVyc2hpcFNlcnZpY2UgPSBuZXcgVGVuYW50TWVtYmVyc2hpcFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBvcmdNZW1iZXJzaGlwU2VydmljZSA9IG5ldyBPcmdVbml0TWVtYmVyc2hpcFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBwcmluY2lwYWxTZXJ2aWNlID0gbmV3IFByaW5jaXBhbFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSByb2xlU2VydmljZSA9IG5ldyBSb2xlU2VydmljZSgpO1xuICBwcml2YXRlIHJvbGVBc3NpZ25tZW50U2VydmljZSA9IG5ldyBSb2xlQXNzaWdubWVudFNlcnZpY2UoKTtcbiAgcHJpdmF0ZSBlZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZSA9IG5ldyBFZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZSgpO1xuXG4gIEB0cmFuc2FjdGlvbmFsKClcbiAgYXN5bmMgb25ib2FyZFVzZXJUb1RlbmFudEFuZE9yZ1VuaXQoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICB1c2VySWQ6IHN0cmluZyxcbiAgICBvcmdVbml0SWQ6IHN0cmluZyxcbiAgICByb2xlS2V5OiBzdHJpbmcsXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogUHJvbWlzZTx7IHByaW5jaXBhbElkOiBzdHJpbmcgfT4ge1xuICAgIGF3YWl0IHRoaXMubWVtYmVyc2hpcFNlcnZpY2UuYWRkVXNlclRvVGVuYW50KFxuICAgICAgdGVuYW50SWQsXG4gICAgICB1c2VySWQsXG4gICAgICBNZW1iZXJzaGlwU3RhdHVzLkFjdGl2ZSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGF3YWl0IHRoaXMub3JnTWVtYmVyc2hpcFNlcnZpY2UuYWRkVXNlclRvT3JnVW5pdChcbiAgICAgIHRlbmFudElkLFxuICAgICAgb3JnVW5pdElkLFxuICAgICAgdXNlcklkLFxuICAgICAgTWVtYmVyc2hpcFN0YXR1cy5BY3RpdmUsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBjb25zdCBwcmluY2lwYWwgPSBhd2FpdCB0aGlzLnByaW5jaXBhbFNlcnZpY2UuZ2V0VXNlclByaW5jaXBhbChcbiAgICAgIHRlbmFudElkLFxuICAgICAgdXNlcklkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgY29uc3Qgcm9sZSA9IGF3YWl0IHRoaXMucm9sZVNlcnZpY2UuZ2V0VGVuYW50Um9sZUJ5S2V5KFxuICAgICAgdGVuYW50SWQsXG4gICAgICByb2xlS2V5LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy5yb2xlQXNzaWdubWVudFNlcnZpY2UuYXNzaWduUm9sZShcbiAgICAgIHtcbiAgICAgICAgdGVuYW50SWQsXG4gICAgICAgIHByaW5jaXBhbElkOiBwcmluY2lwYWwuaWQsXG4gICAgICAgIHJvbGVJZDogcm9sZS5pZCxcbiAgICAgICAgc2NvcGVLaW5kOiBTY29wZUtpbmQuT3JnVW5pdCxcbiAgICAgICAgc2NvcGVJZDogb3JnVW5pdElkLFxuICAgICAgICBpbmhlcml0RG93bjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlLnJlYnVpbGRGb3JQcmluY2lwYWwoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHByaW5jaXBhbC5pZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIHJldHVybiB7IHByaW5jaXBhbElkOiBwcmluY2lwYWwuaWQgfTtcbiAgfVxuXG4gIEB0cmFuc2FjdGlvbmFsKClcbiAgYXN5bmMgY2hhbmdlVXNlck9yZ1JvbGUoXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIG9yZ1VuaXRJZDogc3RyaW5nLFxuICAgIHJvbGVLZXk6IHN0cmluZyxcbiAgICBpbmhlcml0RG93bjogYm9vbGVhbixcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByb2xlID0gYXdhaXQgdGhpcy5yb2xlU2VydmljZS5nZXRUZW5hbnRSb2xlQnlLZXkoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHJvbGVLZXksXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50QXNzaWdubWVudHMgPVxuICAgICAgYXdhaXQgdGhpcy5yb2xlQXNzaWdubWVudFNlcnZpY2UubGlzdFByaW5jaXBhbEFzc2lnbm1lbnRzKFxuICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgcHJpbmNpcGFsSWQsXG4gICAgICAgIC4uLmFyZ3NcbiAgICAgICk7XG4gICAgZm9yIChjb25zdCBhc3NpZ25tZW50IG9mIGN1cnJlbnRBc3NpZ25tZW50cy5maWx0ZXIoXG4gICAgICAocm93KSA9PiByb3cuc2NvcGVLaW5kID09PSBTY29wZUtpbmQuT3JnVW5pdCAmJiByb3cuc2NvcGVJZCA9PT0gb3JnVW5pdElkXG4gICAgKSkge1xuICAgICAgYXdhaXQgdGhpcy5yb2xlQXNzaWdubWVudFNlcnZpY2UucmV2b2tlQXNzaWdubWVudChhc3NpZ25tZW50LmlkLCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5yb2xlQXNzaWdubWVudFNlcnZpY2UuYXNzaWduUm9sZShcbiAgICAgIHtcbiAgICAgICAgdGVuYW50SWQsXG4gICAgICAgIHByaW5jaXBhbElkLFxuICAgICAgICByb2xlSWQ6IHJvbGUuaWQsXG4gICAgICAgIHNjb3BlS2luZDogU2NvcGVLaW5kLk9yZ1VuaXQsXG4gICAgICAgIHNjb3BlSWQ6IG9yZ1VuaXRJZCxcbiAgICAgICAgaW5oZXJpdERvd24sXG4gICAgICB9LFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy5lZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZS5yZWJ1aWxkRm9yUHJpbmNpcGFsKFxuICAgICAgdGVuYW50SWQsXG4gICAgICBwcmluY2lwYWxJZCxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICB9XG5cbiAgQHRyYW5zYWN0aW9uYWwoKVxuICBhc3luYyBzdXNwZW5kVXNlckluVGVuYW50KFxuICAgIHRlbmFudE1lbWJlcnNoaXBJZDogc3RyaW5nLFxuICAgIHRlbmFudElkOiBzdHJpbmcsXG4gICAgcHJpbmNpcGFsSWQ6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBhbnlbXVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLm1lbWJlcnNoaXBTZXJ2aWNlLnNldFN0YXR1cyhcbiAgICAgIHRlbmFudE1lbWJlcnNoaXBJZCxcbiAgICAgIE1lbWJlcnNoaXBTdGF0dXMuU3VzcGVuZGVkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgYXdhaXQgdGhpcy5lZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZS5kZWxldGVGb3JQcmluY2lwYWwoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHByaW5jaXBhbElkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cblxuICBAdHJhbnNhY3Rpb25hbCgpXG4gIGFzeW5jIHJlYWN0aXZhdGVVc2VySW5UZW5hbnQoXG4gICAgdGVuYW50TWVtYmVyc2hpcElkOiBzdHJpbmcsXG4gICAgdGVuYW50SWQ6IHN0cmluZyxcbiAgICBwcmluY2lwYWxJZDogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubWVtYmVyc2hpcFNlcnZpY2Uuc2V0U3RhdHVzKFxuICAgICAgdGVuYW50TWVtYmVyc2hpcElkLFxuICAgICAgTWVtYmVyc2hpcFN0YXR1cy5BY3RpdmUsXG4gICAgICAuLi5hcmdzXG4gICAgKTtcbiAgICBhd2FpdCB0aGlzLmVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlLnJlYnVpbGRGb3JQcmluY2lwYWwoXG4gICAgICB0ZW5hbnRJZCxcbiAgICAgIHByaW5jaXBhbElkLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
1055
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtLnNlcnZpY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsib3JnLWJhc2VkLWF1dGhvcml6YXRpb24tc3lzdGVtLnNlcnZpY2VzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFF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PSAodGhpcyAmJiB0aGlzLl9fZGVjb3JhdGUpIHx8IGZ1bmN0aW9uIChkZWNvcmF0b3JzLCB0YXJnZXQsIGtleSwgZGVzYykge1xuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0LmRlY29yYXRlID09PSBcImZ1bmN0aW9uXCIpIHIgPSBSZWZsZWN0LmRlY29yYXRlKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKTtcbiAgICBlbHNlIGZvciAodmFyIGkgPSBkZWNvcmF0b3JzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSBpZiAoZCA9IGRlY29yYXRvcnNbaV0pIHIgPSAoYyA8IDMgPyBkKHIpIDogYyA+IDMgPyBkKHRhcmdldCwga2V5LCByKSA6IGQodGFyZ2V0LCBrZXkpKSB8fCByO1xuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XG59O1xudmFyIF9fbWV0YWRhdGEgPSAodGhpcyAmJiB0aGlzLl9fbWV0YWRhdGEpIHx8IGZ1bmN0aW9uIChrLCB2KSB7XG4gICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSBcIm9iamVjdFwiICYmIHR5cGVvZiBSZWZsZWN0Lm1ldGFkYXRhID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBSZWZsZWN0Lm1ldGFkYXRhKGssIHYpO1xufTtcbmltcG9ydCB7IEJhc2VNb2RlbFNlcnZpY2UsIElzb2xhdGlvblRpZXIsIE1lbWJlcnNoaXBTdGF0dXMsIFByaW5jaXBhbEtpbmQsIFNjb3BlS2luZCwgU3RvcmFnZUJpbmRpbmdLaW5kLCBpZCwgcmVsYXRpb25JZCwgdHJhbnNhY3Rpb25hbCwgfSBmcm9tIFwiLi9vcmctYmFzZWQtYXV0aG9yaXphdGlvbi1zeXN0ZW0uanNcIjtcbmltcG9ydCB7IEVmZmVjdGl2ZVBlcm1pc3Npb24sIEdyb3VwLCBHcm91cE1lbWJlcnNoaXAsIEluaGVyaXRhbmNlQmxvY2ssIE9yZ1VuaXQsIE9yZ1VuaXRDbG9zdXJlLCBPcmdVbml0TWVtYmVyc2hpcCwgT3JnVW5pdFByb2ZpbGUsIFBlcm1pc3Npb24sIFByb3RlY3RlZFJlc291cmNlLCBQcmluY2lwYWwsIFJlc291cmNlR3JhbnQsIFJvbGUsIFJvbGVBc3NpZ25tZW50LCBSb2xlUGVybWlzc2lvbiwgU3RvcmFnZUJpbmRpbmcsIFRlbmFudCwgVGVuYW50TWVtYmVyc2hpcCwgVGVuYW50UHJvZmlsZSwgVXNlciwgfSBmcm9tIFwiLi9vcmctYmFzZWQtYXV0aG9yaXphdGlvbi1zeXN0ZW0ubW9kZWxzLmpzXCI7XG4vL1xuLy8gY29uc3Qgbm93SXNvID0gKCkgPT4gbmV3IERhdGUoKTtcbi8vIGNvbnN0IGFzQXJyYXkgPSA8VD4odmFsdWU6IFRbXSB8IHVuZGVmaW5lZCk6IFRbXSA9PiB2YWx1ZSA/PyBbXTtcbmNvbnN0IHNhbWVUZW5hbnQgPSAocm93VGVuYW50LCB0ZW5hbnRJZCkgPT4gcmVsYXRpb25JZChyb3dUZW5hbnQpID09PSB0ZW5hbnRJZDtcbmNvbnN0IHJlbGF0aW9uTWF0Y2ggPSAodmFsdWUsIHRhcmdldCkgPT4gdGFyZ2V0ID8gcmVsYXRpb25JZCh2YWx1ZSkgPT09IHRhcmdldCA6IGZhbHNlO1xuY29uc3QgbG93ZXJTbHVnID0gKHZhbHVlKSA9PiB2YWx1ZVxuICAgIC50cmltKClcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC5yZXBsYWNlKC9bXmEtejAtOV0rL2csIFwiLVwiKVxuICAgIC5yZXBsYWNlKC9eLSt8LSskL2csIFwiXCIpIHx8IFwiaXRlbVwiO1xuYXN5bmMgZnVuY3Rpb24gZGVsZXRlTWFueUJ5SWQoc2VydmljZSwgcm93cywgLi4uYXJncykge1xuICAgIGZvciAoY29uc3Qgcm93IG9mIHJvd3MpIHtcbiAgICAgICAgYXdhaXQgc2VydmljZS5kZWxldGVCeUlkKHJvdy5pZCwgLi4uYXJncyk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFRlbmFudFByb2ZpbGVTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKFRlbmFudFByb2ZpbGUpO1xuICAgIH1cbiAgICBhc3luYyBjcmVhdGVQcm9maWxlKHRlbmFudElkLCBwcm9maWxlS2V5LCBtZXRhZGF0YSwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoe1xuICAgICAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgICAgICB0ZW5hbnQ6IHRlbmFudElkLFxuICAgICAgICAgICAgcHJvZmlsZUtleSxcbiAgICAgICAgICAgIG1ldGFkYXRhLFxuICAgICAgICB9LCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgbGlzdEZvclRlbmFudCh0ZW5hbnRJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChwcm9maWxlKSA9PiByZWxhdGlvbk1hdGNoKHByb2ZpbGUudGVuYW50LCB0ZW5hbnRJZCkpO1xuICAgIH1cbiAgICBhc3luYyBkZWxldGVGb3JUZW5hbnQodGVuYW50SWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgYXdhaXQgZGVsZXRlTWFueUJ5SWQodGhpcywgYXdhaXQgdGhpcy5saXN0Rm9yVGVuYW50KHRlbmFudElkLCAuLi5hcmdzKSwgLi4uYXJncyk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIE9yZ1VuaXRQcm9maWxlU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihPcmdVbml0UHJvZmlsZSk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZVByb2ZpbGUob3JnVW5pdElkLCBwcm9maWxlS2V5LCBtZXRhZGF0YSwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoe1xuICAgICAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgICAgICBvcmdVbml0OiBvcmdVbml0SWQsXG4gICAgICAgICAgICBwcm9maWxlS2V5LFxuICAgICAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIH0sIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBsaXN0Rm9yT3JnVW5pdChvcmdVbml0SWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigocHJvZmlsZSkgPT4gcmVsYXRpb25NYXRjaChwcm9maWxlLm9yZ1VuaXQsIG9yZ1VuaXRJZCkpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBPcmdVbml0Q2xvc3VyZVNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoT3JnVW5pdENsb3N1cmUpO1xuICAgIH1cbiAgICBhc3luYyBsaXN0QW5jZXN0b3JzKHRlbmFudElkLCBvcmdVbml0SWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpXG4gICAgICAgICAgICAuZmlsdGVyKChyb3cpID0+IHNhbWVUZW5hbnQocm93LnRlbmFudCwgdGVuYW50SWQpICYmXG4gICAgICAgICAgICByZWxhdGlvbk1hdGNoKHJvdy5kZXNjZW5kYW50LCBvcmdVbml0SWQpKVxuICAgICAgICAgICAgLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiBsZWZ0LmRlcHRoIC0gcmlnaHQuZGVwdGgpO1xuICAgIH1cbiAgICBhc3luYyBsaXN0RGVzY2VuZGFudHModGVuYW50SWQsIG9yZ1VuaXRJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSlcbiAgICAgICAgICAgIC5maWx0ZXIoKHJvdykgPT4gc2FtZVRlbmFudChyb3cudGVuYW50LCB0ZW5hbnRJZCkgJiZcbiAgICAgICAgICAgIHJlbGF0aW9uTWF0Y2gocm93LmFuY2VzdG9yLCBvcmdVbml0SWQpKVxuICAgICAgICAgICAgLnNvcnQoKGxlZnQsIHJpZ2h0KSA9PiBsZWZ0LmRlcHRoIC0gcmlnaHQuZGVwdGgpO1xuICAgIH1cbiAgICBhc3luYyBpc0FuY2VzdG9yT2YodGVuYW50SWQsIGFuY2VzdG9yT3JnVW5pdElkLCBkZXNjZW5kYW50T3JnVW5pdElkLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QW5jZXN0b3JzKHRlbmFudElkLCBkZXNjZW5kYW50T3JnVW5pdElkLCAuLi5hcmdzKSkuc29tZSgocm93KSA9PiByZWxhdGlvbk1hdGNoKHJvdy5hbmNlc3RvciwgYW5jZXN0b3JPcmdVbml0SWQpKTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlU2VsZkxpbmsodGVuYW50SWQsIG9yZ1VuaXRJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoe1xuICAgICAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgICAgICB0ZW5hbnQ6IHRlbmFudElkLFxuICAgICAgICAgICAgYW5jZXN0b3I6IG9yZ1VuaXRJZCxcbiAgICAgICAgICAgIGRlc2NlbmRhbnQ6IG9yZ1VuaXRJZCxcbiAgICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICB9LCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgaW5zZXJ0QW5jZXN0b3JMaW5rc0Zvck5ld0NoaWxkKHRlbmFudElkLCBwYXJlbnRPcmdVbml0SWQsIGNoaWxkT3JnVW5pdElkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IGFuY2VzdG9yTGlua3MgPSBhd2FpdCB0aGlzLmxpc3RBbmNlc3RvcnModGVuYW50SWQsIHBhcmVudE9yZ1VuaXRJZCwgLi4uYXJncyk7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGFuY2VzdG9yTGlua3MubWFwKChsaW5rKSA9PiB0aGlzLmNyZWF0ZU9uZSh7XG4gICAgICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgICAgIHRlbmFudDogdGVuYW50SWQsXG4gICAgICAgICAgICBhbmNlc3RvcjogbGluay5hbmNlc3RvcixcbiAgICAgICAgICAgIGRlc2NlbmRhbnQ6IGNoaWxkT3JnVW5pdElkLFxuICAgICAgICAgICAgZGVwdGg6IGxpbmsuZGVwdGggKyAxLFxuICAgICAgICB9LCAuLi5hcmdzKSkpO1xuICAgIH1cbiAgICBhc3luYyBkZWxldGVMaW5rc0ZvclN1YnRyZWUodGVuYW50SWQsIG9yZ1VuaXRJZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCBzdWJ0cmVlID0gYXdhaXQgdGhpcy5saXN0RGVzY2VuZGFudHModGVuYW50SWQsIG9yZ1VuaXRJZCwgLi4uYXJncyk7XG4gICAgICAgIGNvbnN0IGRlc2NlbmRhbnRJZHMgPSBuZXcgU2V0KFtcbiAgICAgICAgICAgIG9yZ1VuaXRJZCxcbiAgICAgICAgICAgIC4uLnN1YnRyZWUubWFwKChyb3cpID0+IHJlbGF0aW9uSWQocm93LmRlc2NlbmRhbnQpKSxcbiAgICAgICAgXSk7XG4gICAgICAgIGNvbnN0IGFuY2VzdG9ySWRzID0gbmV3IFNldChbXG4gICAgICAgICAgICBvcmdVbml0SWQsXG4gICAgICAgICAgICAuLi5zdWJ0cmVlLm1hcCgocm93KSA9PiByZWxhdGlvbklkKHJvdy5hbmNlc3RvcikpLFxuICAgICAgICBdKTtcbiAgICAgICAgY29uc3Qgcm93cyA9IChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigocm93KSA9PiBzYW1lVGVuYW50KHJvdy50ZW5hbnQsIHRlbmFudElkKSAmJlxuICAgICAgICAgICAgKGRlc2NlbmRhbnRJZHMuaGFzKHJlbGF0aW9uSWQocm93LmRlc2NlbmRhbnQpKSB8fFxuICAgICAgICAgICAgICAgIGFuY2VzdG9ySWRzLmhhcyhyZWxhdGlvbklkKHJvdy5hbmNlc3RvcikpKSk7XG4gICAgICAgIGF3YWl0IGRlbGV0ZU1hbnlCeUlkKHRoaXMsIHJvd3MsIC4uLmFyZ3MpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBJbmhlcml0YW5jZUJsb2NrU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihJbmhlcml0YW5jZUJsb2NrKTtcbiAgICB9XG4gICAgYXN5bmMgYmxvY2tDYXRlZ29yeSh0ZW5hbnRJZCwgb3JnVW5pdElkLCBwZXJtaXNzaW9uQ2F0ZWdvcnksIGJsb2NrZWRGcm9tQW5jZXN0b3JJZCwgcmVhc29uLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uZSh7XG4gICAgICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgICAgIHRlbmFudDogdGVuYW50SWQsXG4gICAgICAgICAgICBvcmdVbml0OiBvcmdVbml0SWQsXG4gICAgICAgICAgICBibG9ja2VkRnJvbUFuY2VzdG9yOiBibG9ja2VkRnJvbUFuY2VzdG9ySWQsXG4gICAgICAgICAgICBwZXJtaXNzaW9uQ2F0ZWdvcnksXG4gICAgICAgICAgICByZWFzb24sXG4gICAgICAgIH0sIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyB1bmJsb2NrQ2F0ZWdvcnkoYmxvY2tJZCwgLi4uYXJncykge1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZUJ5SWQoYmxvY2tJZCwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RGb3JPcmdVbml0KHRlbmFudElkLCBvcmdVbml0SWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigoYmxvY2spID0+IHNhbWVUZW5hbnQoYmxvY2sudGVuYW50LCB0ZW5hbnRJZCkgJiZcbiAgICAgICAgICAgIHJlbGF0aW9uTWF0Y2goYmxvY2sub3JnVW5pdCwgb3JnVW5pdElkKSk7XG4gICAgfVxuICAgIGFzeW5jIGNhdGVnb3J5QmxvY2tlZEZvckFuY2VzdG9yKHRlbmFudElkLCBvcmdVbml0SWQsIGFuY2VzdG9yT3JnVW5pdElkLCBjYXRlZ29yeSwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEZvck9yZ1VuaXQodGVuYW50SWQsIG9yZ1VuaXRJZCwgLi4uYXJncykpLnNvbWUoKGJsb2NrKSA9PiBibG9jay5wZXJtaXNzaW9uQ2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgICAoIWJsb2NrLmJsb2NrZWRGcm9tQW5jZXN0b3IgfHxcbiAgICAgICAgICAgICAgICByZWxhdGlvbk1hdGNoKGJsb2NrLmJsb2NrZWRGcm9tQW5jZXN0b3IsIGFuY2VzdG9yT3JnVW5pdElkKSkpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBUZW5hbnRTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKFRlbmFudCk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZVRlbmFudChpbnB1dCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoe1xuICAgICAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgICAgICBzbHVnOiBpbnB1dC5zbHVnLFxuICAgICAgICAgICAgbmFtZTogaW5wdXQubmFtZSxcbiAgICAgICAgICAgIGlzb2xhdGlvblRpZXI6IGlucHV0Lmlzb2xhdGlvblRpZXIgPz8gSXNvbGF0aW9uVGllci5Qb29sZWQsXG4gICAgICAgIH0sIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBnZXRCeVNsdWcoc2x1ZywgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kT25lQnkoXCJzbHVnXCIsIHNsdWcsIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyByZW5hbWVUZW5hbnQodGVuYW50SWQsIG5hbWUsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHRlbmFudElkLCB7IG5hbWUgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGNoYW5nZVNsdWcodGVuYW50SWQsIHNsdWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHRlbmFudElkLCB7IHNsdWcgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHNldElzb2xhdGlvblRpZXIodGVuYW50SWQsIGlzb2xhdGlvblRpZXIsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHRlbmFudElkLCB7IGlzb2xhdGlvblRpZXIgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGRlbGV0ZVRlbmFudENvbnRyb2xsZWQodGVuYW50SWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVCeUlkKHRlbmFudElkLCAuLi5hcmdzKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgT3JnVW5pdFNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoT3JnVW5pdCk7XG4gICAgfVxuICAgIG9yZ1VuaXRQYXRoKHBhcmVudFBhdGgsIG5hbWUpIHtcbiAgICAgICAgY29uc3Qgc2VnbWVudCA9IGxvd2VyU2x1ZyhuYW1lKTtcbiAgICAgICAgcmV0dXJuIHBhcmVudFBhdGhcbiAgICAgICAgICAgID8gYCR7cGFyZW50UGF0aC5yZXBsYWNlKC9cXC8rJC8sIFwiXCIpfS8ke3NlZ21lbnR9YFxuICAgICAgICAgICAgOiBgLyR7c2VnbWVudH1gO1xuICAgIH1cbiAgICBhc3luYyBjcmVhdGVQcm9maWxlSWZOZWVkZWQob3JnVW5pdElkLCBwcm9maWxlS2V5LCBwcm9maWxlTWV0YWRhdGEsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKCFwcm9maWxlS2V5KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBwcm9maWxlU2VydmljZSA9IG5ldyBPcmdVbml0UHJvZmlsZVNlcnZpY2UoKTtcbiAgICAgICAgYXdhaXQgcHJvZmlsZVNlcnZpY2UuY3JlYXRlUHJvZmlsZShvcmdVbml0SWQsIHByb2ZpbGVLZXksIHByb2ZpbGVNZXRhZGF0YSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZVJvb3QodGVuYW50SWQsIG5hbWUsIG1ldGFkYXRhLCBwcm9maWxlS2V5LCBwcm9maWxlTWV0YWRhdGEsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3Qgb3JnVW5pdCA9IGF3YWl0IHRoaXMuY3JlYXRlT25lKHtcbiAgICAgICAgICAgIGlkOiBpZCgpLFxuICAgICAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBwYXRoOiB0aGlzLm9yZ1VuaXRQYXRoKHVuZGVmaW5lZCwgbmFtZSksXG4gICAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgfSwgLi4uYXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMuY3JlYXRlUHJvZmlsZUlmTmVlZGVkKG9yZ1VuaXQuaWQsIHByb2ZpbGVLZXksIHByb2ZpbGVNZXRhZGF0YSwgLi4uYXJncyk7XG4gICAgICAgIGNvbnN0IGNsb3N1cmVTZXJ2aWNlID0gbmV3IE9yZ1VuaXRDbG9zdXJlU2VydmljZSgpO1xuICAgICAgICBhd2FpdCBjbG9zdXJlU2VydmljZS5jcmVhdGVTZWxmTGluayh0ZW5hbnRJZCwgb3JnVW5pdC5pZCwgLi4uYXJncyk7XG4gICAgICAgIHJldHVybiBvcmdVbml0O1xuICAgIH1cbiAgICBhc3luYyBjcmVhdGVDaGlsZChpbnB1dCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCBwYXJlbnQgPSBpbnB1dC5wYXJlbnRPcmdVbml0SWRcbiAgICAgICAgICAgID8gYXdhaXQgdGhpcy5nZXRCeUlkKGlucHV0LnBhcmVudE9yZ1VuaXRJZCwgLi4uYXJncylcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBvcmdVbml0ID0gYXdhaXQgdGhpcy5jcmVhdGVPbmUoe1xuICAgICAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgICAgICB0ZW5hbnQ6IGlucHV0LnRlbmFudElkLFxuICAgICAgICAgICAgcGFyZW50OiBwYXJlbnQ/LmlkID8/IGlucHV0LnBhcmVudE9yZ1VuaXRJZCxcbiAgICAgICAgICAgIG5hbWU6IGlucHV0Lm5hbWUsXG4gICAgICAgICAgICBwYXRoOiB0aGlzLm9yZ1VuaXRQYXRoKHBhcmVudD8ucGF0aCwgaW5wdXQubmFtZSksXG4gICAgICAgICAgICBtZXRhZGF0YTogaW5wdXQubWV0YWRhdGEsXG4gICAgICAgIH0sIC4uLmFyZ3MpO1xuICAgICAgICBhd2FpdCB0aGlzLmNyZWF0ZVByb2ZpbGVJZk5lZWRlZChvcmdVbml0LmlkLCBpbnB1dC5wcm9maWxlS2V5LCBpbnB1dC5wcm9maWxlTWV0YWRhdGEsIC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBjbG9zdXJlU2VydmljZSA9IG5ldyBPcmdVbml0Q2xvc3VyZVNlcnZpY2UoKTtcbiAgICAgICAgYXdhaXQgY2xvc3VyZVNlcnZpY2UuY3JlYXRlU2VsZkxpbmsoaW5wdXQudGVuYW50SWQsIG9yZ1VuaXQuaWQsIC4uLmFyZ3MpO1xuICAgICAgICBpZiAoaW5wdXQucGFyZW50T3JnVW5pdElkKSB7XG4gICAgICAgICAgICBhd2FpdCBjbG9zdXJlU2VydmljZS5pbnNlcnRBbmNlc3RvckxpbmtzRm9yTmV3Q2hpbGQoaW5wdXQudGVuYW50SWQsIGlucHV0LnBhcmVudE9yZ1VuaXRJZCwgb3JnVW5pdC5pZCwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9yZ1VuaXQ7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RDaGlsZHJlbihwYXJlbnRPcmdVbml0SWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigob3JnVW5pdCkgPT4gcmVsYXRpb25NYXRjaChvcmdVbml0LnBhcmVudCwgcGFyZW50T3JnVW5pdElkKSk7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RUZW5hbnRPcmdVbml0cyh0ZW5hbnRJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChvcmdVbml0KSA9PiBzYW1lVGVuYW50KG9yZ1VuaXQudGVuYW50LCB0ZW5hbnRJZCkpO1xuICAgIH1cbiAgICBhc3luYyBsaXN0RGVzY2VuZGFudE9yZ1VuaXRzKHRlbmFudElkLCBvcmdVbml0SWQsIGluY2x1ZGVTZWxmID0gZmFsc2UsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgY2xvc3VyZVNlcnZpY2UgPSBuZXcgT3JnVW5pdENsb3N1cmVTZXJ2aWNlKCk7XG4gICAgICAgIGNvbnN0IGRlc2NlbmRhbnRzID0gYXdhaXQgY2xvc3VyZVNlcnZpY2UubGlzdERlc2NlbmRhbnRzKHRlbmFudElkLCBvcmdVbml0SWQsIC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBpZHMgPSBuZXcgU2V0KGRlc2NlbmRhbnRzLm1hcCgocm93KSA9PiByZWxhdGlvbklkKHJvdy5kZXNjZW5kYW50KSkpO1xuICAgICAgICBpZiAoaW5jbHVkZVNlbGYpXG4gICAgICAgICAgICBpZHMuYWRkKG9yZ1VuaXRJZCk7XG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0VGVuYW50T3JnVW5pdHModGVuYW50SWQsIC4uLmFyZ3MpKS5maWx0ZXIoKG9yZ1VuaXQpID0+IGlkcy5oYXMob3JnVW5pdC5pZCkpO1xuICAgIH1cbiAgICBhc3luYyBsaXN0QW5jZXN0b3JPcmdVbml0cyh0ZW5hbnRJZCwgb3JnVW5pdElkLCBpbmNsdWRlU2VsZiA9IGZhbHNlLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IGNsb3N1cmVTZXJ2aWNlID0gbmV3IE9yZ1VuaXRDbG9zdXJlU2VydmljZSgpO1xuICAgICAgICBjb25zdCBhbmNlc3RvcnMgPSBhd2FpdCBjbG9zdXJlU2VydmljZS5saXN0QW5jZXN0b3JzKHRlbmFudElkLCBvcmdVbml0SWQsIC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBpZHMgPSBuZXcgU2V0KGFuY2VzdG9ycy5tYXAoKHJvdykgPT4gcmVsYXRpb25JZChyb3cuYW5jZXN0b3IpKSk7XG4gICAgICAgIGlmIChpbmNsdWRlU2VsZilcbiAgICAgICAgICAgIGlkcy5hZGQob3JnVW5pdElkKTtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RUZW5hbnRPcmdVbml0cyh0ZW5hbnRJZCwgLi4uYXJncykpLmZpbHRlcigob3JnVW5pdCkgPT4gaWRzLmhhcyhvcmdVbml0LmlkKSk7XG4gICAgfVxuICAgIGFzeW5jIHJlbmFtZU9yZ1VuaXQob3JnVW5pdElkLCBuYW1lLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgdGhpcy5nZXRCeUlkKG9yZ1VuaXRJZCwgLi4uYXJncyk7XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZShvcmdVbml0SWQsIHsgbmFtZSwgcGF0aDogdGhpcy5vcmdVbml0UGF0aCh1bmRlZmluZWQsIG5hbWUpIH0sIC4uLmFyZ3MpLnRoZW4oYXN5bmMgKHVwZGF0ZWQpID0+IHtcbiAgICAgICAgICAgIHVwZGF0ZWQucGF0aCA9IGV4aXN0aW5nLnBhcmVudFxuICAgICAgICAgICAgICAgID8gdGhpcy5vcmdVbml0UGF0aCh1bmRlZmluZWQsIG5hbWUpXG4gICAgICAgICAgICAgICAgOiB0aGlzLm9yZ1VuaXRQYXRoKHVuZGVmaW5lZCwgbmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlZDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFzeW5jIG1vdmVPcmdVbml0KHRlbmFudElkLCBvcmdVbml0SWQsIG5ld1BhcmVudE9yZ1VuaXRJZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCBuZXdQYXJlbnQgPSBhd2FpdCB0aGlzLmdldEJ5SWQobmV3UGFyZW50T3JnVW5pdElkLCAuLi5hcmdzKTtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLmdldEJ5SWQob3JnVW5pdElkLCAuLi5hcmdzKTtcbiAgICAgICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IHRoaXMudXBkYXRlT25lKG9yZ1VuaXRJZCwge1xuICAgICAgICAgICAgcGFyZW50OiBuZXdQYXJlbnQuaWQsXG4gICAgICAgICAgICBwYXRoOiB0aGlzLm9yZ1VuaXRQYXRoKG5ld1BhcmVudC5wYXRoLCBleGlzdGluZy5uYW1lKSxcbiAgICAgICAgfSwgLi4uYXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVidWlsZFRlbmFudENsb3N1cmUodGVuYW50SWQsIC4uLmFyZ3MpO1xuICAgICAgICByZXR1cm4gdXBkYXRlZDtcbiAgICB9XG4gICAgYXN5bmMgcmVidWlsZFRlbmFudENsb3N1cmUodGVuYW50SWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgY2xvc3VyZVNlcnZpY2UgPSBuZXcgT3JnVW5pdENsb3N1cmVTZXJ2aWNlKCk7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTGlua3MgPSBhd2FpdCBjbG9zdXJlU2VydmljZS5saXN0QWxsKC4uLmFyZ3MpO1xuICAgICAgICBhd2FpdCBkZWxldGVNYW55QnlJZChjbG9zdXJlU2VydmljZSwgZXhpc3RpbmdMaW5rcy5maWx0ZXIoKHJvdykgPT4gc2FtZVRlbmFudChyb3cudGVuYW50LCB0ZW5hbnRJZCkpLCAuLi5hcmdzKTtcbiAgICAgICAgY29uc3Qgb3JnVW5pdHMgPSAoYXdhaXQgdGhpcy5saXN0VGVuYW50T3JnVW5pdHModGVuYW50SWQsIC4uLmFyZ3MpKS5zb3J0KChsZWZ0LCByaWdodCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGVmdERlcHRoID0gbGVmdC5wYXRoLnNwbGl0KFwiL1wiKS5maWx0ZXIoQm9vbGVhbikubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgcmlnaHREZXB0aCA9IHJpZ2h0LnBhdGguc3BsaXQoXCIvXCIpLmZpbHRlcihCb29sZWFuKS5sZW5ndGg7XG4gICAgICAgICAgICByZXR1cm4gbGVmdERlcHRoIC0gcmlnaHREZXB0aDtcbiAgICAgICAgfSk7XG4gICAgICAgIGZvciAoY29uc3Qgb3JnVW5pdCBvZiBvcmdVbml0cykge1xuICAgICAgICAgICAgYXdhaXQgY2xvc3VyZVNlcnZpY2UuY3JlYXRlU2VsZkxpbmsodGVuYW50SWQsIG9yZ1VuaXQuaWQsIC4uLmFyZ3MpO1xuICAgICAgICAgICAgaWYgKG9yZ1VuaXQucGFyZW50KSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgY2xvc3VyZVNlcnZpY2UuaW5zZXJ0QW5jZXN0b3JMaW5rc0Zvck5ld0NoaWxkKHRlbmFudElkLCByZWxhdGlvbklkKG9yZ1VuaXQucGFyZW50KSwgb3JnVW5pdC5pZCwgLi4uYXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgYXN5bmMgZGVsZXRlT3JnVW5pdFRyZWUodGVuYW50SWQsIG9yZ1VuaXRJZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCBjbG9zdXJlU2VydmljZSA9IG5ldyBPcmdVbml0Q2xvc3VyZVNlcnZpY2UoKTtcbiAgICAgICAgY29uc3QgZGVzY2VuZGFudHMgPSBhd2FpdCB0aGlzLmxpc3REZXNjZW5kYW50T3JnVW5pdHModGVuYW50SWQsIG9yZ1VuaXRJZCwgdHJ1ZSwgLi4uYXJncyk7XG4gICAgICAgIGNvbnN0IGRlc2NlbmRhbnRJZHMgPSBuZXcgU2V0KGRlc2NlbmRhbnRzLm1hcCgob3JnVW5pdCkgPT4gb3JnVW5pdC5pZCkpO1xuICAgICAgICBjb25zdCBvcmdVbml0cyA9IChhd2FpdCB0aGlzLmxpc3RUZW5hbnRPcmdVbml0cyh0ZW5hbnRJZCwgLi4uYXJncykpLmZpbHRlcigob3JnVW5pdCkgPT4gZGVzY2VuZGFudElkcy5oYXMob3JnVW5pdC5pZCkpO1xuICAgICAgICBhd2FpdCBkZWxldGVNYW55QnlJZCh0aGlzLCBvcmdVbml0cywgLi4uYXJncyk7XG4gICAgICAgIGF3YWl0IGNsb3N1cmVTZXJ2aWNlLmRlbGV0ZUxpbmtzRm9yU3VidHJlZSh0ZW5hbnRJZCwgb3JnVW5pdElkLCAuLi5hcmdzKTtcbiAgICB9XG59XG5fX2RlY29yYXRlKFtcbiAgICB0cmFuc2FjdGlvbmFsKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW1N0cmluZywgU3RyaW5nLCBPYmplY3QsIFN0cmluZywgT2JqZWN0LCBPYmplY3RdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIE9yZ1VuaXRTZXJ2aWNlLnByb3RvdHlwZSwgXCJjcmVhdGVSb290XCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgdHJhbnNhY3Rpb25hbCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtPYmplY3QsIE9iamVjdF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgT3JnVW5pdFNlcnZpY2UucHJvdG90eXBlLCBcImNyZWF0ZUNoaWxkXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgdHJhbnNhY3Rpb25hbCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBPYmplY3RdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIE9yZ1VuaXRTZXJ2aWNlLnByb3RvdHlwZSwgXCJtb3ZlT3JnVW5pdFwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIHRyYW5zYWN0aW9uYWwoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbU3RyaW5nLCBPYmplY3RdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIE9yZ1VuaXRTZXJ2aWNlLnByb3RvdHlwZSwgXCJyZWJ1aWxkVGVuYW50Q2xvc3VyZVwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIHRyYW5zYWN0aW9uYWwoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbU3RyaW5nLCBTdHJpbmcsIE9iamVjdF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgT3JnVW5pdFNlcnZpY2UucHJvdG90eXBlLCBcImRlbGV0ZU9yZ1VuaXRUcmVlXCIsIG51bGwpO1xuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKFVzZXIpO1xuICAgIH1cbiAgICBhc3luYyBjcmVhdGVVc2VyKGlucHV0LCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uZSh7XG4gICAgICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgICAgIGVtYWlsOiBpbnB1dC5lbWFpbCxcbiAgICAgICAgICAgIHBob25lOiBpbnB1dC5waG9uZSxcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBpbnB1dC5kaXNwbGF5TmFtZSxcbiAgICAgICAgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGdldEJ5RW1haWwoZW1haWwsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbmQoKHVzZXIpID0+IHVzZXIuZW1haWwgPT09IGVtYWlsKTtcbiAgICB9XG4gICAgYXN5bmMgdXBkYXRlRGlzcGxheU5hbWUodXNlcklkLCBkaXNwbGF5TmFtZSwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUodXNlcklkLCB7IGRpc3BsYXlOYW1lIH0sIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGVFbWFpbCh1c2VySWQsIGVtYWlsLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZSh1c2VySWQsIHsgZW1haWwgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZVBob25lKHVzZXJJZCwgcGhvbmUsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHVzZXJJZCwgeyBwaG9uZSB9LCAuLi5hcmdzKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUHJpbmNpcGFsU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihQcmluY2lwYWwpO1xuICAgIH1cbiAgICBhc3luYyBjcmVhdGVQcmluY2lwYWwodGVuYW50SWQsIGtpbmQsIHN1YmplY3RJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoe1xuICAgICAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgICAgICB0ZW5hbnQ6IHRlbmFudElkLFxuICAgICAgICAgICAga2luZCxcbiAgICAgICAgICAgIHN1YmplY3RJZCxcbiAgICAgICAgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGdldEZvclN1YmplY3QodGVuYW50SWQsIGtpbmQsIHN1YmplY3RJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmluZCgocHJpbmNpcGFsKSA9PiBzYW1lVGVuYW50KHByaW5jaXBhbC50ZW5hbnQsIHRlbmFudElkKSAmJlxuICAgICAgICAgICAgcHJpbmNpcGFsLmtpbmQgPT09IGtpbmQgJiZcbiAgICAgICAgICAgIHByaW5jaXBhbC5zdWJqZWN0SWQgPT09IHN1YmplY3RJZCk7XG4gICAgfVxuICAgIGFzeW5jIGdldE9yQ3JlYXRlRm9yU3ViamVjdCh0ZW5hbnRJZCwga2luZCwgc3ViamVjdElkLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiAoKGF3YWl0IHRoaXMuZ2V0Rm9yU3ViamVjdCh0ZW5hbnRJZCwga2luZCwgc3ViamVjdElkLCAuLi5hcmdzKSkgPz9cbiAgICAgICAgICAgIChhd2FpdCB0aGlzLmNyZWF0ZVByaW5jaXBhbCh0ZW5hbnRJZCwga2luZCwgc3ViamVjdElkLCAuLi5hcmdzKSkpO1xuICAgIH1cbiAgICBhc3luYyBnZXRVc2VyUHJpbmNpcGFsKHRlbmFudElkLCB1c2VySWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0T3JDcmVhdGVGb3JTdWJqZWN0KHRlbmFudElkLCBQcmluY2lwYWxLaW5kLlVzZXIsIHVzZXJJZCwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGdldEdyb3VwUHJpbmNpcGFsKHRlbmFudElkLCBncm91cElkLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldE9yQ3JlYXRlRm9yU3ViamVjdCh0ZW5hbnRJZCwgUHJpbmNpcGFsS2luZC5Hcm91cCwgZ3JvdXBJZCwgLi4uYXJncyk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFRlbmFudE1lbWJlcnNoaXBTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKFRlbmFudE1lbWJlcnNoaXApO1xuICAgIH1cbiAgICBhc3luYyBhZGRVc2VyVG9UZW5hbnQodGVuYW50SWQsIHVzZXJJZCwgc3RhdHVzID0gTWVtYmVyc2hpcFN0YXR1cy5BY3RpdmUsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKHtcbiAgICAgICAgICAgIGlkOiBpZCgpLFxuICAgICAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAgICAgIHVzZXI6IHVzZXJJZCxcbiAgICAgICAgICAgIHN0YXR1cyxcbiAgICAgICAgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHNldFN0YXR1cyhtZW1iZXJzaGlwSWQsIHN0YXR1cywgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUobWVtYmVyc2hpcElkLCB7IHN0YXR1cyB9LCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgbGlzdFVzZXJUZW5hbnRzKHVzZXJJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChtZW1iZXJzaGlwKSA9PiByZWxhdGlvbk1hdGNoKG1lbWJlcnNoaXAudXNlciwgdXNlcklkKSk7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RUZW5hbnRVc2Vycyh0ZW5hbnRJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChtZW1iZXJzaGlwKSA9PiBzYW1lVGVuYW50KG1lbWJlcnNoaXAudGVuYW50LCB0ZW5hbnRJZCkpO1xuICAgIH1cbiAgICBhc3luYyByZW1vdmVVc2VyRnJvbVRlbmFudChtZW1iZXJzaGlwSWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVCeUlkKG1lbWJlcnNoaXBJZCwgLi4uYXJncyk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIE9yZ1VuaXRNZW1iZXJzaGlwU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihPcmdVbml0TWVtYmVyc2hpcCk7XG4gICAgfVxuICAgIGFzeW5jIGFkZFVzZXJUb09yZ1VuaXQodGVuYW50SWQsIG9yZ1VuaXRJZCwgdXNlcklkLCBzdGF0dXMgPSBNZW1iZXJzaGlwU3RhdHVzLkFjdGl2ZSwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoe1xuICAgICAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgICAgICB0ZW5hbnQ6IHRlbmFudElkLFxuICAgICAgICAgICAgb3JnVW5pdDogb3JnVW5pdElkLFxuICAgICAgICAgICAgdXNlcjogdXNlcklkLFxuICAgICAgICAgICAgc3RhdHVzLFxuICAgICAgICB9LCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgc2V0U3RhdHVzKG1lbWJlcnNoaXBJZCwgc3RhdHVzLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZShtZW1iZXJzaGlwSWQsIHsgc3RhdHVzIH0sIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBsaXN0VXNlck9yZ1VuaXRzKHVzZXJJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChtZW1iZXJzaGlwKSA9PiByZWxhdGlvbk1hdGNoKG1lbWJlcnNoaXAudXNlciwgdXNlcklkKSk7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RPcmdVbml0VXNlcnMob3JnVW5pdElkLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKG1lbWJlcnNoaXApID0+IHJlbGF0aW9uTWF0Y2gobWVtYmVyc2hpcC5vcmdVbml0LCBvcmdVbml0SWQpKTtcbiAgICB9XG4gICAgYXN5bmMgcmVtb3ZlVXNlckZyb21PcmdVbml0KG1lbWJlcnNoaXBJZCwgLi4uYXJncykge1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZUJ5SWQobWVtYmVyc2hpcElkLCAuLi5hcmdzKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgR3JvdXBTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKEdyb3VwKTtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlR3JvdXAodGVuYW50SWQsIG5hbWUsIG9yZ1VuaXRJZCwgbWV0YWRhdGEsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKHtcbiAgICAgICAgICAgIGlkOiBpZCgpLFxuICAgICAgICAgICAgdGVuYW50OiB0ZW5hbnRJZCxcbiAgICAgICAgICAgIG9yZ1VuaXQ6IG9yZ1VuaXRJZCxcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBtZXRhZGF0YSxcbiAgICAgICAgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHJlbmFtZUdyb3VwKGdyb3VwSWQsIG5hbWUsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKGdyb3VwSWQsIHsgbmFtZSB9LCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgbW92ZUdyb3VwVG9PcmdVbml0KGdyb3VwSWQsIG9yZ1VuaXRJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUoZ3JvdXBJZCwgeyBvcmdVbml0OiBvcmdVbml0SWQgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RUZW5hbnRHcm91cHModGVuYW50SWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigoZ3JvdXApID0+IHNhbWVUZW5hbnQoZ3JvdXAudGVuYW50LCB0ZW5hbnRJZCkpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBHcm91cE1lbWJlcnNoaXBTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKEdyb3VwTWVtYmVyc2hpcCk7XG4gICAgfVxuICAgIGFzeW5jIGFkZFByaW5jaXBhbFRvR3JvdXAodGVuYW50SWQsIGdyb3VwSWQsIHByaW5jaXBhbElkLCBtZXRhZGF0YSwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoe1xuICAgICAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgICAgICB0ZW5hbnQ6IHRlbmFudElkLFxuICAgICAgICAgICAgZ3JvdXA6IGdyb3VwSWQsXG4gICAgICAgICAgICBwcmluY2lwYWw6IHByaW5jaXBhbElkLFxuICAgICAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgIH0sIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBsaXN0R3JvdXBNZW1iZXJzKGdyb3VwSWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigobWVtYmVyc2hpcCkgPT4gcmVsYXRpb25NYXRjaChtZW1iZXJzaGlwLmdyb3VwLCBncm91cElkKSk7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RQcmluY2lwYWxHcm91cHMocHJpbmNpcGFsSWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigobWVtYmVyc2hpcCkgPT4gcmVsYXRpb25NYXRjaChtZW1iZXJzaGlwLnByaW5jaXBhbCwgcHJpbmNpcGFsSWQpKTtcbiAgICB9XG4gICAgYXN5bmMgcmVtb3ZlUHJpbmNpcGFsRnJvbUdyb3VwKG1lbWJlcnNoaXBJZCwgLi4uYXJncykge1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZUJ5SWQobWVtYmVyc2hpcElkLCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgcmVzb2x2ZUdyb3VwUHJpbmNpcGFsSWRzRm9yUHJpbmNpcGFsKHByaW5jaXBhbElkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHByaW5jaXBhbFNlcnZpY2UgPSBuZXcgUHJpbmNpcGFsU2VydmljZSgpO1xuICAgICAgICBjb25zdCBtZW1iZXJzaGlwcyA9IGF3YWl0IHRoaXMubGlzdFByaW5jaXBhbEdyb3VwcyhwcmluY2lwYWxJZCwgLi4uYXJncyk7XG4gICAgICAgIGNvbnN0IHByaW5jaXBhbHMgPSBhd2FpdCBQcm9taXNlLmFsbChtZW1iZXJzaGlwcy5tYXAoYXN5bmMgKG1lbWJlcnNoaXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRlbmFudElkID0gcmVsYXRpb25JZChtZW1iZXJzaGlwLnRlbmFudCk7XG4gICAgICAgICAgICBjb25zdCBncm91cElkID0gcmVsYXRpb25JZChtZW1iZXJzaGlwLmdyb3VwKTtcbiAgICAgICAgICAgIGNvbnN0IHByaW5jaXBhbCA9IGF3YWl0IHByaW5jaXBhbFNlcnZpY2UuZ2V0R3JvdXBQcmluY2lwYWwodGVuYW50SWQsIGdyb3VwSWQsIC4uLmFyZ3MpO1xuICAgICAgICAgICAgcmV0dXJuIHByaW5jaXBhbC5pZDtcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm4gcHJpbmNpcGFscztcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUGVybWlzc2lvblNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoUGVybWlzc2lvbik7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZVBlcm1pc3Npb24oaW5wdXQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKHtcbiAgICAgICAgICAgIGlkOiBpZCgpLFxuICAgICAgICAgICAga2V5OiBpbnB1dC5rZXksXG4gICAgICAgICAgICBjYXRlZ29yeTogaW5wdXQuY2F0ZWdvcnksXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogaW5wdXQuZGVzY3JpcHRpb24sXG4gICAgICAgIH0sIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBnZXRCeUtleShrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbmQoKHBlcm1pc3Npb24pID0+IHBlcm1pc3Npb24ua2V5ID09PSBrZXkpO1xuICAgIH1cbiAgICBhc3luYyBsaXN0QnlDYXRlZ29yeShjYXRlZ29yeSwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChwZXJtaXNzaW9uKSA9PiBwZXJtaXNzaW9uLmNhdGVnb3J5ID09PSBjYXRlZ29yeSk7XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZURlc2NyaXB0aW9uKHBlcm1pc3Npb25JZCwgZGVzY3JpcHRpb24sIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHBlcm1pc3Npb25JZCwgeyBkZXNjcmlwdGlvbiB9LCAuLi5hcmdzKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgUm9sZVNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoUm9sZSk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZVJvbGUoaW5wdXQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKHtcbiAgICAgICAgICAgIGlkOiBpZCgpLFxuICAgICAgICAgICAgdGVuYW50OiBpbnB1dC50ZW5hbnRJZCxcbiAgICAgICAgICAgIGtleTogaW5wdXQua2V5LFxuICAgICAgICAgICAgbmFtZTogaW5wdXQubmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBpbnB1dC5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIG1ldGFkYXRhOiBpbnB1dC5tZXRhZGF0YSxcbiAgICAgICAgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGdldFN5c3RlbVJvbGVCeUtleShrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3Qgcm9sZSA9IChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbmQoKGNhbmRpZGF0ZSkgPT4gIWNhbmRpZGF0ZS50ZW5hbnQgJiYgY2FuZGlkYXRlLmtleSA9PT0ga2V5KTtcbiAgICAgICAgaWYgKCFyb2xlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFJvbGUgXCIke2tleX1cIiBub3QgZm91bmRgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm9sZTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0VGVuYW50Um9sZUJ5S2V5KHRlbmFudElkLCBrZXksIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3Qgcm9sZSA9IChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbmQoKGNhbmRpZGF0ZSkgPT4gc2FtZVRlbmFudChjYW5kaWRhdGUudGVuYW50LCB0ZW5hbnRJZCkgJiYgY2FuZGlkYXRlLmtleSA9PT0ga2V5KTtcbiAgICAgICAgaWYgKCFyb2xlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFJvbGUgXCIke2tleX1cIiBub3QgZm91bmQgZm9yIHRlbmFudCAke3RlbmFudElkfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb2xlO1xuICAgIH1cbiAgICBhc3luYyByZW5hbWVSb2xlKHJvbGVJZCwgbmFtZSwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUocm9sZUlkLCB7IG5hbWUgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHVwZGF0ZVJvbGVNZXRhZGF0YShyb2xlSWQsIG1ldGFkYXRhLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZShyb2xlSWQsIHsgbWV0YWRhdGEgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RUZW5hbnRSb2xlcyh0ZW5hbnRJZCwgaW5jbHVkZVN5c3RlbSA9IGZhbHNlLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKHJvbGUpID0+IGluY2x1ZGVTeXN0ZW1cbiAgICAgICAgICAgID8gIXJvbGUudGVuYW50IHx8IHNhbWVUZW5hbnQocm9sZS50ZW5hbnQsIHRlbmFudElkKVxuICAgICAgICAgICAgOiBzYW1lVGVuYW50KHJvbGUudGVuYW50LCB0ZW5hbnRJZCkpO1xuICAgIH1cbn1cbmV4cG9ydCBjbGFzcyBSb2xlUGVybWlzc2lvblNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoUm9sZVBlcm1pc3Npb24pO1xuICAgIH1cbiAgICBhc3luYyBhZGRQZXJtaXNzaW9uVG9Sb2xlKHJvbGVJZCwgcGVybWlzc2lvbklkLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uZSh7XG4gICAgICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgICAgIHJvbGU6IHJvbGVJZCxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IHBlcm1pc3Npb25JZCxcbiAgICAgICAgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGFkZFBlcm1pc3Npb25LZXlUb1JvbGUocm9sZUlkLCBwZXJtaXNzaW9uS2V5LCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb24gPSBhd2FpdCBuZXcgUGVybWlzc2lvblNlcnZpY2UoKS5nZXRCeUtleShwZXJtaXNzaW9uS2V5LCAuLi5hcmdzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkUGVybWlzc2lvblRvUm9sZShyb2xlSWQsIHBlcm1pc3Npb24uaWQsIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyByZW1vdmVQZXJtaXNzaW9uRnJvbVJvbGUocm9sZVBlcm1pc3Npb25JZCwgLi4uYXJncykge1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZUJ5SWQocm9sZVBlcm1pc3Npb25JZCwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RSb2xlUGVybWlzc2lvbnMocm9sZUlkLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKHJvbGVQZXJtaXNzaW9uKSA9PiByZWxhdGlvbk1hdGNoKHJvbGVQZXJtaXNzaW9uLnJvbGUsIHJvbGVJZCkpO1xuICAgIH1cbiAgICBhc3luYyBsaXN0UGVybWlzc2lvblJvbGVzKHBlcm1pc3Npb25JZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChyb2xlUGVybWlzc2lvbikgPT4gcmVsYXRpb25NYXRjaChyb2xlUGVybWlzc2lvbi5wZXJtaXNzaW9uLCBwZXJtaXNzaW9uSWQpKTtcbiAgICB9XG4gICAgYXN5bmMgcmVwbGFjZVJvbGVQZXJtaXNzaW9ucyhyb2xlSWQsIHBlcm1pc3Npb25JZHMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCB0aGlzLmxpc3RSb2xlUGVybWlzc2lvbnMocm9sZUlkLCAuLi5hcmdzKTtcbiAgICAgICAgYXdhaXQgZGVsZXRlTWFueUJ5SWQodGhpcywgZXhpc3RpbmcsIC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBjcmVhdGVkID0gYXdhaXQgUHJvbWlzZS5hbGwocGVybWlzc2lvbklkcy5tYXAoKHBlcm1pc3Npb25JZCkgPT4gdGhpcy5hZGRQZXJtaXNzaW9uVG9Sb2xlKHJvbGVJZCwgcGVybWlzc2lvbklkLCAuLi5hcmdzKSkpO1xuICAgICAgICByZXR1cm4gY3JlYXRlZDtcbiAgICB9XG4gICAgYXN5bmMgY3JlYXRlUm9sZVdpdGhQZXJtaXNzaW9ucyhpbnB1dCwgcGVybWlzc2lvbktleXMsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3Qgcm9sZSA9IGF3YWl0IG5ldyBSb2xlU2VydmljZSgpLmNyZWF0ZVJvbGUoaW5wdXQsIC4uLmFyZ3MpO1xuICAgICAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb25LZXkgb2YgcGVybWlzc2lvbktleXMpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuYWRkUGVybWlzc2lvbktleVRvUm9sZShyb2xlLmlkLCBwZXJtaXNzaW9uS2V5LCAuLi5hcmdzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm9sZTtcbiAgICB9XG59XG5fX2RlY29yYXRlKFtcbiAgICB0cmFuc2FjdGlvbmFsKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW1N0cmluZywgQXJyYXksIE9iamVjdF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgUm9sZVBlcm1pc3Npb25TZXJ2aWNlLnByb3RvdHlwZSwgXCJyZXBsYWNlUm9sZVBlcm1pc3Npb25zXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgdHJhbnNhY3Rpb25hbCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtPYmplY3QsIEFycmF5LCBPYmplY3RdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIFJvbGVQZXJtaXNzaW9uU2VydmljZS5wcm90b3R5cGUsIFwiY3JlYXRlUm9sZVdpdGhQZXJtaXNzaW9uc1wiLCBudWxsKTtcbmV4cG9ydCBjbGFzcyBSb2xlQXNzaWdubWVudFNlcnZpY2UgZXh0ZW5kcyBCYXNlTW9kZWxTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoUm9sZUFzc2lnbm1lbnQpO1xuICAgIH1cbiAgICBhc3luYyBhc3NpZ25Sb2xlKGlucHV0LCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uZSh7XG4gICAgICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgICAgIHRlbmFudDogaW5wdXQudGVuYW50SWQsXG4gICAgICAgICAgICBwcmluY2lwYWw6IGlucHV0LnByaW5jaXBhbElkLFxuICAgICAgICAgICAgcm9sZTogaW5wdXQucm9sZUlkLFxuICAgICAgICAgICAgc2NvcGVLaW5kOiBpbnB1dC5zY29wZUtpbmQsXG4gICAgICAgICAgICBzY29wZUlkOiBpbnB1dC5zY29wZUlkLFxuICAgICAgICAgICAgaW5oZXJpdERvd246IGlucHV0LmluaGVyaXREb3duID8/IGZhbHNlLFxuICAgICAgICAgICAgc3RhcnRzQXQ6IGlucHV0LnN0YXJ0c0F0LFxuICAgICAgICAgICAgZXhwaXJlc0F0OiBpbnB1dC5leHBpcmVzQXQsXG4gICAgICAgICAgICBjb25kaXRpb25zOiBpbnB1dC5jb25kaXRpb25zLFxuICAgICAgICB9LCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgcmV2b2tlQXNzaWdubWVudChhc3NpZ25tZW50SWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVCeUlkKGFzc2lnbm1lbnRJZCwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RQcmluY2lwYWxBc3NpZ25tZW50cyh0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RBbGwoLi4uYXJncykpLmZpbHRlcigoYXNzaWdubWVudCkgPT4gc2FtZVRlbmFudChhc3NpZ25tZW50LnRlbmFudCwgdGVuYW50SWQpICYmXG4gICAgICAgICAgICByZWxhdGlvbk1hdGNoKGFzc2lnbm1lbnQucHJpbmNpcGFsLCBwcmluY2lwYWxJZCkpO1xuICAgIH1cbiAgICBhc3luYyBsaXN0Um9sZUFzc2lnbm1lbnRzKHJvbGVJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChhc3NpZ25tZW50KSA9PiByZWxhdGlvbk1hdGNoKGFzc2lnbm1lbnQucm9sZSwgcm9sZUlkKSk7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RUZW5hbnRBc3NpZ25tZW50cyh0ZW5hbnRJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChhc3NpZ25tZW50KSA9PiBzYW1lVGVuYW50KGFzc2lnbm1lbnQudGVuYW50LCB0ZW5hbnRJZCkpO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGVBc3NpZ25tZW50V2luZG93KGFzc2lnbm1lbnRJZCwgc3RhcnRzQXQsIGV4cGlyZXNBdCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUoYXNzaWdubWVudElkLCB7IHN0YXJ0c0F0LCBleHBpcmVzQXQgfSwgLi4uYXJncyk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIEVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKEVmZmVjdGl2ZVBlcm1pc3Npb24pO1xuICAgIH1cbiAgICBhc3luYyBsaXN0Rm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChwZXJtaXNzaW9uKSA9PiBzYW1lVGVuYW50KHBlcm1pc3Npb24udGVuYW50LCB0ZW5hbnRJZCkgJiZcbiAgICAgICAgICAgIHJlbGF0aW9uTWF0Y2gocGVybWlzc2lvbi5wcmluY2lwYWwsIHByaW5jaXBhbElkKSk7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RGb3JTY29wZSh0ZW5hbnRJZCwgc2NvcGVLaW5kLCBzY29wZUlkLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKHBlcm1pc3Npb24pID0+IHNhbWVUZW5hbnQocGVybWlzc2lvbi50ZW5hbnQsIHRlbmFudElkKSAmJlxuICAgICAgICAgICAgcGVybWlzc2lvbi5zY29wZUtpbmQgPT09IHNjb3BlS2luZCAmJlxuICAgICAgICAgICAgcGVybWlzc2lvbi5zY29wZUlkID09PSBzY29wZUlkKTtcbiAgICB9XG4gICAgYXN5bmMgaGFzUGVybWlzc2lvbih0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIHBlcm1pc3Npb25LZXksIHNjb3BlS2luZCwgc2NvcGVJZCwgYXQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RGb3JQcmluY2lwYWwodGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKSkuc29tZSgocGVybWlzc2lvbikgPT4gcGVybWlzc2lvbi5wZXJtaXNzaW9uS2V5ID09PSBwZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgICAgICBwZXJtaXNzaW9uLnNjb3BlS2luZCA9PT0gc2NvcGVLaW5kICYmXG4gICAgICAgICAgICBwZXJtaXNzaW9uLnNjb3BlSWQgPT09IHNjb3BlSWQgJiZcbiAgICAgICAgICAgICghcGVybWlzc2lvbi5zdGFydHNBdCB8fCAhYXQgfHwgcGVybWlzc2lvbi5zdGFydHNBdCA8PSBhdCkgJiZcbiAgICAgICAgICAgICghcGVybWlzc2lvbi5leHBpcmVzQXQgfHwgIWF0IHx8IHBlcm1pc3Npb24uZXhwaXJlc0F0ID49IGF0KSk7XG4gICAgfVxuICAgIGFzeW5jIGRlbGV0ZUZvclByaW5jaXBhbCh0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgYXdhaXQgZGVsZXRlTWFueUJ5SWQodGhpcywgYXdhaXQgdGhpcy5saXN0Rm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncyksIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBkZWxldGVGb3JUZW5hbnQodGVuYW50SWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgYXdhaXQgZGVsZXRlTWFueUJ5SWQodGhpcywgKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChwZXJtaXNzaW9uKSA9PiBzYW1lVGVuYW50KHBlcm1pc3Npb24udGVuYW50LCB0ZW5hbnRJZCkpLCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgcmVidWlsZEZvclByaW5jaXBhbCh0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVGb3JQcmluY2lwYWwodGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKTtcbiAgICAgICAgY29uc3Qgcm9sZUFzc2lnbm1lbnRTZXJ2aWNlID0gbmV3IFJvbGVBc3NpZ25tZW50U2VydmljZSgpO1xuICAgICAgICBjb25zdCByb2xlUGVybWlzc2lvblNlcnZpY2UgPSBuZXcgUm9sZVBlcm1pc3Npb25TZXJ2aWNlKCk7XG4gICAgICAgIGNvbnN0IHBlcm1pc3Npb25TZXJ2aWNlID0gbmV3IFBlcm1pc3Npb25TZXJ2aWNlKCk7XG4gICAgICAgIGNvbnN0IGdyb3VwTWVtYmVyc2hpcFNlcnZpY2UgPSBuZXcgR3JvdXBNZW1iZXJzaGlwU2VydmljZSgpO1xuICAgICAgICBjb25zdCBwcmluY2lwYWxTZXJ2aWNlID0gbmV3IFByaW5jaXBhbFNlcnZpY2UoKTtcbiAgICAgICAgY29uc3Qgb3JnVW5pdENsb3N1cmVTZXJ2aWNlID0gbmV3IE9yZ1VuaXRDbG9zdXJlU2VydmljZSgpO1xuICAgICAgICBjb25zdCBpbmhlcml0YW5jZUJsb2NrU2VydmljZSA9IG5ldyBJbmhlcml0YW5jZUJsb2NrU2VydmljZSgpO1xuICAgICAgICBjb25zdCBtYXRlcmlhbGl6ZWQgPSBbXTtcbiAgICAgICAgY29uc3Qgc291cmNlQXNzaWdubWVudHMgPSBhd2FpdCByb2xlQXNzaWdubWVudFNlcnZpY2UubGlzdFByaW5jaXBhbEFzc2lnbm1lbnRzKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncyk7XG4gICAgICAgIGNvbnN0IGdyb3VwTWVtYmVyc2hpcHMgPSBhd2FpdCBncm91cE1lbWJlcnNoaXBTZXJ2aWNlLmxpc3RQcmluY2lwYWxHcm91cHMocHJpbmNpcGFsSWQsIC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBncm91cEFzc2lnbm1lbnRzID0gKGF3YWl0IFByb21pc2UuYWxsKGdyb3VwTWVtYmVyc2hpcHMubWFwKGFzeW5jIChtZW1iZXJzaGlwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBncm91cFByaW5jaXBhbCA9IGF3YWl0IHByaW5jaXBhbFNlcnZpY2UuZ2V0R3JvdXBQcmluY2lwYWwocmVsYXRpb25JZChtZW1iZXJzaGlwLnRlbmFudCksIHJlbGF0aW9uSWQobWVtYmVyc2hpcC5ncm91cCksIC4uLmFyZ3MpO1xuICAgICAgICAgICAgcmV0dXJuIHJvbGVBc3NpZ25tZW50U2VydmljZS5saXN0UHJpbmNpcGFsQXNzaWdubWVudHModGVuYW50SWQsIGdyb3VwUHJpbmNpcGFsLmlkLCAuLi5hcmdzKTtcbiAgICAgICAgfSkpKS5mbGF0KCk7XG4gICAgICAgIGNvbnN0IGFzc2lnbm1lbnRzID0gWy4uLnNvdXJjZUFzc2lnbm1lbnRzLCAuLi5ncm91cEFzc2lnbm1lbnRzXTtcbiAgICAgICAgZm9yIChjb25zdCBhc3NpZ25tZW50IG9mIGFzc2lnbm1lbnRzKSB7XG4gICAgICAgICAgICBjb25zdCByb2xlUGVybWlzc2lvbnMgPSBhd2FpdCByb2xlUGVybWlzc2lvblNlcnZpY2UubGlzdFJvbGVQZXJtaXNzaW9ucyhyZWxhdGlvbklkKGFzc2lnbm1lbnQucm9sZSksIC4uLmFyZ3MpO1xuICAgICAgICAgICAgY29uc3QgcGVybWlzc2lvbnMgPSBhd2FpdCBQcm9taXNlLmFsbChyb2xlUGVybWlzc2lvbnMubWFwKGFzeW5jIChyb2xlUGVybWlzc2lvbikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb24gPSBhd2FpdCBwZXJtaXNzaW9uU2VydmljZS5maW5kT25lQnkoXCJpZFwiLCByZWxhdGlvbklkKHJvbGVQZXJtaXNzaW9uLnBlcm1pc3Npb24pLCAuLi5hcmdzKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGVybWlzc2lvbjtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGVybWlzc2lvbiBvZiBwZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgICAgIGlmICghcGVybWlzc2lvbilcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NvcGVLaW5kID0gYXNzaWdubWVudC5zY29wZUtpbmQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NvcGVJZCA9IGFzc2lnbm1lbnQuc2NvcGVJZDtcbiAgICAgICAgICAgICAgICBjb25zdCBzY29wZXMgPSBbXTtcbiAgICAgICAgICAgICAgICBpZiAoc2NvcGVLaW5kID09PSBTY29wZUtpbmQuVGVuYW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHNjb3Blcy5wdXNoKHsgc2NvcGVLaW5kLCBzY29wZUlkOiB0ZW5hbnRJZCB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoc2NvcGVLaW5kID09PSBTY29wZUtpbmQuUmVzb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGVzLnB1c2goeyBzY29wZUtpbmQsIHNjb3BlSWQgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNjb3BlS2luZCA9PT0gU2NvcGVLaW5kLk9yZ1VuaXQgJiYgIWFzc2lnbm1lbnQuaW5oZXJpdERvd24pIHtcbiAgICAgICAgICAgICAgICAgICAgc2NvcGVzLnB1c2goeyBzY29wZUtpbmQsIHNjb3BlSWQgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNjb3BlS2luZCA9PT0gU2NvcGVLaW5kLk9yZ1VuaXQgJiYgYXNzaWdubWVudC5pbmhlcml0RG93bikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjZW5kYW50cyA9IGF3YWl0IG9yZ1VuaXRDbG9zdXJlU2VydmljZS5saXN0RGVzY2VuZGFudHModGVuYW50SWQsIHNjb3BlSWQsIC4uLmFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICBzY29wZXMucHVzaCguLi5kZXNjZW5kYW50cy5tYXAoKHJvdykgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlS2luZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlSWQ6IHJlbGF0aW9uSWQocm93LmRlc2NlbmRhbnQpLFxuICAgICAgICAgICAgICAgICAgICB9KSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHNjb3BlZCBvZiBzY29wZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNjb3BlS2luZCA9PT0gU2NvcGVLaW5kLk9yZ1VuaXQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2lnbm1lbnQuaW5oZXJpdERvd24gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlZC5zY29wZUlkICE9PSBzY29wZUlkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAoYXdhaXQgaW5oZXJpdGFuY2VCbG9ja1NlcnZpY2UuY2F0ZWdvcnlCbG9ja2VkRm9yQW5jZXN0b3IodGVuYW50SWQsIHNjb3BlZC5zY29wZUlkLCBzY29wZUlkLCBwZXJtaXNzaW9uLmNhdGVnb3J5LCAuLi5hcmdzKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG1hdGVyaWFsaXplZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpZCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGVuYW50SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmluY2lwYWxJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb25LZXk6IHBlcm1pc3Npb24ua2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGVLaW5kOiBzY29wZWQuc2NvcGVLaW5kLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGVJZDogc2NvcGVkLnNjb3BlSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VLaW5kOiBcInJvbGVfYXNzaWdubWVudFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSWQ6IGFzc2lnbm1lbnQuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydHNBdDogYXNzaWdubWVudC5zdGFydHNBdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZXNBdDogYXNzaWdubWVudC5leHBpcmVzQXQsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjcmVhdGVkID0gYXdhaXQgUHJvbWlzZS5hbGwobWF0ZXJpYWxpemVkLm1hcCgocGVybWlzc2lvbikgPT4gdGhpcy5jcmVhdGVPbmUoe1xuICAgICAgICAgICAgaWQ6IHBlcm1pc3Npb24uaWQsXG4gICAgICAgICAgICB0ZW5hbnQ6IHBlcm1pc3Npb24udGVuYW50SWQsXG4gICAgICAgICAgICBwcmluY2lwYWw6IHBlcm1pc3Npb24ucHJpbmNpcGFsSWQsXG4gICAgICAgICAgICBwZXJtaXNzaW9uS2V5OiBwZXJtaXNzaW9uLnBlcm1pc3Npb25LZXksXG4gICAgICAgICAgICBzY29wZUtpbmQ6IHBlcm1pc3Npb24uc2NvcGVLaW5kLFxuICAgICAgICAgICAgc2NvcGVJZDogcGVybWlzc2lvbi5zY29wZUlkLFxuICAgICAgICAgICAgc291cmNlS2luZDogcGVybWlzc2lvbi5zb3VyY2VLaW5kLFxuICAgICAgICAgICAgc291cmNlSWQ6IHBlcm1pc3Npb24uc291cmNlSWQsXG4gICAgICAgICAgICBzdGFydHNBdDogcGVybWlzc2lvbi5zdGFydHNBdCxcbiAgICAgICAgICAgIGV4cGlyZXNBdDogcGVybWlzc2lvbi5leHBpcmVzQXQsXG4gICAgICAgIH0sIC4uLmFyZ3MpKSk7XG4gICAgICAgIHJldHVybiBjcmVhdGVkO1xuICAgIH1cbiAgICBhc3luYyByZWJ1aWxkRm9yVGVuYW50KHRlbmFudElkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHByaW5jaXBhbHMgPSAoYXdhaXQgbmV3IFByaW5jaXBhbFNlcnZpY2UoKS5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKHByaW5jaXBhbCkgPT4gc2FtZVRlbmFudChwcmluY2lwYWwudGVuYW50LCB0ZW5hbnRJZCkpO1xuICAgICAgICBmb3IgKGNvbnN0IHByaW5jaXBhbCBvZiBwcmluY2lwYWxzKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnJlYnVpbGRGb3JQcmluY2lwYWwodGVuYW50SWQsIHByaW5jaXBhbC5pZCwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5fX2RlY29yYXRlKFtcbiAgICB0cmFuc2FjdGlvbmFsKCksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIEZ1bmN0aW9uKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnBhcmFtdHlwZXNcIiwgW1N0cmluZywgU3RyaW5nLCBPYmplY3RdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIEVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlLnByb3RvdHlwZSwgXCJyZWJ1aWxkRm9yUHJpbmNpcGFsXCIsIG51bGwpO1xuX19kZWNvcmF0ZShbXG4gICAgdHJhbnNhY3Rpb25hbCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtTdHJpbmcsIE9iamVjdF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgRWZmZWN0aXZlUGVybWlzc2lvblNlcnZpY2UucHJvdG90eXBlLCBcInJlYnVpbGRGb3JUZW5hbnRcIiwgbnVsbCk7XG5leHBvcnQgY2xhc3MgUHJvdGVjdGVkUmVzb3VyY2VTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKFByb3RlY3RlZFJlc291cmNlKTtcbiAgICB9XG4gICAgYXN5bmMgcmVnaXN0ZXJSZXNvdXJjZShpbnB1dCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVPbmUoe1xuICAgICAgICAgICAgaWQ6IGlkKCksXG4gICAgICAgICAgICB0ZW5hbnQ6IGlucHV0LnRlbmFudElkLFxuICAgICAgICAgICAgb3JnVW5pdDogaW5wdXQub3JnVW5pdElkLFxuICAgICAgICAgICAgcmVzb3VyY2VUeXBlOiBpbnB1dC5yZXNvdXJjZVR5cGUsXG4gICAgICAgICAgICByZXNvdXJjZUlkOiBpbnB1dC5yZXNvdXJjZUlkLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogaW5wdXQudmlzaWJpbGl0eSxcbiAgICAgICAgICAgIG93bmVyOiBpbnB1dC5vd25lclByaW5jaXBhbElkLFxuICAgICAgICAgICAgc2Vuc2l0aXZpdHk6IGlucHV0LnNlbnNpdGl2aXR5LFxuICAgICAgICAgICAgbWV0YWRhdGE6IGlucHV0Lm1ldGFkYXRhLFxuICAgICAgICB9LCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgZ2V0QnlEb21haW5SZXNvdXJjZSh0ZW5hbnRJZCwgcmVzb3VyY2VUeXBlLCByZXNvdXJjZUlkLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maW5kKChyZXNvdXJjZSkgPT4gc2FtZVRlbmFudChyZXNvdXJjZS50ZW5hbnQsIHRlbmFudElkKSAmJlxuICAgICAgICAgICAgcmVzb3VyY2UucmVzb3VyY2VUeXBlID09PSByZXNvdXJjZVR5cGUgJiZcbiAgICAgICAgICAgIHJlc291cmNlLnJlc291cmNlSWQgPT09IHJlc291cmNlSWQpO1xuICAgIH1cbiAgICBhc3luYyBtb3ZlUmVzb3VyY2VUb09yZ1VuaXQocHJvdGVjdGVkUmVzb3VyY2VJZCwgb3JnVW5pdElkLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZShwcm90ZWN0ZWRSZXNvdXJjZUlkLCB7IG9yZ1VuaXQ6IG9yZ1VuaXRJZCB9LCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgc2V0VmlzaWJpbGl0eShwcm90ZWN0ZWRSZXNvdXJjZUlkLCB2aXNpYmlsaXR5LCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZShwcm90ZWN0ZWRSZXNvdXJjZUlkLCB7IHZpc2liaWxpdHkgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHRyYW5zZmVyT3duZXJzaGlwKHByb3RlY3RlZFJlc291cmNlSWQsIG93bmVyUHJpbmNpcGFsSWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKHByb3RlY3RlZFJlc291cmNlSWQsIHsgb3duZXI6IG93bmVyUHJpbmNpcGFsSWQgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIGxpc3RPcmdVbml0UmVzb3VyY2VzKG9yZ1VuaXRJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChyZXNvdXJjZSkgPT4gcmVsYXRpb25NYXRjaChyZXNvdXJjZS5vcmdVbml0LCBvcmdVbml0SWQpKTtcbiAgICB9XG4gICAgYXN5bmMgbGlzdFRlbmFudFJlc291cmNlcyh0ZW5hbnRJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChyZXNvdXJjZSkgPT4gc2FtZVRlbmFudChyZXNvdXJjZS50ZW5hbnQsIHRlbmFudElkKSk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFJlc291cmNlR3JhbnRTZXJ2aWNlIGV4dGVuZHMgQmFzZU1vZGVsU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKFJlc291cmNlR3JhbnQpO1xuICAgIH1cbiAgICBhc3luYyBncmFudFJlc291cmNlKGlucHV0LCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZU9uZSh7XG4gICAgICAgICAgICBpZDogaWQoKSxcbiAgICAgICAgICAgIHRlbmFudDogaW5wdXQudGVuYW50SWQsXG4gICAgICAgICAgICByZXNvdXJjZTogaW5wdXQucmVzb3VyY2VJZCxcbiAgICAgICAgICAgIHByaW5jaXBhbDogaW5wdXQucHJpbmNpcGFsSWQsXG4gICAgICAgICAgICBwZXJtaXNzaW9uS2V5OiBpbnB1dC5wZXJtaXNzaW9uS2V5LFxuICAgICAgICAgICAgc3RhcnRzQXQ6IGlucHV0LnN0YXJ0c0F0LFxuICAgICAgICAgICAgZXhwaXJlc0F0OiBpbnB1dC5leHBpcmVzQXQsXG4gICAgICAgICAgICBjb25kaXRpb25zOiBpbnB1dC5jb25kaXRpb25zLFxuICAgICAgICAgICAgY3JlYXRlZEJ5OiBpbnB1dC5jcmVhdGVkQnlQcmluY2lwYWxJZCxcbiAgICAgICAgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHJldm9rZUdyYW50KGdyYW50SWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVCeUlkKGdyYW50SWQsIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBsaXN0UmVzb3VyY2VHcmFudHMocHJvdGVjdGVkUmVzb3VyY2VJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChncmFudCkgPT4gcmVsYXRpb25NYXRjaChncmFudC5yZXNvdXJjZSwgcHJvdGVjdGVkUmVzb3VyY2VJZCkpO1xuICAgIH1cbiAgICBhc3luYyBsaXN0UHJpbmNpcGFsR3JhbnRzKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMubGlzdEFsbCguLi5hcmdzKSkuZmlsdGVyKChncmFudCkgPT4gc2FtZVRlbmFudChncmFudC50ZW5hbnQsIHRlbmFudElkKSAmJlxuICAgICAgICAgICAgcmVsYXRpb25NYXRjaChncmFudC5wcmluY2lwYWwsIHByaW5jaXBhbElkKSk7XG4gICAgfVxuICAgIGFzeW5jIGhhc0dyYW50KHRlbmFudElkLCBwcmluY2lwYWxJZCwgcHJvdGVjdGVkUmVzb3VyY2VJZCwgcGVybWlzc2lvbktleSwgYXQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmxpc3RQcmluY2lwYWxHcmFudHModGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKSkuc29tZSgoZ3JhbnQpID0+IHJlbGF0aW9uTWF0Y2goZ3JhbnQucmVzb3VyY2UsIHByb3RlY3RlZFJlc291cmNlSWQpICYmXG4gICAgICAgICAgICBncmFudC5wZXJtaXNzaW9uS2V5ID09PSBwZXJtaXNzaW9uS2V5ICYmXG4gICAgICAgICAgICAoIWdyYW50LnN0YXJ0c0F0IHx8ICFhdCB8fCBncmFudC5zdGFydHNBdCA8PSBhdCkgJiZcbiAgICAgICAgICAgICghZ3JhbnQuZXhwaXJlc0F0IHx8ICFhdCB8fCBncmFudC5leHBpcmVzQXQgPj0gYXQpKTtcbiAgICB9XG4gICAgYXN5bmMgZGVsZXRlQWxsRm9yUmVzb3VyY2UocHJvdGVjdGVkUmVzb3VyY2VJZCwgLi4uYXJncykge1xuICAgICAgICBhd2FpdCBkZWxldGVNYW55QnlJZCh0aGlzLCBhd2FpdCB0aGlzLmxpc3RSZXNvdXJjZUdyYW50cyhwcm90ZWN0ZWRSZXNvdXJjZUlkLCAuLi5hcmdzKSwgLi4uYXJncyk7XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFJlc291cmNlTGlmZWN5Y2xlU2VydmljZSB7XG4gICAgYXN5bmMgdW5yZWdpc3RlclJlc291cmNlKHByb3RlY3RlZFJlc291cmNlSWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgYXdhaXQgbmV3IFJlc291cmNlR3JhbnRTZXJ2aWNlKCkuZGVsZXRlQWxsRm9yUmVzb3VyY2UocHJvdGVjdGVkUmVzb3VyY2VJZCwgLi4uYXJncyk7XG4gICAgICAgIGF3YWl0IG5ldyBQcm90ZWN0ZWRSZXNvdXJjZVNlcnZpY2UoKS5kZWxldGVCeUlkKHByb3RlY3RlZFJlc291cmNlSWQsIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyByZXNvbHZlUmVzb3VyY2VTY29wZShwcm90ZWN0ZWRSZXNvdXJjZUlkLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHJlc291cmNlID0gYXdhaXQgbmV3IFByb3RlY3RlZFJlc291cmNlU2VydmljZSgpLmdldEJ5SWQocHJvdGVjdGVkUmVzb3VyY2VJZCwgLi4uYXJncyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0ZW5hbnRJZDogcmVsYXRpb25JZChyZXNvdXJjZS50ZW5hbnQpLFxuICAgICAgICAgICAgb3JnVW5pdElkOiByZWxhdGlvbklkKHJlc291cmNlLm9yZ1VuaXQpLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogcmVzb3VyY2UudmlzaWJpbGl0eSxcbiAgICAgICAgICAgIG93bmVyUHJpbmNpcGFsSWQ6IHJlc291cmNlLm93bmVyID8gcmVsYXRpb25JZChyZXNvdXJjZS5vd25lcikgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgfVxufVxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VCaW5kaW5nU2VydmljZSBleHRlbmRzIEJhc2VNb2RlbFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihTdG9yYWdlQmluZGluZyk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZUJpbmRpbmcoaW5wdXQsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlT25lKHtcbiAgICAgICAgICAgIGlkOiBpZCgpLFxuICAgICAgICAgICAgdGVuYW50OiBpbnB1dC50ZW5hbnRJZCxcbiAgICAgICAgICAgIHN0b3JhZ2VLaW5kOiBpbnB1dC5zdG9yYWdlS2luZCxcbiAgICAgICAgICAgIGJpbmRpbmdLaW5kOiBpbnB1dC5iaW5kaW5nS2luZCxcbiAgICAgICAgICAgIGJpbmRpbmdLZXk6IGlucHV0LmJpbmRpbmdLZXksXG4gICAgICAgICAgICByZWdpb246IGlucHV0LnJlZ2lvbixcbiAgICAgICAgICAgIGNvbmZpZzogaW5wdXQuY29uZmlnLFxuICAgICAgICB9LCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYXN5bmMgbGlzdFRlbmFudEJpbmRpbmdzKHRlbmFudElkLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0QWxsKC4uLmFyZ3MpKS5maWx0ZXIoKGJpbmRpbmcpID0+IHNhbWVUZW5hbnQoYmluZGluZy50ZW5hbnQsIHRlbmFudElkKSk7XG4gICAgfVxuICAgIGFzeW5jIGdldEJpbmRpbmcodGVuYW50SWQsIHN0b3JhZ2VLaW5kLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5saXN0VGVuYW50QmluZGluZ3ModGVuYW50SWQsIC4uLmFyZ3MpKS5maW5kKChiaW5kaW5nKSA9PiBiaW5kaW5nLnN0b3JhZ2VLaW5kID09PSBzdG9yYWdlS2luZCk7XG4gICAgfVxuICAgIGFzeW5jIHNldEJpbmRpbmdDb25maWcoYmluZGluZ0lkLCBjb25maWcsIC4uLmFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlT25lKGJpbmRpbmdJZCwgeyBjb25maWcgfSwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHByb21vdGVUb0RlZGljYXRlZChiaW5kaW5nSWQsIGJpbmRpbmdLZXksIHJlZ2lvbiwgY29uZmlnLCAuLi5hcmdzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZU9uZShiaW5kaW5nSWQsIHsgYmluZGluZ0tpbmQ6IFN0b3JhZ2VCaW5kaW5nS2luZC5EZWRpY2F0ZWQsIGJpbmRpbmdLZXksIHJlZ2lvbiwgY29uZmlnIH0sIC4uLmFyZ3MpO1xuICAgIH1cbiAgICBhc3luYyBzZXRTaGFyZWQoYmluZGluZ0lkLCBiaW5kaW5nS2V5LCByZWdpb24sIGNvbmZpZywgLi4uYXJncykge1xuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVPbmUoYmluZGluZ0lkLCB7IGJpbmRpbmdLaW5kOiBTdG9yYWdlQmluZGluZ0tpbmQuU2hhcmVkLCBiaW5kaW5nS2V5LCByZWdpb24sIGNvbmZpZyB9LCAuLi5hcmdzKTtcbiAgICB9XG59XG5leHBvcnQgY2xhc3MgQm9vdHN0cmFwU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudGVuYW50U2VydmljZSA9IG5ldyBUZW5hbnRTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMudGVuYW50UHJvZmlsZVNlcnZpY2UgPSBuZXcgVGVuYW50UHJvZmlsZVNlcnZpY2UoKTtcbiAgICAgICAgdGhpcy5vcmdVbml0U2VydmljZSA9IG5ldyBPcmdVbml0U2VydmljZSgpO1xuICAgICAgICB0aGlzLm9yZ1VuaXRQcm9maWxlU2VydmljZSA9IG5ldyBPcmdVbml0UHJvZmlsZVNlcnZpY2UoKTtcbiAgICAgICAgdGhpcy51c2VyU2VydmljZSA9IG5ldyBVc2VyU2VydmljZSgpO1xuICAgICAgICB0aGlzLm1lbWJlcnNoaXBTZXJ2aWNlID0gbmV3IFRlbmFudE1lbWJlcnNoaXBTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMucHJpbmNpcGFsU2VydmljZSA9IG5ldyBQcmluY2lwYWxTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMucGVybWlzc2lvblNlcnZpY2UgPSBuZXcgUGVybWlzc2lvblNlcnZpY2UoKTtcbiAgICAgICAgdGhpcy5yb2xlU2VydmljZSA9IG5ldyBSb2xlU2VydmljZSgpO1xuICAgICAgICB0aGlzLnJvbGVQZXJtaXNzaW9uU2VydmljZSA9IG5ldyBSb2xlUGVybWlzc2lvblNlcnZpY2UoKTtcbiAgICAgICAgdGhpcy5yb2xlQXNzaWdubWVudFNlcnZpY2UgPSBuZXcgUm9sZUFzc2lnbm1lbnRTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMuZWZmZWN0aXZlUGVybWlzc2lvblNlcnZpY2UgPSBuZXcgRWZmZWN0aXZlUGVybWlzc2lvblNlcnZpY2UoKTtcbiAgICB9XG4gICAgYXN5bmMgYm9vdHN0cmFwVGVuYW50RnJvbVRlbXBsYXRlKHRlbXBsYXRlLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHRlbmFudCA9IGF3YWl0IHRoaXMudGVuYW50U2VydmljZS5jcmVhdGVUZW5hbnQodGVtcGxhdGUudGVuYW50LCAuLi5hcmdzKTtcbiAgICAgICAgaWYgKHRlbXBsYXRlLnRlbmFudC5wcm9maWxlS2V5KSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnRlbmFudFByb2ZpbGVTZXJ2aWNlLmNyZWF0ZVByb2ZpbGUodGVuYW50LmlkLCB0ZW1wbGF0ZS50ZW5hbnQucHJvZmlsZUtleSwgdGVtcGxhdGUudGVuYW50LnByb2ZpbGVNZXRhZGF0YSwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3JlYXRlT3JnVHJlZSA9IGFzeW5jIChwYXJlbnRJZCwgb3JnVW5pdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3JlYXRlZCA9IHBhcmVudElkID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IGF3YWl0IHRoaXMub3JnVW5pdFNlcnZpY2UuY3JlYXRlUm9vdCh0ZW5hbnQuaWQsIG9yZ1VuaXQubmFtZSwgb3JnVW5pdC5tZXRhZGF0YSwgb3JnVW5pdC5wcm9maWxlS2V5LCBvcmdVbml0Lm1ldGFkYXRhLCAuLi5hcmdzKVxuICAgICAgICAgICAgICAgIDogYXdhaXQgdGhpcy5vcmdVbml0U2VydmljZS5jcmVhdGVDaGlsZCh7XG4gICAgICAgICAgICAgICAgICAgIHRlbmFudElkOiB0ZW5hbnQuaWQsXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudE9yZ1VuaXRJZDogcGFyZW50SWQsXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IG9yZ1VuaXQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IG9yZ1VuaXQubWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIHByb2ZpbGVLZXk6IG9yZ1VuaXQucHJvZmlsZUtleSxcbiAgICAgICAgICAgICAgICAgICAgcHJvZmlsZU1ldGFkYXRhOiBvcmdVbml0Lm1ldGFkYXRhLFxuICAgICAgICAgICAgICAgIH0sIC4uLmFyZ3MpO1xuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBvcmdVbml0LmNoaWxkcmVuID8/IFtdKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgY3JlYXRlT3JnVHJlZShjcmVhdGVkLmlkLCBjaGlsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlZDtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgcm9vdE9yZ1VuaXQgPSBhd2FpdCBjcmVhdGVPcmdUcmVlKHVuZGVmaW5lZCwgdGVtcGxhdGUucm9vdE9yZ1VuaXQpO1xuICAgICAgICBjb25zdCBvd25lciA9IGF3YWl0IHRoaXMudXNlclNlcnZpY2UuY3JlYXRlVXNlcih0ZW1wbGF0ZS5vd25lclVzZXIsIC4uLmFyZ3MpO1xuICAgICAgICBhd2FpdCB0aGlzLm1lbWJlcnNoaXBTZXJ2aWNlLmFkZFVzZXJUb1RlbmFudCh0ZW5hbnQuaWQsIG93bmVyLmlkLCBNZW1iZXJzaGlwU3RhdHVzLkFjdGl2ZSwgLi4uYXJncyk7XG4gICAgICAgIGNvbnN0IG93bmVyUHJpbmNpcGFsID0gYXdhaXQgdGhpcy5wcmluY2lwYWxTZXJ2aWNlLmdldFVzZXJQcmluY2lwYWwodGVuYW50LmlkLCBvd25lci5pZCwgLi4uYXJncyk7XG4gICAgICAgIGZvciAoY29uc3QgcGVybWlzc2lvbiBvZiB0ZW1wbGF0ZS5wZXJtaXNzaW9ucykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5wZXJtaXNzaW9uU2VydmljZS5jcmVhdGVQZXJtaXNzaW9uKHBlcm1pc3Npb24sIC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3Qgcm9sZSBvZiB0ZW1wbGF0ZS5yb2xlcykge1xuICAgICAgICAgICAgY29uc3QgY3JlYXRlZFJvbGUgPSBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmNyZWF0ZVJvbGUoe1xuICAgICAgICAgICAgICAgIHRlbmFudElkOiB0ZW5hbnQuaWQsXG4gICAgICAgICAgICAgICAga2V5OiByb2xlLmtleSxcbiAgICAgICAgICAgICAgICBuYW1lOiByb2xlLm5hbWUsXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IHJvbGUuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9LCAuLi5hcmdzKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgcGVybWlzc2lvbktleSBvZiByb2xlLnBlcm1pc3Npb25LZXlzKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yb2xlUGVybWlzc2lvblNlcnZpY2UuYWRkUGVybWlzc2lvbktleVRvUm9sZShjcmVhdGVkUm9sZS5pZCwgcGVybWlzc2lvbktleSwgLi4uYXJncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3duZXJSb2xlID0gYXdhaXQgdGhpcy5yb2xlU2VydmljZS5nZXRUZW5hbnRSb2xlQnlLZXkodGVuYW50LmlkLCB0ZW1wbGF0ZS5vd25lclJvbGVLZXksIC4uLmFyZ3MpO1xuICAgICAgICBhd2FpdCB0aGlzLnJvbGVBc3NpZ25tZW50U2VydmljZS5hc3NpZ25Sb2xlKHtcbiAgICAgICAgICAgIHRlbmFudElkOiB0ZW5hbnQuaWQsXG4gICAgICAgICAgICBwcmluY2lwYWxJZDogb3duZXJQcmluY2lwYWwuaWQsXG4gICAgICAgICAgICByb2xlSWQ6IG93bmVyUm9sZS5pZCxcbiAgICAgICAgICAgIHNjb3BlS2luZDogU2NvcGVLaW5kLk9yZ1VuaXQsXG4gICAgICAgICAgICBzY29wZUlkOiByb290T3JnVW5pdC5pZCxcbiAgICAgICAgICAgIGluaGVyaXREb3duOiB0cnVlLFxuICAgICAgICB9LCAuLi5hcmdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5lZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZS5yZWJ1aWxkRm9yUHJpbmNpcGFsKHRlbmFudC5pZCwgb3duZXJQcmluY2lwYWwuaWQsIC4uLmFyZ3MpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGVuYW50SWQ6IHRlbmFudC5pZCxcbiAgICAgICAgICAgIHJvb3RPcmdVbml0SWQ6IHJvb3RPcmdVbml0LmlkLFxuICAgICAgICAgICAgb3duZXJVc2VySWQ6IG93bmVyLmlkLFxuICAgICAgICAgICAgb3duZXJQcmluY2lwYWxJZDogb3duZXJQcmluY2lwYWwuaWQsXG4gICAgICAgIH07XG4gICAgfVxufVxuX19kZWNvcmF0ZShbXG4gICAgdHJhbnNhY3Rpb25hbCgpLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCBGdW5jdGlvbiksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpwYXJhbXR5cGVzXCIsIFtPYmplY3QsIE9iamVjdF0pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cmV0dXJudHlwZVwiLCBQcm9taXNlKVxuXSwgQm9vdHN0cmFwU2VydmljZS5wcm90b3R5cGUsIFwiYm9vdHN0cmFwVGVuYW50RnJvbVRlbXBsYXRlXCIsIG51bGwpO1xuZXhwb3J0IGNsYXNzIFN5c3RlbU1hbmFnZW1lbnRTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5tZW1iZXJzaGlwU2VydmljZSA9IG5ldyBUZW5hbnRNZW1iZXJzaGlwU2VydmljZSgpO1xuICAgICAgICB0aGlzLm9yZ01lbWJlcnNoaXBTZXJ2aWNlID0gbmV3IE9yZ1VuaXRNZW1iZXJzaGlwU2VydmljZSgpO1xuICAgICAgICB0aGlzLnByaW5jaXBhbFNlcnZpY2UgPSBuZXcgUHJpbmNpcGFsU2VydmljZSgpO1xuICAgICAgICB0aGlzLnJvbGVTZXJ2aWNlID0gbmV3IFJvbGVTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMucm9sZUFzc2lnbm1lbnRTZXJ2aWNlID0gbmV3IFJvbGVBc3NpZ25tZW50U2VydmljZSgpO1xuICAgICAgICB0aGlzLmVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlID0gbmV3IEVmZmVjdGl2ZVBlcm1pc3Npb25TZXJ2aWNlKCk7XG4gICAgfVxuICAgIGFzeW5jIG9uYm9hcmRVc2VyVG9UZW5hbnRBbmRPcmdVbml0KHRlbmFudElkLCB1c2VySWQsIG9yZ1VuaXRJZCwgcm9sZUtleSwgLi4uYXJncykge1xuICAgICAgICBhd2FpdCB0aGlzLm1lbWJlcnNoaXBTZXJ2aWNlLmFkZFVzZXJUb1RlbmFudCh0ZW5hbnRJZCwgdXNlcklkLCBNZW1iZXJzaGlwU3RhdHVzLkFjdGl2ZSwgLi4uYXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMub3JnTWVtYmVyc2hpcFNlcnZpY2UuYWRkVXNlclRvT3JnVW5pdCh0ZW5hbnRJZCwgb3JnVW5pdElkLCB1c2VySWQsIE1lbWJlcnNoaXBTdGF0dXMuQWN0aXZlLCAuLi5hcmdzKTtcbiAgICAgICAgY29uc3QgcHJpbmNpcGFsID0gYXdhaXQgdGhpcy5wcmluY2lwYWxTZXJ2aWNlLmdldFVzZXJQcmluY2lwYWwodGVuYW50SWQsIHVzZXJJZCwgLi4uYXJncyk7XG4gICAgICAgIGNvbnN0IHJvbGUgPSBhd2FpdCB0aGlzLnJvbGVTZXJ2aWNlLmdldFRlbmFudFJvbGVCeUtleSh0ZW5hbnRJZCwgcm9sZUtleSwgLi4uYXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMucm9sZUFzc2lnbm1lbnRTZXJ2aWNlLmFzc2lnblJvbGUoe1xuICAgICAgICAgICAgdGVuYW50SWQsXG4gICAgICAgICAgICBwcmluY2lwYWxJZDogcHJpbmNpcGFsLmlkLFxuICAgICAgICAgICAgcm9sZUlkOiByb2xlLmlkLFxuICAgICAgICAgICAgc2NvcGVLaW5kOiBTY29wZUtpbmQuT3JnVW5pdCxcbiAgICAgICAgICAgIHNjb3BlSWQ6IG9yZ1VuaXRJZCxcbiAgICAgICAgICAgIGluaGVyaXREb3duOiB0cnVlLFxuICAgICAgICB9LCAuLi5hcmdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5lZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZS5yZWJ1aWxkRm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWwuaWQsIC4uLmFyZ3MpO1xuICAgICAgICByZXR1cm4geyBwcmluY2lwYWxJZDogcHJpbmNpcGFsLmlkIH07XG4gICAgfVxuICAgIGFzeW5jIGNoYW5nZVVzZXJPcmdSb2xlKHRlbmFudElkLCBwcmluY2lwYWxJZCwgb3JnVW5pdElkLCByb2xlS2V5LCBpbmhlcml0RG93biwgLi4uYXJncykge1xuICAgICAgICBjb25zdCByb2xlID0gYXdhaXQgdGhpcy5yb2xlU2VydmljZS5nZXRUZW5hbnRSb2xlQnlLZXkodGVuYW50SWQsIHJvbGVLZXksIC4uLmFyZ3MpO1xuICAgICAgICBjb25zdCBjdXJyZW50QXNzaWdubWVudHMgPSBhd2FpdCB0aGlzLnJvbGVBc3NpZ25tZW50U2VydmljZS5saXN0UHJpbmNpcGFsQXNzaWdubWVudHModGVuYW50SWQsIHByaW5jaXBhbElkLCAuLi5hcmdzKTtcbiAgICAgICAgZm9yIChjb25zdCBhc3NpZ25tZW50IG9mIGN1cnJlbnRBc3NpZ25tZW50cy5maWx0ZXIoKHJvdykgPT4gcm93LnNjb3BlS2luZCA9PT0gU2NvcGVLaW5kLk9yZ1VuaXQgJiYgcm93LnNjb3BlSWQgPT09IG9yZ1VuaXRJZCkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMucm9sZUFzc2lnbm1lbnRTZXJ2aWNlLnJldm9rZUFzc2lnbm1lbnQoYXNzaWdubWVudC5pZCwgLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5yb2xlQXNzaWdubWVudFNlcnZpY2UuYXNzaWduUm9sZSh7XG4gICAgICAgICAgICB0ZW5hbnRJZCxcbiAgICAgICAgICAgIHByaW5jaXBhbElkLFxuICAgICAgICAgICAgcm9sZUlkOiByb2xlLmlkLFxuICAgICAgICAgICAgc2NvcGVLaW5kOiBTY29wZUtpbmQuT3JnVW5pdCxcbiAgICAgICAgICAgIHNjb3BlSWQ6IG9yZ1VuaXRJZCxcbiAgICAgICAgICAgIGluaGVyaXREb3duLFxuICAgICAgICB9LCAuLi5hcmdzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5lZmZlY3RpdmVQZXJtaXNzaW9uU2VydmljZS5yZWJ1aWxkRm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHN1c3BlbmRVc2VySW5UZW5hbnQodGVuYW50TWVtYmVyc2hpcElkLCB0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5tZW1iZXJzaGlwU2VydmljZS5zZXRTdGF0dXModGVuYW50TWVtYmVyc2hpcElkLCBNZW1iZXJzaGlwU3RhdHVzLlN1c3BlbmRlZCwgLi4uYXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZWZmZWN0aXZlUGVybWlzc2lvblNlcnZpY2UuZGVsZXRlRm9yUHJpbmNpcGFsKHRlbmFudElkLCBwcmluY2lwYWxJZCwgLi4uYXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHJlYWN0aXZhdGVVc2VySW5UZW5hbnQodGVuYW50TWVtYmVyc2hpcElkLCB0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5tZW1iZXJzaGlwU2VydmljZS5zZXRTdGF0dXModGVuYW50TWVtYmVyc2hpcElkLCBNZW1iZXJzaGlwU3RhdHVzLkFjdGl2ZSwgLi4uYXJncyk7XG4gICAgICAgIGF3YWl0IHRoaXMuZWZmZWN0aXZlUGVybWlzc2lvblNlcnZpY2UucmVidWlsZEZvclByaW5jaXBhbCh0ZW5hbnRJZCwgcHJpbmNpcGFsSWQsIC4uLmFyZ3MpO1xuICAgIH1cbn1cbl9fZGVjb3JhdGUoW1xuICAgIHRyYW5zYWN0aW9uYWwoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBPYmplY3RdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIFN5c3RlbU1hbmFnZW1lbnRTZXJ2aWNlLnByb3RvdHlwZSwgXCJvbmJvYXJkVXNlclRvVGVuYW50QW5kT3JnVW5pdFwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIHRyYW5zYWN0aW9uYWwoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgU3RyaW5nLCBCb29sZWFuLCBPYmplY3RdKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnJldHVybnR5cGVcIiwgUHJvbWlzZSlcbl0sIFN5c3RlbU1hbmFnZW1lbnRTZXJ2aWNlLnByb3RvdHlwZSwgXCJjaGFuZ2VVc2VyT3JnUm9sZVwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIHRyYW5zYWN0aW9uYWwoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgT2JqZWN0XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBTeXN0ZW1NYW5hZ2VtZW50U2VydmljZS5wcm90b3R5cGUsIFwic3VzcGVuZFVzZXJJblRlbmFudFwiLCBudWxsKTtcbl9fZGVjb3JhdGUoW1xuICAgIHRyYW5zYWN0aW9uYWwoKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgRnVuY3Rpb24pLFxuICAgIF9fbWV0YWRhdGEoXCJkZXNpZ246cGFyYW10eXBlc1wiLCBbU3RyaW5nLCBTdHJpbmcsIFN0cmluZywgT2JqZWN0XSksXG4gICAgX19tZXRhZGF0YShcImRlc2lnbjpyZXR1cm50eXBlXCIsIFByb21pc2UpXG5dLCBTeXN0ZW1NYW5hZ2VtZW50U2VydmljZS5wcm90b3R5cGUsIFwicmVhY3RpdmF0ZVVzZXJJblRlbmFudFwiLCBudWxsKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaWIzSm5MV0poYzJWa0xXRjFkR2h2Y21sNllYUnBiMjR0YzNsemRHVnRMbk5sY25acFkyVnpMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dmMzSmpMMjVoYldWemNHRmpaWE12YjNKbkxXSmhjMlZrTFdGMWRHaHZjbWw2WVhScGIyNHRjM2x6ZEdWdExuTmxjblpwWTJWekxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSTdPenM3T3pzN096dEJRVUZCTEU5QlFVOHNSVUZEVEN4blFrRkJaMElzUlVGRGFFSXNZVUZCWVN4RlFVTmlMR2RDUVVGblFpeEZRVVZvUWl4aFFVRmhMRVZCUldJc1UwRkJVeXhGUVVOVUxHdENRVUZyUWl4RlFVVnNRaXhGUVVGRkxFVkJRMFlzVlVGQlZTeEZRVU5XTEdGQlFXRXNSMEZEWkN3MFEwRkJlVU03UVVGbE1VTXNUMEZCVHl4RlFVTk1MRzFDUVVGdFFpeEZRVU51UWl4TFFVRkxMRVZCUTB3c1pVRkJaU3hGUVVObUxHZENRVUZuUWl4RlFVTm9RaXhQUVVGUExFVkJRMUFzWTBGQll5eEZRVU5rTEdsQ1FVRnBRaXhGUVVOcVFpeGpRVUZqTEVWQlEyUXNWVUZCVlN4RlFVTldMR2xDUVVGcFFpeEZRVU5xUWl4VFFVRlRMRVZCUTFRc1lVRkJZU3hGUVVOaUxFbEJRVWtzUlVGRFNpeGpRVUZqTEVWQlEyUXNZMEZCWXl4RlFVTmtMR05CUVdNc1JVRkRaQ3hOUVVGTkxFVkJRMDRzWjBKQlFXZENMRVZCUTJoQ0xHRkJRV0VzUlVGRFlpeEpRVUZKTEVkQlEwd3NiVVJCUVdkRU8wRkJRMnBFTEVWQlFVVTdRVUZEUml4dFEwRkJiVU03UVVGRGJrTXNiVVZCUVcxRk8wRkJRMjVGTEUxQlFVMHNWVUZCVlN4SFFVRkhMRU5CUVVNc1UwRkJhMElzUlVGQlJTeFJRVUZuUWl4RlFVRlhMRVZCUVVVc1EwRkRia1VzVlVGQlZTeERRVUZETEZOQlFXOURMRU5CUVVNc1MwRkJTeXhSUVVGUkxFTkJRVU03UVVGRGFFVXNUVUZCVFN4aFFVRmhMRWRCUVVjc1EwRkJReXhMUVVGakxFVkJRVVVzVFVGQk1FSXNSVUZCVnl4RlFVRkZMRU5CUXpWRkxFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNWVUZCVlN4RFFVRkRMRXRCUVdkRExFTkJRVU1zUzBGQlN5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJRenRCUVVNelJTeE5RVUZOTEZOQlFWTXNSMEZCUnl4RFFVRkRMRXRCUVdFc1JVRkJWU3hGUVVGRkxFTkJRekZETEV0QlFVczdTMEZEUml4SlFVRkpMRVZCUVVVN1MwRkRUaXhYUVVGWExFVkJRVVU3UzBGRFlpeFBRVUZQTEVOQlFVTXNZVUZCWVN4RlFVRkZMRWRCUVVjc1EwRkJRenRMUVVNelFpeFBRVUZQTEVOQlFVTXNWVUZCVlN4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFMUJRVTBzUTBGQlF6dEJRVVYyUXl4TFFVRkxMRlZCUVZVc1kwRkJZeXhEUVVNelFpeFBRVUU0UWl4RlFVTTVRaXhKUVVFeVFpeEZRVU16UWl4SFFVRkhMRWxCUVZjN1NVRkZaQ3hMUVVGTExFMUJRVTBzUjBGQlJ5eEpRVUZKTEVsQlFVa3NSVUZCUlN4RFFVRkRPMUZCUTNaQ0xFMUJRVTBzVDBGQlR5eERRVUZETEZWQlFWVXNRMEZCUXl4SFFVRkhMRU5CUVVNc1JVRkJSU3hGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETlVNc1EwRkJRenRCUVVOSUxFTkJRVU03UVVGRlJDeE5RVUZOTEU5QlFVOHNiMEpCUVhGQ0xGTkJRVkVzWjBKQlFTdENPMGxCUTNaRk8xRkJRMFVzUzBGQlN5eERRVUZETEdGQlFXRXNRMEZCUXl4RFFVRkRPMGxCUTNaQ0xFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVTnFRaXhSUVVGblFpeEZRVU5vUWl4VlFVRnJRaXhGUVVOc1FpeFJRVUZyUXl4RlFVTnNReXhIUVVGSExFbEJRVmM3VVVGRlpDeFBRVUZQTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUTI1Q08xbEJRMFVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlR0WlFVTlNMRTFCUVUwc1JVRkJSU3hSUVVGUk8xbEJRMmhDTEZWQlFWVTdXVUZEVml4UlFVRlJPMU5CUTFRc1JVRkRSQ3hIUVVGSExFbEJRVWtzUTBGRFVpeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhoUVVGaExFTkJRMnBDTEZGQlFXZENMRVZCUTJoQ0xFZEJRVWNzU1VGQlZ6dFJRVVZrTEU5QlFVOHNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlEzUkVMR0ZCUVdFc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVTjRReXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4bFFVRmxMRU5CUVVNc1VVRkJaMElzUlVGQlJTeEhRVUZITEVsQlFWYzdVVUZEY0VRc1RVRkJUU3hqUVVGakxFTkJRMnhDTEVsQlFVa3NSVUZEU2l4TlFVRk5MRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVVVGQlVTeEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRVZCUXpORExFZEJRVWNzU1VGQlNTeERRVU5TTEVOQlFVTTdTVUZEU2l4RFFVRkRPME5CUTBZN1FVRkZSQ3hOUVVGTkxFOUJRVThzY1VKQlFYTkNMRk5CUVZFc1owSkJRV2RETzBsQlEzcEZPMUZCUTBVc1MwRkJTeXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzBsQlEzaENMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zWVVGQllTeERRVU5xUWl4VFFVRnBRaXhGUVVOcVFpeFZRVUZyUWl4RlFVTnNRaXhSUVVGclF5eEZRVU5zUXl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hQUVVGUExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlEyNUNPMWxCUTBVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJUdFpRVU5TTEU5QlFVOHNSVUZCUlN4VFFVRlRPMWxCUTJ4Q0xGVkJRVlU3V1VGRFZpeFJRVUZSTzFOQlExUXNSVUZEUkN4SFFVRkhMRWxCUVVrc1EwRkRVaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4alFVRmpMRU5CUTJ4Q0xGTkJRV2xDTEVWQlEycENMRWRCUVVjc1NVRkJWenRSUVVWa0xFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRTlCUVU4c1JVRkJSU3hGUVVGRkxFTkJRM1JFTEdGQlFXRXNRMEZCUXl4UFFVRlBMRU5CUVVNc1QwRkJUeXhGUVVGRkxGTkJRVk1zUTBGQlF5eERRVU14UXl4RFFVRkRPMGxCUTBvc1EwRkJRenREUVVOR08wRkJSVVFzVFVGQlRTeFBRVUZQTEhGQ1FVRnpRaXhUUVVGUkxHZENRVUZuUXp0SlFVTjZSVHRSUVVORkxFdEJRVXNzUTBGQlF5eGpRVUZqTEVOQlFVTXNRMEZCUXp0SlFVTjRRaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEdGQlFXRXNRMEZEYWtJc1VVRkJaMElzUlVGRGFFSXNVMEZCYVVJc1JVRkRha0lzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRPMkZCUTJwRExFMUJRVTBzUTBGRFRDeERRVUZETEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUTA0c1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eE5RVUZOTEVWQlFVVXNVVUZCVVN4RFFVRkRPMWxCUTJoRExHRkJRV0VzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVlN4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVNelF6dGhRVU5CTEVsQlFVa3NRMEZCUXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hMUVVGTExFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzBsQlEzSkVMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zWlVGQlpTeERRVU51UWl4UlFVRm5RaXhGUVVOb1FpeFRRVUZwUWl4RlFVTnFRaXhIUVVGSExFbEJRVmM3VVVGRlpDeFBRVUZQTEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdZVUZEYWtNc1RVRkJUU3hEUVVOTUxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZEVGl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUlVGQlJTeFJRVUZSTEVOQlFVTTdXVUZEYUVNc1lVRkJZU3hEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUTNwRE8yRkJRMEVzU1VGQlNTeERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NSMEZCUnl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRGNrUXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhaUVVGWkxFTkJRMmhDTEZGQlFXZENMRVZCUTJoQ0xHbENRVUY1UWl4RlFVTjZRaXh0UWtGQk1rSXNSVUZETTBJc1IwRkJSeXhKUVVGWE8xRkJSV1FzVDBGQlR5eERRVU5NTEUxQlFVMHNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhSUVVGUkxFVkJRVVVzYlVKQlFXMUNMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGRGFrVXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUlVGQlJTeERRVUZETEdGQlFXRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1VVRkJVU3hGUVVGRkxHbENRVUZwUWl4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOc1JTeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR05CUVdNc1EwRkRiRUlzVVVGQlowSXNSVUZEYUVJc1UwRkJhVUlzUlVGRGFrSXNSMEZCUnl4SlFVRlhPMUZCUldRc1QwRkJUeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVU51UWp0WlFVTkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVU3V1VGRFVpeE5RVUZOTEVWQlFVVXNVVUZCVVR0WlFVTm9RaXhSUVVGUkxFVkJRVVVzVTBGQlV6dFpRVU51UWl4VlFVRlZMRVZCUVVVc1UwRkJVenRaUVVOeVFpeExRVUZMTEVWQlFVVXNRMEZCUXp0VFFVTlVMRVZCUTBRc1IwRkJSeXhKUVVGSkxFTkJRMUlzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc09FSkJRVGhDTEVOQlEyeERMRkZCUVdkQ0xFVkJRMmhDTEdWQlFYVkNMRVZCUTNaQ0xHTkJRWE5DTEVWQlEzUkNMRWRCUVVjc1NVRkJWenRSUVVWa0xFMUJRVTBzWVVGQllTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkROVU1zVVVGQlVTeEZRVU5TTEdWQlFXVXNSVUZEWml4SFFVRkhMRWxCUVVrc1EwRkRVaXhEUVVGRE8xRkJRMFlzVFVGQlRTeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVTm1MR0ZCUVdFc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNSVUZCUlN4RFFVTjZRaXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVU5hTzFsQlEwVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSVHRaUVVOU0xFMUJRVTBzUlVGQlJTeFJRVUZSTzFsQlEyaENMRkZCUVZFc1JVRkJSU3hKUVVGSkxFTkJRVU1zVVVGQlVUdFpRVU4yUWl4VlFVRlZMRVZCUVVVc1kwRkJZenRaUVVNeFFpeExRVUZMTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1IwRkJSeXhEUVVGRE8xTkJRM1JDTEVWQlEwUXNSMEZCUnl4SlFVRkpMRU5CUTFJc1EwRkRSaXhEUVVOR0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMSEZDUVVGeFFpeERRVU42UWl4UlFVRm5RaXhGUVVOb1FpeFRRVUZwUWl4RlFVTnFRaXhIUVVGSExFbEJRVmM3VVVGRlpDeE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zVVVGQlVTeEZRVUZGTEZOQlFWTXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM3BGTEUxQlFVMHNZVUZCWVN4SFFVRkhMRWxCUVVrc1IwRkJSeXhEUVVGRE8xbEJRelZDTEZOQlFWTTdXVUZEVkN4SFFVRkhMRTlCUVU4c1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTTdVMEZEY0VRc1EwRkJReXhEUVVGRE8xRkJRMGdzVFVGQlRTeFhRVUZYTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUVVNN1dVRkRNVUlzVTBGQlV6dFpRVU5VTEVkQlFVY3NUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFRRVU5zUkN4RFFVRkRMRU5CUVVNN1VVRkRTQ3hOUVVGTkxFbEJRVWtzUjBGQlJ5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVTXZReXhEUVVGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEVOQlEwNHNWVUZCVlN4RFFVRkRMRWRCUVVjc1EwRkJReXhOUVVGTkxFVkJRVVVzVVVGQlVTeERRVUZETzFsQlEyaERMRU5CUVVNc1lVRkJZU3hEUVVGRExFZEJRVWNzUTBGQlF5eFZRVUZWTEVOQlFVTXNSMEZCUnl4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8yZENRVU0xUXl4WFFVRlhMRU5CUVVNc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eEhRVUZITEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVNdlF5eERRVUZETzFGQlEwWXNUVUZCVFN4alFVRmpMRU5CUVVNc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUXpWRExFTkJRVU03UTBGRFJqdEJRVVZFTEUxQlFVMHNUMEZCVHl4MVFrRkJkMElzVTBGQlVTeG5Ra0ZCYTBNN1NVRkROMFU3VVVGRFJTeExRVUZMTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zUTBGQlF6dEpRVU14UWl4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHRkJRV0VzUTBGRGFrSXNVVUZCWjBJc1JVRkRhRUlzVTBGQmFVSXNSVUZEYWtJc2EwSkJRWE5ETEVWQlEzUkRMSEZDUVVFNFFpeEZRVU01UWl4TlFVRmxMRVZCUTJZc1IwRkJSeXhKUVVGWE8xRkJSV1FzVDBGQlR5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVTnVRanRaUVVORkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVTdXVUZEVWl4TlFVRk5MRVZCUVVVc1VVRkJVVHRaUVVOb1FpeFBRVUZQTEVWQlFVVXNVMEZCVXp0WlFVTnNRaXh0UWtGQmJVSXNSVUZCUlN4eFFrRkJjVUk3V1VGRE1VTXNhMEpCUVd0Q08xbEJRMnhDTEUxQlFVMDdVMEZEVUN4RlFVTkVMRWRCUVVjc1NVRkJTU3hEUVVOU0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkJReXhQUVVGbExFVkJRVVVzUjBGQlJ5eEpRVUZYTzFGQlEyNUVMRTFCUVUwc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eFBRVUZQTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNeFF5eERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR05CUVdNc1EwRkRiRUlzVVVGQlowSXNSVUZEYUVJc1UwRkJhVUlzUlVGRGFrSXNSMEZCUnl4SlFVRlhPMUZCUldRc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVU42UXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRMUlzVlVGQlZTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRVZCUVVVc1VVRkJVU3hEUVVGRE8xbEJRMnhETEdGQlFXRXNRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhGUVVGRkxGTkJRVk1zUTBGQlF5eERRVU14UXl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5d3dRa0ZCTUVJc1EwRkRPVUlzVVVGQlowSXNSVUZEYUVJc1UwRkJhVUlzUlVGRGFrSXNhVUpCUVhsQ0xFVkJRM3BDTEZGQlFUUkNMRVZCUXpWQ0xFZEJRVWNzU1VGQlZ6dFJRVVZrTEU5QlFVOHNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zVVVGQlVTeEZRVUZGTEZOQlFWTXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVU51UlN4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRMUlzUzBGQlN5eERRVUZETEd0Q1FVRnJRaXhMUVVGTExGRkJRVkU3V1VGRGNrTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXh0UWtGQmJVSTdaMEpCUTNwQ0xHRkJRV0VzUTBGQlF5eExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFVkJRVVVzYVVKQlFXbENMRU5CUVVNc1EwRkJReXhEUVVOcVJTeERRVUZETzBsQlEwb3NRMEZCUXp0RFFVTkdPMEZCUlVRc1RVRkJUU3hQUVVGUExHRkJRV01zVTBGQlVTeG5Ra0ZCZDBJN1NVRkRla1E3VVVGRFJTeExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkRhRUlzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4WlFVRlpMRU5CUTJoQ0xFdEJRWGRDTEVWQlEzaENMRWRCUVVjc1NVRkJWenRSUVVWa0xFOUJRVThzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZEYmtJN1dVRkRSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTzFsQlExSXNTVUZCU1N4RlFVRkZMRXRCUVVzc1EwRkJReXhKUVVGSk8xbEJRMmhDTEVsQlFVa3NSVUZCUlN4TFFVRkxMRU5CUVVNc1NVRkJTVHRaUVVOb1FpeGhRVUZoTEVWQlFVVXNTMEZCU3l4RFFVRkRMR0ZCUVdFc1NVRkJTU3hoUVVGaExFTkJRVU1zVFVGQlRUdFRRVU16UkN4RlFVTkVMRWRCUVVjc1NVRkJTU3hEUVVOU0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGWkxFVkJRVVVzUjBGQlJ5eEpRVUZYTzFGQlF6RkRMRTlCUVU4c1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVWQlFVVXNTVUZCWVN4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGVFUXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhaUVVGWkxFTkJRMmhDTEZGQlFXZENMRVZCUTJoQ0xFbEJRVmtzUlVGRFdpeEhRVUZITEVsQlFWYzdVVUZGWkN4UFFVRlBMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVVVGQlVTeEZRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU55UkN4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExGVkJRVlVzUTBGRFpDeFJRVUZuUWl4RlFVTm9RaXhKUVVGWkxFVkJRMW9zUjBGQlJ5eEpRVUZYTzFGQlJXUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGNrUXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhuUWtGQlowSXNRMEZEY0VJc1VVRkJaMElzUlVGRGFFSXNZVUZCTkVJc1JVRkROVUlzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTEdGQlFXRXNSVUZCUlN4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRE9VUXNRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXh6UWtGQmMwSXNRMEZETVVJc1VVRkJaMElzUlVGRGFFSXNSMEZCUnl4SlFVRlhPMUZCUldRc1RVRkJUU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEZGQlFWRXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRek5ETEVOQlFVTTdRMEZEUmp0QlFVVkVMRTFCUVUwc1QwRkJUeXhqUVVGbExGTkJRVkVzWjBKQlFYbENPMGxCUXpORU8xRkJRMFVzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMGxCUTJwQ0xFTkJRVU03U1VGRlR5eFhRVUZYTEVOQlFVTXNWVUZCT0VJc1JVRkJSU3hKUVVGWk8xRkJRemxFTEUxQlFVMHNUMEZCVHl4SFFVRkhMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU5vUXl4UFFVRlBMRlZCUVZVN1dVRkRaaXhEUVVGRExFTkJRVU1zUjBGQlJ5eFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeFBRVUZQTEVWQlFVVTdXVUZEYUVRc1EwRkJReXhEUVVGRExFbEJRVWtzVDBGQlR5eEZRVUZGTEVOQlFVTTdTVUZEY0VJc1EwRkJRenRKUVVWUExFdEJRVXNzUTBGQlF5eHhRa0ZCY1VJc1EwRkRha01zVTBGQmFVSXNSVUZEYWtJc1ZVRkJPRUlzUlVGRE9VSXNaVUZCYjBRc1JVRkRjRVFzUjBGQlJ5eEpRVUZYTzFGQlJXUXNTVUZCU1N4RFFVRkRMRlZCUVZVN1dVRkJSU3hQUVVGUE8xRkJRM2hDTEUxQlFVMHNZMEZCWXl4SFFVRkhMRWxCUVVrc2NVSkJRWEZDTEVWQlFVVXNRMEZCUXp0UlFVTnVSQ3hOUVVGTkxHTkJRV01zUTBGQlF5eGhRVUZoTEVOQlEyaERMRk5CUVZNc1JVRkRWQ3hWUVVGVkxFVkJRMVlzWlVGQlpTeEZRVU5tTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSMHNzUVVGQlRpeExRVUZMTEVOQlFVTXNWVUZCVlN4RFFVTmtMRkZCUVdkQ0xFVkJRMmhDTEVsQlFWa3NSVUZEV2l4UlFVRnJReXhGUVVOc1F5eFZRVUZ0UWl4RlFVTnVRaXhsUVVGNVF5eEZRVU42UXl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hOUVVGTkxFOUJRVThzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUTJ4RE8xbEJRMFVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlR0WlFVTlNMRTFCUVUwc1JVRkJSU3hSUVVGUk8xbEJRMmhDTEVsQlFVazdXVUZEU2l4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRPMWxCUTNaRExGRkJRVkU3VTBGRFZDeEZRVU5FTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1VVRkRSaXhOUVVGTkxFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkRPVUlzVDBGQlR5eERRVUZETEVWQlFVVXNSVUZEVml4VlFVRlZMRVZCUTFZc1pVRkJaU3hGUVVObUxFZEJRVWNzU1VGQlNTeERRVU5TTEVOQlFVTTdVVUZEUml4TlFVRk5MR05CUVdNc1IwRkJSeXhKUVVGSkxIRkNRVUZ4UWl4RlFVRkZMRU5CUVVNN1VVRkRia1FzVFVGQlRTeGpRVUZqTEVOQlFVTXNZMEZCWXl4RFFVRkRMRkZCUVZFc1JVRkJSU3hQUVVGUExFTkJRVU1zUlVGQlJTeEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRia1VzVDBGQlR5eFBRVUZQTEVOQlFVTTdTVUZEYWtJc1EwRkJRenRKUVVkTExFRkJRVTRzUzBGQlN5eERRVUZETEZkQlFWY3NRMEZEWml4TFFVRjVRaXhGUVVONlFpeEhRVUZITEVsQlFWYzdVVUZGWkN4TlFVRk5MRTFCUVUwc1IwRkJSeXhMUVVGTExFTkJRVU1zWlVGQlpUdFpRVU5zUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4bFFVRmxMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU03V1VGRGNFUXNRMEZCUXl4RFFVRkRMRk5CUVZNc1EwRkJRenRSUVVOa0xFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkRiRU03V1VGRFJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZPMWxCUTFJc1RVRkJUU3hGUVVGRkxFdEJRVXNzUTBGQlF5eFJRVUZSTzFsQlEzUkNMRTFCUVUwc1JVRkJSU3hOUVVGTkxFVkJRVVVzUlVGQlJTeEpRVUZKTEV0QlFVc3NRMEZCUXl4bFFVRmxPMWxCUXpORExFbEJRVWtzUlVGQlJTeExRVUZMTEVOQlFVTXNTVUZCU1R0WlFVTm9RaXhKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTTdXVUZEYUVRc1VVRkJVU3hGUVVGRkxFdEJRVXNzUTBGQlF5eFJRVUZSTzFOQlEzcENMRVZCUTBRc1IwRkJSeXhKUVVGSkxFTkJRMUlzUTBGQlF6dFJRVU5HTEUxQlFVMHNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVU01UWl4UFFVRlBMRU5CUVVNc1JVRkJSU3hGUVVOV0xFdEJRVXNzUTBGQlF5eFZRVUZWTEVWQlEyaENMRXRCUVVzc1EwRkJReXhsUVVGbExFVkJRM0pDTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1VVRkRSaXhOUVVGTkxHTkJRV01zUjBGQlJ5eEpRVUZKTEhGQ1FVRnhRaXhGUVVGRkxFTkJRVU03VVVGRGJrUXNUVUZCVFN4alFVRmpMRU5CUVVNc1kwRkJZeXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVWQlFVVXNUMEZCVHl4RFFVRkRMRVZCUVVVc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEzcEZMRWxCUVVrc1MwRkJTeXhEUVVGRExHVkJRV1VzUlVGQlJTeERRVUZETzFsQlF6RkNMRTFCUVUwc1kwRkJZeXhEUVVGRExEaENRVUU0UWl4RFFVTnFSQ3hMUVVGTExFTkJRVU1zVVVGQlVTeEZRVU5rTEV0QlFVc3NRMEZCUXl4bFFVRmxMRVZCUTNKQ0xFOUJRVThzUTBGQlF5eEZRVUZGTEVWQlExWXNSMEZCUnl4SlFVRkpMRU5CUTFJc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRFJDeFBRVUZQTEU5QlFVOHNRMEZCUXp0SlFVTnFRaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEZsQlFWa3NRMEZEYUVJc1pVRkJkVUlzUlVGRGRrSXNSMEZCUnl4SlFVRlhPMUZCUldRc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkRkRVFzWVVGQllTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRVZCUVVVc1pVRkJaU3hEUVVGRExFTkJReTlETEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHdENRVUZyUWl4RFFVTjBRaXhSUVVGblFpeEZRVU5vUWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4UFFVRlBMRVZCUVVVc1JVRkJSU3hEUVVOMFJDeFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGRGNrTXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zYzBKQlFYTkNMRU5CUXpGQ0xGRkJRV2RDTEVWQlEyaENMRk5CUVdsQ0xFVkJRMnBDTEZkQlFWY3NSMEZCUnl4TFFVRkxMRVZCUTI1Q0xFZEJRVWNzU1VGQlZ6dFJRVVZrTEUxQlFVMHNZMEZCWXl4SFFVRkhMRWxCUVVrc2NVSkJRWEZDTEVWQlFVVXNRMEZCUXp0UlFVTnVSQ3hOUVVGTkxGZEJRVmNzUjBGQlJ5eE5RVUZOTEdOQlFXTXNRMEZCUXl4bFFVRmxMRU5CUTNSRUxGRkJRVkVzUlVGRFVpeFRRVUZUTEVWQlExUXNSMEZCUnl4SlFVRkpMRU5CUTFJc1EwRkJRenRSUVVOR0xFMUJRVTBzUjBGQlJ5eEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRmRCUVZjc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUXpGRkxFbEJRVWtzVjBGQlZ6dFpRVUZGTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRGNFTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVTTVSQ3hEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETEVOQlEycERMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEc5Q1FVRnZRaXhEUVVONFFpeFJRVUZuUWl4RlFVTm9RaXhUUVVGcFFpeEZRVU5xUWl4WFFVRlhMRWRCUVVjc1MwRkJTeXhGUVVOdVFpeEhRVUZITEVsQlFWYzdVVUZGWkN4TlFVRk5MR05CUVdNc1IwRkJSeXhKUVVGSkxIRkNRVUZ4UWl4RlFVRkZMRU5CUVVNN1VVRkRia1FzVFVGQlRTeFRRVUZUTEVkQlFVY3NUVUZCVFN4alFVRmpMRU5CUVVNc1lVRkJZU3hEUVVOc1JDeFJRVUZSTEVWQlExSXNVMEZCVXl4RlFVTlVMRWRCUVVjc1NVRkJTU3hEUVVOU0xFTkJRVU03VVVGRFJpeE5RVUZOTEVkQlFVY3NSMEZCUnl4SlFVRkpMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRSUVVOMFJTeEpRVUZKTEZkQlFWYzdXVUZCUlN4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlEzQkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkRPVVFzUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVTnFReXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4aFFVRmhMRU5CUTJwQ0xGTkJRV2xDTEVWQlEycENMRWxCUVZrc1JVRkRXaXhIUVVGSExFbEJRVmM3VVVGRlpDeE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVTBGQlV5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRlRVFzVDBGQlR5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVTnVRaXhUUVVGVExFVkJRMVFzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhYUVVGWExFTkJRVU1zVTBGQlV5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RlFVRkZMRVZCUTJwRUxFZEJRVWNzU1VGQlNTeERRVU5TTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkJSU3hQUVVGUExFVkJRVVVzUlVGQlJUdFpRVU4yUWl4UFFVRlBMRU5CUVVNc1NVRkJTU3hIUVVGSExGRkJRVkVzUTBGQlF5eE5RVUZOTzJkQ1FVTTFRaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4VFFVRlRMRVZCUVVVc1NVRkJTU3hEUVVGRE8yZENRVU51UXl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExGZEJRVmNzUTBGQlF5eFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkRkRU1zVDBGQlR5eFBRVUZQTEVOQlFVTTdVVUZEYWtJc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRFRDeERRVUZETzBsQlIwc3NRVUZCVGl4TFFVRkxMRU5CUVVNc1YwRkJWeXhEUVVObUxGRkJRV2RDTEVWQlEyaENMRk5CUVdsQ0xFVkJRMnBDTEd0Q1FVRXdRaXhGUVVNeFFpeEhRVUZITEVsQlFWYzdVVUZGWkN4TlFVRk5MRk5CUVZNc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNhMEpCUVd0Q0xFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTnNSU3hOUVVGTkxGRkJRVkVzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1UwRkJVeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEZUVRc1RVRkJUU3hQUVVGUExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVTnNReXhUUVVGVExFVkJRMVE3V1VGRFJTeE5RVUZOTEVWQlFVVXNVMEZCVXl4RFFVRkRMRVZCUVVVN1dVRkRjRUlzU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUlVGQlJTeFJRVUZSTEVOQlFVTXNTVUZCU1N4RFFVRkRPMU5CUTNSRUxFVkJRMFFzUjBGQlJ5eEpRVUZKTEVOQlExSXNRMEZCUXp0UlFVTkdMRTFCUVUwc1NVRkJTU3hEUVVGRExHOUNRVUZ2UWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEyNUVMRTlCUVU4c1QwRkJUeXhEUVVGRE8wbEJRMnBDTEVOQlFVTTdTVUZIU3l4QlFVRk9MRXRCUVVzc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4UlFVRm5RaXhGUVVGRkxFZEJRVWNzU1VGQlZ6dFJRVU42UkN4TlFVRk5MR05CUVdNc1IwRkJSeXhKUVVGSkxIRkNRVUZ4UWl4RlFVRkZMRU5CUVVNN1VVRkRia1FzVFVGQlRTeGhRVUZoTEVkQlFVY3NUVUZCVFN4alFVRmpMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZETlVRc1RVRkJUU3hqUVVGakxFTkJRMnhDTEdOQlFXTXNSVUZEWkN4aFFVRmhMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1IwRkJSeXhEUVVGRExFMUJRVTBzUlVGQlJTeFJRVUZSTEVOQlFVTXNRMEZCUXl4RlFVTXZSQ3hIUVVGSExFbEJRVWtzUTBGRFVpeERRVUZETzFGQlJVWXNUVUZCVFN4UlFVRlJMRWRCUVVjc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkRkRVVzUTBGQlF5eEpRVUZKTEVWQlFVVXNTMEZCU3l4RlFVRkZMRVZCUVVVN1dVRkRaQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRE8xbEJRemxFTEUxQlFVMHNWVUZCVlN4SFFVRkhMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTTdXVUZEYUVVc1QwRkJUeXhUUVVGVExFZEJRVWNzVlVGQlZTeERRVUZETzFGQlEyaERMRU5CUVVNc1EwRkRSaXhEUVVGRE8xRkJSVVlzUzBGQlN5eE5RVUZOTEU5QlFVOHNTVUZCU1N4UlFVRlJMRVZCUVVVc1EwRkJRenRaUVVNdlFpeE5RVUZOTEdOQlFXTXNRMEZCUXl4alFVRmpMRU5CUVVNc1VVRkJVU3hGUVVGRkxFOUJRVThzUTBGQlF5eEZRVUZGTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRaUVVOdVJTeEpRVUZKTEU5QlFVOHNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRuUWtGRGJrSXNUVUZCVFN4alFVRmpMRU5CUVVNc09FSkJRVGhDTEVOQlEycEVMRkZCUVZFc1JVRkRVaXhWUVVGVkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4RlFVTXhRaXhQUVVGUExFTkJRVU1zUlVGQlJTeEZRVU5XTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1dVRkRTaXhEUVVGRE8xRkJRMGdzUTBGQlF6dEpRVU5JTEVOQlFVTTdTVUZIU3l4QlFVRk9MRXRCUVVzc1EwRkJReXhwUWtGQmFVSXNRMEZEY2tJc1VVRkJaMElzUlVGRGFFSXNVMEZCYVVJc1JVRkRha0lzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUVUZCVFN4alFVRmpMRWRCUVVjc1NVRkJTU3h4UWtGQmNVSXNSVUZCUlN4RFFVRkRPMUZCUTI1RUxFMUJRVTBzVjBGQlZ5eEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMSE5DUVVGelFpeERRVU51UkN4UlFVRlJMRVZCUTFJc1UwRkJVeXhGUVVOVUxFbEJRVWtzUlVGRFNpeEhRVUZITEVsQlFVa3NRMEZEVWl4RFFVRkRPMUZCUTBZc1RVRkJUU3hoUVVGaExFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNWMEZCVnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03VVVGRGVFVXNUVUZCVFN4UlFVRlJMRWRCUVVjc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhSUVVGUkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkRlRVVzUTBGQlF5eFBRVUZQTEVWQlFVVXNSVUZCUlN4RFFVRkRMR0ZCUVdFc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVTXpReXhEUVVGRE8xRkJRMFlzVFVGQlRTeGpRVUZqTEVOQlFVTXNTVUZCU1N4RlFVRkZMRkZCUVZFc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlF6bERMRTFCUVUwc1kwRkJZeXhEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hUUVVGVExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXpSU3hEUVVGRE8wTkJRMFk3UVVGeVRrODdTVUZFVEN4aFFVRmhMRVZCUVVVN096czdaMFJCTkVKbU8wRkJSMHM3U1VGRVRDeGhRVUZoTEVWQlFVVTdPenM3YVVSQmIwTm1PMEZCTmtWTE8wbEJSRXdzWVVGQllTeEZRVUZGT3pzN08ybEVRVzFDWmp0QlFVZExPMGxCUkV3c1lVRkJZU3hGUVVGRk96czdPekJFUVRaQ1pqdEJRVWRMTzBsQlJFd3NZVUZCWVN4RlFVRkZPenM3TzNWRVFXMUNaanRCUVVkSUxFMUJRVTBzVDBGQlR5eFhRVUZaTEZOQlFWRXNaMEpCUVhOQ08wbEJRM0pFTzFGQlEwVXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRMlFzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUVVNc1MwRkJjMElzUlVGQlJTeEhRVUZITEVsQlFWYzdVVUZEY2tRc1QwRkJUeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVU51UWp0WlFVTkZMRVZCUVVVc1JVRkJSU3hGUVVGRkxFVkJRVVU3V1VGRFVpeExRVUZMTEVWQlFVVXNTMEZCU3l4RFFVRkRMRXRCUVVzN1dVRkRiRUlzUzBGQlN5eEZRVUZGTEV0QlFVc3NRMEZCUXl4TFFVRkxPMWxCUTJ4Q0xGZEJRVmNzUlVGQlJTeExRVUZMTEVOQlFVTXNWMEZCVnp0VFFVTXZRaXhGUVVORUxFZEJRVWNzU1VGQlNTeERRVU5TTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExGVkJRVlVzUTBGQlF5eExRVUZoTEVWQlFVVXNSMEZCUnl4SlFVRlhPMUZCUXpWRExFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZEZGtNc1EwRkJReXhKUVVGSkxFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRXRCUVVzc1MwRkJTeXhEUVVOMlFpeERRVUZETzBsQlExb3NRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhwUWtGQmFVSXNRMEZEY2tJc1RVRkJZeXhGUVVOa0xGZEJRVzFDTEVWQlEyNUNMRWRCUVVjc1NVRkJWenRSUVVWa0xFOUJRVThzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1JVRkJSU3hYUVVGWExFVkJRVVVzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUXpGRUxFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVTm1MRTFCUVdNc1JVRkRaQ3hMUVVGNVFpeEZRVU42UWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hQUVVGUExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNUVUZCVFN4RlFVRkZMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTndSQ3hEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEZkQlFWY3NRMEZEWml4TlFVRmpMRVZCUTJRc1MwRkJlVUlzUlVGRGVrSXNSMEZCUnl4SlFVRlhPMUZCUldRc1QwRkJUeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNSVUZCUlN4RlFVRkZMRXRCUVVzc1JVRkJSU3hGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEY0VRc1EwRkJRenREUVVOR08wRkJSVVFzVFVGQlRTeFBRVUZQTEdkQ1FVRnBRaXhUUVVGUkxHZENRVUV5UWp0SlFVTXZSRHRSUVVORkxFdEJRVXNzUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXp0SlFVTnVRaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEdWQlFXVXNRMEZEYmtJc1VVRkJaMElzUlVGRGFFSXNTVUZCYlVJc1JVRkRia0lzVTBGQmFVSXNSVUZEYWtJc1IwRkJSeXhKUVVGWE8xRkJSV1FzVDBGQlR5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVTnVRanRaUVVORkxFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVTdXVUZEVWl4TlFVRk5MRVZCUVVVc1VVRkJVVHRaUVVOb1FpeEpRVUZKTzFsQlEwb3NVMEZCVXp0VFFVTldMRVZCUTBRc1IwRkJSeXhKUVVGSkxFTkJRMUlzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVOcVFpeFJRVUZuUWl4RlFVTm9RaXhKUVVGdFFpeEZRVU51UWl4VFFVRnBRaXhGUVVOcVFpeEhRVUZITEVsQlFWYzdVVUZGWkN4UFFVRlBMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRM1pETEVOQlFVTXNVMEZCVXl4RlFVRkZMRVZCUVVVc1EwRkRXaXhWUVVGVkxFTkJRVU1zVTBGQlV5eERRVUZETEUxQlFVMHNSVUZCUlN4UlFVRlJMRU5CUVVNN1dVRkRkRU1zVTBGQlV5eERRVUZETEVsQlFVa3NTMEZCU3l4SlFVRkpPMWxCUTNaQ0xGTkJRVk1zUTBGQlF5eFRRVUZUTEV0QlFVc3NVMEZCVXl4RFFVTndReXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4eFFrRkJjVUlzUTBGRGVrSXNVVUZCWjBJc1JVRkRhRUlzU1VGQmJVSXNSVUZEYmtJc1UwRkJhVUlzUlVGRGFrSXNSMEZCUnl4SlFVRlhPMUZCUldRc1QwRkJUeXhEUVVOTUxFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNZVUZCWVN4RFFVRkRMRkZCUVZFc1JVRkJSU3hKUVVGSkxFVkJRVVVzVTBGQlV5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1dVRkRPVVFzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1VVRkJVU3hGUVVGRkxFbEJRVWtzUlVGQlJTeFRRVUZUTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVOcVJTeERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhuUWtGQlowSXNRMEZEY0VJc1VVRkJaMElzUlVGRGFFSXNUVUZCWXl4RlFVTmtMRWRCUVVjc1NVRkJWenRSUVVWa0xFOUJRVThzU1VGQlNTeERRVUZETEhGQ1FVRnhRaXhEUVVNdlFpeFJRVUZSTEVWQlExSXNZVUZCWVN4RFFVRkRMRWxCUVVrc1JVRkRiRUlzVFVGQlRTeEZRVU5PTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEdsQ1FVRnBRaXhEUVVOeVFpeFJRVUZuUWl4RlFVTm9RaXhQUVVGbExFVkJRMllzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUMEZCVHl4SlFVRkpMRU5CUVVNc2NVSkJRWEZDTEVOQlF5OUNMRkZCUVZFc1JVRkRVaXhoUVVGaExFTkJRVU1zUzBGQlN5eEZRVU51UWl4UFFVRlBMRVZCUTFBc1IwRkJSeXhKUVVGSkxFTkJRMUlzUTBGQlF6dEpRVU5LTEVOQlFVTTdRMEZEUmp0QlFVVkVMRTFCUVUwc1QwRkJUeXgxUWtGQmQwSXNVMEZCVVN4blFrRkJhME03U1VGRE4wVTdVVUZEUlN4TFFVRkxMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNRMEZCUXp0SlFVTXhRaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEdWQlFXVXNRMEZEYmtJc1VVRkJaMElzUlVGRGFFSXNUVUZCWXl4RlFVTmtMRk5CUVRKQ0xHZENRVUZuUWl4RFFVRkRMRTFCUVUwc1JVRkRiRVFzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVOdVFqdFpRVU5GTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVN1dVRkRVaXhOUVVGTkxFVkJRVVVzVVVGQlVUdFpRVU5vUWl4SlFVRkpMRVZCUVVVc1RVRkJUVHRaUVVOYUxFMUJRVTA3VTBGRFVDeEZRVU5FTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZEWWl4WlFVRnZRaXhGUVVOd1FpeE5RVUYzUWl4RlFVTjRRaXhIUVVGSExFbEJRVmM3VVVGRlpDeFBRVUZQTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1dVRkJXU3hGUVVGRkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVNelJDeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkRia0lzVFVGQll5eEZRVU5rTEVkQlFVY3NTVUZCVnp0UlFVVmtMRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEZWQlFWVXNSVUZCUlN4RlFVRkZMRU5CUTNwRUxHRkJRV0VzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RlFVRkZMRTFCUVUwc1EwRkJReXhEUVVOMlF5eERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRMjVDTEZGQlFXZENMRVZCUTJoQ0xFZEJRVWNzU1VGQlZ6dFJRVVZrTEU5QlFVOHNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExGVkJRVlVzUlVGQlJTeEZRVUZGTEVOQlEzcEVMRlZCUVZVc1EwRkJReXhWUVVGVkxFTkJRVU1zVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVTjRReXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4dlFrRkJiMElzUTBGRGVFSXNXVUZCYjBJc1JVRkRjRUlzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUVUZCVFN4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExGbEJRVmtzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUXk5RExFTkJRVU03UTBGRFJqdEJRVVZFTEUxQlFVMHNUMEZCVHl4M1FrRkJlVUlzVTBGQlVTeG5Ra0ZCYlVNN1NVRkRMMFU3VVVGRFJTeExRVUZMTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zUTBGQlF6dEpRVU16UWl4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHZENRVUZuUWl4RFFVTndRaXhSUVVGblFpeEZRVU5vUWl4VFFVRnBRaXhGUVVOcVFpeE5RVUZqTEVWQlEyUXNVMEZCTWtJc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4RlFVTnNSQ3hIUVVGSExFbEJRVmM3VVVGRlpDeFBRVUZQTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUTI1Q08xbEJRMFVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlR0WlFVTlNMRTFCUVUwc1JVRkJSU3hSUVVGUk8xbEJRMmhDTEU5QlFVOHNSVUZCUlN4VFFVRlRPMWxCUTJ4Q0xFbEJRVWtzUlVGQlJTeE5RVUZOTzFsQlExb3NUVUZCVFR0VFFVTlFMRVZCUTBRc1IwRkJSeXhKUVVGSkxFTkJRMUlzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVOaUxGbEJRVzlDTEVWQlEzQkNMRTFCUVhkQ0xFVkJRM2hDTEVkQlFVY3NTVUZCVnp0UlFVVmtMRTlCUVU4c1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFpRVUZaTEVWQlFVVXNSVUZCUlN4TlFVRk5MRVZCUVVVc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzBsQlF6TkVMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zWjBKQlFXZENMRU5CUTNCQ0xFMUJRV01zUlVGRFpDeEhRVUZITEVsQlFWYzdVVUZGWkN4UFFVRlBMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eFZRVUZWTEVWQlFVVXNSVUZCUlN4RFFVTjZSQ3hoUVVGaExFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1EwRkRka01zUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1owSkJRV2RDTEVOQlEzQkNMRk5CUVdsQ0xFVkJRMnBDTEVkQlFVY3NTVUZCVnp0UlFVVmtMRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEZWQlFWVXNSVUZCUlN4RlFVRkZMRU5CUTNwRUxHRkJRV0VzUTBGQlF5eFZRVUZWTEVOQlFVTXNUMEZCVHl4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVNM1F5eERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXh4UWtGQmNVSXNRMEZEZWtJc1dVRkJiMElzUlVGRGNFSXNSMEZCUnl4SlFVRlhPMUZCUldRc1RVRkJUU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEZsQlFWa3NSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJReTlETEVOQlFVTTdRMEZEUmp0QlFVVkVMRTFCUVUwc1QwRkJUeXhaUVVGaExGTkJRVkVzWjBKQlFYVkNPMGxCUTNaRU8xRkJRMFVzUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUTJZc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eFhRVUZYTEVOQlEyWXNVVUZCWjBJc1JVRkRhRUlzU1VGQldTeEZRVU5hTEZOQlFXdENMRVZCUTJ4Q0xGRkJRV3RETEVWQlEyeERMRWRCUVVjc1NVRkJWenRSUVVWa0xFOUJRVThzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZEYmtJN1dVRkRSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTzFsQlExSXNUVUZCVFN4RlFVRkZMRkZCUVZFN1dVRkRhRUlzVDBGQlR5eEZRVUZGTEZOQlFWTTdXVUZEYkVJc1NVRkJTVHRaUVVOS0xGRkJRVkU3VTBGRFZDeEZRVU5FTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEZkQlFWY3NRMEZEWml4UFFVRmxMRVZCUTJZc1NVRkJXU3hGUVVOYUxFZEJRVWNzU1VGQlZ6dFJRVVZrTEU5QlFVOHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFVkJRVVVzUlVGQlJTeEpRVUZKTEVWQlFVVXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRM0JFTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc2EwSkJRV3RDTEVOQlEzUkNMRTlCUVdVc1JVRkRaaXhUUVVFMlFpeEZRVU0zUWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hQUVVGUExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1QwRkJUeXhGUVVGRkxGTkJRVk1zUlVGQlJTeEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRiRVVzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eFJRVUZuUWl4RlFVRkZMRWRCUVVjc1NVRkJWenRSUVVOeVJDeFBRVUZQTEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVU53UkN4VlFVRlZMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUlVGQlJTeFJRVUZSTEVOQlFVTXNRMEZEYmtNc1EwRkJRenRKUVVOS0xFTkJRVU03UTBGRFJqdEJRVVZFTEUxQlFVMHNUMEZCVHl4elFrRkJkVUlzVTBGQlVTeG5Ra0ZCYVVNN1NVRkRNMFU3VVVGRFJTeExRVUZMTEVOQlFVTXNaVUZCWlN4RFFVRkRMRU5CUVVNN1NVRkRla0lzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4dFFrRkJiVUlzUTBGRGRrSXNVVUZCWjBJc1JVRkRhRUlzVDBGQlpTeEZRVU5tTEZkQlFXMUNMRVZCUTI1Q0xGRkJRV3RETEVWQlEyeERMRWRCUVVjc1NVRkJWenRSUVVWa0xFOUJRVThzU1VGQlNTeERRVUZETEZOQlFWTXNRMEZEYmtJN1dVRkRSU3hGUVVGRkxFVkJRVVVzUlVGQlJTeEZRVUZGTzFsQlExSXNUVUZCVFN4RlFVRkZMRkZCUVZFN1dVRkRhRUlzUzBGQlN5eEZRVUZGTEU5QlFVODdXVUZEWkN4VFFVRlRMRVZCUVVVc1YwRkJWenRaUVVOMFFpeFJRVUZSTzFOQlExUXNSVUZEUkN4SFFVRkhMRWxCUVVrc1EwRkRVaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4blFrRkJaMElzUTBGRGNFSXNUMEZCWlN4RlFVTm1MRWRCUVVjc1NVRkJWenRSUVVWa0xFOUJRVThzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRlZCUVZVc1JVRkJSU3hGUVVGRkxFTkJRM3BFTEdGQlFXRXNRMEZCUXl4VlFVRlZMRU5CUVVNc1MwRkJTeXhGUVVGRkxFOUJRVThzUTBGQlF5eERRVU42UXl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eHRRa0ZCYlVJc1EwRkRka0lzVjBGQmJVSXNSVUZEYmtJc1IwRkJSeXhKUVVGWE8xRkJSV1FzVDBGQlR5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUTBGRGVrUXNZVUZCWVN4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlEycEVMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEhkQ1FVRjNRaXhEUVVNMVFpeFpRVUZ2UWl4RlFVTndRaXhIUVVGSExFbEJRVmM3VVVGRlpDeE5RVUZOTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUVVNc1dVRkJXU3hGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdTVUZETDBNc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eHZRMEZCYjBNc1EwRkRlRU1zVjBGQmJVSXNSVUZEYmtJc1IwRkJSeXhKUVVGWE8xRkJSV1FzVFVGQlRTeG5Ra0ZCWjBJc1IwRkJSeXhKUVVGSkxHZENRVUZuUWl4RlFVRkZMRU5CUVVNN1VVRkRhRVFzVFVGQlRTeFhRVUZYTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNWMEZCVnl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRGVrVXNUVUZCVFN4VlFVRlZMRWRCUVVjc1RVRkJUU3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVU5zUXl4WFFVRlhMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUlVGQlJTeFZRVUZWTEVWQlFVVXNSVUZCUlR0WlFVTnVReXhOUVVGTkxGRkJRVkVzUjBGQlJ5eFZRVUZWTEVOQlFVTXNWVUZCVlN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJReTlETEUxQlFVMHNUMEZCVHl4SFFVRkhMRlZCUVZVc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTTdXVUZETjBNc1RVRkJUU3hUUVVGVExFZEJRVWNzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJReXhwUWtGQmFVSXNRMEZEZUVRc1VVRkJVU3hGUVVOU0xFOUJRVThzUlVGRFVDeEhRVUZITEVsQlFVa3NRMEZEVWl4RFFVRkRPMWxCUTBZc1QwRkJUeXhUUVVGVExFTkJRVU1zUlVGQlJTeERRVUZETzFGQlEzUkNMRU5CUVVNc1EwRkJReXhEUVVOSUxFTkJRVU03VVVGRFJpeFBRVUZQTEZWQlFWVXNRMEZCUXp0SlFVTndRaXhEUVVGRE8wTkJRMFk3UVVGRlJDeE5RVUZOTEU5QlFVOHNhVUpCUVd0Q0xGTkJRVkVzWjBKQlFUUkNPMGxCUTJwRk8xRkJRMFVzUzBGQlN5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRPMGxCUTNCQ0xFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNaMEpCUVdkQ0xFTkJRM0JDTEV0QlFUUkNMRVZCUXpWQ0xFZEJRVWNzU1VGQlZ6dFJRVVZrTEU5QlFVOHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkRia0k3V1VGRFJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RlFVRkZPMWxCUTFJc1IwRkJSeXhGUVVGRkxFdEJRVXNzUTBGQlF5eEhRVUZITzFsQlEyUXNVVUZCVVN4RlFVRkZMRXRCUVVzc1EwRkJReXhSUVVGUk8xbEJRM2hDTEZkQlFWY3NSVUZCUlN4TFFVRkxMRU5CUVVNc1YwRkJWenRUUVVNdlFpeEZRVU5FTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4SFFVRlhMRVZCUVVVc1IwRkJSeXhKUVVGWE8xRkJRM2hETEU5QlFVOHNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkRka01zUTBGQlF5eFZRVUZWTEVWQlFVVXNSVUZCUlN4RFFVRkRMRlZCUVZVc1EwRkJReXhIUVVGSExFdEJRVXNzUjBGQlJ5eERRVU42UWl4RFFVRkRPMGxCUTJ4Q0xFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNZMEZCWXl4RFFVTnNRaXhSUVVFMFFpeEZRVU0xUWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlEzcERMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNVVUZCVVN4TFFVRkxMRkZCUVZFc1EwRkRha1FzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVOQlEzSkNMRmxCUVc5Q0xFVkJRM0JDTEZkQlFTdENMRVZCUXk5Q0xFZEJRVWNzU1VGQlZ6dFJRVVZrTEU5QlFVOHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhaUVVGWkxFVkJRVVVzUlVGQlJTeFhRVUZYTEVWQlFVVXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRMmhGTEVOQlFVTTdRMEZEUmp0QlFVVkVMRTFCUVUwc1QwRkJUeXhYUVVGWkxGTkJRVkVzWjBKQlFYTkNPMGxCUTNKRU8xRkJRMFVzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUTJRc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNTMEZCYzBJc1JVRkJSU3hIUVVGSExFbEJRVmM3VVVGRGNrUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVOdVFqdFpRVU5GTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVN1dVRkRVaXhOUVVGTkxFVkJRVVVzUzBGQlN5eERRVUZETEZGQlFWRTdXVUZEZEVJc1IwRkJSeXhGUVVGRkxFdEJRVXNzUTBGQlF5eEhRVUZITzFsQlEyUXNTVUZCU1N4RlFVRkZMRXRCUVVzc1EwRkJReXhKUVVGSk8xbEJRMmhDTEZkQlFWY3NSVUZCUlN4TFFVRkxMRU5CUVVNc1YwRkJWenRaUVVNNVFpeFJRVUZSTEVWQlFVVXNTMEZCU3l4RFFVRkRMRkZCUVZFN1UwRkRla0lzUlVGRFJDeEhRVUZITEVsQlFVa3NRMEZEVWl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eHJRa0ZCYTBJc1EwRkJReXhIUVVGWExFVkJRVVVzUjBGQlJ5eEpRVUZYTzFGQlEyeEVMRTFCUVUwc1NVRkJTU3hIUVVGSExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlF6ZERMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEZOQlFWTXNRMEZCUXl4TlFVRk5MRWxCUVVrc1UwRkJVeXhEUVVGRExFZEJRVWNzUzBGQlN5eEhRVUZITEVOQlF6RkVMRU5CUVVNN1VVRkRSaXhKUVVGSkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVOQlFVTTdXVUZEVml4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExGTkJRVk1zUjBGQlJ5eGhRVUZoTEVOQlFVTXNRMEZCUXp0UlFVTTNReXhEUVVGRE8xRkJRMFFzVDBGQlR5eEpRVUZKTEVOQlFVTTdTVUZEWkN4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHdENRVUZyUWl4RFFVTjBRaXhSUVVGblFpeEZRVU5vUWl4SFFVRlhMRVZCUTFnc1IwRkJSeXhKUVVGWE8xRkJSV1FzVFVGQlRTeEpRVUZKTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkROME1zUTBGQlF5eFRRVUZUTEVWQlFVVXNSVUZCUlN4RFFVTmFMRlZCUVZVc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4SlFVRkpMRk5CUVZNc1EwRkJReXhIUVVGSExFdEJRVXNzUjBGQlJ5eERRVU5zUlN4RFFVRkRPMUZCUTBZc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzFsQlExWXNUVUZCVFN4SlFVRkpMRXRCUVVzc1EwRkJReXhUUVVGVExFZEJRVWNzTUVKQlFUQkNMRkZCUVZFc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGNFVXNRMEZCUXp0UlFVTkVMRTlCUVU4c1NVRkJTU3hEUVVGRE8wbEJRMlFzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUTJRc1RVRkJZeXhGUVVOa0xFbEJRVmtzUlVGRFdpeEhRVUZITEVsQlFWYzdVVUZGWkN4UFFVRlBMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeEZRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU51UkN4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHdENRVUZyUWl4RFFVTjBRaXhOUVVGakxFVkJRMlFzVVVGQk5rTXNSVUZETjBNc1IwRkJSeXhKUVVGWE8xRkJSV1FzVDBGQlR5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTFCUVUwc1JVRkJSU3hGUVVGRkxGRkJRVkVzUlVGQlJTeEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRka1FzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4bFFVRmxMRU5CUTI1Q0xGRkJRV2RDTEVWQlEyaENMR0ZCUVdFc1IwRkJSeXhMUVVGTExFVkJRM0pDTEVkQlFVY3NTVUZCVnp0UlFVVmtMRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVsQlFVa3NSVUZCUlN4RlFVRkZMRU5CUTI1RUxHRkJRV0U3V1VGRFdDeERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hKUVVGSkxGVkJRVlVzUTBGQlF5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1EwRkJRenRaUVVOdVJDeERRVUZETEVOQlFVTXNWVUZCVlN4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzVVVGQlVTeERRVUZETEVOQlEzUkRMRU5CUVVNN1NVRkRTaXhEUVVGRE8wTkJRMFk3UVVGRlJDeE5RVUZOTEU5QlFVOHNjVUpCUVhOQ0xGTkJRVkVzWjBKQlFXZERPMGxCUTNwRk8xRkJRMFVzUzBGQlN5eERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRPMGxCUTNoQ0xFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRM1pDTEUxQlFXTXNSVUZEWkN4WlFVRnZRaXhGUVVOd1FpeEhRVUZITEVsQlFWYzdVVUZGWkN4UFFVRlBMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRMjVDTzFsQlEwVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSVHRaUVVOU0xFbEJRVWtzUlVGQlJTeE5RVUZOTzFsQlExb3NWVUZCVlN4RlFVRkZMRmxCUVZrN1UwRkRla0lzUlVGRFJDeEhRVUZITEVsQlFVa3NRMEZEVWl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVWRUxFdEJRVXNzUTBGQlF5eHpRa0ZCYzBJc1EwRkRNVUlzVFVGQll5eEZRVU5rTEdGQlFYRkNMRVZCUTNKQ0xFZEJRVWNzU1VGQlZ6dFJRVVZrTEUxQlFVMHNWVUZCVlN4SFFVRkhMRTFCUVUwc1NVRkJTU3hwUWtGQmFVSXNSVUZCUlN4RFFVRkRMRkZCUVZFc1EwRkRka1FzWVVGQllTeEZRVU5pTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1VVRkRSaXhQUVVGUExFbEJRVWtzUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhOUVVGTkxFVkJRVVVzVlVGQlZTeERRVUZETEVWQlFVVXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRMnhGTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc2QwSkJRWGRDTEVOQlF6VkNMR2RDUVVGM1FpeEZRVU40UWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hOUVVGTkxFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTnVSQ3hEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEcxQ1FVRnRRaXhEUVVOMlFpeE5RVUZqTEVWQlEyUXNSMEZCUnl4SlFVRlhPMUZCUldRc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNZMEZCWXl4RlFVRkZMRVZCUVVVc1EwRkROMFFzWVVGQllTeERRVUZETEdOQlFXTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRek5ETEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHMUNRVUZ0UWl4RFFVTjJRaXhaUVVGdlFpeEZRVU53UWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4alFVRmpMRVZCUVVVc1JVRkJSU3hEUVVNM1JDeGhRVUZoTEVOQlFVTXNZMEZCWXl4RFFVRkRMRlZCUVZVc1JVRkJSU3haUVVGWkxFTkJRVU1zUTBGRGRrUXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkhTeXhCUVVGT0xFdEJRVXNzUTBGQlF5eHpRa0ZCYzBJc1EwRkRNVUlzVFVGQll5eEZRVU5rTEdGQlFYVkNMRVZCUTNaQ0xFZEJRVWNzU1VGQlZ6dFJRVVZrTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRTFCUVUwc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlEycEZMRTFCUVUwc1kwRkJZeXhEUVVGRExFbEJRVWtzUlVGQlJTeFJRVUZSTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVNNVF5eE5RVUZOTEU5QlFVOHNSMEZCUnl4TlFVRk5MRTlCUVU4c1EwRkJReXhIUVVGSExFTkJReTlDTEdGQlFXRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhaUVVGWkxFVkJRVVVzUlVGQlJTeERRVU5xUXl4SlFVRkpMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNUVUZCVFN4RlFVRkZMRmxCUVZrc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVU40UkN4RFFVTkdMRU5CUVVNN1VVRkRSaXhQUVVGUExFOUJRVThzUTBGQlF6dEpRVU5xUWl4RFFVRkRPMGxCUjBzc1FVRkJUaXhMUVVGTExFTkJRVU1zZVVKQlFYbENMRU5CUXpkQ0xFdEJRWE5DTEVWQlEzUkNMR05CUVhkQ0xFVkJRM2hDTEVkQlFVY3NTVUZCVnp0UlFVVmtMRTFCUVUwc1NVRkJTU3hIUVVGSExFMUJRVTBzU1VGQlNTeFhRVUZYTEVWQlFVVXNRMEZCUXl4VlFVRlZMRU5CUVVNc1MwRkJTeXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEYUVVc1MwRkJTeXhOUVVGTkxHRkJRV0VzU1VGQlNTeGpRVUZqTEVWQlFVVXNRMEZCUXp0WlFVTXpReXhOUVVGTkxFbEJRVWtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeEZRVUZGTEdGQlFXRXNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM0pGTEVOQlFVTTdVVUZEUkN4UFFVRlBMRWxCUVVrc1EwRkJRenRKUVVOa0xFTkJRVU03UTBGRFJqdEJRVE5DVHp0SlFVUk1MR0ZCUVdFc1JVRkJSVHM3T3p0dFJVRmpaanRCUVVkTE8wbEJSRXdzWVVGQllTeEZRVUZGT3pzN08zTkZRVmRtTzBGQlIwZ3NUVUZCVFN4UFFVRlBMSEZDUVVGelFpeFRRVUZSTEdkQ1FVRm5RenRKUVVONlJUdFJRVU5GTEV0QlFVc3NRMEZCUXl4alFVRmpMRU5CUVVNc1EwRkJRenRKUVVONFFpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkRaQ3hMUVVGelFpeEZRVU4wUWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hQUVVGUExFbEJRVWtzUTBGQlF5eFRRVUZUTEVOQlEyNUNPMWxCUTBVc1JVRkJSU3hGUVVGRkxFVkJRVVVzUlVGQlJUdFpRVU5TTEUxQlFVMHNSVUZCUlN4TFFVRkxMRU5CUVVNc1VVRkJVVHRaUVVOMFFpeFRRVUZUTEVWQlFVVXNTMEZCU3l4RFFVRkRMRmRCUVZjN1dVRkROVUlzU1VGQlNTeEZRVUZGTEV0QlFVc3NRMEZCUXl4TlFVRk5PMWxCUTJ4Q0xGTkJRVk1zUlVGQlJTeExRVUZMTEVOQlFVTXNVMEZCVXp0WlFVTXhRaXhQUVVGUExFVkJRVVVzUzBGQlN5eERRVUZETEU5QlFVODdXVUZEZEVJc1YwRkJWeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFhRVUZYTEVsQlFVa3NTMEZCU3p0WlFVTjJReXhSUVVGUkxFVkJRVVVzUzBGQlN5eERRVUZETEZGQlFWRTdXVUZEZUVJc1UwRkJVeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFRRVUZUTzFsQlF6RkNMRlZCUVZVc1JVRkJSU3hMUVVGTExFTkJRVU1zVlVGQlZUdFRRVU0zUWl4RlFVTkVMRWRCUVVjc1NVRkJTU3hEUVVOU0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR2RDUVVGblFpeERRVUZETEZsQlFXOUNMRVZCUVVVc1IwRkJSeXhKUVVGWE8xRkJRM3BFTEUxQlFVMHNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhaUVVGWkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXp0SlFVTXZReXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEhkQ1FVRjNRaXhEUVVNMVFpeFJRVUZuUWl4RlFVTm9RaXhYUVVGdFFpeEZRVU51UWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlEzcERMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUTBGRFlpeFZRVUZWTEVOQlFVTXNWVUZCVlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hSUVVGUkxFTkJRVU03V1VGRGRrTXNZVUZCWVN4RFFVRkRMRlZCUVZVc1EwRkJReXhUUVVGVExFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlEyNUVMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEcxQ1FVRnRRaXhEUVVOMlFpeE5RVUZqTEVWQlEyUXNSMEZCUnl4SlFVRlhPMUZCUldRc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4SFFVRkhMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNWVUZCVlN4RlFVRkZMRVZCUVVVc1EwRkRla1FzWVVGQllTeERRVUZETEZWQlFWVXNRMEZCUXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hEUVVGRExFTkJRM1pETEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExIRkNRVUZ4UWl4RFFVTjZRaXhSUVVGblFpeEZRVU5vUWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4VlFVRlZMRVZCUVVVc1JVRkJSU3hEUVVONlJDeFZRVUZWTEVOQlFVTXNWVUZCVlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGRGVFTXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zYzBKQlFYTkNMRU5CUXpGQ0xGbEJRVzlDTEVWQlEzQkNMRkZCUVRCQ0xFVkJRekZDTEZOQlFUSkNMRVZCUXpOQ0xFZEJRVWNzU1VGQlZ6dFJRVVZrTEU5QlFVOHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhaUVVGWkxFVkJRVVVzUlVGQlJTeFJRVUZSTEVWQlFVVXNVMEZCVXl4RlFVRkZMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU40UlN4RFFVRkRPME5CUTBZN1FVRkZSQ3hOUVVGTkxFOUJRVThzTUVKQlFUSkNMRk5CUVZFc1owSkJRWEZETzBsQlEyNUdPMUZCUTBVc1MwRkJTeXhEUVVGRExHMUNRVUZ0UWl4RFFVRkRMRU5CUVVNN1NVRkROMElzUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4blFrRkJaMElzUTBGRGNFSXNVVUZCWjBJc1JVRkRhRUlzVjBGQmJVSXNSVUZEYmtJc1IwRkJSeXhKUVVGWE8xRkJSV1FzVDBGQlR5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVTjZReXhEUVVGRExGVkJRVlVzUlVGQlJTeEZRVUZGTEVOQlEySXNWVUZCVlN4RFFVRkRMRlZCUVZVc1EwRkJReXhOUVVGTkxFVkJRVVVzVVVGQlVTeERRVUZETzFsQlEzWkRMR0ZCUVdFc1EwRkJReXhWUVVGVkxFTkJRVU1zVTBGQlV5eEZRVUZGTEZkQlFWY3NRMEZCUXl4RFFVTnVSQ3hEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4WlFVRlpMRU5CUTJoQ0xGRkJRV2RDTEVWQlEyaENMRk5CUVc5Q0xFVkJRM0JDTEU5QlFXVXNSVUZEWml4SFFVRkhMRWxCUVZjN1VVRkZaQ3hQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlEzcERMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFVkJRVVVzUTBGRFlpeFZRVUZWTEVOQlFVTXNWVUZCVlN4RFFVRkRMRTFCUVUwc1JVRkJSU3hSUVVGUkxFTkJRVU03V1VGRGRrTXNWVUZCVlN4RFFVRkRMRk5CUVZNc1MwRkJTeXhUUVVGVE8xbEJRMnhETEZWQlFWVXNRMEZCUXl4UFFVRlBMRXRCUVVzc1QwRkJUeXhEUVVOcVF5eERRVUZETzBsQlEwb3NRMEZCUXp0SlFVVkVMRXRCUVVzc1EwRkJReXhoUVVGaExFTkJRMnBDTEZGQlFXZENMRVZCUTJoQ0xGZEJRVzFDTEVWQlEyNUNMR0ZCUVhGQ0xFVkJRM0pDTEZOQlFXOUNMRVZCUTNCQ0xFOUJRV1VzUlVGRFppeEZRVUZUTEVWQlExUXNSMEZCUnl4SlFVRlhPMUZCUldRc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEdkQ1FVRm5RaXhEUVVGRExGRkJRVkVzUlVGQlJTeFhRVUZYTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGRGRrVXNRMEZCUXl4VlFVRlZMRVZCUVVVc1JVRkJSU3hEUVVOaUxGVkJRVlVzUTBGQlF5eGhRVUZoTEV0QlFVc3NZVUZCWVR0WlFVTXhReXhWUVVGVkxFTkJRVU1zVTBGQlV5eExRVUZMTEZOQlFWTTdXVUZEYkVNc1ZVRkJWU3hEUVVGRExFOUJRVThzUzBGQlN5eFBRVUZQTzFsQlF6bENMRU5CUVVNc1EwRkJReXhWUVVGVkxFTkJRVU1zVVVGQlVTeEpRVUZKTEVOQlFVTXNSVUZCUlN4SlFVRkpMRlZCUVZVc1EwRkJReXhSUVVGUkxFbEJRVWtzUlVGQlJTeERRVUZETzFsQlF6RkVMRU5CUVVNc1EwRkJReXhWUVVGVkxFTkJRVU1zVTBGQlV5eEpRVUZKTEVOQlFVTXNSVUZCUlN4SlFVRkpMRlZCUVZVc1EwRkJReXhUUVVGVExFbEJRVWtzUlVGQlJTeERRVUZETEVOQlF5OUVMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEd0Q1FVRnJRaXhEUVVOMFFpeFJRVUZuUWl4RlFVTm9RaXhYUVVGdFFpeEZRVU51UWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hOUVVGTkxHTkJRV01zUTBGRGJFSXNTVUZCU1N4RlFVTktMRTFCUVUwc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hYUVVGWExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNSVUZETTBRc1IwRkJSeXhKUVVGSkxFTkJRMUlzUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc1pVRkJaU3hEUVVGRExGRkJRV2RDTEVWQlFVVXNSMEZCUnl4SlFVRlhPMUZCUTNCRUxFMUJRVTBzWTBGQll5eERRVU5zUWl4SlFVRkpMRVZCUTBvc1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEZWQlFWVXNSVUZCUlN4RlFVRkZMRU5CUTJ4RUxGVkJRVlVzUTBGQlF5eFZRVUZWTEVOQlFVTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVONFF5eEZRVU5FTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSMHNzUVVGQlRpeExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRM1pDTEZGQlFXZENMRVZCUTJoQ0xGZEJRVzFDTEVWQlEyNUNMRWRCUVVjc1NVRkJWenRSUVVWa0xFMUJRVTBzU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhEUVVGRExGRkJRVkVzUlVGQlJTeFhRVUZYTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVVNVJDeE5RVUZOTEhGQ1FVRnhRaXhIUVVGSExFbEJRVWtzY1VKQlFYRkNMRVZCUVVVc1EwRkJRenRSUVVNeFJDeE5RVUZOTEhGQ1FVRnhRaXhIUVVGSExFbEJRVWtzY1VKQlFYRkNMRVZCUVVVc1EwRkJRenRSUVVNeFJDeE5RVUZOTEdsQ1FVRnBRaXhIUVVGSExFbEJRVWtzYVVKQlFXbENMRVZCUVVVc1EwRkJRenRSUVVOc1JDeE5RVUZOTEhOQ1FVRnpRaXhIUVVGSExFbEJRVWtzYzBKQlFYTkNMRVZCUVVVc1EwRkJRenRSUVVNMVJDeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFbEJRVWtzWjBKQlFXZENMRVZCUVVVc1EwRkJRenRSUVVOb1JDeE5RVUZOTEhGQ1FVRnhRaXhIUVVGSExFbEJRVWtzY1VKQlFYRkNMRVZCUVVVc1EwRkJRenRSUVVNeFJDeE5RVUZOTEhWQ1FVRjFRaXhIUVVGSExFbEJRVWtzZFVKQlFYVkNMRVZCUVVVc1EwRkJRenRSUVVVNVJDeE5RVUZOTEZsQlFWa3NSMEZCYTBNc1JVRkJSU3hEUVVGRE8xRkJRM1pFTEUxQlFVMHNhVUpCUVdsQ0xFZEJRM0pDTEUxQlFVMHNjVUpCUVhGQ0xFTkJRVU1zZDBKQlFYZENMRU5CUTJ4RUxGRkJRVkVzUlVGRFVpeFhRVUZYTEVWQlExZ3NSMEZCUnl4SlFVRkpMRU5CUTFJc1EwRkJRenRSUVVOS0xFMUJRVTBzWjBKQlFXZENMRWRCUVVjc1RVRkJUU3h6UWtGQmMwSXNRMEZCUXl4dFFrRkJiVUlzUTBGRGRrVXNWMEZCVnl4RlFVTllMRWRCUVVjc1NVRkJTU3hEUVVOU0xFTkJRVU03VVVGRFJpeE5RVUZOTEdkQ1FVRm5RaXhIUVVGSExFTkJRM1pDTEUxQlFVMHNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkRaaXhuUWtGQlowSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhGUVVGRkxGVkJRVlVzUlVGQlJTeEZRVUZGTzFsQlEzaERMRTFCUVUwc1kwRkJZeXhIUVVGSExFMUJRVTBzWjBKQlFXZENMRU5CUVVNc2FVSkJRV2xDTEVOQlF6ZEVMRlZCUVZVc1EwRkJReXhWUVVGVkxFTkJRVU1zVFVGQlRTeERRVUZETEVWQlF6ZENMRlZCUVZVc1EwRkJReXhWUVVGVkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlF6VkNMRWRCUVVjc1NVRkJTU3hEUVVOU0xFTkJRVU03V1VGRFJpeFBRVUZQTEhGQ1FVRnhRaXhEUVVGRExIZENRVUYzUWl4RFFVTnVSQ3hSUVVGUkxFVkJRMUlzWTBGQll5eERRVUZETEVWQlFVVXNSVUZEYWtJc1IwRkJSeXhKUVVGSkxFTkJRMUlzUTBGQlF6dFJRVU5LTEVOQlFVTXNRMEZCUXl4RFFVTklMRU5CUTBZc1EwRkJReXhKUVVGSkxFVkJRVVVzUTBGQlF6dFJRVVZVTEUxQlFVMHNWMEZCVnl4SFFVRkhMRU5CUVVNc1IwRkJSeXhwUWtGQmFVSXNSVUZCUlN4SFFVRkhMR2RDUVVGblFpeERRVUZETEVOQlFVTTdVVUZEYUVVc1MwRkJTeXhOUVVGTkxGVkJRVlVzU1VGQlNTeFhRVUZYTEVWQlFVVXNRMEZCUXp0WlFVTnlReXhOUVVGTkxHVkJRV1VzUjBGQlJ5eE5RVUZOTEhGQ1FVRnhRaXhEUVVGRExHMUNRVUZ0UWl4RFFVTnlSU3hWUVVGVkxFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVTXpRaXhIUVVGSExFbEJRVWtzUTBGRFVpeERRVUZETzFsQlEwWXNUVUZCVFN4WFFVRlhMRWRCUVVjc1RVRkJUU3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVU51UXl4bFFVRmxMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUlVGQlJTeGpRVUZqTEVWQlFVVXNSVUZCUlR0blFrRkRNME1zVFVGQlRTeFZRVUZWTEVkQlFVY3NUVUZCVFN4cFFrRkJhVUlzUTBGQlF5eFRRVUZUTEVOQlEyeEVMRWxCUVVrc1JVRkRTaXhWUVVGVkxFTkJRVU1zWTBGQll5eERRVUZETEZWQlFWVXNRMEZCVlN4RlFVTTVReXhIUVVGSExFbEJRVWtzUTBGRFVpeERRVUZETzJkQ1FVTkdMRTlCUVU4c1ZVRkJWU3hEUVVGRE8xbEJRM0JDTEVOQlFVTXNRMEZCUXl4RFFVTklMRU5CUVVNN1dVRkRSaXhMUVVGTExFMUJRVTBzVlVGQlZTeEpRVUZKTEZkQlFWY3NSVUZCUlN4RFFVRkRPMmRDUVVOeVF5eEpRVUZKTEVOQlFVTXNWVUZCVlR0dlFrRkJSU3hUUVVGVE8yZENRVU14UWl4TlFVRk5MRk5CUVZNc1IwRkJSeXhWUVVGVkxFTkJRVU1zVTBGQlV5eERRVUZETzJkQ1FVTjJReXhOUVVGTkxFOUJRVThzUjBGQlJ5eFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRPMmRDUVVOdVF5eE5RVUZOTEUxQlFVMHNSMEZCY1VRc1JVRkJSU3hEUVVGRE8yZENRVU53UlN4SlFVRkpMRk5CUVZNc1MwRkJTeXhUUVVGVExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdiMEpCUTI1RExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4VFFVRlRMRVZCUVVVc1QwRkJUeXhGUVVGRkxGRkJRVkVzUlVGQlJTeERRVUZETEVOQlFVTTdaMEpCUTJoRUxFTkJRVU03Y1VKQlFVMHNTVUZCU1N4VFFVRlRMRXRCUVVzc1UwRkJVeXhEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzI5Q1FVTTFReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVWQlFVVXNVMEZCVXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hEUVVGRExFTkJRVU03WjBKQlEzUkRMRU5CUVVNN2NVSkJRVTBzU1VGQlNTeFRRVUZUTEV0QlFVc3NVMEZCVXl4RFFVRkRMRTlCUVU4c1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eFhRVUZYTEVWQlFVVXNRMEZCUXp0dlFrRkRkRVVzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hQUVVGUExFVkJRVVVzUTBGQlF5eERRVUZETzJkQ1FVTjBReXhEUVVGRE8zRkNRVUZOTEVsQlFVa3NVMEZCVXl4TFFVRkxMRk5CUVZNc1EwRkJReXhQUVVGUExFbEJRVWtzVlVGQlZTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRPMjlDUVVOeVJTeE5RVUZOTEZkQlFWY3NSMEZCUnl4TlFVRk5MSEZDUVVGeFFpeERRVUZETEdWQlFXVXNRMEZETjBRc1VVRkJVU3hGUVVOU0xFOUJRVThzUlVGRFVDeEhRVUZITEVsQlFVa3NRMEZEVWl4RFFVRkRPMjlDUVVOR0xFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlExUXNSMEZCUnl4WFFVRlhMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPM2RDUVVNelFpeFRRVUZUTzNkQ1FVTlVMRTlCUVU4c1JVRkJSU3hWUVVGVkxFTkJRVU1zUjBGQlJ5eERRVUZETEZWQlFWVXNRMEZCUXp0eFFrRkRjRU1zUTBGQlF5eERRVUZETEVOQlEwb3NRMEZCUXp0blFrRkRTaXhEUVVGRE8yZENRVVZFTEV0QlFVc3NUVUZCVFN4TlFVRk5MRWxCUVVrc1RVRkJUU3hGUVVGRkxFTkJRVU03YjBKQlF6VkNMRWxCUTBVc1UwRkJVeXhMUVVGTExGTkJRVk1zUTBGQlF5eFBRVUZQTzNkQ1FVTXZRaXhWUVVGVkxFTkJRVU1zVjBGQlZ6dDNRa0ZEZEVJc1RVRkJUU3hEUVVGRExFOUJRVThzUzBGQlN5eFBRVUZQTzNkQ1FVTXhRaXhEUVVGRExFMUJRVTBzZFVKQlFYVkNMRU5CUVVNc01FSkJRVEJDTEVOQlEzWkVMRkZCUVZFc1JVRkRVaXhOUVVGTkxFTkJRVU1zVDBGQlR5eEZRVU5rTEU5QlFVOHNSVUZEVUN4VlFVRlZMRU5CUVVNc1VVRkJVU3hGUVVOdVFpeEhRVUZITEVsQlFVa3NRMEZEVWl4RFFVRkRMRVZCUTBZc1EwRkJRenQzUWtGRFJDeFRRVUZUTzI5Q1FVTllMRU5CUVVNN2IwSkJRMFFzV1VGQldTeERRVUZETEVsQlFVa3NRMEZCUXp0M1FrRkRhRUlzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlR0M1FrRkRVaXhSUVVGUk8zZENRVU5TTEZkQlFWYzdkMEpCUTFnc1lVRkJZU3hGUVVGRkxGVkJRVlVzUTBGQlF5eEhRVUZITzNkQ1FVTTNRaXhUUVVGVExFVkJRVVVzVFVGQlRTeERRVUZETEZOQlFWTTdkMEpCUXpOQ0xFOUJRVThzUlVGQlJTeE5RVUZOTEVOQlFVTXNUMEZCVHp0M1FrRkRka0lzVlVGQlZTeEZRVUZGTEdsQ1FVRnBRanQzUWtGRE4wSXNVVUZCVVN4RlFVRkZMRlZCUVZVc1EwRkJReXhGUVVGRk8zZENRVU4yUWl4UlFVRlJMRVZCUVVVc1ZVRkJWU3hEUVVGRExGRkJRVkU3ZDBKQlF6ZENMRk5CUVZNc1JVRkJSU3hWUVVGVkxFTkJRVU1zVTBGQlV6dHhRa0ZEYUVNc1EwRkJReXhEUVVGRE8yZENRVU5NTEVOQlFVTTdXVUZEU0N4RFFVRkRPMUZCUTBnc1EwRkJRenRSUVVWRUxFMUJRVTBzVDBGQlR5eEhRVUZITEUxQlFVMHNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkRMMElzV1VGQldTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRlZCUVZVc1JVRkJSU3hGUVVGRkxFTkJRemxDTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUTFvN1dVRkRSU3hGUVVGRkxFVkJRVVVzVlVGQlZTeERRVUZETEVWQlFVVTdXVUZEYWtJc1RVRkJUU3hGUVVGRkxGVkJRVlVzUTBGQlF5eFJRVUZSTzFsQlF6TkNMRk5CUVZNc1JVRkJSU3hWUVVGVkxFTkJRVU1zVjBGQlZ6dFpRVU5xUXl4aFFVRmhMRVZCUVVVc1ZVRkJWU3hEUVVGRExHRkJRV0U3V1VGRGRrTXNVMEZCVXl4RlFVRkZMRlZCUVZVc1EwRkJReXhUUVVGVE8xbEJReTlDTEU5QlFVOHNSVUZCUlN4VlFVRlZMRU5CUVVNc1QwRkJUenRaUVVNelFpeFZRVUZWTEVWQlFVVXNWVUZCVlN4RFFVRkRMRlZCUVZVN1dVRkRha01zVVVGQlVTeEZRVUZGTEZWQlFWVXNRMEZCUXl4UlFVRlJPMWxCUXpkQ0xGRkJRVkVzUlVGQlJTeFZRVUZWTEVOQlFVTXNVVUZCVVR0WlFVTTNRaXhUUVVGVExFVkJRVVVzVlVGQlZTeERRVUZETEZOQlFWTTdVMEZEYUVNc1JVRkRSQ3hIUVVGSExFbEJRVWtzUTBGRFVpeERRVU5HTEVOQlEwWXNRMEZCUXp0UlFVTkdMRTlCUVU4c1QwRkJUeXhEUVVGRE8wbEJRMnBDTEVOQlFVTTdTVUZIU3l4QlFVRk9MRXRCUVVzc1EwRkJReXhuUWtGQlowSXNRMEZCUXl4UlFVRm5RaXhGUVVGRkxFZEJRVWNzU1VGQlZ6dFJRVU55UkN4TlFVRk5MRlZCUVZVc1IwRkJSeXhEUVVGRExFMUJRVTBzU1VGQlNTeG5Ra0ZCWjBJc1JVRkJSU3hEUVVGRExFOUJRVThzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVOMlJTeERRVUZETEZOQlFWTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1ZVRkJWU3hEUVVGRExGTkJRVk1zUTBGQlF5eE5RVUZOTEVWQlFVVXNVVUZCVVN4RFFVRkRMRU5CUTNSRUxFTkJRVU03VVVGRFJpeExRVUZMTEUxQlFVMHNVMEZCVXl4SlFVRkpMRlZCUVZVc1JVRkJSU3hEUVVGRE8xbEJRMjVETEUxQlFVMHNTVUZCU1N4RFFVRkRMRzFDUVVGdFFpeERRVUZETEZGQlFWRXNSVUZCUlN4VFFVRlRMRU5CUVVNc1JVRkJSU3hGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEYkVVc1EwRkJRenRKUVVOSUxFTkJRVU03UTBGRFJqdEJRV3hLVHp0SlFVUk1MR0ZCUVdFc1JVRkJSVHM3T3p0eFJVRjNTV1k3UVVGSFN6dEpRVVJNTEdGQlFXRXNSVUZCUlRzN096dHJSVUZSWmp0QlFVZElMRTFCUVUwc1QwRkJUeXgzUWtGQmVVSXNVMEZCVVN4blFrRkJiVU03U1VGREwwVTdVVUZEUlN4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNRMEZCUXp0SlFVTXpRaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEdkQ1FVRm5RaXhEUVVOd1FpeExRVUUwUWl4RlFVTTFRaXhIUVVGSExFbEJRVmM3VVVGRlpDeFBRVUZQTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUTI1Q08xbEJRMFVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlR0WlFVTlNMRTFCUVUwc1JVRkJSU3hMUVVGTExFTkJRVU1zVVVGQlVUdFpRVU4wUWl4UFFVRlBMRVZCUVVVc1MwRkJTeXhEUVVGRExGTkJRVk03V1VGRGVFSXNXVUZCV1N4RlFVRkZMRXRCUVVzc1EwRkJReXhaUVVGWk8xbEJRMmhETEZWQlFWVXNSVUZCUlN4TFFVRkxMRU5CUVVNc1ZVRkJWVHRaUVVNMVFpeFZRVUZWTEVWQlFVVXNTMEZCU3l4RFFVRkRMRlZCUVZVN1dVRkROVUlzUzBGQlN5eEZRVUZGTEV0QlFVc3NRMEZCUXl4blFrRkJaMEk3V1VGRE4wSXNWMEZCVnl4RlFVRkZMRXRCUVVzc1EwRkJReXhYUVVGWE8xbEJRemxDTEZGQlFWRXNSVUZCUlN4TFFVRkxMRU5CUVVNc1VVRkJVVHRUUVVONlFpeEZRVU5FTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEcxQ1FVRnRRaXhEUVVOMlFpeFJRVUZuUWl4RlFVTm9RaXhaUVVGdlFpeEZRVU53UWl4VlFVRnJRaXhGUVVOc1FpeEhRVUZITEVsQlFWYzdVVUZGWkN4UFFVRlBMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRM1pETEVOQlFVTXNVVUZCVVN4RlFVRkZMRVZCUVVVc1EwRkRXQ3hWUVVGVkxFTkJRVU1zVVVGQlVTeERRVUZETEUxQlFVMHNSVUZCUlN4UlFVRlJMRU5CUVVNN1dVRkRja01zVVVGQlVTeERRVUZETEZsQlFWa3NTMEZCU3l4WlFVRlpPMWxCUTNSRExGRkJRVkVzUTBGQlF5eFZRVUZWTEV0QlFVc3NWVUZCVlN4RFFVTnlReXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4eFFrRkJjVUlzUTBGRGVrSXNiVUpCUVRKQ0xFVkJRek5DTEZOQlFXbENMRVZCUTJwQ0xFZEJRVWNzU1VGQlZ6dFJRVVZrTEU5QlFVOHNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXh0UWtGQmJVSXNSVUZCUlN4RlFVRkZMRTlCUVU4c1JVRkJSU3hUUVVGVExFVkJRVVVzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUXpsRkxFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVTnFRaXh0UWtGQk1rSXNSVUZETTBJc1ZVRkJPRUlzUlVGRE9VSXNSMEZCUnl4SlFVRlhPMUZCUldRc1QwRkJUeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEcxQ1FVRnRRaXhGUVVGRkxFVkJRVVVzVlVGQlZTeEZRVUZGTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJRenRKUVVOMFJTeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMR2xDUVVGcFFpeERRVU55UWl4dFFrRkJNa0lzUlVGRE0wSXNaMEpCUVc5RExFVkJRM0JETEVkQlFVY3NTVUZCVnp0UlFVVmtMRTlCUVU4c1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGRGJrSXNiVUpCUVcxQ0xFVkJRMjVDTEVWQlFVVXNTMEZCU3l4RlFVRkZMR2RDUVVGblFpeEZRVUZGTEVWQlF6TkNMRWRCUVVjc1NVRkJTU3hEUVVOU0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRzlDUVVGdlFpeERRVU40UWl4VFFVRnBRaXhGUVVOcVFpeEhRVUZITEVsQlFWYzdVVUZGWkN4UFFVRlBMRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUlN4RFFVTjJSQ3hoUVVGaExFTkJRVU1zVVVGQlVTeERRVUZETEU5QlFVOHNSVUZCUlN4VFFVRlRMRU5CUVVNc1EwRkRNME1zUTBGQlF6dEpRVU5LTEVOQlFVTTdTVUZGUkN4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVOQlEzWkNMRkZCUVdkQ0xFVkJRMmhDTEVkQlFVY3NTVUZCVnp0UlFVVmtMRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRU5CUTNaRUxGVkJRVlVzUTBGQlF5eFJRVUZSTEVOQlFVTXNUVUZCVFN4RlFVRkZMRkZCUVZFc1EwRkJReXhEUVVOMFF5eERRVUZETzBsQlEwb3NRMEZCUXp0RFFVTkdPMEZCUlVRc1RVRkJUU3hQUVVGUExHOUNRVUZ4UWl4VFFVRlJMR2RDUVVFclFqdEpRVU4yUlR0UlFVTkZMRXRCUVVzc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dEpRVU4yUWl4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHRkJRV0VzUTBGRGFrSXNTMEZCZVVJc1JVRkRla0lzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVOdVFqdFpRVU5GTEVWQlFVVXNSVUZCUlN4RlFVRkZMRVZCUVVVN1dVRkRVaXhOUVVGTkxFVkJRVVVzUzBGQlN5eERRVUZETEZGQlFWRTdXVUZEZEVJc1VVRkJVU3hGUVVGRkxFdEJRVXNzUTBGQlF5eFZRVUZWTzFsQlF6RkNMRk5CUVZNc1JVRkJSU3hMUVVGTExFTkJRVU1zVjBGQlZ6dFpRVU0xUWl4aFFVRmhMRVZCUVVVc1MwRkJTeXhEUVVGRExHRkJRV0U3V1VGRGJFTXNVVUZCVVN4RlFVRkZMRXRCUVVzc1EwRkJReXhSUVVGUk8xbEJRM2hDTEZOQlFWTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1UwRkJVenRaUVVNeFFpeFZRVUZWTEVWQlFVVXNTMEZCU3l4RFFVRkRMRlZCUVZVN1dVRkROVUlzVTBGQlV5eEZRVUZGTEV0QlFVc3NRMEZCUXl4dlFrRkJiMEk3VTBGRGRFTXNSVUZEUkN4SFFVRkhMRWxCUVVrc1EwRkRVaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUVVNc1QwRkJaU3hGUVVGRkxFZEJRVWNzU1VGQlZ6dFJRVU12UXl4TlFVRk5MRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1NVRkRNVU1zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4clFrRkJhMElzUTBGRGRFSXNiVUpCUVRKQ0xFVkJRek5DTEVkQlFVY3NTVUZCVnp0UlFVVmtMRTlCUVU4c1EwRkJReXhOUVVGTkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUTNCRUxHRkJRV0VzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RlFVRkZMRzFDUVVGdFFpeERRVUZETEVOQlEyNUVMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEcxQ1FVRnRRaXhEUVVOMlFpeFJRVUZuUWl4RlFVTm9RaXhYUVVGdFFpeEZRVU51UWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hQUVVGUExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlEzcERMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGRFVpeFZRVUZWTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1JVRkJSU3hSUVVGUkxFTkJRVU03V1VGRGJFTXNZVUZCWVN4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlF6bERMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVFzUzBGQlN5eERRVUZETEZGQlFWRXNRMEZEV2l4UlFVRm5RaXhGUVVOb1FpeFhRVUZ0UWl4RlFVTnVRaXh0UWtGQk1rSXNSVUZETTBJc1lVRkJjVUlzUlVGRGNrSXNSVUZCVXl4RlFVTlVMRWRCUVVjc1NVRkJWenRSUVVWa0xFOUJRVThzUTBGRFRDeE5RVUZOTEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eFJRVUZSTEVWQlFVVXNWMEZCVnl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJReTlFTEVOQlFVTXNTVUZCU1N4RFFVTktMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGRFVpeGhRVUZoTEVOQlFVTXNTMEZCU3l4RFFVRkRMRkZCUVZFc1JVRkJSU3h0UWtGQmJVSXNRMEZCUXp0WlFVTnNSQ3hMUVVGTExFTkJRVU1zWVVGQllTeExRVUZMTEdGQlFXRTdXVUZEY2tNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVsQlFVa3NRMEZCUXl4RlFVRkZMRWxCUVVrc1MwRkJTeXhEUVVGRExGRkJRVkVzU1VGQlNTeEZRVUZGTEVOQlFVTTdXVUZEYUVRc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVsQlFVa3NRMEZCUXl4RlFVRkZMRWxCUVVrc1MwRkJTeXhEUVVGRExGTkJRVk1zU1VGQlNTeEZRVUZGTEVOQlFVTXNRMEZEY2tRc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNiMEpCUVc5Q0xFTkJRM2hDTEcxQ1FVRXlRaXhGUVVNelFpeEhRVUZITEVsQlFWYzdVVUZGWkN4TlFVRk5MR05CUVdNc1EwRkRiRUlzU1VGQlNTeEZRVU5LTEUxQlFVMHNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVUZETEcxQ1FVRnRRaXhGUVVGRkxFZEJRVWNzU1VGQlNTeERRVUZETEVWQlF6TkVMRWRCUVVjc1NVRkJTU3hEUVVOU0xFTkJRVU03U1VGRFNpeERRVUZETzBOQlEwWTdRVUZGUkN4TlFVRk5MRTlCUVU4c2QwSkJRWGRDTzBsQlEyNURMRXRCUVVzc1EwRkJReXhyUWtGQmEwSXNRMEZEZEVJc2JVSkJRVEpDTEVWQlF6TkNMRWRCUVVjc1NVRkJWenRSUVVWa0xFMUJRVTBzU1VGQlNTeHZRa0ZCYjBJc1JVRkJSU3hEUVVGRExHOUNRVUZ2UWl4RFFVTnVSQ3h0UWtGQmJVSXNSVUZEYmtJc1IwRkJSeXhKUVVGSkxFTkJRMUlzUTBGQlF6dFJRVU5HTEUxQlFVMHNTVUZCU1N4M1FrRkJkMElzUlVGQlJTeERRVUZETEZWQlFWVXNRMEZETjBNc2JVSkJRVzFDTEVWQlEyNUNMRWRCUVVjc1NVRkJTU3hEUVVOU0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRzlDUVVGdlFpeERRVU40UWl4dFFrRkJNa0lzUlVGRE0wSXNSMEZCUnl4SlFVRlhPMUZCVDJRc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEhkQ1FVRjNRaXhGUVVGRkxFTkJRVU1zVDBGQlR5eERRVU16UkN4dFFrRkJiVUlzUlVGRGJrSXNSMEZCUnl4SlFVRkpMRU5CUTFJc1EwRkJRenRSUVVOR0xFOUJRVTg3V1VGRFRDeFJRVUZSTEVWQlFVVXNWVUZCVlN4RFFVRkRMRkZCUVZFc1EwRkJReXhOUVVGTkxFTkJRVU03V1VGRGNrTXNVMEZCVXl4RlFVRkZMRlZCUVZVc1EwRkJReXhSUVVGUkxFTkJRVU1zVDBGQlR5eERRVUZETzFsQlEzWkRMRlZCUVZVc1JVRkJSU3hSUVVGUkxFTkJRVU1zVlVGQlZUdFpRVU12UWl4blFrRkJaMElzUlVGQlJTeFJRVUZSTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhWUVVGVkxFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVE8xTkJRekZGTEVOQlFVTTdTVUZEU2l4RFFVRkRPME5CUTBZN1FVRkZSQ3hOUVVGTkxFOUJRVThzY1VKQlFYTkNMRk5CUVZFc1owSkJRV2RETzBsQlEzcEZPMUZCUTBVc1MwRkJTeXhEUVVGRExHTkJRV01zUTBGQlF5eERRVUZETzBsQlEzaENMRU5CUVVNN1NVRkZSQ3hMUVVGTExFTkJRVU1zWVVGQllTeERRVU5xUWl4TFFVRm5ReXhGUVVOb1F5eEhRVUZITEVsQlFWYzdVVUZGWkN4UFFVRlBMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRMjVDTzFsQlEwVXNSVUZCUlN4RlFVRkZMRVZCUVVVc1JVRkJSVHRaUVVOU0xFMUJRVTBzUlVGQlJTeExRVUZMTEVOQlFVTXNVVUZCVVR0WlFVTjBRaXhYUVVGWExFVkJRVVVzUzBGQlN5eERRVUZETEZkQlFWYzdXVUZET1VJc1YwRkJWeXhGUVVGRkxFdEJRVXNzUTBGQlF5eFhRVUZYTzFsQlF6bENMRlZCUVZVc1JVRkJSU3hMUVVGTExFTkJRVU1zVlVGQlZUdFpRVU0xUWl4TlFVRk5MRVZCUVVVc1MwRkJTeXhEUVVGRExFMUJRVTA3V1VGRGNFSXNUVUZCVFN4RlFVRkZMRXRCUVVzc1EwRkJReXhOUVVGTk8xTkJRM0pDTEVWQlEwUXNSMEZCUnl4SlFVRkpMRU5CUTFJc1EwRkJRenRKUVVOS0xFTkJRVU03U1VGRlJDeExRVUZMTEVOQlFVTXNhMEpCUVd0Q0xFTkJRM1JDTEZGQlFXZENMRVZCUTJoQ0xFZEJRVWNzU1VGQlZ6dFJRVVZrTEU5QlFVOHNRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlEzUkVMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRTeEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVTnlReXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFTEV0QlFVc3NRMEZCUXl4VlFVRlZMRU5CUTJRc1VVRkJaMElzUlVGRGFFSXNWMEZCZDBJc1JVRkRlRUlzUjBGQlJ5eEpRVUZYTzFGQlJXUXNUMEZCVHl4RFFVRkRMRTFCUVUwc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RFFVRkRMRkZCUVZFc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4RFFVTTFSQ3hEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmRCUVZjc1MwRkJTeXhYUVVGWExFTkJRMnBFTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHZENRVUZuUWl4RFFVTndRaXhUUVVGcFFpeEZRVU5xUWl4TlFVRXlReXhGUVVNelF5eEhRVUZITEVsQlFWYzdVVUZGWkN4UFFVRlBMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVTBGQlV5eEZRVUZGTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zUTBGQlF6dEpRVU40UkN4RFFVRkRPMGxCUlVRc1MwRkJTeXhEUVVGRExHdENRVUZyUWl4RFFVTjBRaXhUUVVGcFFpeEZRVU5xUWl4VlFVRnJRaXhGUVVOc1FpeE5RVUZqTEVWQlEyUXNUVUZCWjBNc1JVRkRhRU1zUjBGQlJ5eEpRVUZYTzFGQlJXUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVOdVFpeFRRVUZUTEVWQlExUXNSVUZCUlN4WFFVRlhMRVZCUVVVc2EwSkJRV3RDTEVOQlFVTXNVMEZCVXl4RlFVRkZMRlZCUVZVc1JVRkJSU3hOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVWQlEzcEZMRWRCUVVjc1NVRkJTU3hEUVVOU0xFTkJRVU03U1VGRFNpeERRVUZETzBsQlJVUXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkRZaXhUUVVGcFFpeEZRVU5xUWl4VlFVRnJRaXhGUVVOc1FpeE5RVUZqTEVWQlEyUXNUVUZCWjBNc1JVRkRhRU1zUjBGQlJ5eEpRVUZYTzFGQlJXUXNUMEZCVHl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVOdVFpeFRRVUZUTEVWQlExUXNSVUZCUlN4WFFVRlhMRVZCUVVVc2EwSkJRV3RDTEVOQlFVTXNUVUZCVFN4RlFVRkZMRlZCUVZVc1JVRkJSU3hOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTEVWQlEzUkZMRWRCUVVjc1NVRkJTU3hEUVVOU0xFTkJRVU03U1VGRFNpeERRVUZETzBOQlEwWTdRVUZGUkN4TlFVRk5MRTlCUVU4c1owSkJRV2RDTzBsQlFUZENPMUZCUTFVc2EwSkJRV0VzUjBGQlJ5eEpRVUZKTEdGQlFXRXNSVUZCUlN4RFFVRkRPMUZCUTNCRExIbENRVUZ2UWl4SFFVRkhMRWxCUVVrc2IwSkJRVzlDTEVWQlFVVXNRMEZCUXp0UlFVTnNSQ3h0UWtGQll5eEhRVUZITEVsQlFVa3NZMEZCWXl4RlFVRkZMRU5CUVVNN1VVRkRkRU1zTUVKQlFYRkNMRWRCUVVjc1NVRkJTU3h4UWtGQmNVSXNSVUZCUlN4RFFVRkRPMUZCUTNCRUxHZENRVUZYTEVkQlFVY3NTVUZCU1N4WFFVRlhMRVZCUVVVc1EwRkJRenRSUVVOb1F5eHpRa0ZCYVVJc1IwRkJSeXhKUVVGSkxIVkNRVUYxUWl4RlFVRkZMRU5CUVVNN1VVRkRiRVFzY1VKQlFXZENMRWRCUVVjc1NVRkJTU3huUWtGQlowSXNSVUZCUlN4RFFVRkRPMUZCUXpGRExITkNRVUZwUWl4SFFVRkhMRWxCUVVrc2FVSkJRV2xDTEVWQlFVVXNRMEZCUXp0UlFVTTFReXhuUWtGQlZ5eEhRVUZITEVsQlFVa3NWMEZCVnl4RlFVRkZMRU5CUVVNN1VVRkRhRU1zTUVKQlFYRkNMRWRCUVVjc1NVRkJTU3h4UWtGQmNVSXNSVUZCUlN4RFFVRkRPMUZCUTNCRUxEQkNRVUZ4UWl4SFFVRkhMRWxCUVVrc2NVSkJRWEZDTEVWQlFVVXNRMEZCUXp0UlFVTndSQ3dyUWtGQk1FSXNSMEZCUnl4SlFVRkpMREJDUVVFd1FpeEZRVUZGTEVOQlFVTTdTVUUyU0hoRkxFTkJRVU03U1VFeFNFOHNRVUZCVGl4TFFVRkxMRU5CUVVNc01rSkJRVEpDTEVOQlF5OUNMRkZCUVRKQ0xFVkJRek5DTEVkQlFVY3NTVUZCVnp0UlFVOWtMRTFCUVUwc1RVRkJUU3hIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4WlFVRlpMRU5CUTJ4RUxGRkJRVkVzUTBGQlF5eE5RVUZOTEVWQlEyWXNSMEZCUnl4SlFVRkpMRU5CUTFJc1EwRkJRenRSUVVOR0xFbEJRVWtzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJRenRaUVVNdlFpeE5RVUZOTEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUTBGQlF5eGhRVUZoTEVOQlF6TkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRMVFzVVVGQlVTeERRVUZETEUxQlFVMHNRMEZCUXl4VlFVRlZMRVZCUXpGQ0xGRkJRVkVzUTBGQlF5eE5RVUZOTEVOQlFVTXNaVUZCWlN4RlFVTXZRaXhIUVVGSExFbEJRVWtzUTBGRFVpeERRVUZETzFGQlEwb3NRMEZCUXp0UlFVVkVMRTFCUVUwc1lVRkJZU3hIUVVGSExFdEJRVXNzUlVGRGVrSXNVVUZCTkVJc1JVRkROVUlzVDBGQmVVSXNSVUZEVUN4RlFVRkZPMWxCUTNCQ0xFMUJRVTBzVDBGQlR5eEhRVU5ZTEZGQlFWRXNTMEZCU3l4VFFVRlRPMmRDUVVOd1FpeERRVUZETEVOQlFVTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExGVkJRVlVzUTBGRGJFTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1JVRkRWQ3hQUVVGUExFTkJRVU1zU1VGQlNTeEZRVU5hTEU5QlFVOHNRMEZCUXl4UlFVRlJMRVZCUTJoQ0xFOUJRVThzUTBGQlF5eFZRVUZWTEVWQlEyeENMRTlCUVU4c1EwRkJReXhSUVVGUkxFVkJRMmhDTEVkQlFVY3NTVUZCU1N4RFFVTlNPMmRDUVVOSUxFTkJRVU1zUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1YwRkJWeXhEUVVOdVF6dHZRa0ZEUlN4UlFVRlJMRVZCUVVVc1RVRkJUU3hEUVVGRExFVkJRVVU3YjBKQlEyNUNMR1ZCUVdVc1JVRkJSU3hSUVVGUk8yOUNRVU42UWl4SlFVRkpMRVZCUVVVc1QwRkJUeXhEUVVGRExFbEJRVWs3YjBKQlEyeENMRkZCUVZFc1JVRkJSU3hQUVVGUExFTkJRVU1zVVVGQlVUdHZRa0ZETVVJc1ZVRkJWU3hGUVVGRkxFOUJRVThzUTBGQlF5eFZRVUZWTzI5Q1FVTTVRaXhsUVVGbExFVkJRVVVzVDBGQlR5eERRVUZETEZGQlFWRTdhVUpCUTJ4RExFVkJRMFFzUjBGQlJ5eEpRVUZKTEVOQlExSXNRMEZCUXp0WlFVTlNMRXRCUVVzc1RVRkJUU3hMUVVGTExFbEJRVWtzVDBGQlR5eERRVUZETEZGQlFWRXNTVUZCU1N4RlFVRkZMRVZCUVVVc1EwRkJRenRuUWtGRE0wTXNUVUZCVFN4aFFVRmhMRU5CUVVNc1QwRkJUeXhEUVVGRExFVkJRVVVzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0WlFVTjZReXhEUVVGRE8xbEJRMFFzVDBGQlR5eFBRVUZQTEVOQlFVTTdVVUZEYWtJc1EwRkJReXhEUVVGRE8xRkJSVVlzVFVGQlRTeFhRVUZYTEVkQlFVY3NUVUZCVFN4aFFVRmhMRU5CUVVNc1UwRkJVeXhGUVVGRkxGRkJRVkVzUTBGQlF5eFhRVUZYTEVOQlFVTXNRMEZCUXp0UlFVTjZSU3hOUVVGTkxFdEJRVXNzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc1ZVRkJWU3hEUVVNM1F5eFJRVUZSTEVOQlFVTXNVMEZCVXl4RlFVTnNRaXhIUVVGSExFbEJRVWtzUTBGRFVpeERRVUZETzFGQlEwWXNUVUZCVFN4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNaVUZCWlN4RFFVTXhReXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVU5VTEV0QlFVc3NRMEZCUXl4RlFVRkZMRVZCUTFJc1owSkJRV2RDTEVOQlFVTXNUVUZCVFN4RlFVTjJRaXhIUVVGSExFbEJRVWtzUTBGRFVpeERRVUZETzFGQlEwWXNUVUZCVFN4alFVRmpMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1owSkJRV2RDTEVOQlEycEZMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRMVFzUzBGQlN5eERRVUZETEVWQlFVVXNSVUZEVWl4SFFVRkhMRWxCUVVrc1EwRkRVaXhEUVVGRE8xRkJSVVlzUzBGQlN5eE5RVUZOTEZWQlFWVXNTVUZCU1N4UlFVRlJMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03V1VGRE9VTXNUVUZCVFN4SlFVRkpMRU5CUVVNc2FVSkJRV2xDTEVOQlFVTXNaMEpCUVdkQ0xFTkJRVU1zVlVGQlZTeEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNN1VVRkRja1VzUTBGQlF6dFJRVVZFTEV0QlFVc3NUVUZCVFN4SlFVRkpMRWxCUVVrc1VVRkJVU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETzFsQlEyeERMRTFCUVUwc1YwRkJWeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4VlFVRlZMRU5CUTI1RU8yZENRVU5GTEZGQlFWRXNSVUZCUlN4TlFVRk5MRU5CUVVNc1JVRkJSVHRuUWtGRGJrSXNSMEZCUnl4RlFVRkZMRWxCUVVrc1EwRkJReXhIUVVGSE8yZENRVU5pTEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1NVRkJTVHRuUWtGRFppeFhRVUZYTEVWQlFVVXNTVUZCU1N4RFFVRkRMRmRCUVZjN1lVRkRPVUlzUlVGRFJDeEhRVUZITEVsQlFVa3NRMEZEVWl4RFFVRkRPMWxCUTBZc1MwRkJTeXhOUVVGTkxHRkJRV0VzU1VGQlNTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNN1owSkJRMmhFTEUxQlFVMHNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEhOQ1FVRnpRaXhEUVVOeVJDeFhRVUZYTEVOQlFVTXNSVUZCUlN4RlFVTmtMR0ZCUVdFc1JVRkRZaXhIUVVGSExFbEJRVWtzUTBGRFVpeERRVUZETzFsQlEwb3NRMEZCUXp0UlFVTklMRU5CUVVNN1VVRkZSQ3hOUVVGTkxGTkJRVk1zUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc2EwSkJRV3RDTEVOQlEzcEVMRTFCUVUwc1EwRkJReXhGUVVGRkxFVkJRMVFzVVVGQlVTeERRVUZETEZsQlFWa3NSVUZEY2tJc1IwRkJSeXhKUVVGSkxFTkJRMUlzUTBGQlF6dFJRVU5HTEUxQlFVMHNTVUZCU1N4RFFVRkRMSEZDUVVGeFFpeERRVUZETEZWQlFWVXNRMEZEZWtNN1dVRkRSU3hSUVVGUkxFVkJRVVVzVFVGQlRTeERRVUZETEVWQlFVVTdXVUZEYmtJc1YwRkJWeXhGUVVGRkxHTkJRV01zUTBGQlF5eEZRVUZGTzFsQlF6bENMRTFCUVUwc1JVRkJSU3hUUVVGVExFTkJRVU1zUlVGQlJUdFpRVU53UWl4VFFVRlRMRVZCUVVVc1UwRkJVeXhEUVVGRExFOUJRVTg3V1VGRE5VSXNUMEZCVHl4RlFVRkZMRmRCUVZjc1EwRkJReXhGUVVGRk8xbEJRM1pDTEZkQlFWY3NSVUZCUlN4SlFVRkpPMU5CUTJ4Q0xFVkJRMFFzUjBGQlJ5eEpRVUZKTEVOQlExSXNRMEZCUXp0UlFVTkdMRTFCUVUwc1NVRkJTU3hEUVVGRExEQkNRVUV3UWl4RFFVRkRMRzFDUVVGdFFpeERRVU4yUkN4TlFVRk5MRU5CUVVNc1JVRkJSU3hGUVVOVUxHTkJRV01zUTBGQlF5eEZRVUZGTEVWQlEycENMRWRCUVVjc1NVRkJTU3hEUVVOU0xFTkJRVU03VVVGRlJpeFBRVUZQTzFsQlEwd3NVVUZCVVN4RlFVRkZMRTFCUVUwc1EwRkJReXhGUVVGRk8xbEJRMjVDTEdGQlFXRXNSVUZCUlN4WFFVRlhMRU5CUVVNc1JVRkJSVHRaUVVNM1FpeFhRVUZYTEVWQlFVVXNTMEZCU3l4RFFVRkRMRVZCUVVVN1dVRkRja0lzWjBKQlFXZENMRVZCUVVVc1kwRkJZeXhEUVVGRExFVkJRVVU3VTBGRGNFTXNRMEZCUXp0SlFVTktMRU5CUVVNN1EwRkRSanRCUVRGSVR6dEpRVVJNTEdGQlFXRXNSVUZCUlRzN096dHRSVUV3U0dZN1FVRkhTQ3hOUVVGTkxFOUJRVThzZFVKQlFYVkNPMGxCUVhCRE8xRkJRMVVzYzBKQlFXbENMRWRCUVVjc1NVRkJTU3gxUWtGQmRVSXNSVUZCUlN4RFFVRkRPMUZCUTJ4RUxIbENRVUZ2UWl4SFFVRkhMRWxCUVVrc2QwSkJRWGRDTEVWQlFVVXNRMEZCUXp0UlFVTjBSQ3h4UWtGQlowSXNSMEZCUnl4SlFVRkpMR2RDUVVGblFpeEZRVUZGTEVOQlFVTTdVVUZETVVNc1owSkJRVmNzUjBGQlJ5eEpRVUZKTEZkQlFWY3NSVUZCUlN4RFFVRkRPMUZCUTJoRExEQkNRVUZ4UWl4SFFVRkhMRWxCUVVrc2NVSkJRWEZDTEVWQlFVVXNRMEZCUXp0UlFVTndSQ3dyUWtGQk1FSXNSMEZCUnl4SlFVRkpMREJDUVVFd1FpeEZRVUZGTEVOQlFVTTdTVUZ2U1hoRkxFTkJRVU03U1VGcVNVOHNRVUZCVGl4TFFVRkxMRU5CUVVNc05rSkJRVFpDTEVOQlEycERMRkZCUVdkQ0xFVkJRMmhDTEUxQlFXTXNSVUZEWkN4VFFVRnBRaXhGUVVOcVFpeFBRVUZsTEVWQlEyWXNSMEZCUnl4SlFVRlhPMUZCUldRc1RVRkJUU3hKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1pVRkJaU3hEUVVNeFF5eFJRVUZSTEVWQlExSXNUVUZCVFN4RlFVTk9MR2RDUVVGblFpeERRVUZETEUxQlFVMHNSVUZEZGtJc1IwRkJSeXhKUVVGSkxFTkJRMUlzUTBGQlF6dFJRVU5HTEUxQlFVMHNTVUZCU1N4RFFVRkRMRzlDUVVGdlFpeERRVUZETEdkQ1FVRm5RaXhEUVVNNVF5eFJRVUZSTEVWQlExSXNVMEZCVXl4RlFVTlVMRTFCUVUwc1JVRkRUaXhuUWtGQlowSXNRMEZCUXl4TlFVRk5MRVZCUTNaQ0xFZEJRVWNzU1VGQlNTeERRVU5TTEVOQlFVTTdVVUZEUml4TlFVRk5MRk5CUVZNc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhuUWtGQlowSXNRMEZETlVRc1VVRkJVU3hGUVVOU0xFMUJRVTBzUlVGRFRpeEhRVUZITEVsQlFVa3NRMEZEVWl4RFFVRkRPMUZCUTBZc1RVRkJUU3hKUVVGSkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMR3RDUVVGclFpeERRVU53UkN4UlFVRlJMRVZCUTFJc1QwRkJUeXhGUVVOUUxFZEJRVWNzU1VGQlNTeERRVU5TTEVOQlFVTTdVVUZEUml4TlFVRk5MRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4VlFVRlZMRU5CUTNwRE8xbEJRMFVzVVVGQlVUdFpRVU5TTEZkQlFWY3NSVUZCUlN4VFFVRlRMRU5CUVVNc1JVRkJSVHRaUVVONlFpeE5RVUZOTEVWQlFVVXNTVUZCU1N4RFFVRkRMRVZCUVVVN1dVRkRaaXhUUVVGVExFVkJRVVVzVTBGQlV5eERRVUZETEU5QlFVODdXVUZETlVJc1QwRkJUeXhGUVVGRkxGTkJRVk03V1VGRGJFSXNWMEZCVnl4RlFVRkZMRWxCUVVrN1UwRkRiRUlzUlVGRFJDeEhRVUZITEVsQlFVa3NRMEZEVWl4RFFVRkRPMUZCUTBZc1RVRkJUU3hKUVVGSkxFTkJRVU1zTUVKQlFUQkNMRU5CUVVNc2JVSkJRVzFDTEVOQlEzWkVMRkZCUVZFc1JVRkRVaXhUUVVGVExFTkJRVU1zUlVGQlJTeEZRVU5hTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1VVRkRSaXhQUVVGUExFVkJRVVVzVjBGQlZ5eEZRVUZGTEZOQlFWTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJRenRKUVVOMlF5eERRVUZETzBsQlIwc3NRVUZCVGl4TFFVRkxMRU5CUVVNc2FVSkJRV2xDTEVOQlEzSkNMRkZCUVdkQ0xFVkJRMmhDTEZkQlFXMUNMRVZCUTI1Q0xGTkJRV2xDTEVWQlEycENMRTlCUVdVc1JVRkRaaXhYUVVGdlFpeEZRVU53UWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hOUVVGTkxFbEJRVWtzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4WFFVRlhMRU5CUVVNc2EwSkJRV3RDTEVOQlEzQkVMRkZCUVZFc1JVRkRVaXhQUVVGUExFVkJRMUFzUjBGQlJ5eEpRVUZKTEVOQlExSXNRMEZCUXp0UlFVTkdMRTFCUVUwc2EwSkJRV3RDTEVkQlEzUkNMRTFCUVUwc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMSGRDUVVGM1FpeERRVU4yUkN4UlFVRlJMRVZCUTFJc1YwRkJWeXhGUVVOWUxFZEJRVWNzU1VGQlNTeERRVU5TTEVOQlFVTTdVVUZEU2l4TFFVRkxMRTFCUVUwc1ZVRkJWU3hKUVVGSkxHdENRVUZyUWl4RFFVRkRMRTFCUVUwc1EwRkRhRVFzUTBGQlF5eEhRVUZITEVWQlFVVXNSVUZCUlN4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFdEJRVXNzVTBGQlV5eERRVUZETEU5QlFVOHNTVUZCU1N4SFFVRkhMRU5CUVVNc1QwRkJUeXhMUVVGTExGTkJRVk1zUTBGRE1VVXNSVUZCUlN4RFFVRkRPMWxCUTBZc1RVRkJUU3hKUVVGSkxFTkJRVU1zY1VKQlFYRkNMRU5CUVVNc1owSkJRV2RDTEVOQlFVTXNWVUZCVlN4RFFVRkRMRVZCUVVVc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzFGQlF6VkZMRU5CUVVNN1VVRkRSQ3hOUVVGTkxFbEJRVWtzUTBGQlF5eHhRa0ZCY1VJc1EwRkJReXhWUVVGVkxFTkJRM3BETzFsQlEwVXNVVUZCVVR0WlFVTlNMRmRCUVZjN1dVRkRXQ3hOUVVGTkxFVkJRVVVzU1VGQlNTeERRVUZETEVWQlFVVTdXVUZEWml4VFFVRlRMRVZCUVVVc1UwRkJVeXhEUVVGRExFOUJRVTg3V1VGRE5VSXNUMEZCVHl4RlFVRkZMRk5CUVZNN1dVRkRiRUlzVjBGQlZ6dFRRVU5hTEVWQlEwUXNSMEZCUnl4SlFVRkpMRU5CUTFJc1EwRkJRenRSUVVOR0xFMUJRVTBzU1VGQlNTeERRVUZETERCQ1FVRXdRaXhEUVVGRExHMUNRVUZ0UWl4RFFVTjJSQ3hSUVVGUkxFVkJRMUlzVjBGQlZ5eEZRVU5ZTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSMHNzUVVGQlRpeExRVUZMTEVOQlFVTXNiVUpCUVcxQ0xFTkJRM1pDTEd0Q1FVRXdRaXhGUVVNeFFpeFJRVUZuUWl4RlFVTm9RaXhYUVVGdFFpeEZRVU51UWl4SFFVRkhMRWxCUVZjN1VVRkZaQ3hOUVVGTkxFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJReXhUUVVGVExFTkJRM0JETEd0Q1FVRnJRaXhGUVVOc1FpeG5Ra0ZCWjBJc1EwRkJReXhUUVVGVExFVkJRekZDTEVkQlFVY3NTVUZCU1N4RFFVTlNMRU5CUVVNN1VVRkRSaXhOUVVGTkxFbEJRVWtzUTBGQlF5d3dRa0ZCTUVJc1EwRkJReXhyUWtGQmEwSXNRMEZEZEVRc1VVRkJVU3hGUVVOU0xGZEJRVmNzUlVGRFdDeEhRVUZITEVsQlFVa3NRMEZEVWl4RFFVRkRPMGxCUTBvc1EwRkJRenRKUVVkTExFRkJRVTRzUzBGQlN5eERRVUZETEhOQ1FVRnpRaXhEUVVNeFFpeHJRa0ZCTUVJc1JVRkRNVUlzVVVGQlowSXNSVUZEYUVJc1YwRkJiVUlzUlVGRGJrSXNSMEZCUnl4SlFVRlhPMUZCUldRc1RVRkJUU3hKUVVGSkxFTkJRVU1zYVVKQlFXbENMRU5CUVVNc1UwRkJVeXhEUVVOd1F5eHJRa0ZCYTBJc1JVRkRiRUlzWjBKQlFXZENMRU5CUVVNc1RVRkJUU3hGUVVOMlFpeEhRVUZITEVsQlFVa3NRMEZEVWl4RFFVRkRPMUZCUTBZc1RVRkJUU3hKUVVGSkxFTkJRVU1zTUVKQlFUQkNMRU5CUVVNc2JVSkJRVzFDTEVOQlEzWkVMRkZCUVZFc1JVRkRVaXhYUVVGWExFVkJRMWdzUjBGQlJ5eEpRVUZKTEVOQlExSXNRMEZCUXp0SlFVTktMRU5CUVVNN1EwRkRSanRCUVdwSlR6dEpRVVJNTEdGQlFXRXNSVUZCUlRzN096czBSVUZuUkdZN1FVRkhTenRKUVVSTUxHRkJRV0VzUlVGQlJUczdPenRuUlVGNVEyWTdRVUZIU3p0SlFVUk1MR0ZCUVdFc1JVRkJSVHM3T3p0clJVRnBRbVk3UVVGSFN6dEpRVVJNTEdGQlFXRXNSVUZCUlRzN096dHhSVUZwUW1ZaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2UxeHVJQ0JDWVhObFRXOWtaV3hUWlhKMmFXTmxMRnh1SUNCSmMyOXNZWFJwYjI1VWFXVnlMRnh1SUNCTlpXMWlaWEp6YUdsd1UzUmhkSFZ6TEZ4dUlDQlFaWEp0YVhOemFXOXVRMkYwWldkdmNua3NYRzRnSUZCeWFXNWphWEJoYkV0cGJtUXNYRzRnSUZKbGMyOTFjbU5sVm1semFXSnBiR2wwZVN4Y2JpQWdVMk52Y0dWTGFXNWtMRnh1SUNCVGRHOXlZV2RsUW1sdVpHbHVaMHRwYm1Rc1hHNGdJRk4wYjNKaFoyVkxhVzVrTEZ4dUlDQnBaQ3hjYmlBZ2NtVnNZWFJwYjI1SlpDeGNiaUFnZEhKaGJuTmhZM1JwYjI1aGJDeGNibjBnWm5KdmJTQmNJaTR2YjNKbkxXSmhjMlZrTFdGMWRHaHZjbWw2WVhScGIyNHRjM2x6ZEdWdFhDSTdYRzVwYlhCdmNuUWdkSGx3WlNCN1hHNGdJRUZ6YzJsbmJsSnZiR1ZKYm5CMWRDeGNiaUFnUW05dmRITjBjbUZ3VDNKblZXNXBkQ3hjYmlBZ1FtOXZkSE4wY21Gd1ZHVnRjR3hoZEdVc1hHNGdJRU55WldGMFpVOXlaMVZ1YVhSSmJuQjFkQ3hjYmlBZ1EzSmxZWFJsVUdWeWJXbHpjMmx2YmtsdWNIVjBMRnh1SUNCRGNtVmhkR1ZTYjJ4bFNXNXdkWFFzWEc0Z0lFTnlaV0YwWlZOMGIzSmhaMlZDYVc1a2FXNW5TVzV3ZFhRc1hHNGdJRU55WldGMFpWUmxibUZ1ZEVsdWNIVjBMRnh1SUNCRGNtVmhkR1ZWYzJWeVNXNXdkWFFzWEc0Z0lFVm1abVZqZEdsMlpWQmxjbTFwYzNOcGIyNVRibUZ3YzJodmRDeGNiaUFnUjNKaGJuUlNaWE52ZFhKalpVbHVjSFYwTEZ4dUlDQlNaV2RwYzNSbGNsSmxjMjkxY21ObFNXNXdkWFFzWEc1OUlHWnliMjBnWENJdUwyOXlaeTFpWVhObFpDMWhkWFJvYjNKcGVtRjBhVzl1TFhONWMzUmxiVndpTzF4dWFXMXdiM0owSUh0Y2JpQWdSV1ptWldOMGFYWmxVR1Z5YldsemMybHZiaXhjYmlBZ1IzSnZkWEFzWEc0Z0lFZHliM1Z3VFdWdFltVnljMmhwY0N4Y2JpQWdTVzVvWlhKcGRHRnVZMlZDYkc5amF5eGNiaUFnVDNKblZXNXBkQ3hjYmlBZ1QzSm5WVzVwZEVOc2IzTjFjbVVzWEc0Z0lFOXlaMVZ1YVhSTlpXMWlaWEp6YUdsd0xGeHVJQ0JQY21kVmJtbDBVSEp2Wm1sc1pTeGNiaUFnVUdWeWJXbHpjMmx2Yml4Y2JpQWdVSEp2ZEdWamRHVmtVbVZ6YjNWeVkyVXNYRzRnSUZCeWFXNWphWEJoYkN4Y2JpQWdVbVZ6YjNWeVkyVkhjbUZ1ZEN4Y2JpQWdVbTlzWlN4Y2JpQWdVbTlzWlVGemMybG5ibTFsYm5Rc1hHNGdJRkp2YkdWUVpYSnRhWE56YVc5dUxGeHVJQ0JUZEc5eVlXZGxRbWx1WkdsdVp5eGNiaUFnVkdWdVlXNTBMRnh1SUNCVVpXNWhiblJOWlcxaVpYSnphR2x3TEZ4dUlDQlVaVzVoYm5SUWNtOW1hV3hsTEZ4dUlDQlZjMlZ5TEZ4dWZTQm1jbTl0SUZ3aUxpOXZjbWN0WW1GelpXUXRZWFYwYUc5eWFYcGhkR2x2YmkxemVYTjBaVzB1Ylc5a1pXeHpYQ0k3WEc0dkwxeHVMeThnWTI5dWMzUWdibTkzU1hOdklEMGdLQ2tnUFQ0Z2JtVjNJRVJoZEdVb0tUdGNiaTh2SUdOdmJuTjBJR0Z6UVhKeVlYa2dQU0E4VkQ0b2RtRnNkV1U2SUZSYlhTQjhJSFZ1WkdWbWFXNWxaQ2s2SUZSYlhTQTlQaUIyWVd4MVpTQS9QeUJiWFR0Y2JtTnZibk4wSUhOaGJXVlVaVzVoYm5RZ1BTQW9jbTkzVkdWdVlXNTBPaUIxYm10dWIzZHVMQ0IwWlc1aGJuUkpaRG9nYzNSeWFXNW5LVG9nWW05dmJHVmhiaUE5UGx4dUlDQnlaV3hoZEdsdmJrbGtLSEp2ZDFSbGJtRnVkQ0JoY3lCN0lHbGtPaUJ6ZEhKcGJtY2dmU0I4SUhOMGNtbHVaeWtnUFQwOUlIUmxibUZ1ZEVsa08xeHVZMjl1YzNRZ2NtVnNZWFJwYjI1TllYUmphQ0E5SUNoMllXeDFaVG9nZFc1cmJtOTNiaXdnZEdGeVoyVjBPaUJ6ZEhKcGJtY2dmQ0IxYm1SbFptbHVaV1FwT2lCaWIyOXNaV0Z1SUQwK1hHNGdJSFJoY21kbGRDQS9JSEpsYkdGMGFXOXVTV1FvZG1Gc2RXVWdZWE1nZXlCcFpEb2djM1J5YVc1bklIMGdmQ0J6ZEhKcGJtY3BJRDA5UFNCMFlYSm5aWFFnT2lCbVlXeHpaVHRjYm1OdmJuTjBJR3h2ZDJWeVUyeDFaeUE5SUNoMllXeDFaVG9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JRDArWEc0Z0lIWmhiSFZsWEc0Z0lDQWdMblJ5YVcwb0tWeHVJQ0FnSUM1MGIweHZkMlZ5UTJGelpTZ3BYRzRnSUNBZ0xuSmxjR3hoWTJVb0wxdGVZUzE2TUMwNVhTc3ZaeXdnWENJdFhDSXBYRzRnSUNBZ0xuSmxjR3hoWTJVb0wxNHRLM3d0S3lRdlp5d2dYQ0pjSWlrZ2ZId2dYQ0pwZEdWdFhDSTdYRzVjYm1GemVXNWpJR1oxYm1OMGFXOXVJR1JsYkdWMFpVMWhibmxDZVVsa0tGeHVJQ0J6WlhKMmFXTmxPaUJDWVhObFRXOWtaV3hUWlhKMmFXTmxQR0Z1ZVQ0c1hHNGdJSEp2ZDNNNklFRnljbUY1UEhzZ2FXUTZJSE4wY21sdVp5QjlQaXhjYmlBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQm1iM0lnS0dOdmJuTjBJSEp2ZHlCdlppQnliM2R6S1NCN1hHNGdJQ0FnWVhkaGFYUWdjMlZ5ZG1salpTNWtaV3hsZEdWQ2VVbGtLSEp2ZHk1cFpDd2dMaTR1WVhKbmN5azdYRzRnSUgxY2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklGUmxibUZ1ZEZCeWIyWnBiR1ZUWlhKMmFXTmxJR1Y0ZEdWdVpITWdRbUZ6WlUxdlpHVnNVMlZ5ZG1salpUeFVaVzVoYm5SUWNtOW1hV3hsUGlCN1hHNGdJR052Ym5OMGNuVmpkRzl5S0NrZ2UxeHVJQ0FnSUhOMWNHVnlLRlJsYm1GdWRGQnliMlpwYkdVcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ1kzSmxZWFJsVUhKdlptbHNaU2hjYmlBZ0lDQjBaVzVoYm5SSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUhCeWIyWnBiR1ZMWlhrNklITjBjbWx1Wnl4Y2JpQWdJQ0J0WlhSaFpHRjBZVDg2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJSFZ1YTI1dmQyNCtMRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThWR1Z1WVc1MFVISnZabWxzWlQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnlaV0YwWlU5dVpTaGNiaUFnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdhV1E2SUdsa0tDa3NYRzRnSUNBZ0lDQWdJSFJsYm1GdWREb2dkR1Z1WVc1MFNXUXNYRzRnSUNBZ0lDQWdJSEJ5YjJacGJHVkxaWGtzWEc0Z0lDQWdJQ0FnSUcxbGRHRmtZWFJoTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdiR2x6ZEVadmNsUmxibUZ1ZENoY2JpQWdJQ0IwWlc1aGJuUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThWR1Z1WVc1MFVISnZabWxzWlZ0ZFBpQjdYRzRnSUNBZ2NtVjBkWEp1SUNoaGQyRnBkQ0IwYUdsekxteHBjM1JCYkd3b0xpNHVZWEpuY3lrcExtWnBiSFJsY2lnb2NISnZabWxzWlNrZ1BUNWNiaUFnSUNBZ0lISmxiR0YwYVc5dVRXRjBZMmdvY0hKdlptbHNaUzUwWlc1aGJuUXNJSFJsYm1GdWRFbGtLVnh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmtaV3hsZEdWR2IzSlVaVzVoYm5Rb2RHVnVZVzUwU1dRNklITjBjbWx1Wnl3Z0xpNHVZWEpuY3pvZ1lXNTVXMTBwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmhkMkZwZENCa1pXeGxkR1ZOWVc1NVFubEpaQ2hjYmlBZ0lDQWdJSFJvYVhNc1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHBjM1JHYjNKVVpXNWhiblFvZEdWdVlXNTBTV1FzSUM0dUxtRnlaM01wTEZ4dUlDQWdJQ0FnTGk0dVlYSm5jMXh1SUNBZ0lDazdYRzRnSUgxY2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklFOXlaMVZ1YVhSUWNtOW1hV3hsVTJWeWRtbGpaU0JsZUhSbGJtUnpJRUpoYzJWTmIyUmxiRk5sY25acFkyVThUM0puVlc1cGRGQnliMlpwYkdVK0lIdGNiaUFnWTI5dWMzUnlkV04wYjNJb0tTQjdYRzRnSUNBZ2MzVndaWElvVDNKblZXNXBkRkJ5YjJacGJHVXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdZM0psWVhSbFVISnZabWxzWlNoY2JpQWdJQ0J2Y21kVmJtbDBTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQndjbTltYVd4bFMyVjVPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2JXVjBZV1JoZEdFL09pQlNaV052Y21ROGMzUnlhVzVuTENCMWJtdHViM2R1UGl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEU5eVoxVnVhWFJRY205bWFXeGxQaUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WTNKbFlYUmxUMjVsS0Z4dUlDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNCcFpEb2dhV1FvS1N4Y2JpQWdJQ0FnSUNBZ2IzSm5WVzVwZERvZ2IzSm5WVzVwZEVsa0xGeHVJQ0FnSUNBZ0lDQndjbTltYVd4bFMyVjVMRnh1SUNBZ0lDQWdJQ0J0WlhSaFpHRjBZU3hjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0F1TGk1aGNtZHpYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHeHBjM1JHYjNKUGNtZFZibWwwS0Z4dUlDQWdJRzl5WjFWdWFYUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThUM0puVlc1cGRGQnliMlpwYkdWYlhUNGdlMXh1SUNBZ0lISmxkSFZ5YmlBb1lYZGhhWFFnZEdocGN5NXNhWE4wUVd4c0tDNHVMbUZ5WjNNcEtTNW1hV3gwWlhJb0tIQnliMlpwYkdVcElEMCtYRzRnSUNBZ0lDQnlaV3hoZEdsdmJrMWhkR05vS0hCeWIyWnBiR1V1YjNKblZXNXBkQ3dnYjNKblZXNXBkRWxrS1Z4dUlDQWdJQ2s3WEc0Z0lIMWNibjFjYmx4dVpYaHdiM0owSUdOc1lYTnpJRTl5WjFWdWFYUkRiRzl6ZFhKbFUyVnlkbWxqWlNCbGVIUmxibVJ6SUVKaGMyVk5iMlJsYkZObGNuWnBZMlU4VDNKblZXNXBkRU5zYjNOMWNtVStJSHRjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9LU0I3WEc0Z0lDQWdjM1Z3WlhJb1QzSm5WVzVwZEVOc2IzTjFjbVVwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nYkdsemRFRnVZMlZ6ZEc5eWN5aGNiaUFnSUNCMFpXNWhiblJKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJRzl5WjFWdWFYUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThUM0puVlc1cGRFTnNiM04xY21WYlhUNGdlMXh1SUNBZ0lISmxkSFZ5YmlBb1lYZGhhWFFnZEdocGN5NXNhWE4wUVd4c0tDNHVMbUZ5WjNNcEtWeHVJQ0FnSUNBZ0xtWnBiSFJsY2loY2JpQWdJQ0FnSUNBZ0tISnZkeWtnUFQ1Y2JpQWdJQ0FnSUNBZ0lDQnpZVzFsVkdWdVlXNTBLSEp2ZHk1MFpXNWhiblFzSUhSbGJtRnVkRWxrS1NBbUpseHVJQ0FnSUNBZ0lDQWdJSEpsYkdGMGFXOXVUV0YwWTJnb2NtOTNMbVJsYzJObGJtUmhiblFzSUc5eVoxVnVhWFJKWkNsY2JpQWdJQ0FnSUNsY2JpQWdJQ0FnSUM1emIzSjBLQ2hzWldaMExDQnlhV2RvZENrZ1BUNGdiR1ZtZEM1a1pYQjBhQ0F0SUhKcFoyaDBMbVJsY0hSb0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHeHBjM1JFWlhOalpXNWtZVzUwY3loY2JpQWdJQ0IwWlc1aGJuUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lHOXlaMVZ1YVhSSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFQzSm5WVzVwZEVOc2IzTjFjbVZiWFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUFvWVhkaGFYUWdkR2hwY3k1c2FYTjBRV3hzS0M0dUxtRnlaM01wS1Z4dUlDQWdJQ0FnTG1acGJIUmxjaWhjYmlBZ0lDQWdJQ0FnS0hKdmR5a2dQVDVjYmlBZ0lDQWdJQ0FnSUNCellXMWxWR1Z1WVc1MEtISnZkeTUwWlc1aGJuUXNJSFJsYm1GdWRFbGtLU0FtSmx4dUlDQWdJQ0FnSUNBZ0lISmxiR0YwYVc5dVRXRjBZMmdvY205M0xtRnVZMlZ6ZEc5eUxDQnZjbWRWYm1sMFNXUXBYRzRnSUNBZ0lDQXBYRzRnSUNBZ0lDQXVjMjl5ZENnb2JHVm1kQ3dnY21sbmFIUXBJRDArSUd4bFpuUXVaR1Z3ZEdnZ0xTQnlhV2RvZEM1a1pYQjBhQ2s3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJwYzBGdVkyVnpkRzl5VDJZb1hHNGdJQ0FnZEdWdVlXNTBTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQmhibU5sYzNSdmNrOXlaMVZ1YVhSSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUdSbGMyTmxibVJoYm5SUGNtZFZibWwwU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEdKdmIyeGxZVzQrSUh0Y2JpQWdJQ0J5WlhSMWNtNGdLRnh1SUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTVzYVhOMFFXNWpaWE4wYjNKektIUmxibUZ1ZEVsa0xDQmtaWE5qWlc1a1lXNTBUM0puVlc1cGRFbGtMQ0F1TGk1aGNtZHpLVnh1SUNBZ0lDa3VjMjl0WlNnb2NtOTNLU0E5UGlCeVpXeGhkR2x2YmsxaGRHTm9LSEp2ZHk1aGJtTmxjM1J2Y2l3Z1lXNWpaWE4wYjNKUGNtZFZibWwwU1dRcEtUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHTnlaV0YwWlZObGJHWk1hVzVyS0Z4dUlDQWdJSFJsYm1GdWRFbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2IzSm5WVzVwZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4UGNtZFZibWwwUTJ4dmMzVnlaVDRnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1OeVpXRjBaVTl1WlNoY2JpQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ2FXUTZJR2xrS0Nrc1hHNGdJQ0FnSUNBZ0lIUmxibUZ1ZERvZ2RHVnVZVzUwU1dRc1hHNGdJQ0FnSUNBZ0lHRnVZMlZ6ZEc5eU9pQnZjbWRWYm1sMFNXUXNYRzRnSUNBZ0lDQWdJR1JsYzJObGJtUmhiblE2SUc5eVoxVnVhWFJKWkN4Y2JpQWdJQ0FnSUNBZ1pHVndkR2c2SURBc1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0xpNHVZWEpuYzF4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJwYm5ObGNuUkJibU5sYzNSdmNreHBibXR6Um05eVRtVjNRMmhwYkdRb1hHNGdJQ0FnZEdWdVlXNTBTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQndZWEpsYm5SUGNtZFZibWwwU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0JqYUdsc1pFOXlaMVZ1YVhSSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElHRnVZMlZ6ZEc5eVRHbHVhM01nUFNCaGQyRnBkQ0IwYUdsekxteHBjM1JCYm1ObGMzUnZjbk1vWEc0Z0lDQWdJQ0IwWlc1aGJuUkpaQ3hjYmlBZ0lDQWdJSEJoY21WdWRFOXlaMVZ1YVhSSlpDeGNiaUFnSUNBZ0lDNHVMbUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQWdJR0YzWVdsMElGQnliMjFwYzJVdVlXeHNLRnh1SUNBZ0lDQWdZVzVqWlhOMGIzSk1hVzVyY3k1dFlYQW9LR3hwYm1zcElEMCtYRzRnSUNBZ0lDQWdJSFJvYVhNdVkzSmxZWFJsVDI1bEtGeHVJQ0FnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbGtPaUJwWkNncExGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdWdVlXNTBPaUIwWlc1aGJuUkpaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHRnVZMlZ6ZEc5eU9pQnNhVzVyTG1GdVkyVnpkRzl5TEZ4dUlDQWdJQ0FnSUNBZ0lDQWdaR1Z6WTJWdVpHRnVkRG9nWTJocGJHUlBjbWRWYm1sMFNXUXNYRzRnSUNBZ0lDQWdJQ0FnSUNCa1pYQjBhRG9nYkdsdWF5NWtaWEIwYUNBcklERXNYRzRnSUNBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0lDQXVMaTVoY21kelhHNGdJQ0FnSUNBZ0lDbGNiaUFnSUNBZ0lDbGNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ1pHVnNaWFJsVEdsdWEzTkdiM0pUZFdKMGNtVmxLRnh1SUNBZ0lIUmxibUZ1ZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnYjNKblZXNXBkRWxrT2lCemRISnBibWNzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnYzNWaWRISmxaU0E5SUdGM1lXbDBJSFJvYVhNdWJHbHpkRVJsYzJObGJtUmhiblJ6S0hSbGJtRnVkRWxrTENCdmNtZFZibWwwU1dRc0lDNHVMbUZ5WjNNcE8xeHVJQ0FnSUdOdmJuTjBJR1JsYzJObGJtUmhiblJKWkhNZ1BTQnVaWGNnVTJWMEtGdGNiaUFnSUNBZ0lHOXlaMVZ1YVhSSlpDeGNiaUFnSUNBZ0lDNHVMbk4xWW5SeVpXVXViV0Z3S0NoeWIzY3BJRDArSUhKbGJHRjBhVzl1U1dRb2NtOTNMbVJsYzJObGJtUmhiblFwS1N4Y2JpQWdJQ0JkS1R0Y2JpQWdJQ0JqYjI1emRDQmhibU5sYzNSdmNrbGtjeUE5SUc1bGR5QlRaWFFvVzF4dUlDQWdJQ0FnYjNKblZXNXBkRWxrTEZ4dUlDQWdJQ0FnTGk0dWMzVmlkSEpsWlM1dFlYQW9LSEp2ZHlrZ1BUNGdjbVZzWVhScGIyNUpaQ2h5YjNjdVlXNWpaWE4wYjNJcEtTeGNiaUFnSUNCZEtUdGNiaUFnSUNCamIyNXpkQ0J5YjNkeklEMGdLR0YzWVdsMElIUm9hWE11YkdsemRFRnNiQ2d1TGk1aGNtZHpLU2t1Wm1sc2RHVnlLRnh1SUNBZ0lDQWdLSEp2ZHlrZ1BUNWNiaUFnSUNBZ0lDQWdjMkZ0WlZSbGJtRnVkQ2h5YjNjdWRHVnVZVzUwTENCMFpXNWhiblJKWkNrZ0ppWmNiaUFnSUNBZ0lDQWdLR1JsYzJObGJtUmhiblJKWkhNdWFHRnpLSEpsYkdGMGFXOXVTV1FvY205M0xtUmxjMk5sYm1SaGJuUXBLU0I4ZkZ4dUlDQWdJQ0FnSUNBZ0lHRnVZMlZ6ZEc5eVNXUnpMbWhoY3loeVpXeGhkR2x2Ymtsa0tISnZkeTVoYm1ObGMzUnZjaWtwS1Z4dUlDQWdJQ2s3WEc0Z0lDQWdZWGRoYVhRZ1pHVnNaWFJsVFdGdWVVSjVTV1FvZEdocGN5d2djbTkzY3l3Z0xpNHVZWEpuY3lrN1hHNGdJSDFjYm4xY2JseHVaWGh3YjNKMElHTnNZWE56SUVsdWFHVnlhWFJoYm1ObFFteHZZMnRUWlhKMmFXTmxJR1Y0ZEdWdVpITWdRbUZ6WlUxdlpHVnNVMlZ5ZG1salpUeEpibWhsY21sMFlXNWpaVUpzYjJOclBpQjdYRzRnSUdOdmJuTjBjblZqZEc5eUtDa2dlMXh1SUNBZ0lITjFjR1Z5S0VsdWFHVnlhWFJoYm1ObFFteHZZMnNwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWW14dlkydERZWFJsWjI5eWVTaGNiaUFnSUNCMFpXNWhiblJKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJRzl5WjFWdWFYUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lIQmxjbTFwYzNOcGIyNURZWFJsWjI5eWVUb2dVR1Z5YldsemMybHZia05oZEdWbmIzSjVMRnh1SUNBZ0lHSnNiMk5yWldSR2NtOXRRVzVqWlhOMGIzSkpaRDg2SUhOMGNtbHVaeXhjYmlBZ0lDQnlaV0Z6YjI0L09pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4SmJtaGxjbWwwWVc1alpVSnNiMk5yUGlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVkzSmxZWFJsVDI1bEtGeHVJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQnBaRG9nYVdRb0tTeGNiaUFnSUNBZ0lDQWdkR1Z1WVc1ME9pQjBaVzVoYm5SSlpDeGNiaUFnSUNBZ0lDQWdiM0puVlc1cGREb2diM0puVlc1cGRFbGtMRnh1SUNBZ0lDQWdJQ0JpYkc5amEyVmtSbkp2YlVGdVkyVnpkRzl5T2lCaWJHOWphMlZrUm5KdmJVRnVZMlZ6ZEc5eVNXUXNYRzRnSUNBZ0lDQWdJSEJsY20xcGMzTnBiMjVEWVhSbFoyOXllU3hjYmlBZ0lDQWdJQ0FnY21WaGMyOXVMRnh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQzR1TG1GeVozTmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2RXNWliRzlqYTBOaGRHVm5iM0o1S0dKc2IyTnJTV1E2SUhOMGNtbHVaeXdnTGk0dVlYSm5jem9nWVc1NVcxMHBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxtUmxiR1YwWlVKNVNXUW9ZbXh2WTJ0SlpDd2dMaTR1WVhKbmN5azdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QnNhWE4wUm05eVQzSm5WVzVwZENoY2JpQWdJQ0IwWlc1aGJuUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lHOXlaMVZ1YVhSSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFNXNW9aWEpwZEdGdVkyVkNiRzlqYTF0ZFBpQjdYRzRnSUNBZ2NtVjBkWEp1SUNoaGQyRnBkQ0IwYUdsekxteHBjM1JCYkd3b0xpNHVZWEpuY3lrcExtWnBiSFJsY2loY2JpQWdJQ0FnSUNoaWJHOWpheWtnUFQ1Y2JpQWdJQ0FnSUNBZ2MyRnRaVlJsYm1GdWRDaGliRzlqYXk1MFpXNWhiblFzSUhSbGJtRnVkRWxrS1NBbUpseHVJQ0FnSUNBZ0lDQnlaV3hoZEdsdmJrMWhkR05vS0dKc2IyTnJMbTl5WjFWdWFYUXNJRzl5WjFWdWFYUkpaQ2xjYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdZMkYwWldkdmNubENiRzlqYTJWa1JtOXlRVzVqWlhOMGIzSW9YRzRnSUNBZ2RHVnVZVzUwU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0J2Y21kVmJtbDBTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQmhibU5sYzNSdmNrOXlaMVZ1YVhSSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUdOaGRHVm5iM0o1T2lCUVpYSnRhWE56YVc5dVEyRjBaV2R2Y25rc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4aWIyOXNaV0Z1UGlCN1hHNGdJQ0FnY21WMGRYSnVJQ2hoZDJGcGRDQjBhR2x6TG14cGMzUkdiM0pQY21kVmJtbDBLSFJsYm1GdWRFbGtMQ0J2Y21kVmJtbDBTV1FzSUM0dUxtRnlaM01wS1M1emIyMWxLRnh1SUNBZ0lDQWdLR0pzYjJOcktTQTlQbHh1SUNBZ0lDQWdJQ0JpYkc5amF5NXdaWEp0YVhOemFXOXVRMkYwWldkdmNua2dQVDA5SUdOaGRHVm5iM0o1SUNZbVhHNGdJQ0FnSUNBZ0lDZ2hZbXh2WTJzdVlteHZZMnRsWkVaeWIyMUJibU5sYzNSdmNpQjhmRnh1SUNBZ0lDQWdJQ0FnSUhKbGJHRjBhVzl1VFdGMFkyZ29ZbXh2WTJzdVlteHZZMnRsWkVaeWIyMUJibU5sYzNSdmNpd2dZVzVqWlhOMGIzSlBjbWRWYm1sMFNXUXBLVnh1SUNBZ0lDazdYRzRnSUgxY2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklGUmxibUZ1ZEZObGNuWnBZMlVnWlhoMFpXNWtjeUJDWVhObFRXOWtaV3hUWlhKMmFXTmxQRlJsYm1GdWRENGdlMXh1SUNCamIyNXpkSEoxWTNSdmNpZ3BJSHRjYmlBZ0lDQnpkWEJsY2loVVpXNWhiblFwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nWTNKbFlYUmxWR1Z1WVc1MEtGeHVJQ0FnSUdsdWNIVjBPaUJEY21WaGRHVlVaVzVoYm5SSmJuQjFkQ3hjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQRlJsYm1GdWRENGdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbU55WldGMFpVOXVaU2hjYmlBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnYVdRNklHbGtLQ2tzWEc0Z0lDQWdJQ0FnSUhOc2RXYzZJR2x1Y0hWMExuTnNkV2NzWEc0Z0lDQWdJQ0FnSUc1aGJXVTZJR2x1Y0hWMExtNWhiV1VzWEc0Z0lDQWdJQ0FnSUdsemIyeGhkR2x2YmxScFpYSTZJR2x1Y0hWMExtbHpiMnhoZEdsdmJsUnBaWElnUHo4Z1NYTnZiR0YwYVc5dVZHbGxjaTVRYjI5c1pXUXNYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdMaTR1WVhKbmMxeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCblpYUkNlVk5zZFdjb2MyeDFaem9nYzNSeWFXNW5MQ0F1TGk1aGNtZHpPaUJoYm5sYlhTazZJRkJ5YjIxcGMyVThWR1Z1WVc1MFBpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVabWx1WkU5dVpVSjVLRndpYzJ4MVoxd2lMQ0J6YkhWbklHRnpJRzVsZG1WeUxDQXVMaTVoY21kektUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklISmxibUZ0WlZSbGJtRnVkQ2hjYmlBZ0lDQjBaVzVoYm5SSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUc1aGJXVTZJSE4wY21sdVp5eGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBGUmxibUZ1ZEQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuVndaR0YwWlU5dVpTaDBaVzVoYm5SSlpDd2dleUJ1WVcxbElIMHNJQzR1TG1GeVozTXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdZMmhoYm1kbFUyeDFaeWhjYmlBZ0lDQjBaVzVoYm5SSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUhOc2RXYzZJSE4wY21sdVp5eGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBGUmxibUZ1ZEQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuVndaR0YwWlU5dVpTaDBaVzVoYm5SSlpDd2dleUJ6YkhWbklIMHNJQzR1TG1GeVozTXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdjMlYwU1hOdmJHRjBhVzl1VkdsbGNpaGNiaUFnSUNCMFpXNWhiblJKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJR2x6YjJ4aGRHbHZibFJwWlhJNklFbHpiMnhoZEdsdmJsUnBaWElzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhVWlc1aGJuUStJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTUxY0dSaGRHVlBibVVvZEdWdVlXNTBTV1FzSUhzZ2FYTnZiR0YwYVc5dVZHbGxjaUI5TENBdUxpNWhjbWR6S1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdSbGJHVjBaVlJsYm1GdWRFTnZiblJ5YjJ4c1pXUW9YRzRnSUNBZ2RHVnVZVzUwU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbVJsYkdWMFpVSjVTV1FvZEdWdVlXNTBTV1FzSUM0dUxtRnlaM01wTzF4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJQY21kVmJtbDBVMlZ5ZG1salpTQmxlSFJsYm1SeklFSmhjMlZOYjJSbGJGTmxjblpwWTJVOFQzSm5WVzVwZEQ0Z2UxeHVJQ0JqYjI1emRISjFZM1J2Y2lncElIdGNiaUFnSUNCemRYQmxjaWhQY21kVmJtbDBLVHRjYmlBZ2ZWeHVYRzRnSUhCeWFYWmhkR1VnYjNKblZXNXBkRkJoZEdnb2NHRnlaVzUwVUdGMGFEb2djM1J5YVc1bklId2dkVzVrWldacGJtVmtMQ0J1WVcxbE9pQnpkSEpwYm1jcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdOdmJuTjBJSE5sWjIxbGJuUWdQU0JzYjNkbGNsTnNkV2NvYm1GdFpTazdYRzRnSUNBZ2NtVjBkWEp1SUhCaGNtVnVkRkJoZEdoY2JpQWdJQ0FnSUQ4Z1lDUjdjR0Z5Wlc1MFVHRjBhQzV5WlhCc1lXTmxLQzljWEM4ckpDOHNJRndpWENJcGZTOGtlM05sWjIxbGJuUjlZRnh1SUNBZ0lDQWdPaUJnTHlSN2MyVm5iV1Z1ZEgxZ08xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmhjM2x1WXlCamNtVmhkR1ZRY205bWFXeGxTV1pPWldWa1pXUW9YRzRnSUNBZ2IzSm5WVzVwZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnY0hKdlptbHNaVXRsZVRvZ2MzUnlhVzVuSUh3Z2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUhCeWIyWnBiR1ZOWlhSaFpHRjBZVG9nVW1WamIzSmtQSE4wY21sdVp5d2dkVzVyYm05M2JqNGdmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ2FXWWdLQ0Z3Y205bWFXeGxTMlY1S1NCeVpYUjFjbTQ3WEc0Z0lDQWdZMjl1YzNRZ2NISnZabWxzWlZObGNuWnBZMlVnUFNCdVpYY2dUM0puVlc1cGRGQnliMlpwYkdWVFpYSjJhV05sS0NrN1hHNGdJQ0FnWVhkaGFYUWdjSEp2Wm1sc1pWTmxjblpwWTJVdVkzSmxZWFJsVUhKdlptbHNaU2hjYmlBZ0lDQWdJRzl5WjFWdWFYUkpaQ3hjYmlBZ0lDQWdJSEJ5YjJacGJHVkxaWGtzWEc0Z0lDQWdJQ0J3Y205bWFXeGxUV1YwWVdSaGRHRXNYRzRnSUNBZ0lDQXVMaTVoY21kelhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lFQjBjbUZ1YzJGamRHbHZibUZzS0NsY2JpQWdZWE41Ym1NZ1kzSmxZWFJsVW05dmRDaGNiaUFnSUNCMFpXNWhiblJKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJRzVoYldVNklITjBjbWx1Wnl4Y2JpQWdJQ0J0WlhSaFpHRjBZVDg2SUZKbFkyOXlaRHh6ZEhKcGJtY3NJSFZ1YTI1dmQyNCtMRnh1SUNBZ0lIQnliMlpwYkdWTFpYay9PaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NISnZabWxzWlUxbGRHRmtZWFJoUHpvZ1VtVmpiM0prUEhOMGNtbHVaeXdnZFc1cmJtOTNiajRzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhQY21kVmJtbDBQaUI3WEc0Z0lDQWdZMjl1YzNRZ2IzSm5WVzVwZENBOUlHRjNZV2wwSUhSb2FYTXVZM0psWVhSbFQyNWxLRnh1SUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0JwWkRvZ2FXUW9LU3hjYmlBZ0lDQWdJQ0FnZEdWdVlXNTBPaUIwWlc1aGJuUkpaQ3hjYmlBZ0lDQWdJQ0FnYm1GdFpTeGNiaUFnSUNBZ0lDQWdjR0YwYURvZ2RHaHBjeTV2Y21kVmJtbDBVR0YwYUNoMWJtUmxabWx1WldRc0lHNWhiV1VwTEZ4dUlDQWdJQ0FnSUNCdFpYUmhaR0YwWVN4Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBdUxpNWhjbWR6WEc0Z0lDQWdLVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbU55WldGMFpWQnliMlpwYkdWSlprNWxaV1JsWkNoY2JpQWdJQ0FnSUc5eVoxVnVhWFF1YVdRc1hHNGdJQ0FnSUNCd2NtOW1hV3hsUzJWNUxGeHVJQ0FnSUNBZ2NISnZabWxzWlUxbGRHRmtZWFJoTEZ4dUlDQWdJQ0FnTGk0dVlYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnWTJ4dmMzVnlaVk5sY25acFkyVWdQU0J1WlhjZ1QzSm5WVzVwZEVOc2IzTjFjbVZUWlhKMmFXTmxLQ2s3WEc0Z0lDQWdZWGRoYVhRZ1kyeHZjM1Z5WlZObGNuWnBZMlV1WTNKbFlYUmxVMlZzWmt4cGJtc29kR1Z1WVc1MFNXUXNJRzl5WjFWdWFYUXVhV1FzSUM0dUxtRnlaM01wTzF4dUlDQWdJSEpsZEhWeWJpQnZjbWRWYm1sME8xeHVJQ0I5WEc1Y2JpQWdRSFJ5WVc1ellXTjBhVzl1WVd3b0tWeHVJQ0JoYzNsdVl5QmpjbVZoZEdWRGFHbHNaQ2hjYmlBZ0lDQnBibkIxZERvZ1EzSmxZWFJsVDNKblZXNXBkRWx1Y0hWMExGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFQzSm5WVzVwZEQ0Z2UxeHVJQ0FnSUdOdmJuTjBJSEJoY21WdWRDQTlJR2x1Y0hWMExuQmhjbVZ1ZEU5eVoxVnVhWFJKWkZ4dUlDQWdJQ0FnUHlCaGQyRnBkQ0IwYUdsekxtZGxkRUo1U1dRb2FXNXdkWFF1Y0dGeVpXNTBUM0puVlc1cGRFbGtMQ0F1TGk1aGNtZHpLVnh1SUNBZ0lDQWdPaUIxYm1SbFptbHVaV1E3WEc0Z0lDQWdZMjl1YzNRZ2IzSm5WVzVwZENBOUlHRjNZV2wwSUhSb2FYTXVZM0psWVhSbFQyNWxLRnh1SUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0JwWkRvZ2FXUW9LU3hjYmlBZ0lDQWdJQ0FnZEdWdVlXNTBPaUJwYm5CMWRDNTBaVzVoYm5SSlpDeGNiaUFnSUNBZ0lDQWdjR0Z5Wlc1ME9pQndZWEpsYm5RL0xtbGtJRDgvSUdsdWNIVjBMbkJoY21WdWRFOXlaMVZ1YVhSSlpDeGNiaUFnSUNBZ0lDQWdibUZ0WlRvZ2FXNXdkWFF1Ym1GdFpTeGNiaUFnSUNBZ0lDQWdjR0YwYURvZ2RHaHBjeTV2Y21kVmJtbDBVR0YwYUNod1lYSmxiblEvTG5CaGRHZ3NJR2x1Y0hWMExtNWhiV1VwTEZ4dUlDQWdJQ0FnSUNCdFpYUmhaR0YwWVRvZ2FXNXdkWFF1YldWMFlXUmhkR0VzWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnTGk0dVlYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NWpjbVZoZEdWUWNtOW1hV3hsU1daT1pXVmtaV1FvWEc0Z0lDQWdJQ0J2Y21kVmJtbDBMbWxrTEZ4dUlDQWdJQ0FnYVc1d2RYUXVjSEp2Wm1sc1pVdGxlU3hjYmlBZ0lDQWdJR2x1Y0hWMExuQnliMlpwYkdWTlpYUmhaR0YwWVN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUdOc2IzTjFjbVZUWlhKMmFXTmxJRDBnYm1WM0lFOXlaMVZ1YVhSRGJHOXpkWEpsVTJWeWRtbGpaU2dwTzF4dUlDQWdJR0YzWVdsMElHTnNiM04xY21WVFpYSjJhV05sTG1OeVpXRjBaVk5sYkdaTWFXNXJLR2x1Y0hWMExuUmxibUZ1ZEVsa0xDQnZjbWRWYm1sMExtbGtMQ0F1TGk1aGNtZHpLVHRjYmlBZ0lDQnBaaUFvYVc1d2RYUXVjR0Z5Wlc1MFQzSm5WVzVwZEVsa0tTQjdYRzRnSUNBZ0lDQmhkMkZwZENCamJHOXpkWEpsVTJWeWRtbGpaUzVwYm5ObGNuUkJibU5sYzNSdmNreHBibXR6Um05eVRtVjNRMmhwYkdRb1hHNGdJQ0FnSUNBZ0lHbHVjSFYwTG5SbGJtRnVkRWxrTEZ4dUlDQWdJQ0FnSUNCcGJuQjFkQzV3WVhKbGJuUlBjbWRWYm1sMFNXUXNYRzRnSUNBZ0lDQWdJRzl5WjFWdWFYUXVhV1FzWEc0Z0lDQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lISmxkSFZ5YmlCdmNtZFZibWwwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nYkdsemRFTm9hV3hrY21WdUtGeHVJQ0FnSUhCaGNtVnVkRTl5WjFWdWFYUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThUM0puVlc1cGRGdGRQaUI3WEc0Z0lDQWdjbVYwZFhKdUlDaGhkMkZwZENCMGFHbHpMbXhwYzNSQmJHd29MaTR1WVhKbmN5a3BMbVpwYkhSbGNpZ29iM0puVlc1cGRDa2dQVDVjYmlBZ0lDQWdJSEpsYkdGMGFXOXVUV0YwWTJnb2IzSm5WVzVwZEM1d1lYSmxiblFzSUhCaGNtVnVkRTl5WjFWdWFYUkpaQ2xjYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdiR2x6ZEZSbGJtRnVkRTl5WjFWdWFYUnpLRnh1SUNBZ0lIUmxibUZ1ZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4UGNtZFZibWwwVzEwK0lIdGNiaUFnSUNCeVpYUjFjbTRnS0dGM1lXbDBJSFJvYVhNdWJHbHpkRUZzYkNndUxpNWhjbWR6S1NrdVptbHNkR1Z5S0NodmNtZFZibWwwS1NBOVBseHVJQ0FnSUNBZ2MyRnRaVlJsYm1GdWRDaHZjbWRWYm1sMExuUmxibUZ1ZEN3Z2RHVnVZVzUwU1dRcFhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUd4cGMzUkVaWE5qWlc1a1lXNTBUM0puVlc1cGRITW9YRzRnSUNBZ2RHVnVZVzUwU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0J2Y21kVmJtbDBTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQnBibU5zZFdSbFUyVnNaaUE5SUdaaGJITmxMRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThUM0puVlc1cGRGdGRQaUI3WEc0Z0lDQWdZMjl1YzNRZ1kyeHZjM1Z5WlZObGNuWnBZMlVnUFNCdVpYY2dUM0puVlc1cGRFTnNiM04xY21WVFpYSjJhV05sS0NrN1hHNGdJQ0FnWTI5dWMzUWdaR1Z6WTJWdVpHRnVkSE1nUFNCaGQyRnBkQ0JqYkc5emRYSmxVMlZ5ZG1salpTNXNhWE4wUkdWelkyVnVaR0Z1ZEhNb1hHNGdJQ0FnSUNCMFpXNWhiblJKWkN4Y2JpQWdJQ0FnSUc5eVoxVnVhWFJKWkN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNBZ0lHTnZibk4wSUdsa2N5QTlJRzVsZHlCVFpYUW9aR1Z6WTJWdVpHRnVkSE11YldGd0tDaHliM2NwSUQwK0lISmxiR0YwYVc5dVNXUW9jbTkzTG1SbGMyTmxibVJoYm5RcEtTazdYRzRnSUNBZ2FXWWdLR2x1WTJ4MVpHVlRaV3htS1NCcFpITXVZV1JrS0c5eVoxVnVhWFJKWkNrN1hHNGdJQ0FnY21WMGRYSnVJQ2hoZDJGcGRDQjBhR2x6TG14cGMzUlVaVzVoYm5SUGNtZFZibWwwY3loMFpXNWhiblJKWkN3Z0xpNHVZWEpuY3lrcExtWnBiSFJsY2loY2JpQWdJQ0FnSUNodmNtZFZibWwwS1NBOVBpQnBaSE11YUdGektHOXlaMVZ1YVhRdWFXUXBYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHeHBjM1JCYm1ObGMzUnZjazl5WjFWdWFYUnpLRnh1SUNBZ0lIUmxibUZ1ZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnYjNKblZXNXBkRWxrT2lCemRISnBibWNzWEc0Z0lDQWdhVzVqYkhWa1pWTmxiR1lnUFNCbVlXeHpaU3hjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQRTl5WjFWdWFYUmJYVDRnZTF4dUlDQWdJR052Ym5OMElHTnNiM04xY21WVFpYSjJhV05sSUQwZ2JtVjNJRTl5WjFWdWFYUkRiRzl6ZFhKbFUyVnlkbWxqWlNncE8xeHVJQ0FnSUdOdmJuTjBJR0Z1WTJWemRHOXljeUE5SUdGM1lXbDBJR05zYjNOMWNtVlRaWEoyYVdObExteHBjM1JCYm1ObGMzUnZjbk1vWEc0Z0lDQWdJQ0IwWlc1aGJuUkpaQ3hjYmlBZ0lDQWdJRzl5WjFWdWFYUkpaQ3hjYmlBZ0lDQWdJQzR1TG1GeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUdOdmJuTjBJR2xrY3lBOUlHNWxkeUJUWlhRb1lXNWpaWE4wYjNKekxtMWhjQ2dvY205M0tTQTlQaUJ5Wld4aGRHbHZia2xrS0hKdmR5NWhibU5sYzNSdmNpa3BLVHRjYmlBZ0lDQnBaaUFvYVc1amJIVmtaVk5sYkdZcElHbGtjeTVoWkdRb2IzSm5WVzVwZEVsa0tUdGNiaUFnSUNCeVpYUjFjbTRnS0dGM1lXbDBJSFJvYVhNdWJHbHpkRlJsYm1GdWRFOXlaMVZ1YVhSektIUmxibUZ1ZEVsa0xDQXVMaTVoY21kektTa3VabWxzZEdWeUtGeHVJQ0FnSUNBZ0tHOXlaMVZ1YVhRcElEMCtJR2xrY3k1b1lYTW9iM0puVlc1cGRDNXBaQ2xjYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdjbVZ1WVcxbFQzSm5WVzVwZENoY2JpQWdJQ0J2Y21kVmJtbDBTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQnVZVzFsT2lCemRISnBibWNzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhQY21kVmJtbDBQaUI3WEc0Z0lDQWdZMjl1YzNRZ1pYaHBjM1JwYm1jZ1BTQmhkMkZwZENCMGFHbHpMbWRsZEVKNVNXUW9iM0puVlc1cGRFbGtMQ0F1TGk1aGNtZHpLVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTUxY0dSaGRHVlBibVVvWEc0Z0lDQWdJQ0J2Y21kVmJtbDBTV1FzWEc0Z0lDQWdJQ0I3SUc1aGJXVXNJSEJoZEdnNklIUm9hWE11YjNKblZXNXBkRkJoZEdnb2RXNWtaV1pwYm1Wa0xDQnVZVzFsS1NCOUxGeHVJQ0FnSUNBZ0xpNHVZWEpuYzF4dUlDQWdJQ2t1ZEdobGJpaGhjM2x1WXlBb2RYQmtZWFJsWkNrZ1BUNGdlMXh1SUNBZ0lDQWdkWEJrWVhSbFpDNXdZWFJvSUQwZ1pYaHBjM1JwYm1jdWNHRnlaVzUwWEc0Z0lDQWdJQ0FnSUQ4Z2RHaHBjeTV2Y21kVmJtbDBVR0YwYUNoMWJtUmxabWx1WldRc0lHNWhiV1VwWEc0Z0lDQWdJQ0FnSURvZ2RHaHBjeTV2Y21kVmJtbDBVR0YwYUNoMWJtUmxabWx1WldRc0lHNWhiV1VwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSFZ3WkdGMFpXUTdYRzRnSUNBZ2ZTazdYRzRnSUgxY2JseHVJQ0JBZEhKaGJuTmhZM1JwYjI1aGJDZ3BYRzRnSUdGemVXNWpJRzF2ZG1WUGNtZFZibWwwS0Z4dUlDQWdJSFJsYm1GdWRFbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2IzSm5WVzVwZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnYm1WM1VHRnlaVzUwVDNKblZXNXBkRWxrT2lCemRISnBibWNzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhQY21kVmJtbDBQaUI3WEc0Z0lDQWdZMjl1YzNRZ2JtVjNVR0Z5Wlc1MElEMGdZWGRoYVhRZ2RHaHBjeTVuWlhSQ2VVbGtLRzVsZDFCaGNtVnVkRTl5WjFWdWFYUkpaQ3dnTGk0dVlYSm5jeWs3WEc0Z0lDQWdZMjl1YzNRZ1pYaHBjM1JwYm1jZ1BTQmhkMkZwZENCMGFHbHpMbWRsZEVKNVNXUW9iM0puVlc1cGRFbGtMQ0F1TGk1aGNtZHpLVHRjYmlBZ0lDQmpiMjV6ZENCMWNHUmhkR1ZrSUQwZ1lYZGhhWFFnZEdocGN5NTFjR1JoZEdWUGJtVW9YRzRnSUNBZ0lDQnZjbWRWYm1sMFNXUXNYRzRnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJSEJoY21WdWREb2dibVYzVUdGeVpXNTBMbWxrTEZ4dUlDQWdJQ0FnSUNCd1lYUm9PaUIwYUdsekxtOXlaMVZ1YVhSUVlYUm9LRzVsZDFCaGNtVnVkQzV3WVhSb0xDQmxlR2x6ZEdsdVp5NXVZVzFsS1N4Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBdUxpNWhjbWR6WEc0Z0lDQWdLVHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbkpsWW5WcGJHUlVaVzVoYm5SRGJHOXpkWEpsS0hSbGJtRnVkRWxrTENBdUxpNWhjbWR6S1R0Y2JpQWdJQ0J5WlhSMWNtNGdkWEJrWVhSbFpEdGNiaUFnZlZ4dVhHNGdJRUIwY21GdWMyRmpkR2x2Ym1Gc0tDbGNiaUFnWVhONWJtTWdjbVZpZFdsc1pGUmxibUZ1ZEVOc2IzTjFjbVVvZEdWdVlXNTBTV1E2SUhOMGNtbHVaeXdnTGk0dVlYSm5jem9nWVc1NVcxMHBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0JqYkc5emRYSmxVMlZ5ZG1salpTQTlJRzVsZHlCUGNtZFZibWwwUTJ4dmMzVnlaVk5sY25acFkyVW9LVHRjYmlBZ0lDQmpiMjV6ZENCbGVHbHpkR2x1WjB4cGJtdHpJRDBnWVhkaGFYUWdZMnh2YzNWeVpWTmxjblpwWTJVdWJHbHpkRUZzYkNndUxpNWhjbWR6S1R0Y2JpQWdJQ0JoZDJGcGRDQmtaV3hsZEdWTllXNTVRbmxKWkNoY2JpQWdJQ0FnSUdOc2IzTjFjbVZUWlhKMmFXTmxMRnh1SUNBZ0lDQWdaWGhwYzNScGJtZE1hVzVyY3k1bWFXeDBaWElvS0hKdmR5a2dQVDRnYzJGdFpWUmxibUZ1ZENoeWIzY3VkR1Z1WVc1MExDQjBaVzVoYm5SSlpDa3BMRnh1SUNBZ0lDQWdMaTR1WVhKbmMxeHVJQ0FnSUNrN1hHNWNiaUFnSUNCamIyNXpkQ0J2Y21kVmJtbDBjeUE5SUNoaGQyRnBkQ0IwYUdsekxteHBjM1JVWlc1aGJuUlBjbWRWYm1sMGN5aDBaVzVoYm5SSlpDd2dMaTR1WVhKbmN5a3BMbk52Y25Rb1hHNGdJQ0FnSUNBb2JHVm1kQ3dnY21sbmFIUXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnYkdWbWRFUmxjSFJvSUQwZ2JHVm1kQzV3WVhSb0xuTndiR2wwS0Z3aUwxd2lLUzVtYVd4MFpYSW9RbTl2YkdWaGJpa3ViR1Z1WjNSb08xeHVJQ0FnSUNBZ0lDQmpiMjV6ZENCeWFXZG9kRVJsY0hSb0lEMGdjbWxuYUhRdWNHRjBhQzV6Y0d4cGRDaGNJaTljSWlrdVptbHNkR1Z5S0VKdmIyeGxZVzRwTG14bGJtZDBhRHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJR3hsWm5SRVpYQjBhQ0F0SUhKcFoyaDBSR1Z3ZEdnN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnS1R0Y2JseHVJQ0FnSUdadmNpQW9ZMjl1YzNRZ2IzSm5WVzVwZENCdlppQnZjbWRWYm1sMGN5a2dlMXh1SUNBZ0lDQWdZWGRoYVhRZ1kyeHZjM1Z5WlZObGNuWnBZMlV1WTNKbFlYUmxVMlZzWmt4cGJtc29kR1Z1WVc1MFNXUXNJRzl5WjFWdWFYUXVhV1FzSUM0dUxtRnlaM01wTzF4dUlDQWdJQ0FnYVdZZ0tHOXlaMVZ1YVhRdWNHRnlaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lHRjNZV2wwSUdOc2IzTjFjbVZUWlhKMmFXTmxMbWx1YzJWeWRFRnVZMlZ6ZEc5eVRHbHVhM05HYjNKT1pYZERhR2xzWkNoY2JpQWdJQ0FnSUNBZ0lDQjBaVzVoYm5SSlpDeGNiaUFnSUNBZ0lDQWdJQ0J5Wld4aGRHbHZia2xrS0c5eVoxVnVhWFF1Y0dGeVpXNTBLU3hjYmlBZ0lDQWdJQ0FnSUNCdmNtZFZibWwwTG1sa0xGeHVJQ0FnSUNBZ0lDQWdJQzR1TG1GeVozTmNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JBZEhKaGJuTmhZM1JwYjI1aGJDZ3BYRzRnSUdGemVXNWpJR1JsYkdWMFpVOXlaMVZ1YVhSVWNtVmxLRnh1SUNBZ0lIUmxibUZ1ZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnYjNKblZXNXBkRWxrT2lCemRISnBibWNzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnWTJ4dmMzVnlaVk5sY25acFkyVWdQU0J1WlhjZ1QzSm5WVzVwZEVOc2IzTjFjbVZUWlhKMmFXTmxLQ2s3WEc0Z0lDQWdZMjl1YzNRZ1pHVnpZMlZ1WkdGdWRITWdQU0JoZDJGcGRDQjBhR2x6TG14cGMzUkVaWE5qWlc1a1lXNTBUM0puVlc1cGRITW9YRzRnSUNBZ0lDQjBaVzVoYm5SSlpDeGNiaUFnSUNBZ0lHOXlaMVZ1YVhSSlpDeGNiaUFnSUNBZ0lIUnlkV1VzWEc0Z0lDQWdJQ0F1TGk1aGNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0JrWlhOalpXNWtZVzUwU1dSeklEMGdibVYzSUZObGRDaGtaWE5qWlc1a1lXNTBjeTV0WVhBb0tHOXlaMVZ1YVhRcElEMCtJRzl5WjFWdWFYUXVhV1FwS1R0Y2JpQWdJQ0JqYjI1emRDQnZjbWRWYm1sMGN5QTlJQ2hoZDJGcGRDQjBhR2x6TG14cGMzUlVaVzVoYm5SUGNtZFZibWwwY3loMFpXNWhiblJKWkN3Z0xpNHVZWEpuY3lrcExtWnBiSFJsY2loY2JpQWdJQ0FnSUNodmNtZFZibWwwS1NBOVBpQmtaWE5qWlc1a1lXNTBTV1J6TG1oaGN5aHZjbWRWYm1sMExtbGtLVnh1SUNBZ0lDazdYRzRnSUNBZ1lYZGhhWFFnWkdWc1pYUmxUV0Z1ZVVKNVNXUW9kR2hwY3l3Z2IzSm5WVzVwZEhNc0lDNHVMbUZ5WjNNcE8xeHVJQ0FnSUdGM1lXbDBJR05zYjNOMWNtVlRaWEoyYVdObExtUmxiR1YwWlV4cGJtdHpSbTl5VTNWaWRISmxaU2gwWlc1aGJuUkpaQ3dnYjNKblZXNXBkRWxrTENBdUxpNWhjbWR6S1R0Y2JpQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVlhObGNsTmxjblpwWTJVZ1pYaDBaVzVrY3lCQ1lYTmxUVzlrWld4VFpYSjJhV05sUEZWelpYSStJSHRjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9LU0I3WEc0Z0lDQWdjM1Z3WlhJb1ZYTmxjaWs3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJqY21WaGRHVlZjMlZ5S0dsdWNIVjBPaUJEY21WaGRHVlZjMlZ5U1c1d2RYUXNJQzR1TG1GeVozTTZJR0Z1ZVZ0ZEtUb2dVSEp2YldselpUeFZjMlZ5UGlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVkzSmxZWFJsVDI1bEtGeHVJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQnBaRG9nYVdRb0tTeGNiaUFnSUNBZ0lDQWdaVzFoYVd3NklHbHVjSFYwTG1WdFlXbHNMRnh1SUNBZ0lDQWdJQ0J3YUc5dVpUb2dhVzV3ZFhRdWNHaHZibVVzWEc0Z0lDQWdJQ0FnSUdScGMzQnNZWGxPWVcxbE9pQnBibkIxZEM1a2FYTndiR0Y1VG1GdFpTeGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQXVMaTVoY21kelhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdkbGRFSjVSVzFoYVd3b1pXMWhhV3c2SUhOMGNtbHVaeXdnTGk0dVlYSm5jem9nWVc1NVcxMHBPaUJRY205dGFYTmxQRlZ6WlhJK0lIdGNiaUFnSUNCeVpYUjFjbTRnS0dGM1lXbDBJSFJvYVhNdWJHbHpkRUZzYkNndUxpNWhjbWR6S1NrdVptbHVaQ2hjYmlBZ0lDQWdJQ2gxYzJWeUtTQTlQaUIxYzJWeUxtVnRZV2xzSUQwOVBTQmxiV0ZwYkZ4dUlDQWdJQ2tnWVhNZ1ZYTmxjanRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJSFZ3WkdGMFpVUnBjM0JzWVhsT1lXMWxLRnh1SUNBZ0lIVnpaWEpKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJR1JwYzNCc1lYbE9ZVzFsT2lCemRISnBibWNzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhWYzJWeVBpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVkWEJrWVhSbFQyNWxLSFZ6WlhKSlpDd2dleUJrYVhOd2JHRjVUbUZ0WlNCOUxDQXVMaTVoY21kektUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklIVndaR0YwWlVWdFlXbHNLRnh1SUNBZ0lIVnpaWEpKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJR1Z0WVdsc09pQnpkSEpwYm1jZ2ZDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlBZ0tUb2dVSEp2YldselpUeFZjMlZ5UGlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWRYQmtZWFJsVDI1bEtIVnpaWEpKWkN3Z2V5QmxiV0ZwYkNCOUxDQXVMaTVoY21kektUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklIVndaR0YwWlZCb2IyNWxLRnh1SUNBZ0lIVnpaWEpKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJSEJvYjI1bE9pQnpkSEpwYm1jZ2ZDQjFibVJsWm1sdVpXUXNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlBZ0tUb2dVSEp2YldselpUeFZjMlZ5UGlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWRYQmtZWFJsVDI1bEtIVnpaWEpKWkN3Z2V5QndhRzl1WlNCOUxDQXVMaTVoY21kektUdGNiaUFnZlZ4dWZWeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1VISnBibU5wY0dGc1UyVnlkbWxqWlNCbGVIUmxibVJ6SUVKaGMyVk5iMlJsYkZObGNuWnBZMlU4VUhKcGJtTnBjR0ZzUGlCN1hHNGdJR052Ym5OMGNuVmpkRzl5S0NrZ2UxeHVJQ0FnSUhOMWNHVnlLRkJ5YVc1amFYQmhiQ2s3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJqY21WaGRHVlFjbWx1WTJsd1lXd29YRzRnSUNBZ2RHVnVZVzUwU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0JyYVc1a09pQlFjbWx1WTJsd1lXeExhVzVrTEZ4dUlDQWdJSE4xWW1wbFkzUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThVSEpwYm1OcGNHRnNQaUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WTNKbFlYUmxUMjVsS0Z4dUlDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNCcFpEb2dhV1FvS1N4Y2JpQWdJQ0FnSUNBZ2RHVnVZVzUwT2lCMFpXNWhiblJKWkN4Y2JpQWdJQ0FnSUNBZ2EybHVaQ3hjYmlBZ0lDQWdJQ0FnYzNWaWFtVmpkRWxrTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdaMlYwUm05eVUzVmlhbVZqZENoY2JpQWdJQ0IwWlc1aGJuUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lHdHBibVE2SUZCeWFXNWphWEJoYkV0cGJtUXNYRzRnSUNBZ2MzVmlhbVZqZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4UWNtbHVZMmx3WVd3Z2ZDQjFibVJsWm1sdVpXUStJSHRjYmlBZ0lDQnlaWFIxY200Z0tHRjNZV2wwSUhSb2FYTXViR2x6ZEVGc2JDZ3VMaTVoY21kektTa3VabWx1WkNoY2JpQWdJQ0FnSUNod2NtbHVZMmx3WVd3cElEMCtYRzRnSUNBZ0lDQWdJSE5oYldWVVpXNWhiblFvY0hKcGJtTnBjR0ZzTG5SbGJtRnVkQ3dnZEdWdVlXNTBTV1FwSUNZbVhHNGdJQ0FnSUNBZ0lIQnlhVzVqYVhCaGJDNXJhVzVrSUQwOVBTQnJhVzVrSUNZbVhHNGdJQ0FnSUNBZ0lIQnlhVzVqYVhCaGJDNXpkV0pxWldOMFNXUWdQVDA5SUhOMVltcGxZM1JKWkZ4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJuWlhSUGNrTnlaV0YwWlVadmNsTjFZbXBsWTNRb1hHNGdJQ0FnZEdWdVlXNTBTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQnJhVzVrT2lCUWNtbHVZMmx3WVd4TGFXNWtMRnh1SUNBZ0lITjFZbXBsWTNSSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFVISnBibU5wY0dGc1BpQjdYRzRnSUNBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FnSUNoaGQyRnBkQ0IwYUdsekxtZGxkRVp2Y2xOMVltcGxZM1FvZEdWdVlXNTBTV1FzSUd0cGJtUXNJSE4xWW1wbFkzUkpaQ3dnTGk0dVlYSm5jeWtwSUQ4L1hHNGdJQ0FnSUNBb1lYZGhhWFFnZEdocGN5NWpjbVZoZEdWUWNtbHVZMmx3WVd3b2RHVnVZVzUwU1dRc0lHdHBibVFzSUhOMVltcGxZM1JKWkN3Z0xpNHVZWEpuY3lrcFhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdkbGRGVnpaWEpRY21sdVkybHdZV3dvWEc0Z0lDQWdkR1Z1WVc1MFNXUTZJSE4wY21sdVp5eGNiaUFnSUNCMWMyVnlTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQRkJ5YVc1amFYQmhiRDRnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1kbGRFOXlRM0psWVhSbFJtOXlVM1ZpYW1WamRDaGNiaUFnSUNBZ0lIUmxibUZ1ZEVsa0xGeHVJQ0FnSUNBZ1VISnBibU5wY0dGc1MybHVaQzVWYzJWeUxGeHVJQ0FnSUNBZ2RYTmxja2xrTEZ4dUlDQWdJQ0FnTGk0dVlYSm5jMXh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5Qm5aWFJIY205MWNGQnlhVzVqYVhCaGJDaGNiaUFnSUNCMFpXNWhiblJKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJR2R5YjNWd1NXUTZJSE4wY21sdVp5eGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBGQnlhVzVqYVhCaGJENGdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbWRsZEU5eVEzSmxZWFJsUm05eVUzVmlhbVZqZENoY2JpQWdJQ0FnSUhSbGJtRnVkRWxrTEZ4dUlDQWdJQ0FnVUhKcGJtTnBjR0ZzUzJsdVpDNUhjbTkxY0N4Y2JpQWdJQ0FnSUdkeWIzVndTV1FzWEc0Z0lDQWdJQ0F1TGk1aGNtZHpYRzRnSUNBZ0tUdGNiaUFnZlZ4dWZWeHVYRzVsZUhCdmNuUWdZMnhoYzNNZ1ZHVnVZVzUwVFdWdFltVnljMmhwY0ZObGNuWnBZMlVnWlhoMFpXNWtjeUJDWVhObFRXOWtaV3hUWlhKMmFXTmxQRlJsYm1GdWRFMWxiV0psY25Ob2FYQStJSHRjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9LU0I3WEc0Z0lDQWdjM1Z3WlhJb1ZHVnVZVzUwVFdWdFltVnljMmhwY0NrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCaFpHUlZjMlZ5Vkc5VVpXNWhiblFvWEc0Z0lDQWdkR1Z1WVc1MFNXUTZJSE4wY21sdVp5eGNiaUFnSUNCMWMyVnlTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQnpkR0YwZFhNNklFMWxiV0psY25Ob2FYQlRkR0YwZFhNZ1BTQk5aVzFpWlhKemFHbHdVM1JoZEhWekxrRmpkR2wyWlN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEZSbGJtRnVkRTFsYldKbGNuTm9hWEErSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1amNtVmhkR1ZQYm1Vb1hHNGdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lHbGtPaUJwWkNncExGeHVJQ0FnSUNBZ0lDQjBaVzVoYm5RNklIUmxibUZ1ZEVsa0xGeHVJQ0FnSUNBZ0lDQjFjMlZ5T2lCMWMyVnlTV1FzWEc0Z0lDQWdJQ0FnSUhOMFlYUjFjeXhjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0F1TGk1aGNtZHpYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklITmxkRk4wWVhSMWN5aGNiaUFnSUNCdFpXMWlaWEp6YUdsd1NXUTZJSE4wY21sdVp5eGNiaUFnSUNCemRHRjBkWE02SUUxbGJXSmxjbk5vYVhCVGRHRjBkWE1zWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhVWlc1aGJuUk5aVzFpWlhKemFHbHdQaUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11ZFhCa1lYUmxUMjVsS0cxbGJXSmxjbk5vYVhCSlpDd2dleUJ6ZEdGMGRYTWdmU3dnTGk0dVlYSm5jeWs3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJzYVhOMFZYTmxjbFJsYm1GdWRITW9YRzRnSUNBZ2RYTmxja2xrT2lCemRISnBibWNzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhVWlc1aGJuUk5aVzFpWlhKemFHbHdXMTArSUh0Y2JpQWdJQ0J5WlhSMWNtNGdLR0YzWVdsMElIUm9hWE11YkdsemRFRnNiQ2d1TGk1aGNtZHpLU2t1Wm1sc2RHVnlLQ2h0WlcxaVpYSnphR2x3S1NBOVBseHVJQ0FnSUNBZ2NtVnNZWFJwYjI1TllYUmphQ2h0WlcxaVpYSnphR2x3TG5WelpYSXNJSFZ6WlhKSlpDbGNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2JHbHpkRlJsYm1GdWRGVnpaWEp6S0Z4dUlDQWdJSFJsYm1GdWRFbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlBZ0tUb2dVSEp2YldselpUeFVaVzVoYm5STlpXMWlaWEp6YUdsd1cxMCtJSHRjYmlBZ0lDQnlaWFIxY200Z0tHRjNZV2wwSUhSb2FYTXViR2x6ZEVGc2JDZ3VMaTVoY21kektTa3VabWxzZEdWeUtDaHRaVzFpWlhKemFHbHdLU0E5UGx4dUlDQWdJQ0FnYzJGdFpWUmxibUZ1ZENodFpXMWlaWEp6YUdsd0xuUmxibUZ1ZEN3Z2RHVnVZVzUwU1dRcFhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUhKbGJXOTJaVlZ6WlhKR2NtOXRWR1Z1WVc1MEtGeHVJQ0FnSUcxbGJXSmxjbk5vYVhCSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR0YzWVdsMElIUm9hWE11WkdWc1pYUmxRbmxKWkNodFpXMWlaWEp6YUdsd1NXUXNJQzR1TG1GeVozTXBPMXh1SUNCOVhHNTlYRzVjYm1WNGNHOXlkQ0JqYkdGemN5QlBjbWRWYm1sMFRXVnRZbVZ5YzJocGNGTmxjblpwWTJVZ1pYaDBaVzVrY3lCQ1lYTmxUVzlrWld4VFpYSjJhV05sUEU5eVoxVnVhWFJOWlcxaVpYSnphR2x3UGlCN1hHNGdJR052Ym5OMGNuVmpkRzl5S0NrZ2UxeHVJQ0FnSUhOMWNHVnlLRTl5WjFWdWFYUk5aVzFpWlhKemFHbHdLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR0ZrWkZWelpYSlViMDl5WjFWdWFYUW9YRzRnSUNBZ2RHVnVZVzUwU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0J2Y21kVmJtbDBTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQjFjMlZ5U1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0J6ZEdGMGRYTTZJRTFsYldKbGNuTm9hWEJUZEdGMGRYTWdQU0JOWlcxaVpYSnphR2x3VTNSaGRIVnpMa0ZqZEdsMlpTeGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBFOXlaMVZ1YVhSTlpXMWlaWEp6YUdsd1BpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZM0psWVhSbFQyNWxLRnh1SUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0JwWkRvZ2FXUW9LU3hjYmlBZ0lDQWdJQ0FnZEdWdVlXNTBPaUIwWlc1aGJuUkpaQ3hjYmlBZ0lDQWdJQ0FnYjNKblZXNXBkRG9nYjNKblZXNXBkRWxrTEZ4dUlDQWdJQ0FnSUNCMWMyVnlPaUIxYzJWeVNXUXNYRzRnSUNBZ0lDQWdJSE4wWVhSMWN5eGNiaUFnSUNBZ0lIMHNYRzRnSUNBZ0lDQXVMaTVoY21kelhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUhObGRGTjBZWFIxY3loY2JpQWdJQ0J0WlcxaVpYSnphR2x3U1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0J6ZEdGMGRYTTZJRTFsYldKbGNuTm9hWEJUZEdGMGRYTXNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlBZ0tUb2dVSEp2YldselpUeFBjbWRWYm1sMFRXVnRZbVZ5YzJocGNENGdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMblZ3WkdGMFpVOXVaU2h0WlcxaVpYSnphR2x3U1dRc0lIc2djM1JoZEhWeklIMHNJQzR1TG1GeVozTXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdiR2x6ZEZWelpYSlBjbWRWYm1sMGN5aGNiaUFnSUNCMWMyVnlTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQRTl5WjFWdWFYUk5aVzFpWlhKemFHbHdXMTArSUh0Y2JpQWdJQ0J5WlhSMWNtNGdLR0YzWVdsMElIUm9hWE11YkdsemRFRnNiQ2d1TGk1aGNtZHpLU2t1Wm1sc2RHVnlLQ2h0WlcxaVpYSnphR2x3S1NBOVBseHVJQ0FnSUNBZ2NtVnNZWFJwYjI1TllYUmphQ2h0WlcxaVpYSnphR2x3TG5WelpYSXNJSFZ6WlhKSlpDbGNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2JHbHpkRTl5WjFWdWFYUlZjMlZ5Y3loY2JpQWdJQ0J2Y21kVmJtbDBTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQRTl5WjFWdWFYUk5aVzFpWlhKemFHbHdXMTArSUh0Y2JpQWdJQ0J5WlhSMWNtNGdLR0YzWVdsMElIUm9hWE11YkdsemRFRnNiQ2d1TGk1aGNtZHpLU2t1Wm1sc2RHVnlLQ2h0WlcxaVpYSnphR2x3S1NBOVBseHVJQ0FnSUNBZ2NtVnNZWFJwYjI1TllYUmphQ2h0WlcxaVpYSnphR2x3TG05eVoxVnVhWFFzSUc5eVoxVnVhWFJKWkNsY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nY21WdGIzWmxWWE5sY2taeWIyMVBjbWRWYm1sMEtGeHVJQ0FnSUcxbGJXSmxjbk5vYVhCSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR0YzWVdsMElIUm9hWE11WkdWc1pYUmxRbmxKWkNodFpXMWlaWEp6YUdsd1NXUXNJQzR1TG1GeVozTXBPMXh1SUNCOVhHNTlYRzVjYm1WNGNHOXlkQ0JqYkdGemN5QkhjbTkxY0ZObGNuWnBZMlVnWlhoMFpXNWtjeUJDWVhObFRXOWtaV3hUWlhKMmFXTmxQRWR5YjNWd1BpQjdYRzRnSUdOdmJuTjBjblZqZEc5eUtDa2dlMXh1SUNBZ0lITjFjR1Z5S0VkeWIzVndLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR055WldGMFpVZHliM1Z3S0Z4dUlDQWdJSFJsYm1GdWRFbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2JtRnRaVG9nYzNSeWFXNW5MRnh1SUNBZ0lHOXlaMVZ1YVhSSlpEODZJSE4wY21sdVp5eGNiaUFnSUNCdFpYUmhaR0YwWVQ4NklGSmxZMjl5WkR4emRISnBibWNzSUhWdWEyNXZkMjQrTEZ4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4UjNKdmRYQStJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVqY21WaGRHVlBibVVvWEc0Z0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUdsa09pQnBaQ2dwTEZ4dUlDQWdJQ0FnSUNCMFpXNWhiblE2SUhSbGJtRnVkRWxrTEZ4dUlDQWdJQ0FnSUNCdmNtZFZibWwwT2lCdmNtZFZibWwwU1dRc1hHNGdJQ0FnSUNBZ0lHNWhiV1VzWEc0Z0lDQWdJQ0FnSUcxbGRHRmtZWFJoTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdjbVZ1WVcxbFIzSnZkWEFvWEc0Z0lDQWdaM0p2ZFhCSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUc1aGJXVTZJSE4wY21sdVp5eGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBFZHliM1Z3UGlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWRYQmtZWFJsVDI1bEtHZHliM1Z3U1dRc0lIc2dibUZ0WlNCOUxDQXVMaTVoY21kektUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHMXZkbVZIY205MWNGUnZUM0puVlc1cGRDaGNiaUFnSUNCbmNtOTFjRWxrT2lCemRISnBibWNzWEc0Z0lDQWdiM0puVlc1cGRFbGtPaUJ6ZEhKcGJtY2dmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhIY205MWNENGdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMblZ3WkdGMFpVOXVaU2huY205MWNFbGtMQ0I3SUc5eVoxVnVhWFE2SUc5eVoxVnVhWFJKWkNCOUxDQXVMaTVoY21kektUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHeHBjM1JVWlc1aGJuUkhjbTkxY0hNb2RHVnVZVzUwU1dRNklITjBjbWx1Wnl3Z0xpNHVZWEpuY3pvZ1lXNTVXMTBwT2lCUWNtOXRhWE5sUEVkeWIzVndXMTArSUh0Y2JpQWdJQ0J5WlhSMWNtNGdLR0YzWVdsMElIUm9hWE11YkdsemRFRnNiQ2d1TGk1aGNtZHpLU2t1Wm1sc2RHVnlLQ2huY205MWNDa2dQVDVjYmlBZ0lDQWdJSE5oYldWVVpXNWhiblFvWjNKdmRYQXVkR1Z1WVc1MExDQjBaVzVoYm5SSlpDbGNiaUFnSUNBcE8xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCSGNtOTFjRTFsYldKbGNuTm9hWEJUWlhKMmFXTmxJR1Y0ZEdWdVpITWdRbUZ6WlUxdlpHVnNVMlZ5ZG1salpUeEhjbTkxY0UxbGJXSmxjbk5vYVhBK0lIdGNiaUFnWTI5dWMzUnlkV04wYjNJb0tTQjdYRzRnSUNBZ2MzVndaWElvUjNKdmRYQk5aVzFpWlhKemFHbHdLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR0ZrWkZCeWFXNWphWEJoYkZSdlIzSnZkWEFvWEc0Z0lDQWdkR1Z1WVc1MFNXUTZJSE4wY21sdVp5eGNiaUFnSUNCbmNtOTFjRWxrT2lCemRISnBibWNzWEc0Z0lDQWdjSEpwYm1OcGNHRnNTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQnRaWFJoWkdGMFlUODZJRkpsWTI5eVpEeHpkSEpwYm1jc0lIVnVhMjV2ZDI0K0xGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFIzSnZkWEJOWlcxaVpYSnphR2x3UGlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVkzSmxZWFJsVDI1bEtGeHVJQ0FnSUNBZ2UxeHVJQ0FnSUNBZ0lDQnBaRG9nYVdRb0tTeGNiaUFnSUNBZ0lDQWdkR1Z1WVc1ME9pQjBaVzVoYm5SSlpDeGNiaUFnSUNBZ0lDQWdaM0p2ZFhBNklHZHliM1Z3U1dRc1hHNGdJQ0FnSUNBZ0lIQnlhVzVqYVhCaGJEb2djSEpwYm1OcGNHRnNTV1FzWEc0Z0lDQWdJQ0FnSUcxbGRHRmtZWFJoTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdiR2x6ZEVkeWIzVndUV1Z0WW1WeWN5aGNiaUFnSUNCbmNtOTFjRWxrT2lCemRISnBibWNzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhIY205MWNFMWxiV0psY25Ob2FYQmJYVDRnZTF4dUlDQWdJSEpsZEhWeWJpQW9ZWGRoYVhRZ2RHaHBjeTVzYVhOMFFXeHNLQzR1TG1GeVozTXBLUzVtYVd4MFpYSW9LRzFsYldKbGNuTm9hWEFwSUQwK1hHNGdJQ0FnSUNCeVpXeGhkR2x2YmsxaGRHTm9LRzFsYldKbGNuTm9hWEF1WjNKdmRYQXNJR2R5YjNWd1NXUXBYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHeHBjM1JRY21sdVkybHdZV3hIY205MWNITW9YRzRnSUNBZ2NISnBibU5wY0dGc1NXUTZJSE4wY21sdVp5eGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBFZHliM1Z3VFdWdFltVnljMmhwY0Z0ZFBpQjdYRzRnSUNBZ2NtVjBkWEp1SUNoaGQyRnBkQ0IwYUdsekxteHBjM1JCYkd3b0xpNHVZWEpuY3lrcExtWnBiSFJsY2lnb2JXVnRZbVZ5YzJocGNDa2dQVDVjYmlBZ0lDQWdJSEpsYkdGMGFXOXVUV0YwWTJnb2JXVnRZbVZ5YzJocGNDNXdjbWx1WTJsd1lXd3NJSEJ5YVc1amFYQmhiRWxrS1Z4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJ5WlcxdmRtVlFjbWx1WTJsd1lXeEdjbTl0UjNKdmRYQW9YRzRnSUNBZ2JXVnRZbVZ5YzJocGNFbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlBZ0tUb2dVSEp2YldselpUeDJiMmxrUGlCN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1a1pXeGxkR1ZDZVVsa0tHMWxiV0psY25Ob2FYQkpaQ3dnTGk0dVlYSm5jeWs3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJ5WlhOdmJIWmxSM0p2ZFhCUWNtbHVZMmx3WVd4SlpITkdiM0pRY21sdVkybHdZV3dvWEc0Z0lDQWdjSEpwYm1OcGNHRnNTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQSE4wY21sdVoxdGRQaUI3WEc0Z0lDQWdZMjl1YzNRZ2NISnBibU5wY0dGc1UyVnlkbWxqWlNBOUlHNWxkeUJRY21sdVkybHdZV3hUWlhKMmFXTmxLQ2s3WEc0Z0lDQWdZMjl1YzNRZ2JXVnRZbVZ5YzJocGNITWdQU0JoZDJGcGRDQjBhR2x6TG14cGMzUlFjbWx1WTJsd1lXeEhjbTkxY0hNb2NISnBibU5wY0dGc1NXUXNJQzR1TG1GeVozTXBPMXh1SUNBZ0lHTnZibk4wSUhCeWFXNWphWEJoYkhNZ1BTQmhkMkZwZENCUWNtOXRhWE5sTG1Gc2JDaGNiaUFnSUNBZ0lHMWxiV0psY25Ob2FYQnpMbTFoY0NoaGMzbHVZeUFvYldWdFltVnljMmhwY0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQjBaVzVoYm5SSlpDQTlJSEpsYkdGMGFXOXVTV1FvYldWdFltVnljMmhwY0M1MFpXNWhiblFwTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0JuY205MWNFbGtJRDBnY21Wc1lYUnBiMjVKWkNodFpXMWlaWEp6YUdsd0xtZHliM1Z3S1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY0hKcGJtTnBjR0ZzSUQwZ1lYZGhhWFFnY0hKcGJtTnBjR0ZzVTJWeWRtbGpaUzVuWlhSSGNtOTFjRkJ5YVc1amFYQmhiQ2hjYmlBZ0lDQWdJQ0FnSUNCMFpXNWhiblJKWkN4Y2JpQWdJQ0FnSUNBZ0lDQm5jbTkxY0Vsa0xGeHVJQ0FnSUNBZ0lDQWdJQzR1TG1GeVozTmNiaUFnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSEJ5YVc1amFYQmhiQzVwWkR0Y2JpQWdJQ0FnSUgwcFhHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdjSEpwYm1OcGNHRnNjenRjYmlBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdVR1Z5YldsemMybHZibE5sY25acFkyVWdaWGgwWlc1a2N5QkNZWE5sVFc5a1pXeFRaWEoyYVdObFBGQmxjbTFwYzNOcGIyNCtJSHRjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9LU0I3WEc0Z0lDQWdjM1Z3WlhJb1VHVnliV2x6YzJsdmJpazdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmpjbVZoZEdWUVpYSnRhWE56YVc5dUtGeHVJQ0FnSUdsdWNIVjBPaUJEY21WaGRHVlFaWEp0YVhOemFXOXVTVzV3ZFhRc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4UVpYSnRhWE56YVc5dVBpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVZM0psWVhSbFQyNWxLRnh1SUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0JwWkRvZ2FXUW9LU3hjYmlBZ0lDQWdJQ0FnYTJWNU9pQnBibkIxZEM1clpYa3NYRzRnSUNBZ0lDQWdJR05oZEdWbmIzSjVPaUJwYm5CMWRDNWpZWFJsWjI5eWVTeGNiaUFnSUNBZ0lDQWdaR1Z6WTNKcGNIUnBiMjQ2SUdsdWNIVjBMbVJsYzJOeWFYQjBhVzl1TEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdaMlYwUW5sTFpYa29hMlY1T2lCemRISnBibWNzSUM0dUxtRnlaM002SUdGdWVWdGRLVG9nVUhKdmJXbHpaVHhRWlhKdGFYTnphVzl1UGlCN1hHNGdJQ0FnY21WMGRYSnVJQ2hoZDJGcGRDQjBhR2x6TG14cGMzUkJiR3dvTGk0dVlYSm5jeWtwTG1acGJtUW9YRzRnSUNBZ0lDQW9jR1Z5YldsemMybHZiaWtnUFQ0Z2NHVnliV2x6YzJsdmJpNXJaWGtnUFQwOUlHdGxlVnh1SUNBZ0lDa2dZWE1nVUdWeWJXbHpjMmx2Ymp0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUd4cGMzUkNlVU5oZEdWbmIzSjVLRnh1SUNBZ0lHTmhkR1ZuYjNKNU9pQlFaWEp0YVhOemFXOXVRMkYwWldkdmNua3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlBZ0tUb2dVSEp2YldselpUeFFaWEp0YVhOemFXOXVXMTArSUh0Y2JpQWdJQ0J5WlhSMWNtNGdLR0YzWVdsMElIUm9hWE11YkdsemRFRnNiQ2d1TGk1aGNtZHpLU2t1Wm1sc2RHVnlLRnh1SUNBZ0lDQWdLSEJsY20xcGMzTnBiMjRwSUQwK0lIQmxjbTFwYzNOcGIyNHVZMkYwWldkdmNua2dQVDA5SUdOaGRHVm5iM0o1WEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJSFZ3WkdGMFpVUmxjMk55YVhCMGFXOXVLRnh1SUNBZ0lIQmxjbTFwYzNOcGIyNUpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lHUmxjMk55YVhCMGFXOXVPaUJ6ZEhKcGJtY2dmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhRWlhKdGFYTnphVzl1UGlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWRYQmtZWFJsVDI1bEtIQmxjbTFwYzNOcGIyNUpaQ3dnZXlCa1pYTmpjbWx3ZEdsdmJpQjlMQ0F1TGk1aGNtZHpLVHRjYmlBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdVbTlzWlZObGNuWnBZMlVnWlhoMFpXNWtjeUJDWVhObFRXOWtaV3hUWlhKMmFXTmxQRkp2YkdVK0lIdGNiaUFnWTI5dWMzUnlkV04wYjNJb0tTQjdYRzRnSUNBZ2MzVndaWElvVW05c1pTazdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QmpjbVZoZEdWU2IyeGxLR2x1Y0hWME9pQkRjbVZoZEdWU2IyeGxTVzV3ZFhRc0lDNHVMbUZ5WjNNNklHRnVlVnRkS1RvZ1VISnZiV2x6WlR4U2IyeGxQaUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11WTNKbFlYUmxUMjVsS0Z4dUlDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNCcFpEb2dhV1FvS1N4Y2JpQWdJQ0FnSUNBZ2RHVnVZVzUwT2lCcGJuQjFkQzUwWlc1aGJuUkpaQ3hjYmlBZ0lDQWdJQ0FnYTJWNU9pQnBibkIxZEM1clpYa3NYRzRnSUNBZ0lDQWdJRzVoYldVNklHbHVjSFYwTG01aGJXVXNYRzRnSUNBZ0lDQWdJR1JsYzJOeWFYQjBhVzl1T2lCcGJuQjFkQzVrWlhOamNtbHdkR2x2Yml4Y2JpQWdJQ0FnSUNBZ2JXVjBZV1JoZEdFNklHbHVjSFYwTG0xbGRHRmtZWFJoTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdaMlYwVTNsemRHVnRVbTlzWlVKNVMyVjVLR3RsZVRvZ2MzUnlhVzVuTENBdUxpNWhjbWR6T2lCaGJubGJYU2s2SUZCeWIyMXBjMlU4VW05c1pUNGdlMXh1SUNBZ0lHTnZibk4wSUhKdmJHVWdQU0FvWVhkaGFYUWdkR2hwY3k1c2FYTjBRV3hzS0M0dUxtRnlaM01wS1M1bWFXNWtLRnh1SUNBZ0lDQWdLR05oYm1ScFpHRjBaU2tnUFQ0Z0lXTmhibVJwWkdGMFpTNTBaVzVoYm5RZ0ppWWdZMkZ1Wkdsa1lYUmxMbXRsZVNBOVBUMGdhMlY1WEc0Z0lDQWdLVHRjYmlBZ0lDQnBaaUFvSVhKdmJHVXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJGY25KdmNpaGdVbTlzWlNCY0lpUjdhMlY1ZlZ3aUlHNXZkQ0JtYjNWdVpHQXBPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnY205c1pUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHZGxkRlJsYm1GdWRGSnZiR1ZDZVV0bGVTaGNiaUFnSUNCMFpXNWhiblJKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJR3RsZVRvZ2MzUnlhVzVuTEZ4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4VW05c1pUNGdlMXh1SUNBZ0lHTnZibk4wSUhKdmJHVWdQU0FvWVhkaGFYUWdkR2hwY3k1c2FYTjBRV3hzS0M0dUxtRnlaM01wS1M1bWFXNWtLRnh1SUNBZ0lDQWdLR05oYm1ScFpHRjBaU2tnUFQ1Y2JpQWdJQ0FnSUNBZ2MyRnRaVlJsYm1GdWRDaGpZVzVrYVdSaGRHVXVkR1Z1WVc1MExDQjBaVzVoYm5SSlpDa2dKaVlnWTJGdVpHbGtZWFJsTG10bGVTQTlQVDBnYTJWNVhHNGdJQ0FnS1R0Y2JpQWdJQ0JwWmlBb0lYSnZiR1VwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhnVW05c1pTQmNJaVI3YTJWNWZWd2lJRzV2ZENCbWIzVnVaQ0JtYjNJZ2RHVnVZVzUwSUNSN2RHVnVZVzUwU1dSOVlDazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJ5YjJ4bE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2NtVnVZVzFsVW05c1pTaGNiaUFnSUNCeWIyeGxTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQnVZVzFsT2lCemRISnBibWNzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhTYjJ4bFBpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVkWEJrWVhSbFQyNWxLSEp2YkdWSlpDd2dleUJ1WVcxbElIMHNJQzR1TG1GeVozTXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdkWEJrWVhSbFVtOXNaVTFsZEdGa1lYUmhLRnh1SUNBZ0lISnZiR1ZKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJRzFsZEdGa1lYUmhPaUJTWldOdmNtUThjM1J5YVc1bkxDQjFibXR1YjNkdVBpQjhJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQRkp2YkdVK0lIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NTFjR1JoZEdWUGJtVW9jbTlzWlVsa0xDQjdJRzFsZEdGa1lYUmhJSDBzSUM0dUxtRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nYkdsemRGUmxibUZ1ZEZKdmJHVnpLRnh1SUNBZ0lIUmxibUZ1ZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnYVc1amJIVmtaVk41YzNSbGJTQTlJR1poYkhObExGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFVtOXNaVnRkUGlCN1hHNGdJQ0FnY21WMGRYSnVJQ2hoZDJGcGRDQjBhR2x6TG14cGMzUkJiR3dvTGk0dVlYSm5jeWtwTG1acGJIUmxjaWdvY205c1pTa2dQVDVjYmlBZ0lDQWdJR2x1WTJ4MVpHVlRlWE4wWlcxY2JpQWdJQ0FnSUNBZ1B5QWhjbTlzWlM1MFpXNWhiblFnZkh3Z2MyRnRaVlJsYm1GdWRDaHliMnhsTG5SbGJtRnVkQ3dnZEdWdVlXNTBTV1FwWEc0Z0lDQWdJQ0FnSURvZ2MyRnRaVlJsYm1GdWRDaHliMnhsTG5SbGJtRnVkQ3dnZEdWdVlXNTBTV1FwWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVmVnh1WEc1bGVIQnZjblFnWTJ4aGMzTWdVbTlzWlZCbGNtMXBjM05wYjI1VFpYSjJhV05sSUdWNGRHVnVaSE1nUW1GelpVMXZaR1ZzVTJWeWRtbGpaVHhTYjJ4bFVHVnliV2x6YzJsdmJqNGdlMXh1SUNCamIyNXpkSEoxWTNSdmNpZ3BJSHRjYmlBZ0lDQnpkWEJsY2loU2IyeGxVR1Z5YldsemMybHZiaWs3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJoWkdSUVpYSnRhWE56YVc5dVZHOVNiMnhsS0Z4dUlDQWdJSEp2YkdWSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUhCbGNtMXBjM05wYjI1SlpEb2djM1J5YVc1bkxGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFVtOXNaVkJsY20xcGMzTnBiMjQrSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkR2hwY3k1amNtVmhkR1ZQYm1Vb1hHNGdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lHbGtPaUJwWkNncExGeHVJQ0FnSUNBZ0lDQnliMnhsT2lCeWIyeGxTV1FzWEc0Z0lDQWdJQ0FnSUhCbGNtMXBjM05wYjI0NklIQmxjbTFwYzNOcGIyNUpaQ3hjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0F1TGk1aGNtZHpYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHRmtaRkJsY20xcGMzTnBiMjVMWlhsVWIxSnZiR1VvWEc0Z0lDQWdjbTlzWlVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnY0dWeWJXbHpjMmx2Ymt0bGVUb2djM1J5YVc1bkxGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFVtOXNaVkJsY20xcGMzTnBiMjQrSUh0Y2JpQWdJQ0JqYjI1emRDQndaWEp0YVhOemFXOXVJRDBnWVhkaGFYUWdibVYzSUZCbGNtMXBjM05wYjI1VFpYSjJhV05sS0NrdVoyVjBRbmxMWlhrb1hHNGdJQ0FnSUNCd1pYSnRhWE56YVc5dVMyVjVMRnh1SUNBZ0lDQWdMaTR1WVhKbmMxeHVJQ0FnSUNrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVlXUmtVR1Z5YldsemMybHZibFJ2VW05c1pTaHliMnhsU1dRc0lIQmxjbTFwYzNOcGIyNHVhV1FzSUM0dUxtRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nY21WdGIzWmxVR1Z5YldsemMybHZia1p5YjIxU2IyeGxLRnh1SUNBZ0lISnZiR1ZRWlhKdGFYTnphVzl1U1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbVJsYkdWMFpVSjVTV1FvY205c1pWQmxjbTFwYzNOcGIyNUpaQ3dnTGk0dVlYSm5jeWs3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJzYVhOMFVtOXNaVkJsY20xcGMzTnBiMjV6S0Z4dUlDQWdJSEp2YkdWSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFVtOXNaVkJsY20xcGMzTnBiMjViWFQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUFvWVhkaGFYUWdkR2hwY3k1c2FYTjBRV3hzS0M0dUxtRnlaM01wS1M1bWFXeDBaWElvS0hKdmJHVlFaWEp0YVhOemFXOXVLU0E5UGx4dUlDQWdJQ0FnY21Wc1lYUnBiMjVOWVhSamFDaHliMnhsVUdWeWJXbHpjMmx2Ymk1eWIyeGxMQ0J5YjJ4bFNXUXBYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHeHBjM1JRWlhKdGFYTnphVzl1VW05c1pYTW9YRzRnSUNBZ2NHVnliV2x6YzJsdmJrbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlBZ0tUb2dVSEp2YldselpUeFNiMnhsVUdWeWJXbHpjMmx2Ymx0ZFBpQjdYRzRnSUNBZ2NtVjBkWEp1SUNoaGQyRnBkQ0IwYUdsekxteHBjM1JCYkd3b0xpNHVZWEpuY3lrcExtWnBiSFJsY2lnb2NtOXNaVkJsY20xcGMzTnBiMjRwSUQwK1hHNGdJQ0FnSUNCeVpXeGhkR2x2YmsxaGRHTm9LSEp2YkdWUVpYSnRhWE56YVc5dUxuQmxjbTFwYzNOcGIyNHNJSEJsY20xcGMzTnBiMjVKWkNsY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1FIUnlZVzV6WVdOMGFXOXVZV3dvS1Z4dUlDQmhjM2x1WXlCeVpYQnNZV05sVW05c1pWQmxjbTFwYzNOcGIyNXpLRnh1SUNBZ0lISnZiR1ZKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJSEJsY20xcGMzTnBiMjVKWkhNNklITjBjbWx1WjF0ZExGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFVtOXNaVkJsY20xcGMzTnBiMjViWFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR1Y0YVhOMGFXNW5JRDBnWVhkaGFYUWdkR2hwY3k1c2FYTjBVbTlzWlZCbGNtMXBjM05wYjI1ektISnZiR1ZKWkN3Z0xpNHVZWEpuY3lrN1hHNGdJQ0FnWVhkaGFYUWdaR1ZzWlhSbFRXRnVlVUo1U1dRb2RHaHBjeXdnWlhocGMzUnBibWNzSUM0dUxtRnlaM01wTzF4dUlDQWdJR052Ym5OMElHTnlaV0YwWldRZ1BTQmhkMkZwZENCUWNtOXRhWE5sTG1Gc2JDaGNiaUFnSUNBZ0lIQmxjbTFwYzNOcGIyNUpaSE11YldGd0tDaHdaWEp0YVhOemFXOXVTV1FwSUQwK1hHNGdJQ0FnSUNBZ0lIUm9hWE11WVdSa1VHVnliV2x6YzJsdmJsUnZVbTlzWlNoeWIyeGxTV1FzSUhCbGNtMXBjM05wYjI1SlpDd2dMaTR1WVhKbmN5bGNiaUFnSUNBZ0lDbGNiaUFnSUNBcE8xeHVJQ0FnSUhKbGRIVnliaUJqY21WaGRHVmtPMXh1SUNCOVhHNWNiaUFnUUhSeVlXNXpZV04wYVc5dVlXd29LVnh1SUNCaGMzbHVZeUJqY21WaGRHVlNiMnhsVjJsMGFGQmxjbTFwYzNOcGIyNXpLRnh1SUNBZ0lHbHVjSFYwT2lCRGNtVmhkR1ZTYjJ4bFNXNXdkWFFzWEc0Z0lDQWdjR1Z5YldsemMybHZia3RsZVhNNklITjBjbWx1WjF0ZExGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFVtOXNaVDRnZTF4dUlDQWdJR052Ym5OMElISnZiR1VnUFNCaGQyRnBkQ0J1WlhjZ1VtOXNaVk5sY25acFkyVW9LUzVqY21WaGRHVlNiMnhsS0dsdWNIVjBMQ0F1TGk1aGNtZHpLVHRjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJSEJsY20xcGMzTnBiMjVMWlhrZ2IyWWdjR1Z5YldsemMybHZia3RsZVhNcElIdGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXVZV1JrVUdWeWJXbHpjMmx2Ymt0bGVWUnZVbTlzWlNoeWIyeGxMbWxrTENCd1pYSnRhWE56YVc5dVMyVjVMQ0F1TGk1aGNtZHpLVHRjYmlBZ0lDQjlYRzRnSUNBZ2NtVjBkWEp1SUhKdmJHVTdYRzRnSUgxY2JuMWNibHh1Wlhod2IzSjBJR05zWVhOeklGSnZiR1ZCYzNOcFoyNXRaVzUwVTJWeWRtbGpaU0JsZUhSbGJtUnpJRUpoYzJWTmIyUmxiRk5sY25acFkyVThVbTlzWlVGemMybG5ibTFsYm5RK0lIdGNiaUFnWTI5dWMzUnlkV04wYjNJb0tTQjdYRzRnSUNBZ2MzVndaWElvVW05c1pVRnpjMmxuYm0xbGJuUXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdZWE56YVdkdVVtOXNaU2hjYmlBZ0lDQnBibkIxZERvZ1FYTnphV2R1VW05c1pVbHVjSFYwTEZ4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4VW05c1pVRnpjMmxuYm0xbGJuUStJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVqY21WaGRHVlBibVVvWEc0Z0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUdsa09pQnBaQ2dwTEZ4dUlDQWdJQ0FnSUNCMFpXNWhiblE2SUdsdWNIVjBMblJsYm1GdWRFbGtMRnh1SUNBZ0lDQWdJQ0J3Y21sdVkybHdZV3c2SUdsdWNIVjBMbkJ5YVc1amFYQmhiRWxrTEZ4dUlDQWdJQ0FnSUNCeWIyeGxPaUJwYm5CMWRDNXliMnhsU1dRc1hHNGdJQ0FnSUNBZ0lITmpiM0JsUzJsdVpEb2dhVzV3ZFhRdWMyTnZjR1ZMYVc1a0xGeHVJQ0FnSUNBZ0lDQnpZMjl3WlVsa09pQnBibkIxZEM1elkyOXdaVWxrTEZ4dUlDQWdJQ0FnSUNCcGJtaGxjbWwwUkc5M2Jqb2dhVzV3ZFhRdWFXNW9aWEpwZEVSdmQyNGdQejhnWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJSE4wWVhKMGMwRjBPaUJwYm5CMWRDNXpkR0Z5ZEhOQmRDeGNiaUFnSUNBZ0lDQWdaWGh3YVhKbGMwRjBPaUJwYm5CMWRDNWxlSEJwY21WelFYUXNYRzRnSUNBZ0lDQWdJR052Ym1ScGRHbHZibk02SUdsdWNIVjBMbU52Ym1ScGRHbHZibk1zWEc0Z0lDQWdJQ0I5TEZ4dUlDQWdJQ0FnTGk0dVlYSm5jMXh1SUNBZ0lDazdYRzRnSUgxY2JseHVJQ0JoYzNsdVl5QnlaWFp2YTJWQmMzTnBaMjV0Wlc1MEtHRnpjMmxuYm0xbGJuUkpaRG9nYzNSeWFXNW5MQ0F1TGk1aGNtZHpPaUJoYm5sYlhTazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdVpHVnNaWFJsUW5sSlpDaGhjM05wWjI1dFpXNTBTV1FzSUM0dUxtRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nYkdsemRGQnlhVzVqYVhCaGJFRnpjMmxuYm0xbGJuUnpLRnh1SUNBZ0lIUmxibUZ1ZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnY0hKcGJtTnBjR0ZzU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEZKdmJHVkJjM05wWjI1dFpXNTBXMTArSUh0Y2JpQWdJQ0J5WlhSMWNtNGdLR0YzWVdsMElIUm9hWE11YkdsemRFRnNiQ2d1TGk1aGNtZHpLU2t1Wm1sc2RHVnlLRnh1SUNBZ0lDQWdLR0Z6YzJsbmJtMWxiblFwSUQwK1hHNGdJQ0FnSUNBZ0lITmhiV1ZVWlc1aGJuUW9ZWE56YVdkdWJXVnVkQzUwWlc1aGJuUXNJSFJsYm1GdWRFbGtLU0FtSmx4dUlDQWdJQ0FnSUNCeVpXeGhkR2x2YmsxaGRHTm9LR0Z6YzJsbmJtMWxiblF1Y0hKcGJtTnBjR0ZzTENCd2NtbHVZMmx3WVd4SlpDbGNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2JHbHpkRkp2YkdWQmMzTnBaMjV0Wlc1MGN5aGNiaUFnSUNCeWIyeGxTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQRkp2YkdWQmMzTnBaMjV0Wlc1MFcxMCtJSHRjYmlBZ0lDQnlaWFIxY200Z0tHRjNZV2wwSUhSb2FYTXViR2x6ZEVGc2JDZ3VMaTVoY21kektTa3VabWxzZEdWeUtDaGhjM05wWjI1dFpXNTBLU0E5UGx4dUlDQWdJQ0FnY21Wc1lYUnBiMjVOWVhSamFDaGhjM05wWjI1dFpXNTBMbkp2YkdVc0lISnZiR1ZKWkNsY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nYkdsemRGUmxibUZ1ZEVGemMybG5ibTFsYm5SektGeHVJQ0FnSUhSbGJtRnVkRWxrT2lCemRISnBibWNzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhTYjJ4bFFYTnphV2R1YldWdWRGdGRQaUI3WEc0Z0lDQWdjbVYwZFhKdUlDaGhkMkZwZENCMGFHbHpMbXhwYzNSQmJHd29MaTR1WVhKbmN5a3BMbVpwYkhSbGNpZ29ZWE56YVdkdWJXVnVkQ2tnUFQ1Y2JpQWdJQ0FnSUhOaGJXVlVaVzVoYm5Rb1lYTnphV2R1YldWdWRDNTBaVzVoYm5Rc0lIUmxibUZ1ZEVsa0tWeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCMWNHUmhkR1ZCYzNOcFoyNXRaVzUwVjJsdVpHOTNLRnh1SUNBZ0lHRnpjMmxuYm0xbGJuUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lITjBZWEowYzBGME9pQkVZWFJsSUh3Z2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUdWNGNHbHlaWE5CZERvZ1JHRjBaU0I4SUhWdVpHVm1hVzVsWkN4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEZKdmJHVkJjM05wWjI1dFpXNTBQaUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11ZFhCa1lYUmxUMjVsS0dGemMybG5ibTFsYm5SSlpDd2dleUJ6ZEdGeWRITkJkQ3dnWlhod2FYSmxjMEYwSUgwc0lDNHVMbUZ5WjNNcE8xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCRlptWmxZM1JwZG1WUVpYSnRhWE56YVc5dVUyVnlkbWxqWlNCbGVIUmxibVJ6SUVKaGMyVk5iMlJsYkZObGNuWnBZMlU4UldabVpXTjBhWFpsVUdWeWJXbHpjMmx2Ymo0Z2UxeHVJQ0JqYjI1emRISjFZM1J2Y2lncElIdGNiaUFnSUNCemRYQmxjaWhGWm1abFkzUnBkbVZRWlhKdGFYTnphVzl1S1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUd4cGMzUkdiM0pRY21sdVkybHdZV3dvWEc0Z0lDQWdkR1Z1WVc1MFNXUTZJSE4wY21sdVp5eGNiaUFnSUNCd2NtbHVZMmx3WVd4SlpEb2djM1J5YVc1bkxGeHVJQ0FnSUM0dUxtRnlaM002SUdGdWVWdGRYRzRnSUNrNklGQnliMjFwYzJVOFJXWm1aV04wYVhabFVHVnliV2x6YzJsdmJsdGRQaUI3WEc0Z0lDQWdjbVYwZFhKdUlDaGhkMkZwZENCMGFHbHpMbXhwYzNSQmJHd29MaTR1WVhKbmN5a3BMbVpwYkhSbGNpaGNiaUFnSUNBZ0lDaHdaWEp0YVhOemFXOXVLU0E5UGx4dUlDQWdJQ0FnSUNCellXMWxWR1Z1WVc1MEtIQmxjbTFwYzNOcGIyNHVkR1Z1WVc1MExDQjBaVzVoYm5SSlpDa2dKaVpjYmlBZ0lDQWdJQ0FnY21Wc1lYUnBiMjVOWVhSamFDaHdaWEp0YVhOemFXOXVMbkJ5YVc1amFYQmhiQ3dnY0hKcGJtTnBjR0ZzU1dRcFhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUd4cGMzUkdiM0pUWTI5d1pTaGNiaUFnSUNCMFpXNWhiblJKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJSE5qYjNCbFMybHVaRG9nVTJOdmNHVkxhVzVrTEZ4dUlDQWdJSE5qYjNCbFNXUTZJSE4wY21sdVp5eGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBFVm1abVZqZEdsMlpWQmxjbTFwYzNOcGIyNWJYVDRnZTF4dUlDQWdJSEpsZEhWeWJpQW9ZWGRoYVhRZ2RHaHBjeTVzYVhOMFFXeHNLQzR1TG1GeVozTXBLUzVtYVd4MFpYSW9YRzRnSUNBZ0lDQW9jR1Z5YldsemMybHZiaWtnUFQ1Y2JpQWdJQ0FnSUNBZ2MyRnRaVlJsYm1GdWRDaHdaWEp0YVhOemFXOXVMblJsYm1GdWRDd2dkR1Z1WVc1MFNXUXBJQ1ltWEc0Z0lDQWdJQ0FnSUhCbGNtMXBjM05wYjI0dWMyTnZjR1ZMYVc1a0lEMDlQU0J6WTI5d1pVdHBibVFnSmlaY2JpQWdJQ0FnSUNBZ2NHVnliV2x6YzJsdmJpNXpZMjl3WlVsa0lEMDlQU0J6WTI5d1pVbGtYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHaGhjMUJsY20xcGMzTnBiMjRvWEc0Z0lDQWdkR1Z1WVc1MFNXUTZJSE4wY21sdVp5eGNiaUFnSUNCd2NtbHVZMmx3WVd4SlpEb2djM1J5YVc1bkxGeHVJQ0FnSUhCbGNtMXBjM05wYjI1TFpYazZJSE4wY21sdVp5eGNiaUFnSUNCelkyOXdaVXRwYm1RNklGTmpiM0JsUzJsdVpDeGNiaUFnSUNCelkyOXdaVWxrT2lCemRISnBibWNzWEc0Z0lDQWdZWFEvT2lCRVlYUmxMRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThZbTl2YkdWaGJqNGdlMXh1SUNBZ0lISmxkSFZ5YmlBb1lYZGhhWFFnZEdocGN5NXNhWE4wUm05eVVISnBibU5wY0dGc0tIUmxibUZ1ZEVsa0xDQndjbWx1WTJsd1lXeEpaQ3dnTGk0dVlYSm5jeWtwTG5OdmJXVW9YRzRnSUNBZ0lDQW9jR1Z5YldsemMybHZiaWtnUFQ1Y2JpQWdJQ0FnSUNBZ2NHVnliV2x6YzJsdmJpNXdaWEp0YVhOemFXOXVTMlY1SUQwOVBTQndaWEp0YVhOemFXOXVTMlY1SUNZbVhHNGdJQ0FnSUNBZ0lIQmxjbTFwYzNOcGIyNHVjMk52Y0dWTGFXNWtJRDA5UFNCelkyOXdaVXRwYm1RZ0ppWmNiaUFnSUNBZ0lDQWdjR1Z5YldsemMybHZiaTV6WTI5d1pVbGtJRDA5UFNCelkyOXdaVWxrSUNZbVhHNGdJQ0FnSUNBZ0lDZ2hjR1Z5YldsemMybHZiaTV6ZEdGeWRITkJkQ0I4ZkNBaFlYUWdmSHdnY0dWeWJXbHpjMmx2Ymk1emRHRnlkSE5CZENBOFBTQmhkQ2tnSmlaY2JpQWdJQ0FnSUNBZ0tDRndaWEp0YVhOemFXOXVMbVY0Y0dseVpYTkJkQ0I4ZkNBaFlYUWdmSHdnY0dWeWJXbHpjMmx2Ymk1bGVIQnBjbVZ6UVhRZ1BqMGdZWFFwWEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR1JsYkdWMFpVWnZjbEJ5YVc1amFYQmhiQ2hjYmlBZ0lDQjBaVzVoYm5SSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUhCeWFXNWphWEJoYkVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdZWGRoYVhRZ1pHVnNaWFJsVFdGdWVVSjVTV1FvWEc0Z0lDQWdJQ0IwYUdsekxGeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXNhWE4wUm05eVVISnBibU5wY0dGc0tIUmxibUZ1ZEVsa0xDQndjbWx1WTJsd1lXeEpaQ3dnTGk0dVlYSm5jeWtzWEc0Z0lDQWdJQ0F1TGk1aGNtZHpYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHUmxiR1YwWlVadmNsUmxibUZ1ZENoMFpXNWhiblJKWkRvZ2MzUnlhVzVuTENBdUxpNWhjbWR6T2lCaGJubGJYU2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHRjNZV2wwSUdSbGJHVjBaVTFoYm5sQ2VVbGtLRnh1SUNBZ0lDQWdkR2hwY3l4Y2JpQWdJQ0FnSUNoaGQyRnBkQ0IwYUdsekxteHBjM1JCYkd3b0xpNHVZWEpuY3lrcExtWnBiSFJsY2lnb2NHVnliV2x6YzJsdmJpa2dQVDVjYmlBZ0lDQWdJQ0FnYzJGdFpWUmxibUZ1ZENod1pYSnRhWE56YVc5dUxuUmxibUZ1ZEN3Z2RHVnVZVzUwU1dRcFhHNGdJQ0FnSUNBcExGeHVJQ0FnSUNBZ0xpNHVZWEpuYzF4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCQWRISmhibk5oWTNScGIyNWhiQ2dwWEc0Z0lHRnplVzVqSUhKbFluVnBiR1JHYjNKUWNtbHVZMmx3WVd3b1hHNGdJQ0FnZEdWdVlXNTBTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQndjbWx1WTJsd1lXeEpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThSV1ptWldOMGFYWmxVR1Z5YldsemMybHZibHRkUGlCN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1a1pXeGxkR1ZHYjNKUWNtbHVZMmx3WVd3b2RHVnVZVzUwU1dRc0lIQnlhVzVqYVhCaGJFbGtMQ0F1TGk1aGNtZHpLVHRjYmx4dUlDQWdJR052Ym5OMElISnZiR1ZCYzNOcFoyNXRaVzUwVTJWeWRtbGpaU0E5SUc1bGR5QlNiMnhsUVhOemFXZHViV1Z1ZEZObGNuWnBZMlVvS1R0Y2JpQWdJQ0JqYjI1emRDQnliMnhsVUdWeWJXbHpjMmx2YmxObGNuWnBZMlVnUFNCdVpYY2dVbTlzWlZCbGNtMXBjM05wYjI1VFpYSjJhV05sS0NrN1hHNGdJQ0FnWTI5dWMzUWdjR1Z5YldsemMybHZibE5sY25acFkyVWdQU0J1WlhjZ1VHVnliV2x6YzJsdmJsTmxjblpwWTJVb0tUdGNiaUFnSUNCamIyNXpkQ0JuY205MWNFMWxiV0psY25Ob2FYQlRaWEoyYVdObElEMGdibVYzSUVkeWIzVndUV1Z0WW1WeWMyaHBjRk5sY25acFkyVW9LVHRjYmlBZ0lDQmpiMjV6ZENCd2NtbHVZMmx3WVd4VFpYSjJhV05sSUQwZ2JtVjNJRkJ5YVc1amFYQmhiRk5sY25acFkyVW9LVHRjYmlBZ0lDQmpiMjV6ZENCdmNtZFZibWwwUTJ4dmMzVnlaVk5sY25acFkyVWdQU0J1WlhjZ1QzSm5WVzVwZEVOc2IzTjFjbVZUWlhKMmFXTmxLQ2s3WEc0Z0lDQWdZMjl1YzNRZ2FXNW9aWEpwZEdGdVkyVkNiRzlqYTFObGNuWnBZMlVnUFNCdVpYY2dTVzVvWlhKcGRHRnVZMlZDYkc5amExTmxjblpwWTJVb0tUdGNibHh1SUNBZ0lHTnZibk4wSUcxaGRHVnlhV0ZzYVhwbFpEb2dSV1ptWldOMGFYWmxVR1Z5YldsemMybHZibE51WVhCemFHOTBXMTBnUFNCYlhUdGNiaUFnSUNCamIyNXpkQ0J6YjNWeVkyVkJjM05wWjI1dFpXNTBjeUE5WEc0Z0lDQWdJQ0JoZDJGcGRDQnliMnhsUVhOemFXZHViV1Z1ZEZObGNuWnBZMlV1YkdsemRGQnlhVzVqYVhCaGJFRnpjMmxuYm0xbGJuUnpLRnh1SUNBZ0lDQWdJQ0IwWlc1aGJuUkpaQ3hjYmlBZ0lDQWdJQ0FnY0hKcGJtTnBjR0ZzU1dRc1hHNGdJQ0FnSUNBZ0lDNHVMbUZ5WjNOY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnWTI5dWMzUWdaM0p2ZFhCTlpXMWlaWEp6YUdsd2N5QTlJR0YzWVdsMElHZHliM1Z3VFdWdFltVnljMmhwY0ZObGNuWnBZMlV1YkdsemRGQnlhVzVqYVhCaGJFZHliM1Z3Y3loY2JpQWdJQ0FnSUhCeWFXNWphWEJoYkVsa0xGeHVJQ0FnSUNBZ0xpNHVZWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ1ozSnZkWEJCYzNOcFoyNXRaVzUwY3lBOUlDaGNiaUFnSUNBZ0lHRjNZV2wwSUZCeWIyMXBjMlV1WVd4c0tGeHVJQ0FnSUNBZ0lDQm5jbTkxY0UxbGJXSmxjbk5vYVhCekxtMWhjQ2hoYzNsdVl5QW9iV1Z0WW1WeWMyaHBjQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHZHliM1Z3VUhKcGJtTnBjR0ZzSUQwZ1lYZGhhWFFnY0hKcGJtTnBjR0ZzVTJWeWRtbGpaUzVuWlhSSGNtOTFjRkJ5YVc1amFYQmhiQ2hjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxiR0YwYVc5dVNXUW9iV1Z0WW1WeWMyaHBjQzUwWlc1aGJuUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVnNZWFJwYjI1SlpDaHRaVzFpWlhKemFHbHdMbWR5YjNWd0tTeGNiaUFnSUNBZ0lDQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnliMnhsUVhOemFXZHViV1Z1ZEZObGNuWnBZMlV1YkdsemRGQnlhVzVqYVhCaGJFRnpjMmxuYm0xbGJuUnpLRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHVnVZVzUwU1dRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JuY205MWNGQnlhVzVqYVhCaGJDNXBaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDNHVMbUZ5WjNOY2JpQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0I5S1Z4dUlDQWdJQ0FnS1Z4dUlDQWdJQ2t1Wm14aGRDZ3BPMXh1WEc0Z0lDQWdZMjl1YzNRZ1lYTnphV2R1YldWdWRITWdQU0JiTGk0dWMyOTFjbU5sUVhOemFXZHViV1Z1ZEhNc0lDNHVMbWR5YjNWd1FYTnphV2R1YldWdWRITmRPMXh1SUNBZ0lHWnZjaUFvWTI5dWMzUWdZWE56YVdkdWJXVnVkQ0J2WmlCaGMzTnBaMjV0Wlc1MGN5a2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2NtOXNaVkJsY20xcGMzTnBiMjV6SUQwZ1lYZGhhWFFnY205c1pWQmxjbTFwYzNOcGIyNVRaWEoyYVdObExteHBjM1JTYjJ4bFVHVnliV2x6YzJsdmJuTW9YRzRnSUNBZ0lDQWdJSEpsYkdGMGFXOXVTV1FvWVhOemFXZHViV1Z1ZEM1eWIyeGxLU3hjYmlBZ0lDQWdJQ0FnTGk0dVlYSm5jMXh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJR052Ym5OMElIQmxjbTFwYzNOcGIyNXpJRDBnWVhkaGFYUWdVSEp2YldselpTNWhiR3dvWEc0Z0lDQWdJQ0FnSUhKdmJHVlFaWEp0YVhOemFXOXVjeTV0WVhBb1lYTjVibU1nS0hKdmJHVlFaWEp0YVhOemFXOXVLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2NHVnliV2x6YzJsdmJpQTlJR0YzWVdsMElIQmxjbTFwYzNOcGIyNVRaWEoyYVdObExtWnBibVJQYm1WQ2VTaGNiaUFnSUNBZ0lDQWdJQ0FnSUZ3aWFXUmNJaXhjYmlBZ0lDQWdJQ0FnSUNBZ0lISmxiR0YwYVc5dVNXUW9jbTlzWlZCbGNtMXBjM05wYjI0dWNHVnliV2x6YzJsdmJpa2dZWE1nYm1WMlpYSXNYRzRnSUNBZ0lDQWdJQ0FnSUNBdUxpNWhjbWR6WEc0Z0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdjR1Z5YldsemMybHZianRjYmlBZ0lDQWdJQ0FnZlNsY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCbWIzSWdLR052Ym5OMElIQmxjbTFwYzNOcGIyNGdiMllnY0dWeWJXbHpjMmx2Ym5NcElIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGd1pYSnRhWE56YVc5dUtTQmpiMjUwYVc1MVpUdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ2MyTnZjR1ZMYVc1a0lEMGdZWE56YVdkdWJXVnVkQzV6WTI5d1pVdHBibVE3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE5qYjNCbFNXUWdQU0JoYzNOcFoyNXRaVzUwTG5OamIzQmxTV1E3WEc0Z0lDQWdJQ0FnSUdOdmJuTjBJSE5qYjNCbGN6b2dRWEp5WVhrOGV5QnpZMjl3WlV0cGJtUTZJRk5qYjNCbFMybHVaRHNnYzJOdmNHVkpaRG9nYzNSeWFXNW5JSDArSUQwZ1cxMDdYRzRnSUNBZ0lDQWdJR2xtSUNoelkyOXdaVXRwYm1RZ1BUMDlJRk5qYjNCbFMybHVaQzVVWlc1aGJuUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCelkyOXdaWE11Y0hWemFDaDdJSE5qYjNCbFMybHVaQ3dnYzJOdmNHVkpaRG9nZEdWdVlXNTBTV1FnZlNrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9jMk52Y0dWTGFXNWtJRDA5UFNCVFkyOXdaVXRwYm1RdVVtVnpiM1Z5WTJVcElIdGNiaUFnSUNBZ0lDQWdJQ0J6WTI5d1pYTXVjSFZ6YUNoN0lITmpiM0JsUzJsdVpDd2djMk52Y0dWSlpDQjlLVHRjYmlBZ0lDQWdJQ0FnZlNCbGJITmxJR2xtSUNoelkyOXdaVXRwYm1RZ1BUMDlJRk5qYjNCbFMybHVaQzVQY21kVmJtbDBJQ1ltSUNGaGMzTnBaMjV0Wlc1MExtbHVhR1Z5YVhSRWIzZHVLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2MyTnZjR1Z6TG5CMWMyZ29leUJ6WTI5d1pVdHBibVFzSUhOamIzQmxTV1FnZlNrN1hHNGdJQ0FnSUNBZ0lIMGdaV3h6WlNCcFppQW9jMk52Y0dWTGFXNWtJRDA5UFNCVFkyOXdaVXRwYm1RdVQzSm5WVzVwZENBbUppQmhjM05wWjI1dFpXNTBMbWx1YUdWeWFYUkViM2R1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ1pHVnpZMlZ1WkdGdWRITWdQU0JoZDJGcGRDQnZjbWRWYm1sMFEyeHZjM1Z5WlZObGNuWnBZMlV1YkdsemRFUmxjMk5sYm1SaGJuUnpLRnh1SUNBZ0lDQWdJQ0FnSUNBZ2RHVnVZVzUwU1dRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6WTI5d1pVbGtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0xpNHVZWEpuYzF4dUlDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQ0FnYzJOdmNHVnpMbkIxYzJnb1hHNGdJQ0FnSUNBZ0lDQWdJQ0F1TGk1a1pYTmpaVzVrWVc1MGN5NXRZWEFvS0hKdmR5a2dQVDRnS0h0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJOdmNHVkxhVzVrTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0J6WTI5d1pVbGtPaUJ5Wld4aGRHbHZia2xrS0hKdmR5NWtaWE5qWlc1a1lXNTBLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIMHBLVnh1SUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lIMWNibHh1SUNBZ0lDQWdJQ0JtYjNJZ0tHTnZibk4wSUhOamIzQmxaQ0J2WmlCelkyOXdaWE1wSUh0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvWEc0Z0lDQWdJQ0FnSUNBZ0lDQnpZMjl3WlV0cGJtUWdQVDA5SUZOamIzQmxTMmx1WkM1UGNtZFZibWwwSUNZbVhHNGdJQ0FnSUNBZ0lDQWdJQ0JoYzNOcFoyNXRaVzUwTG1sdWFHVnlhWFJFYjNkdUlDWW1YRzRnSUNBZ0lDQWdJQ0FnSUNCelkyOXdaV1F1YzJOdmNHVkpaQ0FoUFQwZ2MyTnZjR1ZKWkNBbUpseHVJQ0FnSUNBZ0lDQWdJQ0FnS0dGM1lXbDBJR2x1YUdWeWFYUmhibU5sUW14dlkydFRaWEoyYVdObExtTmhkR1ZuYjNKNVFteHZZMnRsWkVadmNrRnVZMlZ6ZEc5eUtGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCMFpXNWhiblJKWkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnYzJOdmNHVmtMbk5qYjNCbFNXUXNYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lITmpiM0JsU1dRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhCbGNtMXBjM05wYjI0dVkyRjBaV2R2Y25rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQWdJQ0FnSUNBZ0lDa3BYRzRnSUNBZ0lDQWdJQ0FnS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lDQWdiV0YwWlhKcFlXeHBlbVZrTG5CMWMyZ29lMXh1SUNBZ0lDQWdJQ0FnSUNBZ2FXUTZJR2xrS0Nrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwWlc1aGJuUkpaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lIQnlhVzVqYVhCaGJFbGtMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2NHVnliV2x6YzJsdmJrdGxlVG9nY0dWeWJXbHpjMmx2Ymk1clpYa3NYRzRnSUNBZ0lDQWdJQ0FnSUNCelkyOXdaVXRwYm1RNklITmpiM0JsWkM1elkyOXdaVXRwYm1Rc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6WTI5d1pVbGtPaUJ6WTI5d1pXUXVjMk52Y0dWSlpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhOdmRYSmpaVXRwYm1RNklGd2ljbTlzWlY5aGMzTnBaMjV0Wlc1MFhDSXNYRzRnSUNBZ0lDQWdJQ0FnSUNCemIzVnlZMlZKWkRvZ1lYTnphV2R1YldWdWRDNXBaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lITjBZWEowYzBGME9pQmhjM05wWjI1dFpXNTBMbk4wWVhKMGMwRjBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ1pYaHdhWEpsYzBGME9pQmhjM05wWjI1dFpXNTBMbVY0Y0dseVpYTkJkQ3hjYmlBZ0lDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUdOeVpXRjBaV1FnUFNCaGQyRnBkQ0JRY205dGFYTmxMbUZzYkNoY2JpQWdJQ0FnSUcxaGRHVnlhV0ZzYVhwbFpDNXRZWEFvS0hCbGNtMXBjM05wYjI0cElEMCtYRzRnSUNBZ0lDQWdJSFJvYVhNdVkzSmxZWFJsVDI1bEtGeHVJQ0FnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbGtPaUJ3WlhKdGFYTnphVzl1TG1sa0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdWdVlXNTBPaUJ3WlhKdGFYTnphVzl1TG5SbGJtRnVkRWxrTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjSEpwYm1OcGNHRnNPaUJ3WlhKdGFYTnphVzl1TG5CeWFXNWphWEJoYkVsa0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnY0dWeWJXbHpjMmx2Ymt0bGVUb2djR1Z5YldsemMybHZiaTV3WlhKdGFYTnphVzl1UzJWNUxGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzJOdmNHVkxhVzVrT2lCd1pYSnRhWE56YVc5dUxuTmpiM0JsUzJsdVpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhOamIzQmxTV1E2SUhCbGNtMXBjM05wYjI0dWMyTnZjR1ZKWkN4Y2JpQWdJQ0FnSUNBZ0lDQWdJSE52ZFhKalpVdHBibVE2SUhCbGNtMXBjM05wYjI0dWMyOTFjbU5sUzJsdVpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUhOdmRYSmpaVWxrT2lCd1pYSnRhWE56YVc5dUxuTnZkWEpqWlVsa0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnYzNSaGNuUnpRWFE2SUhCbGNtMXBjM05wYjI0dWMzUmhjblJ6UVhRc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JsZUhCcGNtVnpRWFE2SUhCbGNtMXBjM05wYjI0dVpYaHdhWEpsYzBGMExGeHVJQ0FnSUNBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0FnSUNBZ0xpNHVZWEpuYzF4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBcFhHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdZM0psWVhSbFpEdGNiaUFnZlZ4dVhHNGdJRUIwY21GdWMyRmpkR2x2Ym1Gc0tDbGNiaUFnWVhONWJtTWdjbVZpZFdsc1pFWnZjbFJsYm1GdWRDaDBaVzVoYm5SSlpEb2djM1J5YVc1bkxDQXVMaTVoY21kek9pQmhibmxiWFNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElIQnlhVzVqYVhCaGJITWdQU0FvWVhkaGFYUWdibVYzSUZCeWFXNWphWEJoYkZObGNuWnBZMlVvS1M1c2FYTjBRV3hzS0M0dUxtRnlaM01wS1M1bWFXeDBaWElvWEc0Z0lDQWdJQ0FvY0hKcGJtTnBjR0ZzS1NBOVBpQnpZVzFsVkdWdVlXNTBLSEJ5YVc1amFYQmhiQzUwWlc1aGJuUXNJSFJsYm1GdWRFbGtLVnh1SUNBZ0lDazdYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQndjbWx1WTJsd1lXd2diMllnY0hKcGJtTnBjR0ZzY3lrZ2UxeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXlaV0oxYVd4a1JtOXlVSEpwYm1OcGNHRnNLSFJsYm1GdWRFbGtMQ0J3Y21sdVkybHdZV3d1YVdRc0lDNHVMbUZ5WjNNcE8xeHVJQ0FnSUgxY2JpQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVUhKdmRHVmpkR1ZrVW1WemIzVnlZMlZUWlhKMmFXTmxJR1Y0ZEdWdVpITWdRbUZ6WlUxdlpHVnNVMlZ5ZG1salpUeFFjbTkwWldOMFpXUlNaWE52ZFhKalpUNGdlMXh1SUNCamIyNXpkSEoxWTNSdmNpZ3BJSHRjYmlBZ0lDQnpkWEJsY2loUWNtOTBaV04wWldSU1pYTnZkWEpqWlNrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCeVpXZHBjM1JsY2xKbGMyOTFjbU5sS0Z4dUlDQWdJR2x1Y0hWME9pQlNaV2RwYzNSbGNsSmxjMjkxY21ObFNXNXdkWFFzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhRY205MFpXTjBaV1JTWlhOdmRYSmpaVDRnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG1OeVpXRjBaVTl1WlNoY2JpQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ2FXUTZJR2xrS0Nrc1hHNGdJQ0FnSUNBZ0lIUmxibUZ1ZERvZ2FXNXdkWFF1ZEdWdVlXNTBTV1FzWEc0Z0lDQWdJQ0FnSUc5eVoxVnVhWFE2SUdsdWNIVjBMbTl5WjFWdWFYUkpaQ3hjYmlBZ0lDQWdJQ0FnY21WemIzVnlZMlZVZVhCbE9pQnBibkIxZEM1eVpYTnZkWEpqWlZSNWNHVXNYRzRnSUNBZ0lDQWdJSEpsYzI5MWNtTmxTV1E2SUdsdWNIVjBMbkpsYzI5MWNtTmxTV1FzWEc0Z0lDQWdJQ0FnSUhacGMybGlhV3hwZEhrNklHbHVjSFYwTG5acGMybGlhV3hwZEhrc1hHNGdJQ0FnSUNBZ0lHOTNibVZ5T2lCcGJuQjFkQzV2ZDI1bGNsQnlhVzVqYVhCaGJFbGtMRnh1SUNBZ0lDQWdJQ0J6Wlc1emFYUnBkbWwwZVRvZ2FXNXdkWFF1YzJWdWMybDBhWFpwZEhrc1hHNGdJQ0FnSUNBZ0lHMWxkR0ZrWVhSaE9pQnBibkIxZEM1dFpYUmhaR0YwWVN4Y2JpQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBdUxpNWhjbWR6WEc0Z0lDQWdLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR2RsZEVKNVJHOXRZV2x1VW1WemIzVnlZMlVvWEc0Z0lDQWdkR1Z1WVc1MFNXUTZJSE4wY21sdVp5eGNiaUFnSUNCeVpYTnZkWEpqWlZSNWNHVTZJSE4wY21sdVp5eGNiaUFnSUNCeVpYTnZkWEpqWlVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4UWNtOTBaV04wWldSU1pYTnZkWEpqWlNCOElIVnVaR1ZtYVc1bFpENGdlMXh1SUNBZ0lISmxkSFZ5YmlBb1lYZGhhWFFnZEdocGN5NXNhWE4wUVd4c0tDNHVMbUZ5WjNNcEtTNW1hVzVrS0Z4dUlDQWdJQ0FnS0hKbGMyOTFjbU5sS1NBOVBseHVJQ0FnSUNBZ0lDQnpZVzFsVkdWdVlXNTBLSEpsYzI5MWNtTmxMblJsYm1GdWRDd2dkR1Z1WVc1MFNXUXBJQ1ltWEc0Z0lDQWdJQ0FnSUhKbGMyOTFjbU5sTG5KbGMyOTFjbU5sVkhsd1pTQTlQVDBnY21WemIzVnlZMlZVZVhCbElDWW1YRzRnSUNBZ0lDQWdJSEpsYzI5MWNtTmxMbkpsYzI5MWNtTmxTV1FnUFQwOUlISmxjMjkxY21ObFNXUmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2JXOTJaVkpsYzI5MWNtTmxWRzlQY21kVmJtbDBLRnh1SUNBZ0lIQnliM1JsWTNSbFpGSmxjMjkxY21ObFNXUTZJSE4wY21sdVp5eGNiaUFnSUNCdmNtZFZibWwwU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEZCeWIzUmxZM1JsWkZKbGMyOTFjbU5sUGlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWRYQmtZWFJsVDI1bEtIQnliM1JsWTNSbFpGSmxjMjkxY21ObFNXUXNJSHNnYjNKblZXNXBkRG9nYjNKblZXNXBkRWxrSUgwc0lDNHVMbUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2MyVjBWbWx6YVdKcGJHbDBlU2hjYmlBZ0lDQndjbTkwWldOMFpXUlNaWE52ZFhKalpVbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2RtbHphV0pwYkdsMGVUb2dVbVZ6YjNWeVkyVldhWE5wWW1sc2FYUjVMRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThVSEp2ZEdWamRHVmtVbVZ6YjNWeVkyVStJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTUxY0dSaGRHVlBibVVvY0hKdmRHVmpkR1ZrVW1WemIzVnlZMlZKWkN3Z2V5QjJhWE5wWW1sc2FYUjVJSDBzSUM0dUxtRnlaM01wTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nZEhKaGJuTm1aWEpQZDI1bGNuTm9hWEFvWEc0Z0lDQWdjSEp2ZEdWamRHVmtVbVZ6YjNWeVkyVkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lHOTNibVZ5VUhKcGJtTnBjR0ZzU1dRNklITjBjbWx1WnlCOElIVnVaR1ZtYVc1bFpDeGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBGQnliM1JsWTNSbFpGSmxjMjkxY21ObFBpQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVkWEJrWVhSbFQyNWxLRnh1SUNBZ0lDQWdjSEp2ZEdWamRHVmtVbVZ6YjNWeVkyVkpaQ3hjYmlBZ0lDQWdJSHNnYjNkdVpYSTZJRzkzYm1WeVVISnBibU5wY0dGc1NXUWdmU3hjYmlBZ0lDQWdJQzR1TG1GeVozTmNiaUFnSUNBcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2JHbHpkRTl5WjFWdWFYUlNaWE52ZFhKalpYTW9YRzRnSUNBZ2IzSm5WVzVwZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4UWNtOTBaV04wWldSU1pYTnZkWEpqWlZ0ZFBpQjdYRzRnSUNBZ2NtVjBkWEp1SUNoaGQyRnBkQ0IwYUdsekxteHBjM1JCYkd3b0xpNHVZWEpuY3lrcExtWnBiSFJsY2lnb2NtVnpiM1Z5WTJVcElEMCtYRzRnSUNBZ0lDQnlaV3hoZEdsdmJrMWhkR05vS0hKbGMyOTFjbU5sTG05eVoxVnVhWFFzSUc5eVoxVnVhWFJKWkNsY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nYkdsemRGUmxibUZ1ZEZKbGMyOTFjbU5sY3loY2JpQWdJQ0IwWlc1aGJuUkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThVSEp2ZEdWamRHVmtVbVZ6YjNWeVkyVmJYVDRnZTF4dUlDQWdJSEpsZEhWeWJpQW9ZWGRoYVhRZ2RHaHBjeTVzYVhOMFFXeHNLQzR1TG1GeVozTXBLUzVtYVd4MFpYSW9LSEpsYzI5MWNtTmxLU0E5UGx4dUlDQWdJQ0FnYzJGdFpWUmxibUZ1ZENoeVpYTnZkWEpqWlM1MFpXNWhiblFzSUhSbGJtRnVkRWxrS1Z4dUlDQWdJQ2s3WEc0Z0lIMWNibjFjYmx4dVpYaHdiM0owSUdOc1lYTnpJRkpsYzI5MWNtTmxSM0poYm5SVFpYSjJhV05sSUdWNGRHVnVaSE1nUW1GelpVMXZaR1ZzVTJWeWRtbGpaVHhTWlhOdmRYSmpaVWR5WVc1MFBpQjdYRzRnSUdOdmJuTjBjblZqZEc5eUtDa2dlMXh1SUNBZ0lITjFjR1Z5S0ZKbGMyOTFjbU5sUjNKaGJuUXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdaM0poYm5SU1pYTnZkWEpqWlNoY2JpQWdJQ0JwYm5CMWREb2dSM0poYm5SU1pYTnZkWEpqWlVsdWNIVjBMRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThVbVZ6YjNWeVkyVkhjbUZ1ZEQ0Z2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxtTnlaV0YwWlU5dVpTaGNiaUFnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdhV1E2SUdsa0tDa3NYRzRnSUNBZ0lDQWdJSFJsYm1GdWREb2dhVzV3ZFhRdWRHVnVZVzUwU1dRc1hHNGdJQ0FnSUNBZ0lISmxjMjkxY21ObE9pQnBibkIxZEM1eVpYTnZkWEpqWlVsa0xGeHVJQ0FnSUNBZ0lDQndjbWx1WTJsd1lXdzZJR2x1Y0hWMExuQnlhVzVqYVhCaGJFbGtMRnh1SUNBZ0lDQWdJQ0J3WlhKdGFYTnphVzl1UzJWNU9pQnBibkIxZEM1d1pYSnRhWE56YVc5dVMyVjVMRnh1SUNBZ0lDQWdJQ0J6ZEdGeWRITkJkRG9nYVc1d2RYUXVjM1JoY25SelFYUXNYRzRnSUNBZ0lDQWdJR1Y0Y0dseVpYTkJkRG9nYVc1d2RYUXVaWGh3YVhKbGMwRjBMRnh1SUNBZ0lDQWdJQ0JqYjI1a2FYUnBiMjV6T2lCcGJuQjFkQzVqYjI1a2FYUnBiMjV6TEZ4dUlDQWdJQ0FnSUNCamNtVmhkR1ZrUW5rNklHbHVjSFYwTG1OeVpXRjBaV1JDZVZCeWFXNWphWEJoYkVsa0xGeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDNHVMbUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nY21WMmIydGxSM0poYm5Rb1ozSmhiblJKWkRvZ2MzUnlhVzVuTENBdUxpNWhjbWR6T2lCaGJubGJYU2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXVaR1ZzWlhSbFFubEpaQ2huY21GdWRFbGtMQ0F1TGk1aGNtZHpLVHRjYmlBZ2ZWeHVYRzRnSUdGemVXNWpJR3hwYzNSU1pYTnZkWEpqWlVkeVlXNTBjeWhjYmlBZ0lDQndjbTkwWldOMFpXUlNaWE52ZFhKalpVbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ0xpNHVZWEpuY3pvZ1lXNTVXMTFjYmlBZ0tUb2dVSEp2YldselpUeFNaWE52ZFhKalpVZHlZVzUwVzEwK0lIdGNiaUFnSUNCeVpYUjFjbTRnS0dGM1lXbDBJSFJvYVhNdWJHbHpkRUZzYkNndUxpNWhjbWR6S1NrdVptbHNkR1Z5S0NobmNtRnVkQ2tnUFQ1Y2JpQWdJQ0FnSUhKbGJHRjBhVzl1VFdGMFkyZ29aM0poYm5RdWNtVnpiM1Z5WTJVc0lIQnliM1JsWTNSbFpGSmxjMjkxY21ObFNXUXBYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHeHBjM1JRY21sdVkybHdZV3hIY21GdWRITW9YRzRnSUNBZ2RHVnVZVzUwU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0J3Y21sdVkybHdZV3hKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4VW1WemIzVnlZMlZIY21GdWRGdGRQaUI3WEc0Z0lDQWdjbVYwZFhKdUlDaGhkMkZwZENCMGFHbHpMbXhwYzNSQmJHd29MaTR1WVhKbmN5a3BMbVpwYkhSbGNpaGNiaUFnSUNBZ0lDaG5jbUZ1ZENrZ1BUNWNiaUFnSUNBZ0lDQWdjMkZ0WlZSbGJtRnVkQ2huY21GdWRDNTBaVzVoYm5Rc0lIUmxibUZ1ZEVsa0tTQW1KbHh1SUNBZ0lDQWdJQ0J5Wld4aGRHbHZiazFoZEdOb0tHZHlZVzUwTG5CeWFXNWphWEJoYkN3Z2NISnBibU5wY0dGc1NXUXBYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJR0Z6ZVc1aklHaGhjMGR5WVc1MEtGeHVJQ0FnSUhSbGJtRnVkRWxrT2lCemRISnBibWNzWEc0Z0lDQWdjSEpwYm1OcGNHRnNTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQndjbTkwWldOMFpXUlNaWE52ZFhKalpVbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2NHVnliV2x6YzJsdmJrdGxlVG9nYzNSeWFXNW5MRnh1SUNBZ0lHRjBQem9nUkdGMFpTeGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBHSnZiMnhsWVc0K0lIdGNiaUFnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2FYTjBVSEpwYm1OcGNHRnNSM0poYm5SektIUmxibUZ1ZEVsa0xDQndjbWx1WTJsd1lXeEpaQ3dnTGk0dVlYSm5jeWxjYmlBZ0lDQXBMbk52YldVb1hHNGdJQ0FnSUNBb1ozSmhiblFwSUQwK1hHNGdJQ0FnSUNBZ0lISmxiR0YwYVc5dVRXRjBZMmdvWjNKaGJuUXVjbVZ6YjNWeVkyVXNJSEJ5YjNSbFkzUmxaRkpsYzI5MWNtTmxTV1FwSUNZbVhHNGdJQ0FnSUNBZ0lHZHlZVzUwTG5CbGNtMXBjM05wYjI1TFpYa2dQVDA5SUhCbGNtMXBjM05wYjI1TFpYa2dKaVpjYmlBZ0lDQWdJQ0FnS0NGbmNtRnVkQzV6ZEdGeWRITkJkQ0I4ZkNBaFlYUWdmSHdnWjNKaGJuUXVjM1JoY25SelFYUWdQRDBnWVhRcElDWW1YRzRnSUNBZ0lDQWdJQ2doWjNKaGJuUXVaWGh3YVhKbGMwRjBJSHg4SUNGaGRDQjhmQ0JuY21GdWRDNWxlSEJwY21WelFYUWdQajBnWVhRcFhHNGdJQ0FnS1R0Y2JpQWdmVnh1WEc0Z0lHRnplVzVqSUdSbGJHVjBaVUZzYkVadmNsSmxjMjkxY21ObEtGeHVJQ0FnSUhCeWIzUmxZM1JsWkZKbGMyOTFjbU5sU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmhkMkZwZENCa1pXeGxkR1ZOWVc1NVFubEpaQ2hjYmlBZ0lDQWdJSFJvYVhNc1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHBjM1JTWlhOdmRYSmpaVWR5WVc1MGN5aHdjbTkwWldOMFpXUlNaWE52ZFhKalpVbGtMQ0F1TGk1aGNtZHpLU3hjYmlBZ0lDQWdJQzR1TG1GeVozTmNiaUFnSUNBcE8xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCU1pYTnZkWEpqWlV4cFptVmplV05zWlZObGNuWnBZMlVnZTF4dUlDQmhjM2x1WXlCMWJuSmxaMmx6ZEdWeVVtVnpiM1Z5WTJVb1hHNGdJQ0FnY0hKdmRHVmpkR1ZrVW1WemIzVnlZMlZKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHRjNZV2wwSUc1bGR5QlNaWE52ZFhKalpVZHlZVzUwVTJWeWRtbGpaU2dwTG1SbGJHVjBaVUZzYkVadmNsSmxjMjkxY21ObEtGeHVJQ0FnSUNBZ2NISnZkR1ZqZEdWa1VtVnpiM1Z5WTJWSlpDeGNiaUFnSUNBZ0lDNHVMbUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQWdJR0YzWVdsMElHNWxkeUJRY205MFpXTjBaV1JTWlhOdmRYSmpaVk5sY25acFkyVW9LUzVrWld4bGRHVkNlVWxrS0Z4dUlDQWdJQ0FnY0hKdmRHVmpkR1ZrVW1WemIzVnlZMlZKWkN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdjbVZ6YjJ4MlpWSmxjMjkxY21ObFUyTnZjR1VvWEc0Z0lDQWdjSEp2ZEdWamRHVmtVbVZ6YjNWeVkyVkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThlMXh1SUNBZ0lIUmxibUZ1ZEVsa09pQnpkSEpwYm1jN1hHNGdJQ0FnYjNKblZXNXBkRWxrT2lCemRISnBibWM3WEc0Z0lDQWdkbWx6YVdKcGJHbDBlVG9nVW1WemIzVnlZMlZXYVhOcFltbHNhWFI1TzF4dUlDQWdJRzkzYm1WeVVISnBibU5wY0dGc1NXUS9PaUJ6ZEhKcGJtYzdYRzRnSUgwK0lIdGNiaUFnSUNCamIyNXpkQ0J5WlhOdmRYSmpaU0E5SUdGM1lXbDBJRzVsZHlCUWNtOTBaV04wWldSU1pYTnZkWEpqWlZObGNuWnBZMlVvS1M1blpYUkNlVWxrS0Z4dUlDQWdJQ0FnY0hKdmRHVmpkR1ZrVW1WemIzVnlZMlZKWkN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCMFpXNWhiblJKWkRvZ2NtVnNZWFJwYjI1SlpDaHlaWE52ZFhKalpTNTBaVzVoYm5RcExGeHVJQ0FnSUNBZ2IzSm5WVzVwZEVsa09pQnlaV3hoZEdsdmJrbGtLSEpsYzI5MWNtTmxMbTl5WjFWdWFYUXBMRnh1SUNBZ0lDQWdkbWx6YVdKcGJHbDBlVG9nY21WemIzVnlZMlV1ZG1semFXSnBiR2wwZVN4Y2JpQWdJQ0FnSUc5M2JtVnlVSEpwYm1OcGNHRnNTV1E2SUhKbGMyOTFjbU5sTG05M2JtVnlJRDhnY21Wc1lYUnBiMjVKWkNoeVpYTnZkWEpqWlM1dmQyNWxjaWtnT2lCMWJtUmxabWx1WldRc1hHNGdJQ0FnZlR0Y2JpQWdmVnh1ZlZ4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVTNSdmNtRm5aVUpwYm1ScGJtZFRaWEoyYVdObElHVjRkR1Z1WkhNZ1FtRnpaVTF2WkdWc1UyVnlkbWxqWlR4VGRHOXlZV2RsUW1sdVpHbHVaejRnZTF4dUlDQmpiMjV6ZEhKMVkzUnZjaWdwSUh0Y2JpQWdJQ0J6ZFhCbGNpaFRkRzl5WVdkbFFtbHVaR2x1WnlrN1hHNGdJSDFjYmx4dUlDQmhjM2x1WXlCamNtVmhkR1ZDYVc1a2FXNW5LRnh1SUNBZ0lHbHVjSFYwT2lCRGNtVmhkR1ZUZEc5eVlXZGxRbWx1WkdsdVowbHVjSFYwTEZ4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4VTNSdmNtRm5aVUpwYm1ScGJtYytJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVqY21WaGRHVlBibVVvWEc0Z0lDQWdJQ0I3WEc0Z0lDQWdJQ0FnSUdsa09pQnBaQ2dwTEZ4dUlDQWdJQ0FnSUNCMFpXNWhiblE2SUdsdWNIVjBMblJsYm1GdWRFbGtMRnh1SUNBZ0lDQWdJQ0J6ZEc5eVlXZGxTMmx1WkRvZ2FXNXdkWFF1YzNSdmNtRm5aVXRwYm1Rc1hHNGdJQ0FnSUNBZ0lHSnBibVJwYm1kTGFXNWtPaUJwYm5CMWRDNWlhVzVrYVc1blMybHVaQ3hjYmlBZ0lDQWdJQ0FnWW1sdVpHbHVaMHRsZVRvZ2FXNXdkWFF1WW1sdVpHbHVaMHRsZVN4Y2JpQWdJQ0FnSUNBZ2NtVm5hVzl1T2lCcGJuQjFkQzV5WldkcGIyNHNYRzRnSUNBZ0lDQWdJR052Ym1acFp6b2dhVzV3ZFhRdVkyOXVabWxuTEZ4dUlDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnWVhONWJtTWdiR2x6ZEZSbGJtRnVkRUpwYm1ScGJtZHpLRnh1SUNBZ0lIUmxibUZ1ZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnTGk0dVlYSm5jem9nWVc1NVcxMWNiaUFnS1RvZ1VISnZiV2x6WlR4VGRHOXlZV2RsUW1sdVpHbHVaMXRkUGlCN1hHNGdJQ0FnY21WMGRYSnVJQ2hoZDJGcGRDQjBhR2x6TG14cGMzUkJiR3dvTGk0dVlYSm5jeWtwTG1acGJIUmxjaWdvWW1sdVpHbHVaeWtnUFQ1Y2JpQWdJQ0FnSUhOaGJXVlVaVzVoYm5Rb1ltbHVaR2x1Wnk1MFpXNWhiblFzSUhSbGJtRnVkRWxrS1Z4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJuWlhSQ2FXNWthVzVuS0Z4dUlDQWdJSFJsYm1GdWRFbGtPaUJ6ZEhKcGJtY3NYRzRnSUNBZ2MzUnZjbUZuWlV0cGJtUTZJRk4wYjNKaFoyVkxhVzVrTEZ4dUlDQWdJQzR1TG1GeVozTTZJR0Z1ZVZ0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4VTNSdmNtRm5aVUpwYm1ScGJtY2dmQ0IxYm1SbFptbHVaV1ErSUh0Y2JpQWdJQ0J5WlhSMWNtNGdLR0YzWVdsMElIUm9hWE11YkdsemRGUmxibUZ1ZEVKcGJtUnBibWR6S0hSbGJtRnVkRWxrTENBdUxpNWhjbWR6S1NrdVptbHVaQ2hjYmlBZ0lDQWdJQ2hpYVc1a2FXNW5LU0E5UGlCaWFXNWthVzVuTG5OMGIzSmhaMlZMYVc1a0lEMDlQU0J6ZEc5eVlXZGxTMmx1WkZ4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCaGMzbHVZeUJ6WlhSQ2FXNWthVzVuUTI5dVptbG5LRnh1SUNBZ0lHSnBibVJwYm1kSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUdOdmJtWnBaem9nVW1WamIzSmtQSE4wY21sdVp5d2dkVzVyYm05M2JqNGdmQ0IxYm1SbFptbHVaV1FzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHhUZEc5eVlXZGxRbWx1WkdsdVp6NGdlMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMblZ3WkdGMFpVOXVaU2hpYVc1a2FXNW5TV1FzSUhzZ1kyOXVabWxuSUgwc0lDNHVMbUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdZWE41Ym1NZ2NISnZiVzkwWlZSdlJHVmthV05oZEdWa0tGeHVJQ0FnSUdKcGJtUnBibWRKWkRvZ2MzUnlhVzVuTEZ4dUlDQWdJR0pwYm1ScGJtZExaWGs2SUhOMGNtbHVaeXhjYmlBZ0lDQnlaV2RwYjI0NklITjBjbWx1Wnl4Y2JpQWdJQ0JqYjI1bWFXYy9PaUJTWldOdmNtUThjM1J5YVc1bkxDQjFibXR1YjNkdVBpeGNiaUFnSUNBdUxpNWhjbWR6T2lCaGJubGJYVnh1SUNBcE9pQlFjbTl0YVhObFBGTjBiM0poWjJWQ2FXNWthVzVuUGlCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWRYQmtZWFJsVDI1bEtGeHVJQ0FnSUNBZ1ltbHVaR2x1WjBsa0xGeHVJQ0FnSUNBZ2V5QmlhVzVrYVc1blMybHVaRG9nVTNSdmNtRm5aVUpwYm1ScGJtZExhVzVrTGtSbFpHbGpZWFJsWkN3Z1ltbHVaR2x1WjB0bGVTd2djbVZuYVc5dUxDQmpiMjVtYVdjZ2ZTeGNiaUFnSUNBZ0lDNHVMbUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQjlYRzVjYmlBZ1lYTjVibU1nYzJWMFUyaGhjbVZrS0Z4dUlDQWdJR0pwYm1ScGJtZEpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lHSnBibVJwYm1kTFpYazZJSE4wY21sdVp5eGNiaUFnSUNCeVpXZHBiMjQ2SUhOMGNtbHVaeXhjYmlBZ0lDQmpiMjVtYVdjL09pQlNaV052Y21ROGMzUnlhVzVuTENCMWJtdHViM2R1UGl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEZOMGIzSmhaMlZDYVc1a2FXNW5QaUI3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11ZFhCa1lYUmxUMjVsS0Z4dUlDQWdJQ0FnWW1sdVpHbHVaMGxrTEZ4dUlDQWdJQ0FnZXlCaWFXNWthVzVuUzJsdVpEb2dVM1J2Y21GblpVSnBibVJwYm1kTGFXNWtMbE5vWVhKbFpDd2dZbWx1WkdsdVowdGxlU3dnY21WbmFXOXVMQ0JqYjI1bWFXY2dmU3hjYmlBZ0lDQWdJQzR1TG1GeVozTmNiaUFnSUNBcE8xeHVJQ0I5WEc1OVhHNWNibVY0Y0c5eWRDQmpiR0Z6Y3lCQ2IyOTBjM1J5WVhCVFpYSjJhV05sSUh0Y2JpQWdjSEpwZG1GMFpTQjBaVzVoYm5SVFpYSjJhV05sSUQwZ2JtVjNJRlJsYm1GdWRGTmxjblpwWTJVb0tUdGNiaUFnY0hKcGRtRjBaU0IwWlc1aGJuUlFjbTltYVd4bFUyVnlkbWxqWlNBOUlHNWxkeUJVWlc1aGJuUlFjbTltYVd4bFUyVnlkbWxqWlNncE8xeHVJQ0J3Y21sMllYUmxJRzl5WjFWdWFYUlRaWEoyYVdObElEMGdibVYzSUU5eVoxVnVhWFJUWlhKMmFXTmxLQ2s3WEc0Z0lIQnlhWFpoZEdVZ2IzSm5WVzVwZEZCeWIyWnBiR1ZUWlhKMmFXTmxJRDBnYm1WM0lFOXlaMVZ1YVhSUWNtOW1hV3hsVTJWeWRtbGpaU2dwTzF4dUlDQndjbWwyWVhSbElIVnpaWEpUWlhKMmFXTmxJRDBnYm1WM0lGVnpaWEpUWlhKMmFXTmxLQ2s3WEc0Z0lIQnlhWFpoZEdVZ2JXVnRZbVZ5YzJocGNGTmxjblpwWTJVZ1BTQnVaWGNnVkdWdVlXNTBUV1Z0WW1WeWMyaHBjRk5sY25acFkyVW9LVHRjYmlBZ2NISnBkbUYwWlNCd2NtbHVZMmx3WVd4VFpYSjJhV05sSUQwZ2JtVjNJRkJ5YVc1amFYQmhiRk5sY25acFkyVW9LVHRjYmlBZ2NISnBkbUYwWlNCd1pYSnRhWE56YVc5dVUyVnlkbWxqWlNBOUlHNWxkeUJRWlhKdGFYTnphVzl1VTJWeWRtbGpaU2dwTzF4dUlDQndjbWwyWVhSbElISnZiR1ZUWlhKMmFXTmxJRDBnYm1WM0lGSnZiR1ZUWlhKMmFXTmxLQ2s3WEc0Z0lIQnlhWFpoZEdVZ2NtOXNaVkJsY20xcGMzTnBiMjVUWlhKMmFXTmxJRDBnYm1WM0lGSnZiR1ZRWlhKdGFYTnphVzl1VTJWeWRtbGpaU2dwTzF4dUlDQndjbWwyWVhSbElISnZiR1ZCYzNOcFoyNXRaVzUwVTJWeWRtbGpaU0E5SUc1bGR5QlNiMnhsUVhOemFXZHViV1Z1ZEZObGNuWnBZMlVvS1R0Y2JpQWdjSEpwZG1GMFpTQmxabVpsWTNScGRtVlFaWEp0YVhOemFXOXVVMlZ5ZG1salpTQTlJRzVsZHlCRlptWmxZM1JwZG1WUVpYSnRhWE56YVc5dVUyVnlkbWxqWlNncE8xeHVYRzRnSUVCMGNtRnVjMkZqZEdsdmJtRnNLQ2xjYmlBZ1lYTjVibU1nWW05dmRITjBjbUZ3VkdWdVlXNTBSbkp2YlZSbGJYQnNZWFJsS0Z4dUlDQWdJSFJsYlhCc1lYUmxPaUJDYjI5MGMzUnlZWEJVWlcxd2JHRjBaU3hjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQSHRjYmlBZ0lDQjBaVzVoYm5SSlpEb2djM1J5YVc1bk8xeHVJQ0FnSUhKdmIzUlBjbWRWYm1sMFNXUTZJSE4wY21sdVp6dGNiaUFnSUNCdmQyNWxjbFZ6WlhKSlpEb2djM1J5YVc1bk8xeHVJQ0FnSUc5M2JtVnlVSEpwYm1OcGNHRnNTV1E2SUhOMGNtbHVaenRjYmlBZ2ZUNGdlMXh1SUNBZ0lHTnZibk4wSUhSbGJtRnVkQ0E5SUdGM1lXbDBJSFJvYVhNdWRHVnVZVzUwVTJWeWRtbGpaUzVqY21WaGRHVlVaVzVoYm5Rb1hHNGdJQ0FnSUNCMFpXMXdiR0YwWlM1MFpXNWhiblFzWEc0Z0lDQWdJQ0F1TGk1aGNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCcFppQW9kR1Z0Y0d4aGRHVXVkR1Z1WVc1MExuQnliMlpwYkdWTFpYa3BJSHRjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11ZEdWdVlXNTBVSEp2Wm1sc1pWTmxjblpwWTJVdVkzSmxZWFJsVUhKdlptbHNaU2hjYmlBZ0lDQWdJQ0FnZEdWdVlXNTBMbWxrTEZ4dUlDQWdJQ0FnSUNCMFpXMXdiR0YwWlM1MFpXNWhiblF1Y0hKdlptbHNaVXRsZVN4Y2JpQWdJQ0FnSUNBZ2RHVnRjR3hoZEdVdWRHVnVZVzUwTG5CeWIyWnBiR1ZOWlhSaFpHRjBZU3hjYmlBZ0lDQWdJQ0FnTGk0dVlYSm5jMXh1SUNBZ0lDQWdLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCamNtVmhkR1ZQY21kVWNtVmxJRDBnWVhONWJtTWdLRnh1SUNBZ0lDQWdjR0Z5Wlc1MFNXUTZJSE4wY21sdVp5QjhJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQWdJRzl5WjFWdWFYUTZJRUp2YjNSemRISmhjRTl5WjFWdWFYUmNiaUFnSUNBcE9pQlFjbTl0YVhObFBFOXlaMVZ1YVhRK0lEMCtJSHRjYmlBZ0lDQWdJR052Ym5OMElHTnlaV0YwWldRZ1BWeHVJQ0FnSUNBZ0lDQndZWEpsYm5SSlpDQTlQVDBnZFc1a1pXWnBibVZrWEc0Z0lDQWdJQ0FnSUNBZ1B5QmhkMkZwZENCMGFHbHpMbTl5WjFWdWFYUlRaWEoyYVdObExtTnlaV0YwWlZKdmIzUW9YRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lIUmxibUZ1ZEM1cFpDeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2IzSm5WVzVwZEM1dVlXMWxMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnZjbWRWYm1sMExtMWxkR0ZrWVhSaExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCdmNtZFZibWwwTG5CeWIyWnBiR1ZMWlhrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUc5eVoxVnVhWFF1YldWMFlXUmhkR0VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQzR1TG1GeVozTmNiaUFnSUNBZ0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSUNBZ0lDQTZJR0YzWVdsMElIUm9hWE11YjNKblZXNXBkRk5sY25acFkyVXVZM0psWVhSbFEyaHBiR1FvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0IwWlc1aGJuUkpaRG9nZEdWdVlXNTBMbWxrTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhCaGNtVnVkRTl5WjFWdWFYUkpaRG9nY0dGeVpXNTBTV1FzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnYm1GdFpUb2diM0puVlc1cGRDNXVZVzFsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUcxbGRHRmtZWFJoT2lCdmNtZFZibWwwTG0xbGRHRmtZWFJoTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhCeWIyWnBiR1ZMWlhrNklHOXlaMVZ1YVhRdWNISnZabWxzWlV0bGVTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndjbTltYVd4bFRXVjBZV1JoZEdFNklHOXlaMVZ1YVhRdWJXVjBZV1JoZEdFc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR05vYVd4a0lHOW1JRzl5WjFWdWFYUXVZMmhwYkdSeVpXNGdQejhnVzEwcElIdGNiaUFnSUNBZ0lDQWdZWGRoYVhRZ1kzSmxZWFJsVDNKblZISmxaU2hqY21WaGRHVmtMbWxrTENCamFHbHNaQ2s3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0J5WlhSMWNtNGdZM0psWVhSbFpEdGNiaUFnSUNCOU8xeHVYRzRnSUNBZ1kyOXVjM1FnY205dmRFOXlaMVZ1YVhRZ1BTQmhkMkZwZENCamNtVmhkR1ZQY21kVWNtVmxLSFZ1WkdWbWFXNWxaQ3dnZEdWdGNHeGhkR1V1Y205dmRFOXlaMVZ1YVhRcE8xeHVJQ0FnSUdOdmJuTjBJRzkzYm1WeUlEMGdZWGRoYVhRZ2RHaHBjeTUxYzJWeVUyVnlkbWxqWlM1amNtVmhkR1ZWYzJWeUtGeHVJQ0FnSUNBZ2RHVnRjR3hoZEdVdWIzZHVaWEpWYzJWeUxGeHVJQ0FnSUNBZ0xpNHVZWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTV0WlcxaVpYSnphR2x3VTJWeWRtbGpaUzVoWkdSVmMyVnlWRzlVWlc1aGJuUW9YRzRnSUNBZ0lDQjBaVzVoYm5RdWFXUXNYRzRnSUNBZ0lDQnZkMjVsY2k1cFpDeGNiaUFnSUNBZ0lFMWxiV0psY25Ob2FYQlRkR0YwZFhNdVFXTjBhWFpsTEZ4dUlDQWdJQ0FnTGk0dVlYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnYjNkdVpYSlFjbWx1WTJsd1lXd2dQU0JoZDJGcGRDQjBhR2x6TG5CeWFXNWphWEJoYkZObGNuWnBZMlV1WjJWMFZYTmxjbEJ5YVc1amFYQmhiQ2hjYmlBZ0lDQWdJSFJsYm1GdWRDNXBaQ3hjYmlBZ0lDQWdJRzkzYm1WeUxtbGtMRnh1SUNBZ0lDQWdMaTR1WVhKbmMxeHVJQ0FnSUNrN1hHNWNiaUFnSUNCbWIzSWdLR052Ym5OMElIQmxjbTFwYzNOcGIyNGdiMllnZEdWdGNHeGhkR1V1Y0dWeWJXbHpjMmx2Ym5NcElIdGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXVjR1Z5YldsemMybHZibE5sY25acFkyVXVZM0psWVhSbFVHVnliV2x6YzJsdmJpaHdaWEp0YVhOemFXOXVMQ0F1TGk1aGNtZHpLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQm1iM0lnS0dOdmJuTjBJSEp2YkdVZ2IyWWdkR1Z0Y0d4aGRHVXVjbTlzWlhNcElIdGNiaUFnSUNBZ0lHTnZibk4wSUdOeVpXRjBaV1JTYjJ4bElEMGdZWGRoYVhRZ2RHaHBjeTV5YjJ4bFUyVnlkbWxqWlM1amNtVmhkR1ZTYjJ4bEtGeHVJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnZEdWdVlXNTBTV1E2SUhSbGJtRnVkQzVwWkN4Y2JpQWdJQ0FnSUNBZ0lDQnJaWGs2SUhKdmJHVXVhMlY1TEZ4dUlDQWdJQ0FnSUNBZ0lHNWhiV1U2SUhKdmJHVXVibUZ0WlN4Y2JpQWdJQ0FnSUNBZ0lDQmtaWE5qY21sd2RHbHZiam9nY205c1pTNWtaWE5qY21sd2RHbHZiaXhjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ0xpNHVZWEpuYzF4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUdadmNpQW9ZMjl1YzNRZ2NHVnliV2x6YzJsdmJrdGxlU0J2WmlCeWIyeGxMbkJsY20xcGMzTnBiMjVMWlhsektTQjdYRzRnSUNBZ0lDQWdJR0YzWVdsMElIUm9hWE11Y205c1pWQmxjbTFwYzNOcGIyNVRaWEoyYVdObExtRmtaRkJsY20xcGMzTnBiMjVMWlhsVWIxSnZiR1VvWEc0Z0lDQWdJQ0FnSUNBZ1kzSmxZWFJsWkZKdmJHVXVhV1FzWEc0Z0lDQWdJQ0FnSUNBZ2NHVnliV2x6YzJsdmJrdGxlU3hjYmlBZ0lDQWdJQ0FnSUNBdUxpNWhjbWR6WEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnWTI5dWMzUWdiM2R1WlhKU2IyeGxJRDBnWVhkaGFYUWdkR2hwY3k1eWIyeGxVMlZ5ZG1salpTNW5aWFJVWlc1aGJuUlNiMnhsUW5sTFpYa29YRzRnSUNBZ0lDQjBaVzVoYm5RdWFXUXNYRzRnSUNBZ0lDQjBaVzF3YkdGMFpTNXZkMjVsY2xKdmJHVkxaWGtzWEc0Z0lDQWdJQ0F1TGk1aGNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxuSnZiR1ZCYzNOcFoyNXRaVzUwVTJWeWRtbGpaUzVoYzNOcFoyNVNiMnhsS0Z4dUlDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNCMFpXNWhiblJKWkRvZ2RHVnVZVzUwTG1sa0xGeHVJQ0FnSUNBZ0lDQndjbWx1WTJsd1lXeEpaRG9nYjNkdVpYSlFjbWx1WTJsd1lXd3VhV1FzWEc0Z0lDQWdJQ0FnSUhKdmJHVkpaRG9nYjNkdVpYSlNiMnhsTG1sa0xGeHVJQ0FnSUNBZ0lDQnpZMjl3WlV0cGJtUTZJRk5qYjNCbFMybHVaQzVQY21kVmJtbDBMRnh1SUNBZ0lDQWdJQ0J6WTI5d1pVbGtPaUJ5YjI5MFQzSm5WVzVwZEM1cFpDeGNiaUFnSUNBZ0lDQWdhVzVvWlhKcGRFUnZkMjQ2SUhSeWRXVXNYRzRnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdMaTR1WVhKbmMxeHVJQ0FnSUNrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1bFptWmxZM1JwZG1WUVpYSnRhWE56YVc5dVUyVnlkbWxqWlM1eVpXSjFhV3hrUm05eVVISnBibU5wY0dGc0tGeHVJQ0FnSUNBZ2RHVnVZVzUwTG1sa0xGeHVJQ0FnSUNBZ2IzZHVaWEpRY21sdVkybHdZV3d1YVdRc1hHNGdJQ0FnSUNBdUxpNWhjbWR6WEc0Z0lDQWdLVHRjYmx4dUlDQWdJSEpsZEhWeWJpQjdYRzRnSUNBZ0lDQjBaVzVoYm5SSlpEb2dkR1Z1WVc1MExtbGtMRnh1SUNBZ0lDQWdjbTl2ZEU5eVoxVnVhWFJKWkRvZ2NtOXZkRTl5WjFWdWFYUXVhV1FzWEc0Z0lDQWdJQ0J2ZDI1bGNsVnpaWEpKWkRvZ2IzZHVaWEl1YVdRc1hHNGdJQ0FnSUNCdmQyNWxjbEJ5YVc1amFYQmhiRWxrT2lCdmQyNWxjbEJ5YVc1amFYQmhiQzVwWkN4Y2JpQWdJQ0I5TzF4dUlDQjlYRzU5WEc1Y2JtVjRjRzl5ZENCamJHRnpjeUJUZVhOMFpXMU5ZVzVoWjJWdFpXNTBVMlZ5ZG1salpTQjdYRzRnSUhCeWFYWmhkR1VnYldWdFltVnljMmhwY0ZObGNuWnBZMlVnUFNCdVpYY2dWR1Z1WVc1MFRXVnRZbVZ5YzJocGNGTmxjblpwWTJVb0tUdGNiaUFnY0hKcGRtRjBaU0J2Y21kTlpXMWlaWEp6YUdsd1UyVnlkbWxqWlNBOUlHNWxkeUJQY21kVmJtbDBUV1Z0WW1WeWMyaHBjRk5sY25acFkyVW9LVHRjYmlBZ2NISnBkbUYwWlNCd2NtbHVZMmx3WVd4VFpYSjJhV05sSUQwZ2JtVjNJRkJ5YVc1amFYQmhiRk5sY25acFkyVW9LVHRjYmlBZ2NISnBkbUYwWlNCeWIyeGxVMlZ5ZG1salpTQTlJRzVsZHlCU2IyeGxVMlZ5ZG1salpTZ3BPMXh1SUNCd2NtbDJZWFJsSUhKdmJHVkJjM05wWjI1dFpXNTBVMlZ5ZG1salpTQTlJRzVsZHlCU2IyeGxRWE56YVdkdWJXVnVkRk5sY25acFkyVW9LVHRjYmlBZ2NISnBkbUYwWlNCbFptWmxZM1JwZG1WUVpYSnRhWE56YVc5dVUyVnlkbWxqWlNBOUlHNWxkeUJGWm1abFkzUnBkbVZRWlhKdGFYTnphVzl1VTJWeWRtbGpaU2dwTzF4dVhHNGdJRUIwY21GdWMyRmpkR2x2Ym1Gc0tDbGNiaUFnWVhONWJtTWdiMjVpYjJGeVpGVnpaWEpVYjFSbGJtRnVkRUZ1WkU5eVoxVnVhWFFvWEc0Z0lDQWdkR1Z1WVc1MFNXUTZJSE4wY21sdVp5eGNiaUFnSUNCMWMyVnlTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQnZjbWRWYm1sMFNXUTZJSE4wY21sdVp5eGNiaUFnSUNCeWIyeGxTMlY1T2lCemRISnBibWNzWEc0Z0lDQWdMaTR1WVhKbmN6b2dZVzU1VzExY2JpQWdLVG9nVUhKdmJXbHpaVHg3SUhCeWFXNWphWEJoYkVsa09pQnpkSEpwYm1jZ2ZUNGdlMXh1SUNBZ0lHRjNZV2wwSUhSb2FYTXViV1Z0WW1WeWMyaHBjRk5sY25acFkyVXVZV1JrVlhObGNsUnZWR1Z1WVc1MEtGeHVJQ0FnSUNBZ2RHVnVZVzUwU1dRc1hHNGdJQ0FnSUNCMWMyVnlTV1FzWEc0Z0lDQWdJQ0JOWlcxaVpYSnphR2x3VTNSaGRIVnpMa0ZqZEdsMlpTeGNiaUFnSUNBZ0lDNHVMbUZ5WjNOY2JpQWdJQ0FwTzF4dUlDQWdJR0YzWVdsMElIUm9hWE11YjNKblRXVnRZbVZ5YzJocGNGTmxjblpwWTJVdVlXUmtWWE5sY2xSdlQzSm5WVzVwZENoY2JpQWdJQ0FnSUhSbGJtRnVkRWxrTEZ4dUlDQWdJQ0FnYjNKblZXNXBkRWxrTEZ4dUlDQWdJQ0FnZFhObGNrbGtMRnh1SUNBZ0lDQWdUV1Z0WW1WeWMyaHBjRk4wWVhSMWN5NUJZM1JwZG1Vc1hHNGdJQ0FnSUNBdUxpNWhjbWR6WEc0Z0lDQWdLVHRjYmlBZ0lDQmpiMjV6ZENCd2NtbHVZMmx3WVd3Z1BTQmhkMkZwZENCMGFHbHpMbkJ5YVc1amFYQmhiRk5sY25acFkyVXVaMlYwVlhObGNsQnlhVzVqYVhCaGJDaGNiaUFnSUNBZ0lIUmxibUZ1ZEVsa0xGeHVJQ0FnSUNBZ2RYTmxja2xrTEZ4dUlDQWdJQ0FnTGk0dVlYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnY205c1pTQTlJR0YzWVdsMElIUm9hWE11Y205c1pWTmxjblpwWTJVdVoyVjBWR1Z1WVc1MFVtOXNaVUo1UzJWNUtGeHVJQ0FnSUNBZ2RHVnVZVzUwU1dRc1hHNGdJQ0FnSUNCeWIyeGxTMlY1TEZ4dUlDQWdJQ0FnTGk0dVlYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NXliMnhsUVhOemFXZHViV1Z1ZEZObGNuWnBZMlV1WVhOemFXZHVVbTlzWlNoY2JpQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ2RHVnVZVzUwU1dRc1hHNGdJQ0FnSUNBZ0lIQnlhVzVqYVhCaGJFbGtPaUJ3Y21sdVkybHdZV3d1YVdRc1hHNGdJQ0FnSUNBZ0lISnZiR1ZKWkRvZ2NtOXNaUzVwWkN4Y2JpQWdJQ0FnSUNBZ2MyTnZjR1ZMYVc1a09pQlRZMjl3WlV0cGJtUXVUM0puVlc1cGRDeGNiaUFnSUNBZ0lDQWdjMk52Y0dWSlpEb2diM0puVlc1cGRFbGtMRnh1SUNBZ0lDQWdJQ0JwYm1obGNtbDBSRzkzYmpvZ2RISjFaU3hjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0F1TGk1aGNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxtVm1abVZqZEdsMlpWQmxjbTFwYzNOcGIyNVRaWEoyYVdObExuSmxZblZwYkdSR2IzSlFjbWx1WTJsd1lXd29YRzRnSUNBZ0lDQjBaVzVoYm5SSlpDeGNiaUFnSUNBZ0lIQnlhVzVqYVhCaGJDNXBaQ3hjYmlBZ0lDQWdJQzR1TG1GeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUhKbGRIVnliaUI3SUhCeWFXNWphWEJoYkVsa09pQndjbWx1WTJsd1lXd3VhV1FnZlR0Y2JpQWdmVnh1WEc0Z0lFQjBjbUZ1YzJGamRHbHZibUZzS0NsY2JpQWdZWE41Ym1NZ1kyaGhibWRsVlhObGNrOXlaMUp2YkdVb1hHNGdJQ0FnZEdWdVlXNTBTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQndjbWx1WTJsd1lXeEpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lHOXlaMVZ1YVhSSlpEb2djM1J5YVc1bkxGeHVJQ0FnSUhKdmJHVkxaWGs2SUhOMGNtbHVaeXhjYmlBZ0lDQnBibWhsY21sMFJHOTNiam9nWW05dmJHVmhiaXhjYmlBZ0lDQXVMaTVoY21kek9pQmhibmxiWFZ4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0J5YjJ4bElEMGdZWGRoYVhRZ2RHaHBjeTV5YjJ4bFUyVnlkbWxqWlM1blpYUlVaVzVoYm5SU2IyeGxRbmxMWlhrb1hHNGdJQ0FnSUNCMFpXNWhiblJKWkN4Y2JpQWdJQ0FnSUhKdmJHVkxaWGtzWEc0Z0lDQWdJQ0F1TGk1aGNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCamIyNXpkQ0JqZFhKeVpXNTBRWE56YVdkdWJXVnVkSE1nUFZ4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1eWIyeGxRWE56YVdkdWJXVnVkRk5sY25acFkyVXViR2x6ZEZCeWFXNWphWEJoYkVGemMybG5ibTFsYm5SektGeHVJQ0FnSUNBZ0lDQjBaVzVoYm5SSlpDeGNiaUFnSUNBZ0lDQWdjSEpwYm1OcGNHRnNTV1FzWEc0Z0lDQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JoYzNOcFoyNXRaVzUwSUc5bUlHTjFjbkpsYm5SQmMzTnBaMjV0Wlc1MGN5NW1hV3gwWlhJb1hHNGdJQ0FnSUNBb2NtOTNLU0E5UGlCeWIzY3VjMk52Y0dWTGFXNWtJRDA5UFNCVFkyOXdaVXRwYm1RdVQzSm5WVzVwZENBbUppQnliM2N1YzJOdmNHVkpaQ0E5UFQwZ2IzSm5WVzVwZEVsa1hHNGdJQ0FnS1NrZ2UxeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NXliMnhsUVhOemFXZHViV1Z1ZEZObGNuWnBZMlV1Y21WMmIydGxRWE56YVdkdWJXVnVkQ2hoYzNOcFoyNXRaVzUwTG1sa0xDQXVMaTVoY21kektUdGNiaUFnSUNCOVhHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1eWIyeGxRWE56YVdkdWJXVnVkRk5sY25acFkyVXVZWE56YVdkdVVtOXNaU2hjYmlBZ0lDQWdJSHRjYmlBZ0lDQWdJQ0FnZEdWdVlXNTBTV1FzWEc0Z0lDQWdJQ0FnSUhCeWFXNWphWEJoYkVsa0xGeHVJQ0FnSUNBZ0lDQnliMnhsU1dRNklISnZiR1V1YVdRc1hHNGdJQ0FnSUNBZ0lITmpiM0JsUzJsdVpEb2dVMk52Y0dWTGFXNWtMazl5WjFWdWFYUXNYRzRnSUNBZ0lDQWdJSE5qYjNCbFNXUTZJRzl5WjFWdWFYUkpaQ3hjYmlBZ0lDQWdJQ0FnYVc1b1pYSnBkRVJ2ZDI0c1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0xpNHVZWEpuYzF4dUlDQWdJQ2s3WEc0Z0lDQWdZWGRoYVhRZ2RHaHBjeTVsWm1abFkzUnBkbVZRWlhKdGFYTnphVzl1VTJWeWRtbGpaUzV5WldKMWFXeGtSbTl5VUhKcGJtTnBjR0ZzS0Z4dUlDQWdJQ0FnZEdWdVlXNTBTV1FzWEc0Z0lDQWdJQ0J3Y21sdVkybHdZV3hKWkN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnUUhSeVlXNXpZV04wYVc5dVlXd29LVnh1SUNCaGMzbHVZeUJ6ZFhOd1pXNWtWWE5sY2tsdVZHVnVZVzUwS0Z4dUlDQWdJSFJsYm1GdWRFMWxiV0psY25Ob2FYQkpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lIUmxibUZ1ZEVsa09pQnpkSEpwYm1jc1hHNGdJQ0FnY0hKcGJtTnBjR0ZzU1dRNklITjBjbWx1Wnl4Y2JpQWdJQ0F1TGk1aGNtZHpPaUJoYm5sYlhWeHVJQ0FwT2lCUWNtOXRhWE5sUEhadmFXUStJSHRjYmlBZ0lDQmhkMkZwZENCMGFHbHpMbTFsYldKbGNuTm9hWEJUWlhKMmFXTmxMbk5sZEZOMFlYUjFjeWhjYmlBZ0lDQWdJSFJsYm1GdWRFMWxiV0psY25Ob2FYQkpaQ3hjYmlBZ0lDQWdJRTFsYldKbGNuTm9hWEJUZEdGMGRYTXVVM1Z6Y0dWdVpHVmtMRnh1SUNBZ0lDQWdMaTR1WVhKbmMxeHVJQ0FnSUNrN1hHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1bFptWmxZM1JwZG1WUVpYSnRhWE56YVc5dVUyVnlkbWxqWlM1a1pXeGxkR1ZHYjNKUWNtbHVZMmx3WVd3b1hHNGdJQ0FnSUNCMFpXNWhiblJKWkN4Y2JpQWdJQ0FnSUhCeWFXNWphWEJoYkVsa0xGeHVJQ0FnSUNBZ0xpNHVZWEpuYzF4dUlDQWdJQ2s3WEc0Z0lIMWNibHh1SUNCQWRISmhibk5oWTNScGIyNWhiQ2dwWEc0Z0lHRnplVzVqSUhKbFlXTjBhWFpoZEdWVmMyVnlTVzVVWlc1aGJuUW9YRzRnSUNBZ2RHVnVZVzUwVFdWdFltVnljMmhwY0Vsa09pQnpkSEpwYm1jc1hHNGdJQ0FnZEdWdVlXNTBTV1E2SUhOMGNtbHVaeXhjYmlBZ0lDQndjbWx1WTJsd1lXeEpaRG9nYzNSeWFXNW5MRnh1SUNBZ0lDNHVMbUZ5WjNNNklHRnVlVnRkWEc0Z0lDazZJRkJ5YjIxcGMyVThkbTlwWkQ0Z2UxeHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWJXVnRZbVZ5YzJocGNGTmxjblpwWTJVdWMyVjBVM1JoZEhWektGeHVJQ0FnSUNBZ2RHVnVZVzUwVFdWdFltVnljMmhwY0Vsa0xGeHVJQ0FnSUNBZ1RXVnRZbVZ5YzJocGNGTjBZWFIxY3k1QlkzUnBkbVVzWEc0Z0lDQWdJQ0F1TGk1aGNtZHpYRzRnSUNBZ0tUdGNiaUFnSUNCaGQyRnBkQ0IwYUdsekxtVm1abVZqZEdsMlpWQmxjbTFwYzNOcGIyNVRaWEoyYVdObExuSmxZblZwYkdSR2IzSlFjbWx1WTJsd1lXd29YRzRnSUNBZ0lDQjBaVzVoYm5SSlpDeGNiaUFnSUNBZ0lIQnlhVzVqYVhCaGJFbGtMRnh1SUNBZ0lDQWdMaTR1WVhKbmMxeHVJQ0FnSUNrN1hHNGdJSDFjYm4xY2JpSmRmUT09Il19
|
|
1054
|
+
//# sourceMappingURL=org-based-authorization-system.services.js.map
|
|
1055
|
+
//# sourceMappingURL=org-based-authorization-system.services.cjs.map
|