@decaf-ts/integrations 0.14.3 → 0.15.3
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/LICENSE.md +373 -21
- package/dist/integrations.cjs +2 -3317
- package/dist/integrations.cjs.map +1 -0
- package/dist/integrations.js +2 -3665
- package/dist/integrations.js.map +1 -0
- package/jest.config.cjs +0 -1
- package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/azure/AzureBlobEnvironment.cjs.map +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/BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/core/BlobEnvironment.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/GcsBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/gcp/GcsBlobEnvironment.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/local/LocalBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/local/LocalBlobEnvironment.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/MemoryBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/memory/MemoryBlobEnvironment.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/MinioBlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/MinioBlobEnvironment.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/R2BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/R2BlobEnvironment.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/S3BlobEnvironment.cjs +2 -2
- package/lib/cjs/blob/s3/S3BlobEnvironment.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/S3CompatibleBlobStoreService.cjs +2 -2
- package/lib/cjs/blob/s3/S3CompatibleBlobStoreService.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/calendar/CalendarService.cjs +2 -2
- package/lib/cjs/calendar/CalendarService.cjs.map +1 -0
- package/lib/cjs/calendar/environment.cjs +2 -2
- package/lib/cjs/calendar/environment.cjs.map +1 -0
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs +2 -2
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs.map +1 -0
- package/lib/cjs/calendar/google-calendar/index.cjs +2 -2
- package/lib/cjs/calendar/google-calendar/index.cjs.map +1 -0
- package/lib/cjs/calendar/index.cjs +2 -2
- package/lib/cjs/calendar/index.cjs.map +1 -0
- package/lib/cjs/calendar/types.cjs +2 -2
- package/lib/cjs/calendar/types.cjs.map +1 -0
- package/lib/cjs/calendar/validators/cron.cjs +2 -2
- package/lib/cjs/calendar/validators/cron.cjs.map +1 -0
- package/lib/cjs/calendar/writers/CalendarFsWriter.cjs +2 -2
- package/lib/cjs/calendar/writers/CalendarFsWriter.cjs.map +1 -0
- package/lib/cjs/calendar/writers/CalenderDownloader.cjs +2 -2
- package/lib/cjs/calendar/writers/CalenderDownloader.cjs.map +1 -0
- package/lib/cjs/calendar/writers/ICalendarWriter.cjs +2 -2
- package/lib/cjs/calendar/writers/ICalendarWriter.cjs.map +1 -0
- package/lib/cjs/comms/discord/DiscordService.cjs +2 -2
- package/lib/cjs/comms/discord/DiscordService.cjs.map +1 -0
- package/lib/cjs/comms/discord/index.cjs +2 -2
- package/lib/cjs/comms/discord/index.cjs.map +1 -0
- package/lib/cjs/comms/email/EmailService.cjs +2 -2
- package/lib/cjs/comms/email/EmailService.cjs.map +1 -0
- package/lib/cjs/comms/email/index.cjs +2 -2
- package/lib/cjs/comms/email/index.cjs.map +1 -0
- package/lib/cjs/comms/email/mime.cjs +2 -2
- package/lib/cjs/comms/email/mime.cjs.map +1 -0
- package/lib/cjs/comms/email/smtp.cjs +2 -2
- package/lib/cjs/comms/email/smtp.cjs.map +1 -0
- package/lib/cjs/comms/environment.cjs +2 -2
- package/lib/cjs/comms/environment.cjs.map +1 -0
- package/lib/cjs/comms/gmail/GmailService.cjs +2 -2
- package/lib/cjs/comms/gmail/GmailService.cjs.map +1 -0
- package/lib/cjs/comms/gmail/index.cjs +2 -2
- package/lib/cjs/comms/gmail/index.cjs.map +1 -0
- package/lib/cjs/comms/index.cjs +2 -2
- package/lib/cjs/comms/index.cjs.map +1 -0
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs +2 -2
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs.map +1 -0
- package/lib/cjs/comms/outlook/index.cjs +2 -2
- package/lib/cjs/comms/outlook/index.cjs.map +1 -0
- package/lib/cjs/comms/slack/SlackService.cjs +2 -2
- package/lib/cjs/comms/slack/SlackService.cjs.map +1 -0
- package/lib/cjs/comms/slack/index.cjs +2 -2
- package/lib/cjs/comms/slack/index.cjs.map +1 -0
- package/lib/cjs/comms/teams/TeamsService.cjs +2 -2
- package/lib/cjs/comms/teams/TeamsService.cjs.map +1 -0
- package/lib/cjs/comms/teams/index.cjs +2 -2
- package/lib/cjs/comms/teams/index.cjs.map +1 -0
- package/lib/cjs/comms/telegram/TelegramService.cjs +2 -2
- package/lib/cjs/comms/telegram/TelegramService.cjs.map +1 -0
- package/lib/cjs/comms/telegram/index.cjs +2 -2
- package/lib/cjs/comms/telegram/index.cjs.map +1 -0
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs +2 -2
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs.map +1 -0
- package/lib/cjs/comms/whatsapp/index.cjs +2 -2
- package/lib/cjs/comms/whatsapp/index.cjs.map +1 -0
- package/lib/cjs/devops/environment.cjs +2 -2
- package/lib/cjs/devops/environment.cjs.map +1 -0
- package/lib/cjs/devops/github/GithubService.cjs +2 -2
- package/lib/cjs/devops/github/GithubService.cjs.map +1 -0
- package/lib/cjs/devops/github/index.cjs +2 -2
- package/lib/cjs/devops/github/index.cjs.map +1 -0
- package/lib/cjs/devops/gitlab/GitlabService.cjs +2 -2
- package/lib/cjs/devops/gitlab/GitlabService.cjs.map +1 -0
- package/lib/cjs/devops/gitlab/index.cjs +2 -2
- package/lib/cjs/devops/gitlab/index.cjs.map +1 -0
- package/lib/cjs/devops/index.cjs +2 -2
- package/lib/cjs/devops/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/EngineCapabilityFeatureFlag.service.cjs +2 -2
- package/lib/cjs/feature-flags/EngineCapabilityFeatureFlag.service.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 +3 -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/index.cjs +5 -5
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/io/airtable/AirtableService.cjs +2 -2
- package/lib/cjs/io/airtable/AirtableService.cjs.map +1 -0
- package/lib/cjs/io/airtable/index.cjs +2 -2
- package/lib/cjs/io/airtable/index.cjs.map +1 -0
- package/lib/cjs/io/confluence/ConfluenceService.cjs +2 -2
- package/lib/cjs/io/confluence/ConfluenceService.cjs.map +1 -0
- package/lib/cjs/io/confluence/index.cjs +2 -2
- package/lib/cjs/io/confluence/index.cjs.map +1 -0
- package/lib/cjs/io/environment.cjs +2 -2
- package/lib/cjs/io/environment.cjs.map +1 -0
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs +2 -2
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs.map +1 -0
- package/lib/cjs/io/google-docs/index.cjs +2 -2
- package/lib/cjs/io/google-docs/index.cjs.map +1 -0
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs +2 -2
- package/lib/cjs/io/google-sheets/GoogleSheetsService.cjs.map +1 -0
- package/lib/cjs/io/google-sheets/index.cjs +2 -2
- package/lib/cjs/io/google-sheets/index.cjs.map +1 -0
- package/lib/cjs/io/graphql/GraphqlService.cjs +2 -2
- package/lib/cjs/io/graphql/GraphqlService.cjs.map +1 -0
- package/lib/cjs/io/graphql/index.cjs +2 -2
- package/lib/cjs/io/graphql/index.cjs.map +1 -0
- package/lib/cjs/io/index.cjs +2 -2
- package/lib/cjs/io/index.cjs.map +1 -0
- package/lib/cjs/io/jira/JiraService.cjs +2 -2
- package/lib/cjs/io/jira/JiraService.cjs.map +1 -0
- package/lib/cjs/io/jira/index.cjs +2 -2
- package/lib/cjs/io/jira/index.cjs.map +1 -0
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs +2 -2
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs.map +1 -0
- package/lib/cjs/io/microsoft-excel/index.cjs +2 -2
- package/lib/cjs/io/microsoft-excel/index.cjs.map +1 -0
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs +2 -2
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs.map +1 -0
- package/lib/cjs/io/microsoft-sharepoint/index.cjs +2 -2
- package/lib/cjs/io/microsoft-sharepoint/index.cjs.map +1 -0
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs +2 -2
- package/lib/cjs/io/spreadsheet/SpreadsheetService.cjs.map +1 -0
- package/lib/cjs/io/spreadsheet/index.cjs +2 -2
- package/lib/cjs/io/spreadsheet/index.cjs.map +1 -0
- package/lib/cjs/keycloak/broker.cjs +2 -2
- package/lib/cjs/keycloak/broker.cjs.map +1 -0
- package/lib/cjs/keycloak/index.cjs +2 -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 +2 -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 +2 -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/assets.cjs +2 -2
- package/lib/cjs/loader/assets.cjs.map +1 -0
- package/lib/cjs/loader/config.cjs +2 -2
- package/lib/cjs/loader/config.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/nest.cjs +2 -2
- package/lib/cjs/loader/nest.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/credential.model.cjs +2 -2
- package/lib/cjs/namespaces/models/credential.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/rls/index.cjs +2 -2
- package/lib/cjs/namespaces/rls/index.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/principal-resolver.cjs +2 -2
- package/lib/cjs/namespaces/rls/principal-resolver.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls-bootstrap.service.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls.constants.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.constants.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls.template.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.template.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/rls.types.cjs +2 -2
- package/lib/cjs/namespaces/rls/rls.types.cjs.map +1 -0
- package/lib/cjs/namespaces/rls/session-binding.cjs +2 -2
- package/lib/cjs/namespaces/rls/session-binding.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/credential.service.cjs +2 -2
- package/lib/cjs/namespaces/services/credential.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/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/redis/RedisContextLock.cjs +2 -2
- package/lib/cjs/redis/RedisContextLock.cjs.map +1 -0
- package/lib/cjs/redis/RedisDispatch.cjs +2 -2
- package/lib/cjs/redis/RedisDispatch.cjs.map +1 -0
- package/lib/cjs/redis/RedisPaginator.cjs +2 -2
- package/lib/cjs/redis/RedisPaginator.cjs.map +1 -0
- package/lib/cjs/redis/RedisStatement.cjs +2 -2
- package/lib/cjs/redis/RedisStatement.cjs.map +1 -0
- package/lib/cjs/redis/adapter.cjs +2 -2
- package/lib/cjs/redis/adapter.cjs.map +1 -0
- package/lib/cjs/redis/constants.cjs +2 -2
- package/lib/cjs/redis/constants.cjs.map +1 -0
- package/lib/cjs/redis/handlers.cjs +2 -2
- package/lib/cjs/redis/handlers.cjs.map +1 -0
- package/lib/cjs/redis/index.cjs +2 -2
- package/lib/cjs/redis/index.cjs.map +1 -0
- package/lib/cjs/redis/serialization.cjs +2 -2
- package/lib/cjs/redis/serialization.cjs.map +1 -0
- package/lib/cjs/redis/types.cjs +2 -2
- package/lib/cjs/redis/types.cjs.map +1 -0
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs +2 -2
- package/lib/cjs/secrets/InfraCredentialBootstrap.cjs.map +1 -0
- package/lib/cjs/secrets/aws/AwsSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/aws/AwsSecretEnvironment.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/AzureSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/azure/AzureSecretEnvironment.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/ClientBasedSecretService.cjs +2 -2
- package/lib/cjs/secrets/core/ClientBasedSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/core/SecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/core/SecretEnvironment.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/fs/FsSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/fs/FsSecretService.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/fs/FsSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/fs/index.cjs +2 -2
- package/lib/cjs/secrets/fs/index.cjs.map +1 -0
- package/lib/cjs/secrets/gcp/GcpSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/gcp/GcpSecretEnvironment.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/kubernetes/KubernetesSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/kubernetes/KubernetesSecretEnvironment.cjs.map +1 -0
- package/lib/cjs/secrets/kubernetes/KubernetesSecretService.cjs +2 -2
- package/lib/cjs/secrets/kubernetes/KubernetesSecretService.cjs.map +1 -0
- package/lib/cjs/secrets/kubernetes/KubernetesSecretServiceConfig.cjs +2 -2
- package/lib/cjs/secrets/kubernetes/KubernetesSecretServiceConfig.cjs.map +1 -0
- package/lib/cjs/secrets/kubernetes/index.cjs +2 -2
- package/lib/cjs/secrets/kubernetes/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/ModelSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/model/ModelSecretEnvironment.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/OnePasswordSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/onepassword/OnePasswordSecretEnvironment.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/VaultSecretEnvironment.cjs +2 -2
- package/lib/cjs/secrets/vault/VaultSecretEnvironment.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/sftp/aws/AwsSftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/aws/AwsSftpEnvironment.cjs.map +1 -0
- package/lib/cjs/sftp/aws/AwsSftpService.cjs +2 -2
- package/lib/cjs/sftp/aws/AwsSftpService.cjs.map +1 -0
- package/lib/cjs/sftp/aws/index.cjs +2 -2
- package/lib/cjs/sftp/aws/index.cjs.map +1 -0
- package/lib/cjs/sftp/core/SftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/core/SftpEnvironment.cjs.map +1 -0
- package/lib/cjs/sftp/core/SftpSource.cjs +2 -2
- package/lib/cjs/sftp/core/SftpSource.cjs.map +1 -0
- package/lib/cjs/sftp/core/index.cjs +2 -2
- package/lib/cjs/sftp/core/index.cjs.map +1 -0
- package/lib/cjs/sftp/index.cjs +2 -2
- package/lib/cjs/sftp/index.cjs.map +1 -0
- package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs +2 -2
- package/lib/cjs/sftp/ssh2/Ssh2SftpEnvironment.cjs.map +1 -0
- package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs +2 -2
- package/lib/cjs/sftp/ssh2/Ssh2SftpService.cjs.map +1 -0
- package/lib/cjs/sftp/ssh2/index.cjs +2 -2
- package/lib/cjs/sftp/ssh2/index.cjs.map +1 -0
- package/lib/cjs/shared/environmentValue.cjs +2 -2
- package/lib/cjs/shared/environmentValue.cjs.map +1 -0
- package/lib/cjs/shared/http/HttpApiService.cjs +2 -2
- package/lib/cjs/shared/http/HttpApiService.cjs.map +1 -0
- package/lib/cjs/shared/http/hermeticBoot.cjs +2 -2
- package/lib/cjs/shared/http/hermeticBoot.cjs.map +1 -0
- package/lib/cjs/shared/http/index.cjs +2 -2
- package/lib/cjs/shared/http/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/user-requests/index.cjs +2 -2
- package/lib/cjs/user-requests/index.cjs.map +1 -0
- package/lib/cjs/utils.cjs +2 -2
- package/lib/cjs/utils.cjs.map +1 -0
- package/lib/esm/blob/azure/AzureBlobEnvironment.js +1 -1
- package/lib/esm/blob/azure/AzureBlobEnvironment.js.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/BlobEnvironment.js +1 -1
- package/lib/esm/blob/core/BlobEnvironment.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/GcsBlobEnvironment.js +1 -1
- package/lib/esm/blob/gcp/GcsBlobEnvironment.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/local/LocalBlobEnvironment.js +1 -1
- package/lib/esm/blob/local/LocalBlobEnvironment.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/MemoryBlobEnvironment.js +1 -1
- package/lib/esm/blob/memory/MemoryBlobEnvironment.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/MinioBlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/MinioBlobEnvironment.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/R2BlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/R2BlobEnvironment.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/S3BlobEnvironment.js +1 -1
- package/lib/esm/blob/s3/S3BlobEnvironment.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/S3CompatibleBlobStoreService.js +1 -1
- package/lib/esm/blob/s3/S3CompatibleBlobStoreService.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/calendar/CalendarService.js +1 -1
- package/lib/esm/calendar/CalendarService.js.map +1 -0
- package/lib/esm/calendar/environment.js +1 -1
- package/lib/esm/calendar/environment.js.map +1 -0
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js +1 -1
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js.map +1 -0
- package/lib/esm/calendar/google-calendar/index.js +1 -1
- package/lib/esm/calendar/google-calendar/index.js.map +1 -0
- package/lib/esm/calendar/index.js +1 -1
- package/lib/esm/calendar/index.js.map +1 -0
- package/lib/esm/calendar/types.js +1 -1
- package/lib/esm/calendar/types.js.map +1 -0
- package/lib/esm/calendar/validators/cron.js +1 -1
- package/lib/esm/calendar/validators/cron.js.map +1 -0
- package/lib/esm/calendar/writers/CalendarFsWriter.js +1 -1
- package/lib/esm/calendar/writers/CalendarFsWriter.js.map +1 -0
- package/lib/esm/calendar/writers/CalenderDownloader.js +1 -1
- package/lib/esm/calendar/writers/CalenderDownloader.js.map +1 -0
- package/lib/esm/calendar/writers/ICalendarWriter.js +1 -1
- package/lib/esm/calendar/writers/ICalendarWriter.js.map +1 -0
- package/lib/esm/comms/discord/DiscordService.js +1 -1
- package/lib/esm/comms/discord/DiscordService.js.map +1 -0
- package/lib/esm/comms/discord/index.js +1 -1
- package/lib/esm/comms/discord/index.js.map +1 -0
- package/lib/esm/comms/email/EmailService.js +1 -1
- package/lib/esm/comms/email/EmailService.js.map +1 -0
- package/lib/esm/comms/email/index.js +1 -1
- package/lib/esm/comms/email/index.js.map +1 -0
- package/lib/esm/comms/email/mime.js +1 -1
- package/lib/esm/comms/email/mime.js.map +1 -0
- package/lib/esm/comms/email/smtp.js +1 -1
- package/lib/esm/comms/email/smtp.js.map +1 -0
- package/lib/esm/comms/environment.js +1 -1
- package/lib/esm/comms/environment.js.map +1 -0
- package/lib/esm/comms/gmail/GmailService.js +1 -1
- package/lib/esm/comms/gmail/GmailService.js.map +1 -0
- package/lib/esm/comms/gmail/index.js +1 -1
- package/lib/esm/comms/gmail/index.js.map +1 -0
- package/lib/esm/comms/index.js +1 -1
- package/lib/esm/comms/index.js.map +1 -0
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js +1 -1
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js.map +1 -0
- package/lib/esm/comms/outlook/index.js +1 -1
- package/lib/esm/comms/outlook/index.js.map +1 -0
- package/lib/esm/comms/slack/SlackService.js +1 -1
- package/lib/esm/comms/slack/SlackService.js.map +1 -0
- package/lib/esm/comms/slack/index.js +1 -1
- package/lib/esm/comms/slack/index.js.map +1 -0
- package/lib/esm/comms/teams/TeamsService.js +1 -1
- package/lib/esm/comms/teams/TeamsService.js.map +1 -0
- package/lib/esm/comms/teams/index.js +1 -1
- package/lib/esm/comms/teams/index.js.map +1 -0
- package/lib/esm/comms/telegram/TelegramService.js +1 -1
- package/lib/esm/comms/telegram/TelegramService.js.map +1 -0
- package/lib/esm/comms/telegram/index.js +1 -1
- package/lib/esm/comms/telegram/index.js.map +1 -0
- package/lib/esm/comms/whatsapp/WhatsAppService.js +1 -1
- package/lib/esm/comms/whatsapp/WhatsAppService.js.map +1 -0
- package/lib/esm/comms/whatsapp/index.js +1 -1
- package/lib/esm/comms/whatsapp/index.js.map +1 -0
- package/lib/esm/devops/environment.js +1 -1
- package/lib/esm/devops/environment.js.map +1 -0
- package/lib/esm/devops/github/GithubService.js +1 -1
- package/lib/esm/devops/github/GithubService.js.map +1 -0
- package/lib/esm/devops/github/index.js +1 -1
- package/lib/esm/devops/github/index.js.map +1 -0
- package/lib/esm/devops/gitlab/GitlabService.js +1 -1
- package/lib/esm/devops/gitlab/GitlabService.js.map +1 -0
- package/lib/esm/devops/gitlab/index.js +1 -1
- package/lib/esm/devops/gitlab/index.js.map +1 -0
- package/lib/esm/devops/index.js +1 -1
- package/lib/esm/devops/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/EngineCapabilityFeatureFlag.service.js +1 -1
- package/lib/esm/feature-flags/EngineCapabilityFeatureFlag.service.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 +2 -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/index.js +4 -4
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/io/airtable/AirtableService.js +1 -1
- package/lib/esm/io/airtable/AirtableService.js.map +1 -0
- package/lib/esm/io/airtable/index.js +1 -1
- package/lib/esm/io/airtable/index.js.map +1 -0
- package/lib/esm/io/confluence/ConfluenceService.js +1 -1
- package/lib/esm/io/confluence/ConfluenceService.js.map +1 -0
- package/lib/esm/io/confluence/index.js +1 -1
- package/lib/esm/io/confluence/index.js.map +1 -0
- package/lib/esm/io/environment.js +1 -1
- package/lib/esm/io/environment.js.map +1 -0
- package/lib/esm/io/google-docs/GoogleDocsService.js +1 -1
- package/lib/esm/io/google-docs/GoogleDocsService.js.map +1 -0
- package/lib/esm/io/google-docs/index.js +1 -1
- package/lib/esm/io/google-docs/index.js.map +1 -0
- package/lib/esm/io/google-sheets/GoogleSheetsService.js +1 -1
- package/lib/esm/io/google-sheets/GoogleSheetsService.js.map +1 -0
- package/lib/esm/io/google-sheets/index.js +1 -1
- package/lib/esm/io/google-sheets/index.js.map +1 -0
- package/lib/esm/io/graphql/GraphqlService.js +1 -1
- package/lib/esm/io/graphql/GraphqlService.js.map +1 -0
- package/lib/esm/io/graphql/index.js +1 -1
- package/lib/esm/io/graphql/index.js.map +1 -0
- package/lib/esm/io/index.js +1 -1
- package/lib/esm/io/index.js.map +1 -0
- package/lib/esm/io/jira/JiraService.js +1 -1
- package/lib/esm/io/jira/JiraService.js.map +1 -0
- package/lib/esm/io/jira/index.js +1 -1
- package/lib/esm/io/jira/index.js.map +1 -0
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js +1 -1
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js.map +1 -0
- package/lib/esm/io/microsoft-excel/index.js +1 -1
- package/lib/esm/io/microsoft-excel/index.js.map +1 -0
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js +1 -1
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js.map +1 -0
- package/lib/esm/io/microsoft-sharepoint/index.js +1 -1
- package/lib/esm/io/microsoft-sharepoint/index.js.map +1 -0
- package/lib/esm/io/spreadsheet/SpreadsheetService.js +1 -1
- package/lib/esm/io/spreadsheet/SpreadsheetService.js.map +1 -0
- package/lib/esm/io/spreadsheet/index.js +1 -1
- package/lib/esm/io/spreadsheet/index.js.map +1 -0
- package/lib/esm/keycloak/broker.js +1 -1
- package/lib/esm/keycloak/broker.js.map +1 -0
- package/lib/esm/keycloak/index.js +1 -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 +1 -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 +1 -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/assets.js +1 -1
- package/lib/esm/loader/assets.js.map +1 -0
- package/lib/esm/loader/config.js +1 -1
- package/lib/esm/loader/config.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/nest.js +1 -1
- package/lib/esm/loader/nest.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/credential.model.js +1 -1
- package/lib/esm/namespaces/models/credential.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/rls/index.js +1 -1
- package/lib/esm/namespaces/rls/index.js.map +1 -0
- package/lib/esm/namespaces/rls/principal-resolver.js +1 -1
- package/lib/esm/namespaces/rls/principal-resolver.js.map +1 -0
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js +1 -1
- package/lib/esm/namespaces/rls/rls-bootstrap.service.js.map +1 -0
- package/lib/esm/namespaces/rls/rls.constants.js +1 -1
- package/lib/esm/namespaces/rls/rls.constants.js.map +1 -0
- package/lib/esm/namespaces/rls/rls.template.js +1 -1
- package/lib/esm/namespaces/rls/rls.template.js.map +1 -0
- package/lib/esm/namespaces/rls/rls.types.js +1 -1
- package/lib/esm/namespaces/rls/rls.types.js.map +1 -0
- package/lib/esm/namespaces/rls/session-binding.js +1 -1
- package/lib/esm/namespaces/rls/session-binding.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/credential.service.js +1 -1
- package/lib/esm/namespaces/services/credential.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/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/redis/RedisContextLock.js +1 -1
- package/lib/esm/redis/RedisContextLock.js.map +1 -0
- package/lib/esm/redis/RedisDispatch.js +1 -1
- package/lib/esm/redis/RedisDispatch.js.map +1 -0
- package/lib/esm/redis/RedisPaginator.js +1 -1
- package/lib/esm/redis/RedisPaginator.js.map +1 -0
- package/lib/esm/redis/RedisStatement.js +1 -1
- package/lib/esm/redis/RedisStatement.js.map +1 -0
- package/lib/esm/redis/adapter.js +1 -1
- package/lib/esm/redis/adapter.js.map +1 -0
- package/lib/esm/redis/constants.js +1 -1
- package/lib/esm/redis/constants.js.map +1 -0
- package/lib/esm/redis/handlers.js +1 -1
- package/lib/esm/redis/handlers.js.map +1 -0
- package/lib/esm/redis/index.js +1 -1
- package/lib/esm/redis/index.js.map +1 -0
- package/lib/esm/redis/serialization.js +1 -1
- package/lib/esm/redis/serialization.js.map +1 -0
- package/lib/esm/redis/types.js +1 -1
- package/lib/esm/redis/types.js.map +1 -0
- package/lib/esm/secrets/InfraCredentialBootstrap.js +1 -1
- package/lib/esm/secrets/InfraCredentialBootstrap.js.map +1 -0
- package/lib/esm/secrets/aws/AwsSecretEnvironment.js +1 -1
- package/lib/esm/secrets/aws/AwsSecretEnvironment.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/AzureSecretEnvironment.js +1 -1
- package/lib/esm/secrets/azure/AzureSecretEnvironment.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/ClientBasedSecretService.js +1 -1
- package/lib/esm/secrets/core/ClientBasedSecretService.js.map +1 -0
- package/lib/esm/secrets/core/SecretEnvironment.js +1 -1
- package/lib/esm/secrets/core/SecretEnvironment.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/fs/FsSecretEnvironment.js +1 -1
- package/lib/esm/secrets/fs/FsSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/fs/FsSecretService.js +1 -1
- package/lib/esm/secrets/fs/FsSecretService.js.map +1 -0
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/fs/FsSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/fs/index.js +1 -1
- package/lib/esm/secrets/fs/index.js.map +1 -0
- package/lib/esm/secrets/gcp/GcpSecretEnvironment.js +1 -1
- package/lib/esm/secrets/gcp/GcpSecretEnvironment.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/kubernetes/KubernetesSecretEnvironment.js +1 -1
- package/lib/esm/secrets/kubernetes/KubernetesSecretEnvironment.js.map +1 -0
- package/lib/esm/secrets/kubernetes/KubernetesSecretService.js +1 -1
- package/lib/esm/secrets/kubernetes/KubernetesSecretService.js.map +1 -0
- package/lib/esm/secrets/kubernetes/KubernetesSecretServiceConfig.js +1 -1
- package/lib/esm/secrets/kubernetes/KubernetesSecretServiceConfig.js.map +1 -0
- package/lib/esm/secrets/kubernetes/index.js +1 -1
- package/lib/esm/secrets/kubernetes/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/ModelSecretEnvironment.js +1 -1
- package/lib/esm/secrets/model/ModelSecretEnvironment.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/OnePasswordSecretEnvironment.js +1 -1
- package/lib/esm/secrets/onepassword/OnePasswordSecretEnvironment.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/VaultSecretEnvironment.js +1 -1
- package/lib/esm/secrets/vault/VaultSecretEnvironment.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/sftp/aws/AwsSftpEnvironment.js +1 -1
- package/lib/esm/sftp/aws/AwsSftpEnvironment.js.map +1 -0
- package/lib/esm/sftp/aws/AwsSftpService.js +1 -1
- package/lib/esm/sftp/aws/AwsSftpService.js.map +1 -0
- package/lib/esm/sftp/aws/index.js +1 -1
- package/lib/esm/sftp/aws/index.js.map +1 -0
- package/lib/esm/sftp/core/SftpEnvironment.js +1 -1
- package/lib/esm/sftp/core/SftpEnvironment.js.map +1 -0
- package/lib/esm/sftp/core/SftpSource.js +1 -1
- package/lib/esm/sftp/core/SftpSource.js.map +1 -0
- package/lib/esm/sftp/core/index.js +1 -1
- package/lib/esm/sftp/core/index.js.map +1 -0
- package/lib/esm/sftp/index.js +1 -1
- package/lib/esm/sftp/index.js.map +1 -0
- package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js +1 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpEnvironment.js.map +1 -0
- package/lib/esm/sftp/ssh2/Ssh2SftpService.js +1 -1
- package/lib/esm/sftp/ssh2/Ssh2SftpService.js.map +1 -0
- package/lib/esm/sftp/ssh2/index.js +1 -1
- package/lib/esm/sftp/ssh2/index.js.map +1 -0
- package/lib/esm/shared/environmentValue.js +1 -1
- package/lib/esm/shared/environmentValue.js.map +1 -0
- package/lib/esm/shared/http/HttpApiService.js +1 -1
- package/lib/esm/shared/http/HttpApiService.js.map +1 -0
- package/lib/esm/shared/http/hermeticBoot.js +1 -1
- package/lib/esm/shared/http/hermeticBoot.js.map +1 -0
- package/lib/esm/shared/http/index.js +1 -1
- package/lib/esm/shared/http/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/user-requests/index.js +1 -1
- package/lib/esm/user-requests/index.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/package.json +74 -50
package/lib/cjs/comms/index.cjs
CHANGED
|
@@ -30,5 +30,5 @@ __exportStar(require("./discord/index.cjs"), exports);
|
|
|
30
30
|
__exportStar(require("./whatsapp/index.cjs"), exports);
|
|
31
31
|
__exportStar(require("./outlook/index.cjs"), exports);
|
|
32
32
|
__exportStar(require("./environment.cjs"), exports);
|
|
33
|
-
//# sourceMappingURL=
|
|
34
|
-
//# sourceMappingURL=
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
34
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comms/index.cjs","sourceRoot":"","sources":["comms/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,mDAAiC;AACjC,mDAAiC;AACjC,mDAAiC;AACjC,mDAAiC;AACjC,sDAAoC;AACpC,qDAAmC;AACnC,sDAAoC;AACpC,qDAAmC;AACnC,mDAAiC;AACjC,iCAAiC"}
|
|
@@ -321,5 +321,5 @@ class MicrosoftOutlookService extends index_js_1.HttpApiService {
|
|
|
321
321
|
}
|
|
322
322
|
}
|
|
323
323
|
exports.MicrosoftOutlookService = MicrosoftOutlookService;
|
|
324
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9zb2Z0T3V0bG9va1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tbXMvb3V0bG9vay9NaWNyb3NvZnRPdXRsb29rU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLDRCQUF1QjtBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSwyQ0FBc0M7QUFDckUsT0FBTyxFQUNMLGNBQWMsRUFFZCxTQUFTLEdBQ1YscUNBQTBCO0FBb0kzQjs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxhQUFhLENBQ3BCLEtBQW9DO0lBRXBDLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDdEIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDakMsQ0FBQyxDQUFDLEtBQUs7UUFDUCxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sTUFBTTtTQUNWLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzVCLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDbkMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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RUFBRSxFQUFFLENBQUMsQ0FBQzs0QkFDeEQsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZOzRCQUNoQyxJQUFJLEVBQUUsVUFBVTt5QkFDakIsQ0FBQyxDQUFDO3FCQUNKO29CQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDUixDQUFDLENBQUM7WUFDSCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBZTtRQUMvQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksYUFBYSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDcEMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixNQUFNLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvY29tbXMvb3V0bG9vay9zZXJ2aWNlXG4gKiBAc3VtbWFyeSBNaWNyb3NvZnQgT3V0bG9vayBtYWlsIGFuZCBjYWxlbmRhciBpbnRlZ3JhdGlvbiBzZXJ2aWNlIChNaWNyb3NvZnQgR3JhcGgpLlxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgT3V0bG9vayBtYWlsIChgc2VuZE1haWxgLCBgbGlzdE1lc3NhZ2VzYCwgYGdldE1lc3NhZ2VgKVxuICogYW5kIGNhbGVuZGFyIChgbGlzdEV2ZW50c2AsIGBjcmVhdGVFdmVudGAsIGBkZWxldGVFdmVudGApIG9wZXJhdGlvbnMgdGhyb3VnaFxuICogTWljcm9zb2Z0IEdyYXBoIGB2MS4wYCBhcyBhbiB1bmRlY29yYXRlZCBjbGllbnQtYmFzZWQgc2VydmljZSBidWlsdCBvblxuICoge0BsaW5rIEh0dHBBcGlTZXJ2aWNlfS4gQ29uZmlndXJhdGlvbiBjb21lcyBmcm9tIGFuIGV4cGxpY2l0XG4gKiBgT3V0bG9va1NlcnZpY2VDb25maWdgIG9yIHRoZSBgY29tbXMub3V0bG9va2AgZW52aXJvbm1lbnQgc2xpY2U7IHRoZSBhY2Nlc3NcbiAqIHRva2VuIGlzIHNlbnQgYXMgYEF1dGhvcml6YXRpb246IEJlYXJlciA8dG9rZW4+YC4gQ3JlZGVudGlhbHMgYXJlIHJlZmVyZW5jZWRcbiAqIGZyb20gY29uZmlndXJhdGlvbiAoYW5kLCBmcm9tIGFzLWdyYXBoIG5vZGVzLCBmcm9tIHRoZSByZXNvbHZlZFxuICogYG1pY3Jvc29mdC1vdXRsb29rYCBjcmVkZW50aWFsIHNlY3JldCkgYW5kIGFyZSBuZXZlciBlbWJlZGRlZCBpbiBzb3VyY2UuXG4gKiBGYWlsdXJlcyBhcmUgbWFwcGVkIHRvIGRlY2FmIGVycm9ycyB2aWEge0BsaW5rIGh0dHBFcnJvcn0uXG4gKi9cbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvbW1zRW52aXJvbm1lbnQgfSBmcm9tIFwiLi4vZW52aXJvbm1lbnRcIjtcbmltcG9ydCB7IGVudk51bWJlciwgZW52U3RyaW5nIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9lbnZpcm9ubWVudFZhbHVlXCI7XG5pbXBvcnQge1xuICBIdHRwQXBpU2VydmljZSxcbiAgdHlwZSBIdHRwQXBpU2VydmljZUNvbmZpZyxcbiAgaHR0cEVycm9yLFxufSBmcm9tIFwiLi4vLi4vc2hhcmVkL2h0dHBcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29uZmlndXJhdGlvbiBmb3IgdGhlIE1pY3Jvc29mdCBPdXRsb29rIHNlcnZpY2VcbiAqIEBzdW1tYXJ5IEV4dGVuZHMge0BsaW5rIEh0dHBBcGlTZXJ2aWNlQ29uZmlnfSB3aXRoIHRoZSBNaWNyb3NvZnQgR3JhcGhcbiAqIGFjY2VzcyB0b2tlbiBzZW50IGFzIGEgYmVhcmVyIHRva2VuLiBXaGVuIG9taXR0ZWQsIHRoZSBgY29tbXMub3V0bG9va2BcbiAqIGVudmlyb25tZW50IHNsaWNlIHN1cHBsaWVzIHRoZSB0b2tlbiAocGx1cyBvcHRpb25hbCBgYmFzZVVybGAvYHRpbWVvdXRgKS5cbiAqIEBjYXRlZ29yeSBDb21tc1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvY29tbXMvb3V0bG9vay9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3V0bG9va1NlcnZpY2VDb25maWcgZXh0ZW5kcyBIdHRwQXBpU2VydmljZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTWljcm9zb2Z0IEdyYXBoIGFjY2VzcyB0b2tlblxuICAgKiBAc3VtbWFyeSBTZW50IGFzIGBBdXRob3JpemF0aW9uOiBCZWFyZXIgPHRva2VuPmAgd2l0aCBldmVyeSBBUEkgY2FsbC5cbiAgICovXG4gIHRva2VuPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPdXRsb29rIHJlY2lwaWVudCBhZGRyZXNzZXNcbiAqIEBzdW1tYXJ5IFByaW1hcnksIGNhcmJvbi1jb3B5LCBhbmQgYmxpbmQtY2FyYm9uLWNvcHkgcmVjaXBpZW50cy4gRWFjaCBmaWVsZFxuICogYWNjZXB0cyBhIHNpbmdsZSBhZGRyZXNzIG9yIGFuIGFycmF5IChvciBjb21tYS9zZW1pY29sb24tc2VwYXJhdGVkIGxpc3QpIG9mXG4gKiBhZGRyZXNzZXMuXG4gKiBAY2F0ZWdvcnkgQ29tbXNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2NvbW1zL291dGxvb2svc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE91dGxvb2tSZWNpcGllbnRzIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQcmltYXJ5IHJlY2lwaWVudCBhZGRyZXNzKGVzKVxuICAgKi9cbiAgdG86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENhcmJvbi1jb3B5IGFkZHJlc3MoZXMpXG4gICAqL1xuICBjYz86IHN0cmluZyB8IHN0cmluZ1tdO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEJsaW5kLWNhcmJvbi1jb3B5IGFkZHJlc3MoZXMpXG4gICAqL1xuICBiY2M/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW5wdXQgZm9yIHNlbmRpbmcgYW4gT3V0bG9vayBtYWlsIG1lc3NhZ2VcbiAqIEBzdW1tYXJ5IENhcnJpZXMgdGhlIHJlY2lwaWVudHMsIGBzdWJqZWN0YCwgYm9keSwgYm9keSBjb250ZW50IHR5cGUsIGFuZFxuICogd2hldGhlciB0aGUgbWVzc2FnZSBpcyBzYXZlZCB0byB0aGUgU2VudCBJdGVtcyBmb2xkZXIgKGRlZmF1bHQgYHRydWVgKS5cbiAqIEBjYXRlZ29yeSBDb21tc1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvY29tbXMvb3V0bG9vay9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3V0bG9va01haWxJbnB1dCBleHRlbmRzIE91dGxvb2tSZWNpcGllbnRzIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBNYWlsIHN1YmplY3QgbGluZVxuICAgKi9cbiAgc3ViamVjdDogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE1haWwgYm9keVxuICAgKi9cbiAgYm9keTogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEJvZHkgY29udGVudCB0eXBlIChkZWZhdWx0IGBcIlRleHRcImApXG4gICAqL1xuICBjb250ZW50VHlwZT86IFwiVGV4dFwiIHwgXCJIVE1MXCI7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0aGUgc2VudCBtZXNzYWdlIGlzIHNhdmVkIHRvIFNlbnQgSXRlbXMgKGRlZmF1bHQgYHRydWVgKVxuICAgKi9cbiAgc2F2ZVRvU2VudEl0ZW1zPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gT3B0aW9ucyBmb3IgbGlzdGluZyBPdXRsb29rIG1lc3NhZ2VzIG9yIGNhbGVuZGFyIGV2ZW50c1xuICogQHN1bW1hcnkgQ2FycmllcyB0aGUgb3B0aW9uYWwgbWFpbCBgZm9sZGVySWRgIChkZWZhdWx0IGBpbmJveGApIHBsdXMgdGhlXG4gKiBPRGF0YSBgdG9wYCwgYGZpbHRlcmAsIGFuZCBgc2VhcmNoYCBwYXJhbWV0ZXJzLiBgZm9sZGVySWRgIGlzIGlnbm9yZWQgYnlcbiAqIGBsaXN0RXZlbnRzYC5cbiAqIEBjYXRlZ29yeSBDb21tc1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvY29tbXMvb3V0bG9vay9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3V0bG9va0xpc3RJbnB1dCB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTWFpbCBmb2xkZXIgSUQgdG8gbGlzdCBmcm9tIChkZWZhdWx0IGBpbmJveGApXG4gICAqL1xuICBmb2xkZXJJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzIChgJHRvcGApXG4gICAqL1xuICB0b3A/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gT0RhdGEgZmlsdGVyIGV4cHJlc3Npb24gKGAkZmlsdGVyYClcbiAgICovXG4gIGZpbHRlcj86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBPRGF0YSBzZWFyY2ggZXhwcmVzc2lvbiAoYCRzZWFyY2hgKVxuICAgKi9cbiAgc2VhcmNoPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnB1dCBmb3IgY3JlYXRpbmcgYW4gT3V0bG9vayBjYWxlbmRhciBldmVudFxuICogQHN1bW1hcnkgQ2FycmllcyB0aGUgYHN1YmplY3RgLCBzdGFydCBhbmQgZW5kIHRpbWVzdGFtcHMsIG9wdGlvbmFsIHRpbWVcbiAqIHpvbmUgKGRlZmF1bHQgYFVUQ2ApLCBib2R5LCBsb2NhdGlvbiwgYW5kIHJlcXVpcmVkIGF0dGVuZGVlIGFkZHJlc3Nlcy5cbiAqIEBjYXRlZ29yeSBDb21tc1xuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvY29tbXMvb3V0bG9vay9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3V0bG9va0V2ZW50SW5wdXQge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV2ZW50IHN1YmplY3RcbiAgICovXG4gIHN1YmplY3Q6IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFdmVudCBzdGFydCBkYXRlLXRpbWUgKElTTyA4NjAxKVxuICAgKi9cbiAgc3RhcnQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFdmVudCBlbmQgZGF0ZS10aW1lIChJU08gODYwMSlcbiAgICovXG4gIGVuZDogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIElBTkEgdGltZSB6b25lIGZvciBgc3RhcnRgL2BlbmRgIChkZWZhdWx0IGBVVENgKVxuICAgKi9cbiAgdGltZVpvbmU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRXZlbnQgYm9keSB0ZXh0XG4gICAqL1xuICBib2R5Pzogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV2ZW50IGxvY2F0aW9uIGRpc3BsYXkgbmFtZVxuICAgKi9cbiAgbG9jYXRpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVxdWlyZWQgYXR0ZW5kZWUgYWRkcmVzcyhlcylcbiAgICovXG4gIGF0dGVuZGVlcz86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBOb3JtYWxpemVzIE91dGxvb2sgcmVjaXBpZW50IGFkZHJlc3NlcyBpbnRvIEdyYXBoIHJlY2lwaWVudHNcbiAqIEBzdW1tYXJ5IEFjY2VwdHMgYSBzaW5nbGUgYWRkcmVzcywgYW4gYXJyYXksIG9yIGEgY29tbWEvc2VtaWNvbG9uLXNlcGFyYXRlZFxuICogc3RyaW5nLCB0cmltcyBlbnRyaWVzLCBkcm9wcyBibGFua3MsIGFuZCBtYXBzIGVhY2ggYWRkcmVzcyB0byB0aGUgR3JhcGhcbiAqIGB7IGVtYWlsQWRkcmVzczogeyBhZGRyZXNzIH0gfWAgZW52ZWxvcGUuXG4gKiBAcGFyYW0ge3N0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkfSB2YWx1ZSAtIFRoZSByYXcgcmVjaXBpZW50IHZhbHVlLlxuICogQHJldHVybnMge0FycmF5PHsgZW1haWxBZGRyZXNzOiB7IGFkZHJlc3M6IHN0cmluZyB9IH0+fSBUaGUgR3JhcGggcmVjaXBpZW50IGVudmVsb3Blcy5cbiAqL1xuZnVuY3Rpb24gcmVjaXBpZW50TGlzdChcbiAgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4pOiBBcnJheTx7IGVtYWlsQWRkcmVzczogeyBhZGRyZXNzOiBzdHJpbmcgfSB9PiB7XG4gIGlmICghdmFsdWUpIHJldHVybiBbXTtcbiAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSlcbiAgICA/IHZhbHVlXG4gICAgOiB2YWx1ZS5zcGxpdCgvWyw7XS8pLm1hcCgoZW50cnkpID0+IGVudHJ5LnRyaW0oKSk7XG4gIHJldHVybiB2YWx1ZXNcbiAgICAubWFwKChlbnRyeSkgPT4gZW50cnkudHJpbSgpKVxuICAgIC5maWx0ZXIoKGVudHJ5KSA9PiBlbnRyeS5sZW5ndGggPiAwKVxuICAgIC5tYXAoKGFkZHJlc3MpID0+ICh7IGVtYWlsQWRkcmVzczogeyBhZGRyZXNzIH0gfSkpO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNaWNyb3NvZnQgT3V0bG9vayAoR3JhcGgpIG1haWwgYW5kIGNhbGVuZGFyIGludGVncmF0aW9uIHNlcnZpY2VcbiAqIEBzdW1tYXJ5IEFuIHVuZGVjb3JhdGVkIEhUVFAgc2VydmljZSBmb3Igc2VuZGluZyBhbmQgcmVhZGluZyBtYWlsIGFuZCBmb3JcbiAqIGxpc3RpbmcsIGNyZWF0aW5nLCBhbmQgZGVsZXRpbmcgY2FsZW5kYXIgZXZlbnRzIG9uIHRoZSBzaWduZWQtaW4gdXNlclxuICogKGAvbWVgKS4gRXZlcnkgb3BlcmF0aW9uIHJlcXVpcmVzIGEgR3JhcGggYWNjZXNzIHRva2VuOyBtaXNzaW5nIGNyZWRlbnRpYWxzXG4gKiBvciBpZGVudGlmaWVycyByYWlzZSBgSW50ZXJuYWxFcnJvcmAsIGFuZCB0cmFuc3BvcnQgZmFpbHVyZXMgYXJlIG1hcHBlZCB0b1xuICogZGVjYWYgZXJyb3JzIHZpYSB7QGxpbmsgaHR0cEVycm9yfS5cbiAqIEBjbGFzcyBNaWNyb3NvZnRPdXRsb29rU2VydmljZVxuICogQGV4dGVuZHMgSHR0cEFwaVNlcnZpY2VcbiAqIEBjYXRlZ29yeSBDb21tc1xuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBNaWNyb3NvZnRPdXRsb29rU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvaW50ZWdyYXRpb25zL2NvbW1zL291dGxvb2tcIjtcbiAqXG4gKiBjb25zdCBvdXRsb29rID0gbmV3IE1pY3Jvc29mdE91dGxvb2tTZXJ2aWNlKCk7XG4gKiBhd2FpdCBvdXRsb29rLmluaXRpYWxpemUoe1xuICogICB0b2tlbjogcHJvY2Vzcy5lbnYuR1JBUEhfQ1JFREVOVElBTF9NSUNST1NPRlRfT1VUTE9PS19UT0tFTixcbiAqIH0pO1xuICogYXdhaXQgb3V0bG9vay5zZW5kTWFpbCh7XG4gKiAgIHRvOiBcInRlYW1AZXhhbXBsZS5jb21cIixcbiAqICAgc3ViamVjdDogXCJEZXBsb3ltZW50IGZpbmlzaGVkXCIsXG4gKiAgIGJvZHk6IFwiUmVsZWFzZSAxLjIuMCBpcyBsaXZlXCIsXG4gKiB9KTtcbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBhdXRvbnVtYmVyXG4gKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICogICBwYXJ0aWNpcGFudCBTZXJ2aWNlIGFzIE1pY3Jvc29mdE91dGxvb2tTZXJ2aWNlXG4gKiAgIHBhcnRpY2lwYW50IEdyYXBoIGFzIE1pY3Jvc29mdCBHcmFwaFxuICogICBDYWxsZXItPj5TZXJ2aWNlOiBzZW5kTWFpbChpbnB1dClcbiAqICAgYWN0aXZhdGUgU2VydmljZVxuICogICBTZXJ2aWNlLT4+U2VydmljZTogcmVxdWlyZUFjY2Vzc1Rva2VuKClcbiAqICAgU2VydmljZS0+PkdyYXBoOiBQT1NUIC9tZS9zZW5kTWFpbFxuICogICBhY3RpdmF0ZSBHcmFwaFxuICogICBHcmFwaC0tPj5TZXJ2aWNlOiAyMDIgQWNjZXB0ZWRcbiAqICAgZGVhY3RpdmF0ZSBHcmFwaFxuICogICBTZXJ2aWNlLS0+PkNhbGxlcjogeyBzZW50LCB0bywgc3ViamVjdCB9XG4gKiAgIGRlYWN0aXZhdGUgU2VydmljZVxuICogQG1lbWJlck9mIG1vZHVsZTppbnRlZ3JhdGlvbnMvY29tbXMvb3V0bG9vay9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBjbGFzcyBNaWNyb3NvZnRPdXRsb29rU2VydmljZSBleHRlbmRzIEh0dHBBcGlTZXJ2aWNlPE91dGxvb2tTZXJ2aWNlQ29uZmlnPiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIHByb3ZpZGVyIG5hbWUgdXNlZCBpbiBlcnJvciBtZXNzYWdlc1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlcnZpY2VOYW1lID0gXCJNaWNyb3NvZnQgT3V0bG9va1wiO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGhlIE1pY3Jvc29mdCBHcmFwaCBiYXNlIFVSTFxuICAgKiBAc3VtbWFyeSBVc2VkIHdoZW4gdGhlIHJlc29sdmVkIGNvbmZpZyBjYXJyaWVzIG5vIGBiYXNlVXJsYC5cbiAgICogQHJldHVybnMge3N0cmluZ30gYFwiaHR0cHM6Ly9ncmFwaC5taWNyb3NvZnQuY29tL3YxLjBcImAuXG4gICAqL1xuICBwcm90ZWN0ZWQgZGVmYXVsdEJhc2VVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vdjEuMFwiO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgdGhlIE1pY3Jvc29mdCBHcmFwaCBiZWFyZXIgYXV0aG9yaXphdGlvbiBoZWFkZXJzXG4gICAqIEBzdW1tYXJ5IFJldHVybnMgYEF1dGhvcml6YXRpb246IEJlYXJlciA8dG9rZW4+YCB3aGVuIGNvbmZpZ3VyZWQsIGFuZCBub1xuICAgKiBoZWFkZXJzIG90aGVyd2lzZS5cbiAgICogQHBhcmFtIHtPdXRsb29rU2VydmljZUNvbmZpZ30gY29uZmlnIC0gVGhlIHJlc29sdmVkIHNlcnZpY2UgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFRoZSBhdXRob3JpemF0aW9uIGhlYWRlcnMgKGVtcHR5IHdpdGhvdXQgYSB0b2tlbikuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXV0aEhlYWRlcnMoXG4gICAgY29uZmlnOiBPdXRsb29rU2VydmljZUNvbmZpZ1xuICApOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICByZXR1cm4gY29uZmlnLnRva2VuID8geyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Y29uZmlnLnRva2VufWAgfSA6IHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZWFkcyB0aGUgT3V0bG9vayBjcmVkZW50aWFscyBhbmQgZGVmYXVsdHMgZnJvbSB0aGUgZW52aXJvbm1lbnRcbiAgICogQHN1bW1hcnkgUmVhZHMgdGhlIGBjb21tcy5vdXRsb29rYCBzbGljZSBhbmQgcmV0dXJucyBhIHBhcnRpYWwgY29uZmlnIHdoZW5cbiAgICogYW4gYWNjZXNzIHRva2VuIGlzIGNvbmZpZ3VyZWQsIGB1bmRlZmluZWRgIG90aGVyd2lzZS4gVmFsdWVzIHBhc3MgdGhyb3VnaFxuICAgKiBgZW52U3RyaW5nYC9gZW52TnVtYmVyYCB0byByZWplY3QgdW5zZXQtbGVhZiBwcm94aWVzLlxuICAgKiBAcmV0dXJucyB7UGFydGlhbDxPdXRsb29rU2VydmljZUNvbmZpZz4gfCB1bmRlZmluZWR9IEEgcGFydGlhbCBjb25maWcsIG9yIGB1bmRlZmluZWRgIHdoZW4gbm8gT3V0bG9vayB0b2tlbiBpcyBjb25maWd1cmVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNvbmZpZ0Zyb21FbnZpcm9ubWVudCgpOlxuICAgIHwgUGFydGlhbDxPdXRsb29rU2VydmljZUNvbmZpZz5cbiAgICB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZW52ID0gQ29tbXNFbnZpcm9ubWVudC5jb21tcy5vdXRsb29rO1xuICAgIGNvbnN0IHRva2VuID0gZW52U3RyaW5nKGVudj8udG9rZW4pO1xuICAgIGlmICghdG9rZW4pIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRva2VuLFxuICAgICAgYmFzZVVybDogZW52U3RyaW5nKGVudi5iYXNlVXJsKSxcbiAgICAgIHRpbWVvdXQ6IGVudk51bWJlcihlbnYudGltZW91dCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQXNzZXJ0cyB0aGF0IGEgTWljcm9zb2Z0IEdyYXBoIGFjY2VzcyB0b2tlbiBpcyBjb25maWd1cmVkXG4gICAqIEBzdW1tYXJ5IERlbGVnYXRlcyB0byB0aGUgc2hhcmVkIGByZXF1aXJlVG9rZW4oKWAgZ3VhcmQgdXNlZCBieSBldmVyeVxuICAgKiBvcGVyYXRpb24uXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIHRoZSByZXNvbHZlZCBjb25maWcgaGFzIG5vIGB0b2tlbmAuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVxdWlyZUFjY2Vzc1Rva2VuKCk6IHZvaWQge1xuICAgIHRoaXMucmVxdWlyZVRva2VuKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFNlbmRzIGEgbWFpbCBtZXNzYWdlIHRocm91Z2ggT3V0bG9va1xuICAgKiBAc3VtbWFyeSBgUE9TVGBzIHRoZSBtZXNzYWdlIHRvIGAvbWUvc2VuZE1haWxgOyByZWNpcGllbnRzIGFyZSBub3JtYWxpemVkXG4gICAqIHRvIEdyYXBoIGVudmVsb3BlcyBhbmQgYHNhdmVUb1NlbnRJdGVtc2AgZGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKiBAcGFyYW0ge091dGxvb2tNYWlsSW5wdXR9IGlucHV0IC0gVGhlIHJlY2lwaWVudHMsIHN1YmplY3QsIGJvZHksIGFuZCBjb250ZW50IG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBgeyBzZW50OiB0cnVlLCB0bywgc3ViamVjdCB9YCBvbiBzdWNjZXNzLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIHRva2VuIGlzIGNvbmZpZ3VyZWQsIG9yIHJlY2lwaWVudHMgb3Igc3ViamVjdCBhcmUgbWlzc2luZy5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdyYXBoIHJlamVjdHMgdGhlIHJlcXVlc3QuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGF3YWl0IG91dGxvb2suc2VuZE1haWwoe1xuICAgKiAgIHRvOiBbXCJhQGV4YW1wbGUuY29tXCIsIFwiYkBleGFtcGxlLmNvbVwiXSxcbiAgICogICBzdWJqZWN0OiBcIlN0YXR1c1wiLFxuICAgKiAgIGJvZHk6IFwiQWxsIHN5c3RlbXMgb3BlcmF0aW9uYWxcIixcbiAgICogICBjb250ZW50VHlwZTogXCJUZXh0XCIsXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHNlbmRNYWlsKGlucHV0OiBPdXRsb29rTWFpbElucHV0KTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgdGhpcy5yZXF1aXJlQWNjZXNzVG9rZW4oKTtcbiAgICBpZiAoIWlucHV0LnRvIHx8ICFpbnB1dC5zdWJqZWN0KSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgXCJNaWNyb3NvZnQgT3V0bG9vayBzZW5kTWFpbCByZXF1aXJlcyByZWNpcGllbnRzIGFuZCBhIHN1YmplY3RcIlxuICAgICAgKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnBvc3QoXCIvbWUvc2VuZE1haWxcIiwge1xuICAgICAgICBtZXNzYWdlOiB7XG4gICAgICAgICAgc3ViamVjdDogaW5wdXQuc3ViamVjdCxcbiAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICBjb250ZW50VHlwZTogaW5wdXQuY29udGVudFR5cGUgPz8gXCJUZXh0XCIsXG4gICAgICAgICAgICBjb250ZW50OiBpbnB1dC5ib2R5ID8/IFwiXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0b1JlY2lwaWVudHM6IHJlY2lwaWVudExpc3QoaW5wdXQudG8pLFxuICAgICAgICAgIC4uLihpbnB1dC5jYyA/IHsgY2NSZWNpcGllbnRzOiByZWNpcGllbnRMaXN0KGlucHV0LmNjKSB9IDoge30pLFxuICAgICAgICAgIC4uLihpbnB1dC5iY2MgPyB7IGJjY1JlY2lwaWVudHM6IHJlY2lwaWVudExpc3QoaW5wdXQuYmNjKSB9IDoge30pLFxuICAgICAgICB9LFxuICAgICAgICBzYXZlVG9TZW50SXRlbXM6IGlucHV0LnNhdmVUb1NlbnRJdGVtcyA/PyB0cnVlLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4geyBzZW50OiB0cnVlLCB0bzogaW5wdXQudG8sIHN1YmplY3Q6IGlucHV0LnN1YmplY3QgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgaHR0cEVycm9yKFwiTWljcm9zb2Z0IE91dGxvb2tcIiwgXCJzZW5kIG1haWxcIiwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTGlzdHMgbWVzc2FnZXMgaW4gYW4gT3V0bG9vayBtYWlsIGZvbGRlclxuICAgKiBAc3VtbWFyeSBgR0VUYHMgYC9tZS9tYWlsRm9sZGVycy88Zm9sZGVyPi9tZXNzYWdlc2AgKGRlZmF1bHQgYGluYm94YClcbiAgICogYXBwbHlpbmcgdGhlIG9wdGlvbmFsIGAkdG9wYCwgYCRmaWx0ZXJgLCBhbmQgYCRzZWFyY2hgIHBhcmFtZXRlcnMuXG4gICAqIEBwYXJhbSB7T3V0bG9va0xpc3RJbnB1dH0gW2lucHV0XSAtIFRoZSBmb2xkZXIgYW5kIE9EYXRhIHF1ZXJ5IG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBUaGUgR3JhcGggbWVzc2FnZSBjb2xsZWN0aW9uLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIHRva2VuIGlzIGNvbmZpZ3VyZWQuXG4gICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIGZvbGRlciBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR3JhcGggcmVqZWN0cyB0aGUgcXVlcnkuXG4gICAqL1xuICBhc3luYyBsaXN0TWVzc2FnZXMoaW5wdXQ6IE91dGxvb2tMaXN0SW5wdXQgPSB7fSk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIHRoaXMucmVxdWlyZUFjY2Vzc1Rva2VuKCk7XG4gICAgY29uc3QgZm9sZGVyID0gaW5wdXQuZm9sZGVySWQgPz8gXCJpbmJveFwiO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LmdldChcbiAgICAgICAgYC9tZS9tYWlsRm9sZGVycy8ke2VuY29kZVVSSUNvbXBvbmVudChmb2xkZXIpfS9tZXNzYWdlc2AsXG4gICAgICAgIHtcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIC4uLihpbnB1dC50b3AgIT09IHVuZGVmaW5lZCA/IHsgJHRvcDogaW5wdXQudG9wIH0gOiB7fSksXG4gICAgICAgICAgICAuLi4oaW5wdXQuZmlsdGVyID8geyAkZmlsdGVyOiBpbnB1dC5maWx0ZXIgfSA6IHt9KSxcbiAgICAgICAgICAgIC4uLihpbnB1dC5zZWFyY2ggPyB7ICRzZWFyY2g6IGlucHV0LnNlYXJjaCB9IDoge30pLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgaHR0cEVycm9yKFwiTWljcm9zb2Z0IE91dGxvb2tcIiwgXCJsaXN0IG1lc3NhZ2VzXCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZldGNoZXMgYSBzaW5nbGUgT3V0bG9vayBtZXNzYWdlXG4gICAqIEBzdW1tYXJ5IGBHRVRgcyBgL21lL21lc3NhZ2VzLzxpZD5gIGFuZCByZXR1cm5zIHRoZSBtZXNzYWdlIHBheWxvYWQuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlSWQgLSBUaGUgR3JhcGggbWVzc2FnZSBJRC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IFRoZSBtZXNzYWdlIHBheWxvYWQuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gdG9rZW4gaXMgY29uZmlndXJlZCBvciB0aGUgbWVzc2FnZSBJRCBpcyBlbXB0eS5cbiAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiB0aGUgbWVzc2FnZSBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR3JhcGggcmVqZWN0cyB0aGUgcmVxdWVzdC5cbiAgICovXG4gIGFzeW5jIGdldE1lc3NhZ2UobWVzc2FnZUlkOiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICB0aGlzLnJlcXVpcmVBY2Nlc3NUb2tlbigpO1xuICAgIGlmICghbWVzc2FnZUlkKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIk1pY3Jvc29mdCBPdXRsb29rIHJlcXVpcmVzIGEgbWVzc2FnZSBpZFwiKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0KFxuICAgICAgICBgL21lL21lc3NhZ2VzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KG1lc3NhZ2VJZCl9YFxuICAgICAgKTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBodHRwRXJyb3IoXCJNaWNyb3NvZnQgT3V0bG9va1wiLCBcImdldCBtZXNzYWdlXCIsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExpc3RzIE91dGxvb2sgY2FsZW5kYXIgZXZlbnRzXG4gICAqIEBzdW1tYXJ5IGBHRVRgcyBgL21lL2V2ZW50c2AgYXBwbHlpbmcgdGhlIG9wdGlvbmFsIGAkdG9wYCwgYCRmaWx0ZXJgLCBhbmRcbiAgICogYCRzZWFyY2hgIHBhcmFtZXRlcnM7IHRoZSBtYWlsIGBmb2xkZXJJZGAgaXMgbm90IHVzZWQuXG4gICAqIEBwYXJhbSB7T3V0bG9va0xpc3RJbnB1dH0gW2lucHV0XSAtIFRoZSBPRGF0YSBxdWVyeSBvcHRpb25zLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gVGhlIEdyYXBoIGV2ZW50IGNvbGxlY3Rpb24uXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gdG9rZW4gaXMgY29uZmlndXJlZC5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdyYXBoIHJlamVjdHMgdGhlIHF1ZXJ5LlxuICAgKi9cbiAgYXN5bmMgbGlzdEV2ZW50cyhpbnB1dDogT3V0bG9va0xpc3RJbnB1dCA9IHt9KTogUHJvbWlzZTx1bmtub3duPiB7XG4gICAgdGhpcy5yZXF1aXJlQWNjZXNzVG9rZW4oKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXQoXCIvbWUvZXZlbnRzXCIsIHtcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgLi4uKGlucHV0LnRvcCAhPT0gdW5kZWZpbmVkID8geyAkdG9wOiBpbnB1dC50b3AgfSA6IHt9KSxcbiAgICAgICAgICAuLi4oaW5wdXQuZmlsdGVyID8geyAkZmlsdGVyOiBpbnB1dC5maWx0ZXIgfSA6IHt9KSxcbiAgICAgICAgICAuLi4oaW5wdXQuc2VhcmNoID8geyAkc2VhcmNoOiBpbnB1dC5zZWFyY2ggfSA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIk1pY3Jvc29mdCBPdXRsb29rXCIsIFwibGlzdCBldmVudHNcIiwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhbiBPdXRsb29rIGNhbGVuZGFyIGV2ZW50XG4gICAqIEBzdW1tYXJ5IGBQT1NUYHMgdGhlIGV2ZW50IHRvIGAvbWUvZXZlbnRzYDsgYHN0YXJ0YC9gZW5kYCBhcmUgc2VudCB3aXRoIHRoZVxuICAgKiBjb25maWd1cmVkIG9yIGRlZmF1bHQgKGBVVENgKSB0aW1lIHpvbmUgYW5kIGF0dGVuZGVlcyBhcyByZXF1aXJlZC5cbiAgICogQHBhcmFtIHtPdXRsb29rRXZlbnRJbnB1dH0gaW5wdXQgLSBUaGUgZXZlbnQgZGVmaW5pdGlvbi5cbiAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IFRoZSBjcmVhdGVkIEdyYXBoIGV2ZW50LlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIHRva2VuIGlzIGNvbmZpZ3VyZWQsIG9yIHN1YmplY3QsIHN0YXJ0LCBvciBlbmQgaXMgbWlzc2luZy5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdyYXBoIHJlamVjdHMgdGhlIGV2ZW50LlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBhd2FpdCBvdXRsb29rLmNyZWF0ZUV2ZW50KHtcbiAgICogICBzdWJqZWN0OiBcIlJlbGVhc2UgcmV2aWV3XCIsXG4gICAqICAgc3RhcnQ6IFwiMjAyNi0xMS0wMVQwOTowMDowMFwiLFxuICAgKiAgIGVuZDogXCIyMDI2LTExLTAxVDEwOjAwOjAwXCIsXG4gICAqICAgdGltZVpvbmU6IFwiRXVyb3BlL0xpc2JvblwiLFxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBhc3luYyBjcmVhdGVFdmVudChpbnB1dDogT3V0bG9va0V2ZW50SW5wdXQpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICB0aGlzLnJlcXVpcmVBY2Nlc3NUb2tlbigpO1xuICAgIGlmICghaW5wdXQuc3ViamVjdCB8fCAhaW5wdXQuc3RhcnQgfHwgIWlucHV0LmVuZCkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIFwiTWljcm9zb2Z0IE91dGxvb2sgY3JlYXRlRXZlbnQgcmVxdWlyZXMgc3ViamVjdCwgc3RhcnQsIGFuZCBlbmRcIlxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgdGltZVpvbmUgPSBpbnB1dC50aW1lWm9uZSA/PyBcIlVUQ1wiO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LnBvc3QoXCIvbWUvZXZlbnRzXCIsIHtcbiAgICAgICAgc3ViamVjdDogaW5wdXQuc3ViamVjdCxcbiAgICAgICAgLi4uKGlucHV0LmJvZHlcbiAgICAgICAgICA/IHsgYm9keTogeyBjb250ZW50VHlwZTogXCJUZXh0XCIsIGNvbnRlbnQ6IGlucHV0LmJvZHkgfSB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICAgIHN0YXJ0OiB7IGRhdGVUaW1lOiBpbnB1dC5zdGFydCwgdGltZVpvbmUgfSxcbiAgICAgICAgZW5kOiB7IGRhdGVUaW1lOiBpbnB1dC5lbmQsIHRpbWVab25lIH0sXG4gICAgICAgIC4uLihpbnB1dC5sb2NhdGlvbiA/IHsgbG9jYXRpb246IHsgZGlzcGxheU5hbWU6IGlucHV0LmxvY2F0aW9uIH0gfSA6IHt9KSxcbiAgICAgICAgLi4uKGlucHV0LmF0dGVuZGVlc1xuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBhdHRlbmRlZXM6IHJlY2lwaWVudExpc3QoaW5wdXQuYXR0ZW5kZWVzKS5tYXAoKGVudHJ5KSA9PiAoe1xuICAgICAgICAgICAgICAgIGVtYWlsQWRkcmVzczogZW50cnkuZW1haWxBZGRyZXNzLFxuICAgICAgICAgICAgICAgIHR5cGU6IFwicmVxdWlyZWRcIixcbiAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgaHR0cEVycm9yKFwiTWljcm9zb2Z0IE91dGxvb2tcIiwgXCJjcmVhdGUgZXZlbnRcIiwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBhbiBPdXRsb29rIGNhbGVuZGFyIGV2ZW50XG4gICAqIEBzdW1tYXJ5IGBERUxFVEVgcyBgL21lL2V2ZW50cy88aWQ+YCBhbmQgcmV0dXJucyBgeyBkZWxldGVkOiB0cnVlLCBldmVudElkIH1gLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRJZCAtIFRoZSBHcmFwaCBldmVudCBJRC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IGB7IGRlbGV0ZWQ6IHRydWUsIGV2ZW50SWQgfWAgb24gc3VjY2Vzcy5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBubyB0b2tlbiBpcyBjb25maWd1cmVkIG9yIHRoZSBldmVudCBJRCBpcyBlbXB0eS5cbiAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiB0aGUgZXZlbnQgZG9lcyBub3QgZXhpc3QgKEhUVFAgNDA0KS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdyYXBoIHJlamVjdHMgdGhlIHJlcXVlc3QuXG4gICAqL1xuICBhc3luYyBkZWxldGVFdmVudChldmVudElkOiBzdHJpbmcpOiBQcm9taXNlPHVua25vd24+IHtcbiAgICB0aGlzLnJlcXVpcmVBY2Nlc3NUb2tlbigpO1xuICAgIGlmICghZXZlbnRJZCkge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJNaWNyb3NvZnQgT3V0bG9vayByZXF1aXJlcyBhbiBldmVudCBpZFwiKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY2xpZW50LmRlbGV0ZShgL21lL2V2ZW50cy8ke2VuY29kZVVSSUNvbXBvbmVudChldmVudElkKX1gKTtcbiAgICAgIHJldHVybiB7IGRlbGV0ZWQ6IHRydWUsIGV2ZW50SWQgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgaHR0cEVycm9yKFwiTWljcm9zb2Z0IE91dGxvb2tcIiwgXCJkZWxldGUgZXZlbnRcIiwgZXJyb3IpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
325
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWljcm9zb2Z0T3V0bG9va1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJNaWNyb3NvZnRPdXRsb29rU2VydmljZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCwyREFBd0Q7QUFDeEQsd0RBQXVEO0FBQ3ZELDRFQUEwRTtBQUMxRSwyREFBMEU7QUFDMUU7Ozs7Ozs7R0FPRztBQUNILFNBQVMsYUFBYSxDQUFDLEtBQUs7SUFDeEIsSUFBSSxDQUFDLEtBQUs7UUFDTixPQUFPLEVBQUUsQ0FBQztJQUNkLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxLQUFLO1FBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2RCxPQUFPLE1BQU07U0FDUixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM1QixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ25DLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFDRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdDRztBQUNILE1BQWEsdUJBQXdCLFNBQVEseUJBQWM7SUFDdkQ7UUFDSSxLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUNwQjs7V0FFRztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQUM7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RSxVQUFVO3lCQUNuQixDQUFDLENBQUM7cUJBQ047b0JBQ0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNaLENBQUMsQ0FBQztZQUNILE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztRQUN6QixDQUFDO1FBQ0QsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBQSxvQkFBUyxFQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRSxDQUFDO0lBQ0wsQ0FBQztJQUNEOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPO1FBQ3JCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSw2QkFBYSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUNELElBQUksQ0FBQztZQUNELE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUEsb0JBQVMsRUFBQyxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEUsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQWpQRCwwREFpUEM7QUFDRCwwcjhCQUEwcjhCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9jb21tcy9vdXRsb29rL3NlcnZpY2VcbiAqIEBzdW1tYXJ5IE1pY3Jvc29mdCBPdXRsb29rIG1haWwgYW5kIGNhbGVuZGFyIGludGVncmF0aW9uIHNlcnZpY2UgKE1pY3Jvc29mdCBHcmFwaCkuXG4gKiBAZGVzY3JpcHRpb24gRXhwb3NlcyBPdXRsb29rIG1haWwgKGBzZW5kTWFpbGAsIGBsaXN0TWVzc2FnZXNgLCBgZ2V0TWVzc2FnZWApXG4gKiBhbmQgY2FsZW5kYXIgKGBsaXN0RXZlbnRzYCwgYGNyZWF0ZUV2ZW50YCwgYGRlbGV0ZUV2ZW50YCkgb3BlcmF0aW9ucyB0aHJvdWdoXG4gKiBNaWNyb3NvZnQgR3JhcGggYHYxLjBgIGFzIGFuIHVuZGVjb3JhdGVkIGNsaWVudC1iYXNlZCBzZXJ2aWNlIGJ1aWx0IG9uXG4gKiB7QGxpbmsgSHR0cEFwaVNlcnZpY2V9LiBDb25maWd1cmF0aW9uIGNvbWVzIGZyb20gYW4gZXhwbGljaXRcbiAqIGBPdXRsb29rU2VydmljZUNvbmZpZ2Agb3IgdGhlIGBjb21tcy5vdXRsb29rYCBlbnZpcm9ubWVudCBzbGljZTsgdGhlIGFjY2Vzc1xuICogdG9rZW4gaXMgc2VudCBhcyBgQXV0aG9yaXphdGlvbjogQmVhcmVyIDx0b2tlbj5gLiBDcmVkZW50aWFscyBhcmUgcmVmZXJlbmNlZFxuICogZnJvbSBjb25maWd1cmF0aW9uIChhbmQsIGZyb20gYXMtZ3JhcGggbm9kZXMsIGZyb20gdGhlIHJlc29sdmVkXG4gKiBgbWljcm9zb2Z0LW91dGxvb2tgIGNyZWRlbnRpYWwgc2VjcmV0KSBhbmQgYXJlIG5ldmVyIGVtYmVkZGVkIGluIHNvdXJjZS5cbiAqIEZhaWx1cmVzIGFyZSBtYXBwZWQgdG8gZGVjYWYgZXJyb3JzIHZpYSB7QGxpbmsgaHR0cEVycm9yfS5cbiAqL1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ29tbXNFbnZpcm9ubWVudCB9IGZyb20gXCIuLy4uL2Vudmlyb25tZW50LmpzXCI7XG5pbXBvcnQgeyBlbnZOdW1iZXIsIGVudlN0cmluZyB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9lbnZpcm9ubWVudFZhbHVlLmpzXCI7XG5pbXBvcnQgeyBIdHRwQXBpU2VydmljZSwgaHR0cEVycm9yLCB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9odHRwL2luZGV4LmpzXCI7XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBOb3JtYWxpemVzIE91dGxvb2sgcmVjaXBpZW50IGFkZHJlc3NlcyBpbnRvIEdyYXBoIHJlY2lwaWVudHNcbiAqIEBzdW1tYXJ5IEFjY2VwdHMgYSBzaW5nbGUgYWRkcmVzcywgYW4gYXJyYXksIG9yIGEgY29tbWEvc2VtaWNvbG9uLXNlcGFyYXRlZFxuICogc3RyaW5nLCB0cmltcyBlbnRyaWVzLCBkcm9wcyBibGFua3MsIGFuZCBtYXBzIGVhY2ggYWRkcmVzcyB0byB0aGUgR3JhcGhcbiAqIGB7IGVtYWlsQWRkcmVzczogeyBhZGRyZXNzIH0gfWAgZW52ZWxvcGUuXG4gKiBAcGFyYW0ge3N0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkfSB2YWx1ZSAtIFRoZSByYXcgcmVjaXBpZW50IHZhbHVlLlxuICogQHJldHVybnMge0FycmF5PHsgZW1haWxBZGRyZXNzOiB7IGFkZHJlc3M6IHN0cmluZyB9IH0+fSBUaGUgR3JhcGggcmVjaXBpZW50IGVudmVsb3Blcy5cbiAqL1xuZnVuY3Rpb24gcmVjaXBpZW50TGlzdCh2YWx1ZSkge1xuICAgIGlmICghdmFsdWUpXG4gICAgICAgIHJldHVybiBbXTtcbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKVxuICAgICAgICA/IHZhbHVlXG4gICAgICAgIDogdmFsdWUuc3BsaXQoL1ssO10vKS5tYXAoKGVudHJ5KSA9PiBlbnRyeS50cmltKCkpO1xuICAgIHJldHVybiB2YWx1ZXNcbiAgICAgICAgLm1hcCgoZW50cnkpID0+IGVudHJ5LnRyaW0oKSlcbiAgICAgICAgLmZpbHRlcigoZW50cnkpID0+IGVudHJ5Lmxlbmd0aCA+IDApXG4gICAgICAgIC5tYXAoKGFkZHJlc3MpID0+ICh7IGVtYWlsQWRkcmVzczogeyBhZGRyZXNzIH0gfSkpO1xufVxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWljcm9zb2Z0IE91dGxvb2sgKEdyYXBoKSBtYWlsIGFuZCBjYWxlbmRhciBpbnRlZ3JhdGlvbiBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBBbiB1bmRlY29yYXRlZCBIVFRQIHNlcnZpY2UgZm9yIHNlbmRpbmcgYW5kIHJlYWRpbmcgbWFpbCBhbmQgZm9yXG4gKiBsaXN0aW5nLCBjcmVhdGluZywgYW5kIGRlbGV0aW5nIGNhbGVuZGFyIGV2ZW50cyBvbiB0aGUgc2lnbmVkLWluIHVzZXJcbiAqIChgL21lYCkuIEV2ZXJ5IG9wZXJhdGlvbiByZXF1aXJlcyBhIEdyYXBoIGFjY2VzcyB0b2tlbjsgbWlzc2luZyBjcmVkZW50aWFsc1xuICogb3IgaWRlbnRpZmllcnMgcmFpc2UgYEludGVybmFsRXJyb3JgLCBhbmQgdHJhbnNwb3J0IGZhaWx1cmVzIGFyZSBtYXBwZWQgdG9cbiAqIGRlY2FmIGVycm9ycyB2aWEge0BsaW5rIGh0dHBFcnJvcn0uXG4gKiBAY2xhc3MgTWljcm9zb2Z0T3V0bG9va1NlcnZpY2VcbiAqIEBleHRlbmRzIEh0dHBBcGlTZXJ2aWNlXG4gKiBAY2F0ZWdvcnkgQ29tbXNcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgTWljcm9zb2Z0T3V0bG9va1NlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2ludGVncmF0aW9ucy9jb21tcy9vdXRsb29rXCI7XG4gKlxuICogY29uc3Qgb3V0bG9vayA9IG5ldyBNaWNyb3NvZnRPdXRsb29rU2VydmljZSgpO1xuICogYXdhaXQgb3V0bG9vay5pbml0aWFsaXplKHtcbiAqICAgdG9rZW46IHByb2Nlc3MuZW52LkdSQVBIX0NSRURFTlRJQUxfTUlDUk9TT0ZUX09VVExPT0tfVE9LRU4sXG4gKiB9KTtcbiAqIGF3YWl0IG91dGxvb2suc2VuZE1haWwoe1xuICogICB0bzogXCJ0ZWFtQGV4YW1wbGUuY29tXCIsXG4gKiAgIHN1YmplY3Q6IFwiRGVwbG95bWVudCBmaW5pc2hlZFwiLFxuICogICBib2R5OiBcIlJlbGVhc2UgMS4yLjAgaXMgbGl2ZVwiLFxuICogfSk7XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgYXV0b251bWJlclxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgU2VydmljZSBhcyBNaWNyb3NvZnRPdXRsb29rU2VydmljZVxuICogICBwYXJ0aWNpcGFudCBHcmFwaCBhcyBNaWNyb3NvZnQgR3JhcGhcbiAqICAgQ2FsbGVyLT4+U2VydmljZTogc2VuZE1haWwoaW5wdXQpXG4gKiAgIGFjdGl2YXRlIFNlcnZpY2VcbiAqICAgU2VydmljZS0+PlNlcnZpY2U6IHJlcXVpcmVBY2Nlc3NUb2tlbigpXG4gKiAgIFNlcnZpY2UtPj5HcmFwaDogUE9TVCAvbWUvc2VuZE1haWxcbiAqICAgYWN0aXZhdGUgR3JhcGhcbiAqICAgR3JhcGgtLT4+U2VydmljZTogMjAyIEFjY2VwdGVkXG4gKiAgIGRlYWN0aXZhdGUgR3JhcGhcbiAqICAgU2VydmljZS0tPj5DYWxsZXI6IHsgc2VudCwgdG8sIHN1YmplY3QgfVxuICogICBkZWFjdGl2YXRlIFNlcnZpY2VcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2NvbW1zL291dGxvb2svc2VydmljZVxuICovXG5leHBvcnQgY2xhc3MgTWljcm9zb2Z0T3V0bG9va1NlcnZpY2UgZXh0ZW5kcyBIdHRwQXBpU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGhlIHByb3ZpZGVyIG5hbWUgdXNlZCBpbiBlcnJvciBtZXNzYWdlc1xuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zZXJ2aWNlTmFtZSA9IFwiTWljcm9zb2Z0IE91dGxvb2tcIjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRoZSBNaWNyb3NvZnQgR3JhcGggYmFzZSBVUkxcbiAgICAgKiBAc3VtbWFyeSBVc2VkIHdoZW4gdGhlIHJlc29sdmVkIGNvbmZpZyBjYXJyaWVzIG5vIGBiYXNlVXJsYC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBgXCJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vdjEuMFwiYC5cbiAgICAgKi9cbiAgICBkZWZhdWx0QmFzZVVybCgpIHtcbiAgICAgICAgcmV0dXJuIFwiaHR0cHM6Ly9ncmFwaC5taWNyb3NvZnQuY29tL3YxLjBcIjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEJ1aWxkcyB0aGUgTWljcm9zb2Z0IEdyYXBoIGJlYXJlciBhdXRob3JpemF0aW9uIGhlYWRlcnNcbiAgICAgKiBAc3VtbWFyeSBSZXR1cm5zIGBBdXRob3JpemF0aW9uOiBCZWFyZXIgPHRva2VuPmAgd2hlbiBjb25maWd1cmVkLCBhbmQgbm9cbiAgICAgKiBoZWFkZXJzIG90aGVyd2lzZS5cbiAgICAgKiBAcGFyYW0ge091dGxvb2tTZXJ2aWNlQ29uZmlnfSBjb25maWcgLSBUaGUgcmVzb2x2ZWQgc2VydmljZSBjb25maWd1cmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSBUaGUgYXV0aG9yaXphdGlvbiBoZWFkZXJzIChlbXB0eSB3aXRob3V0IGEgdG9rZW4pLlxuICAgICAqL1xuICAgIGF1dGhIZWFkZXJzKGNvbmZpZykge1xuICAgICAgICByZXR1cm4gY29uZmlnLnRva2VuID8geyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7Y29uZmlnLnRva2VufWAgfSA6IHt9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVhZHMgdGhlIE91dGxvb2sgY3JlZGVudGlhbHMgYW5kIGRlZmF1bHRzIGZyb20gdGhlIGVudmlyb25tZW50XG4gICAgICogQHN1bW1hcnkgUmVhZHMgdGhlIGBjb21tcy5vdXRsb29rYCBzbGljZSBhbmQgcmV0dXJucyBhIHBhcnRpYWwgY29uZmlnIHdoZW5cbiAgICAgKiBhbiBhY2Nlc3MgdG9rZW4gaXMgY29uZmlndXJlZCwgYHVuZGVmaW5lZGAgb3RoZXJ3aXNlLiBWYWx1ZXMgcGFzcyB0aHJvdWdoXG4gICAgICogYGVudlN0cmluZ2AvYGVudk51bWJlcmAgdG8gcmVqZWN0IHVuc2V0LWxlYWYgcHJveGllcy5cbiAgICAgKiBAcmV0dXJucyB7UGFydGlhbDxPdXRsb29rU2VydmljZUNvbmZpZz4gfCB1bmRlZmluZWR9IEEgcGFydGlhbCBjb25maWcsIG9yIGB1bmRlZmluZWRgIHdoZW4gbm8gT3V0bG9vayB0b2tlbiBpcyBjb25maWd1cmVkLlxuICAgICAqL1xuICAgIGNvbmZpZ0Zyb21FbnZpcm9ubWVudCgpIHtcbiAgICAgICAgY29uc3QgZW52ID0gQ29tbXNFbnZpcm9ubWVudC5jb21tcy5vdXRsb29rO1xuICAgICAgICBjb25zdCB0b2tlbiA9IGVudlN0cmluZyhlbnY/LnRva2VuKTtcbiAgICAgICAgaWYgKCF0b2tlbilcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0b2tlbixcbiAgICAgICAgICAgIGJhc2VVcmw6IGVudlN0cmluZyhlbnYuYmFzZVVybCksXG4gICAgICAgICAgICB0aW1lb3V0OiBlbnZOdW1iZXIoZW52LnRpbWVvdXQpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXNzZXJ0cyB0aGF0IGEgTWljcm9zb2Z0IEdyYXBoIGFjY2VzcyB0b2tlbiBpcyBjb25maWd1cmVkXG4gICAgICogQHN1bW1hcnkgRGVsZWdhdGVzIHRvIHRoZSBzaGFyZWQgYHJlcXVpcmVUb2tlbigpYCBndWFyZCB1c2VkIGJ5IGV2ZXJ5XG4gICAgICogb3BlcmF0aW9uLlxuICAgICAqIEByZXR1cm5zIHt2b2lkfVxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gdGhlIHJlc29sdmVkIGNvbmZpZyBoYXMgbm8gYHRva2VuYC5cbiAgICAgKi9cbiAgICByZXF1aXJlQWNjZXNzVG9rZW4oKSB7XG4gICAgICAgIHRoaXMucmVxdWlyZVRva2VuKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTZW5kcyBhIG1haWwgbWVzc2FnZSB0aHJvdWdoIE91dGxvb2tcbiAgICAgKiBAc3VtbWFyeSBgUE9TVGBzIHRoZSBtZXNzYWdlIHRvIGAvbWUvc2VuZE1haWxgOyByZWNpcGllbnRzIGFyZSBub3JtYWxpemVkXG4gICAgICogdG8gR3JhcGggZW52ZWxvcGVzIGFuZCBgc2F2ZVRvU2VudEl0ZW1zYCBkZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAgICogQHBhcmFtIHtPdXRsb29rTWFpbElucHV0fSBpbnB1dCAtIFRoZSByZWNpcGllbnRzLCBzdWJqZWN0LCBib2R5LCBhbmQgY29udGVudCBvcHRpb25zLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBgeyBzZW50OiB0cnVlLCB0bywgc3ViamVjdCB9YCBvbiBzdWNjZXNzLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gdG9rZW4gaXMgY29uZmlndXJlZCwgb3IgcmVjaXBpZW50cyBvciBzdWJqZWN0IGFyZSBtaXNzaW5nLlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHcmFwaCByZWplY3RzIHRoZSByZXF1ZXN0LlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHNcbiAgICAgKiBhd2FpdCBvdXRsb29rLnNlbmRNYWlsKHtcbiAgICAgKiAgIHRvOiBbXCJhQGV4YW1wbGUuY29tXCIsIFwiYkBleGFtcGxlLmNvbVwiXSxcbiAgICAgKiAgIHN1YmplY3Q6IFwiU3RhdHVzXCIsXG4gICAgICogICBib2R5OiBcIkFsbCBzeXN0ZW1zIG9wZXJhdGlvbmFsXCIsXG4gICAgICogICBjb250ZW50VHlwZTogXCJUZXh0XCIsXG4gICAgICogfSk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgYXN5bmMgc2VuZE1haWwoaW5wdXQpIHtcbiAgICAgICAgdGhpcy5yZXF1aXJlQWNjZXNzVG9rZW4oKTtcbiAgICAgICAgaWYgKCFpbnB1dC50byB8fCAhaW5wdXQuc3ViamVjdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJNaWNyb3NvZnQgT3V0bG9vayBzZW5kTWFpbCByZXF1aXJlcyByZWNpcGllbnRzIGFuZCBhIHN1YmplY3RcIik7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY2xpZW50LnBvc3QoXCIvbWUvc2VuZE1haWxcIiwge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICAgICAgICAgICAgc3ViamVjdDogaW5wdXQuc3ViamVjdCxcbiAgICAgICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudFR5cGU6IGlucHV0LmNvbnRlbnRUeXBlID8/IFwiVGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogaW5wdXQuYm9keSA/PyBcIlwiLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB0b1JlY2lwaWVudHM6IHJlY2lwaWVudExpc3QoaW5wdXQudG8pLFxuICAgICAgICAgICAgICAgICAgICAuLi4oaW5wdXQuY2MgPyB7IGNjUmVjaXBpZW50czogcmVjaXBpZW50TGlzdChpbnB1dC5jYykgfSA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgLi4uKGlucHV0LmJjYyA/IHsgYmNjUmVjaXBpZW50czogcmVjaXBpZW50TGlzdChpbnB1dC5iY2MpIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzYXZlVG9TZW50SXRlbXM6IGlucHV0LnNhdmVUb1NlbnRJdGVtcyA/PyB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4geyBzZW50OiB0cnVlLCB0bzogaW5wdXQudG8sIHN1YmplY3Q6IGlucHV0LnN1YmplY3QgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIk1pY3Jvc29mdCBPdXRsb29rXCIsIFwic2VuZCBtYWlsXCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdHMgbWVzc2FnZXMgaW4gYW4gT3V0bG9vayBtYWlsIGZvbGRlclxuICAgICAqIEBzdW1tYXJ5IGBHRVRgcyBgL21lL21haWxGb2xkZXJzLzxmb2xkZXI+L21lc3NhZ2VzYCAoZGVmYXVsdCBgaW5ib3hgKVxuICAgICAqIGFwcGx5aW5nIHRoZSBvcHRpb25hbCBgJHRvcGAsIGAkZmlsdGVyYCwgYW5kIGAkc2VhcmNoYCBwYXJhbWV0ZXJzLlxuICAgICAqIEBwYXJhbSB7T3V0bG9va0xpc3RJbnB1dH0gW2lucHV0XSAtIFRoZSBmb2xkZXIgYW5kIE9EYXRhIHF1ZXJ5IG9wdGlvbnMuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IFRoZSBHcmFwaCBtZXNzYWdlIGNvbGxlY3Rpb24uXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBubyB0b2tlbiBpcyBjb25maWd1cmVkLlxuICAgICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIGZvbGRlciBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHcmFwaCByZWplY3RzIHRoZSBxdWVyeS5cbiAgICAgKi9cbiAgICBhc3luYyBsaXN0TWVzc2FnZXMoaW5wdXQgPSB7fSkge1xuICAgICAgICB0aGlzLnJlcXVpcmVBY2Nlc3NUb2tlbigpO1xuICAgICAgICBjb25zdCBmb2xkZXIgPSBpbnB1dC5mb2xkZXJJZCA/PyBcImluYm94XCI7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LmdldChgL21lL21haWxGb2xkZXJzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGZvbGRlcil9L21lc3NhZ2VzYCwge1xuICAgICAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgICAuLi4oaW5wdXQudG9wICE9PSB1bmRlZmluZWQgPyB7ICR0b3A6IGlucHV0LnRvcCB9IDoge30pLFxuICAgICAgICAgICAgICAgICAgICAuLi4oaW5wdXQuZmlsdGVyID8geyAkZmlsdGVyOiBpbnB1dC5maWx0ZXIgfSA6IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgLi4uKGlucHV0LnNlYXJjaCA/IHsgJHNlYXJjaDogaW5wdXQuc2VhcmNoIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBodHRwRXJyb3IoXCJNaWNyb3NvZnQgT3V0bG9va1wiLCBcImxpc3QgbWVzc2FnZXNcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBGZXRjaGVzIGEgc2luZ2xlIE91dGxvb2sgbWVzc2FnZVxuICAgICAqIEBzdW1tYXJ5IGBHRVRgcyBgL21lL21lc3NhZ2VzLzxpZD5gIGFuZCByZXR1cm5zIHRoZSBtZXNzYWdlIHBheWxvYWQuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2VJZCAtIFRoZSBHcmFwaCBtZXNzYWdlIElELlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBUaGUgbWVzc2FnZSBwYXlsb2FkLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gdG9rZW4gaXMgY29uZmlndXJlZCBvciB0aGUgbWVzc2FnZSBJRCBpcyBlbXB0eS5cbiAgICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBtZXNzYWdlIGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdyYXBoIHJlamVjdHMgdGhlIHJlcXVlc3QuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0TWVzc2FnZShtZXNzYWdlSWQpIHtcbiAgICAgICAgdGhpcy5yZXF1aXJlQWNjZXNzVG9rZW4oKTtcbiAgICAgICAgaWYgKCFtZXNzYWdlSWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiTWljcm9zb2Z0IE91dGxvb2sgcmVxdWlyZXMgYSBtZXNzYWdlIGlkXCIpO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY2xpZW50LmdldChgL21lL21lc3NhZ2VzLyR7ZW5jb2RlVVJJQ29tcG9uZW50KG1lc3NhZ2VJZCl9YCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIk1pY3Jvc29mdCBPdXRsb29rXCIsIFwiZ2V0IG1lc3NhZ2VcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0cyBPdXRsb29rIGNhbGVuZGFyIGV2ZW50c1xuICAgICAqIEBzdW1tYXJ5IGBHRVRgcyBgL21lL2V2ZW50c2AgYXBwbHlpbmcgdGhlIG9wdGlvbmFsIGAkdG9wYCwgYCRmaWx0ZXJgLCBhbmRcbiAgICAgKiBgJHNlYXJjaGAgcGFyYW1ldGVyczsgdGhlIG1haWwgYGZvbGRlcklkYCBpcyBub3QgdXNlZC5cbiAgICAgKiBAcGFyYW0ge091dGxvb2tMaXN0SW5wdXR9IFtpbnB1dF0gLSBUaGUgT0RhdGEgcXVlcnkgb3B0aW9ucy5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx1bmtub3duPn0gVGhlIEdyYXBoIGV2ZW50IGNvbGxlY3Rpb24uXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBubyB0b2tlbiBpcyBjb25maWd1cmVkLlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBHcmFwaCByZWplY3RzIHRoZSBxdWVyeS5cbiAgICAgKi9cbiAgICBhc3luYyBsaXN0RXZlbnRzKGlucHV0ID0ge30pIHtcbiAgICAgICAgdGhpcy5yZXF1aXJlQWNjZXNzVG9rZW4oKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0KFwiL21lL2V2ZW50c1wiLCB7XG4gICAgICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLihpbnB1dC50b3AgIT09IHVuZGVmaW5lZCA/IHsgJHRvcDogaW5wdXQudG9wIH0gOiB7fSksXG4gICAgICAgICAgICAgICAgICAgIC4uLihpbnB1dC5maWx0ZXIgPyB7ICRmaWx0ZXI6IGlucHV0LmZpbHRlciB9IDoge30pLFxuICAgICAgICAgICAgICAgICAgICAuLi4oaW5wdXQuc2VhcmNoID8geyAkc2VhcmNoOiBpbnB1dC5zZWFyY2ggfSA6IHt9KSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIk1pY3Jvc29mdCBPdXRsb29rXCIsIFwibGlzdCBldmVudHNcIiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGFuIE91dGxvb2sgY2FsZW5kYXIgZXZlbnRcbiAgICAgKiBAc3VtbWFyeSBgUE9TVGBzIHRoZSBldmVudCB0byBgL21lL2V2ZW50c2A7IGBzdGFydGAvYGVuZGAgYXJlIHNlbnQgd2l0aCB0aGVcbiAgICAgKiBjb25maWd1cmVkIG9yIGRlZmF1bHQgKGBVVENgKSB0aW1lIHpvbmUgYW5kIGF0dGVuZGVlcyBhcyByZXF1aXJlZC5cbiAgICAgKiBAcGFyYW0ge091dGxvb2tFdmVudElucHV0fSBpbnB1dCAtIFRoZSBldmVudCBkZWZpbml0aW9uLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSBUaGUgY3JlYXRlZCBHcmFwaCBldmVudC5cbiAgICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIHRva2VuIGlzIGNvbmZpZ3VyZWQsIG9yIHN1YmplY3QsIHN0YXJ0LCBvciBlbmQgaXMgbWlzc2luZy5cbiAgICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gR3JhcGggcmVqZWN0cyB0aGUgZXZlbnQuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0c1xuICAgICAqIGF3YWl0IG91dGxvb2suY3JlYXRlRXZlbnQoe1xuICAgICAqICAgc3ViamVjdDogXCJSZWxlYXNlIHJldmlld1wiLFxuICAgICAqICAgc3RhcnQ6IFwiMjAyNi0xMS0wMVQwOTowMDowMFwiLFxuICAgICAqICAgZW5kOiBcIjIwMjYtMTEtMDFUMTA6MDA6MDBcIixcbiAgICAgKiAgIHRpbWVab25lOiBcIkV1cm9wZS9MaXNib25cIixcbiAgICAgKiB9KTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBhc3luYyBjcmVhdGVFdmVudChpbnB1dCkge1xuICAgICAgICB0aGlzLnJlcXVpcmVBY2Nlc3NUb2tlbigpO1xuICAgICAgICBpZiAoIWlucHV0LnN1YmplY3QgfHwgIWlucHV0LnN0YXJ0IHx8ICFpbnB1dC5lbmQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiTWljcm9zb2Z0IE91dGxvb2sgY3JlYXRlRXZlbnQgcmVxdWlyZXMgc3ViamVjdCwgc3RhcnQsIGFuZCBlbmRcIik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGltZVpvbmUgPSBpbnB1dC50aW1lWm9uZSA/PyBcIlVUQ1wiO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNsaWVudC5wb3N0KFwiL21lL2V2ZW50c1wiLCB7XG4gICAgICAgICAgICAgICAgc3ViamVjdDogaW5wdXQuc3ViamVjdCxcbiAgICAgICAgICAgICAgICAuLi4oaW5wdXQuYm9keVxuICAgICAgICAgICAgICAgICAgICA/IHsgYm9keTogeyBjb250ZW50VHlwZTogXCJUZXh0XCIsIGNvbnRlbnQ6IGlucHV0LmJvZHkgfSB9XG4gICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgIHN0YXJ0OiB7IGRhdGVUaW1lOiBpbnB1dC5zdGFydCwgdGltZVpvbmUgfSxcbiAgICAgICAgICAgICAgICBlbmQ6IHsgZGF0ZVRpbWU6IGlucHV0LmVuZCwgdGltZVpvbmUgfSxcbiAgICAgICAgICAgICAgICAuLi4oaW5wdXQubG9jYXRpb24gPyB7IGxvY2F0aW9uOiB7IGRpc3BsYXlOYW1lOiBpbnB1dC5sb2NhdGlvbiB9IH0gOiB7fSksXG4gICAgICAgICAgICAgICAgLi4uKGlucHV0LmF0dGVuZGVlc1xuICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dGVuZGVlczogcmVjaXBpZW50TGlzdChpbnB1dC5hdHRlbmRlZXMpLm1hcCgoZW50cnkpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW1haWxBZGRyZXNzOiBlbnRyeS5lbWFpbEFkZHJlc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJyZXF1aXJlZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIk1pY3Jvc29mdCBPdXRsb29rXCIsIFwiY3JlYXRlIGV2ZW50XCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRGVsZXRlcyBhbiBPdXRsb29rIGNhbGVuZGFyIGV2ZW50XG4gICAgICogQHN1bW1hcnkgYERFTEVURWBzIGAvbWUvZXZlbnRzLzxpZD5gIGFuZCByZXR1cm5zIGB7IGRlbGV0ZWQ6IHRydWUsIGV2ZW50SWQgfWAuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50SWQgLSBUaGUgR3JhcGggZXZlbnQgSUQuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IGB7IGRlbGV0ZWQ6IHRydWUsIGV2ZW50SWQgfWAgb24gc3VjY2Vzcy5cbiAgICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIHRva2VuIGlzIGNvbmZpZ3VyZWQgb3IgdGhlIGV2ZW50IElEIGlzIGVtcHR5LlxuICAgICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIGV2ZW50IGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIEdyYXBoIHJlamVjdHMgdGhlIHJlcXVlc3QuXG4gICAgICovXG4gICAgYXN5bmMgZGVsZXRlRXZlbnQoZXZlbnRJZCkge1xuICAgICAgICB0aGlzLnJlcXVpcmVBY2Nlc3NUb2tlbigpO1xuICAgICAgICBpZiAoIWV2ZW50SWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiTWljcm9zb2Z0IE91dGxvb2sgcmVxdWlyZXMgYW4gZXZlbnQgaWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY2xpZW50LmRlbGV0ZShgL21lL2V2ZW50cy8ke2VuY29kZVVSSUNvbXBvbmVudChldmVudElkKX1gKTtcbiAgICAgICAgICAgIHJldHVybiB7IGRlbGV0ZWQ6IHRydWUsIGV2ZW50SWQgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRocm93IGh0dHBFcnJvcihcIk1pY3Jvc29mdCBPdXRsb29rXCIsIFwiZGVsZXRlIGV2ZW50XCIsIGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVRXbGpjbTl6YjJaMFQzVjBiRzl2YTFObGNuWnBZMlV1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOHVMaTl6Y21NdlkyOXRiWE12YjNWMGJHOXZheTlOYVdOeWIzTnZablJQZFhSc2IyOXJVMlZ5ZG1salpTNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVRzN096czdPenM3T3pzN08wZEJXVWM3UVVGRFNDeFBRVUZQTEVWQlFVVXNZVUZCWVN4RlFVRkZMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZEZUVRc1QwRkJUeXhGUVVGRkxHZENRVUZuUWl4RlFVRkZMRFJDUVVGMVFqdEJRVU5zUkN4UFFVRlBMRVZCUVVVc1UwRkJVeXhGUVVGRkxGTkJRVk1zUlVGQlJTd3lRMEZCYzBNN1FVRkRja1VzVDBGQlR5eEZRVU5NTEdOQlFXTXNSVUZGWkN4VFFVRlRMRWRCUTFZc2NVTkJRVEJDTzBGQmIwa3pRanM3T3pzN096dEhRVTlITzBGQlEwZ3NVMEZCVXl4aFFVRmhMRU5CUTNCQ0xFdEJRVzlETzBsQlJYQkRMRWxCUVVrc1EwRkJReXhMUVVGTE8xRkJRVVVzVDBGQlR5eEZRVUZGTEVOQlFVTTdTVUZEZEVJc1RVRkJUU3hOUVVGTkxFZEJRVWNzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4TFFVRkxMRU5CUVVNN1VVRkRha01zUTBGQlF5eERRVUZETEV0QlFVczdVVUZEVUN4RFFVRkRMRU5CUVVNc1MwRkJTeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhMUVVGTExFVkJRVVVzUlVGQlJTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRE8wbEJRM0pFTEU5QlFVOHNUVUZCVFR0VFFVTldMRWRCUVVjc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8xTkJRelZDTEUxQlFVMHNRMEZCUXl4RFFVRkRMRXRCUVVzc1JVRkJSU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEUxQlFVMHNSMEZCUnl4RFFVRkRMRU5CUVVNN1UwRkRia01zUjBGQlJ5eERRVUZETEVOQlFVTXNUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFVkJRVVVzV1VGQldTeEZRVUZGTEVWQlFVVXNUMEZCVHl4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRExFTkJRVU03UVVGRGRrUXNRMEZCUXp0QlFVVkVPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3TzBkQmQwTkhPMEZCUTBnc1RVRkJUU3hQUVVGUExIVkNRVUYzUWl4VFFVRlJMR05CUVc5RE8wbEJRV3BHT3p0UlFVTkZPenRYUVVWSE8xRkJRMmRDTEdkQ1FVRlhMRWRCUVVjc2JVSkJRVzFDTEVOQlFVTTdTVUV3VUhaRUxFTkJRVU03U1VGNFVFTTdPenM3VDBGSlJ6dEpRVU5QTEdOQlFXTTdVVUZEZEVJc1QwRkJUeXhyUTBGQmEwTXNRMEZCUXp0SlFVTTFReXhEUVVGRE8wbEJSVVE3T3pzN096dFBRVTFITzBsQlEwOHNWMEZCVnl4RFFVTnVRaXhOUVVFMFFqdFJRVVUxUWl4UFFVRlBMRTFCUVUwc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNZVUZCWVN4RlFVRkZMRlZCUVZVc1RVRkJUU3hEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJRenRKUVVONlJTeERRVUZETzBsQlJVUTdPenM3T3p0UFFVMUhPMGxCUTA4c2NVSkJRWEZDTzFGQlJ6ZENMRTFCUVUwc1IwRkJSeXhIUVVGSExHZENRVUZuUWl4RFFVRkRMRXRCUVVzc1EwRkJReXhQUVVGUExFTkJRVU03VVVGRE0wTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1UwRkJVeXhEUVVGRExFZEJRVWNzUlVGQlJTeExRVUZMTEVOQlFVTXNRMEZCUXp0UlFVTndReXhKUVVGSkxFTkJRVU1zUzBGQlN6dFpRVUZGTEU5QlFVOHNVMEZCVXl4RFFVRkRPMUZCUXpkQ0xFOUJRVTg3V1VGRFRDeExRVUZMTzFsQlEwd3NUMEZCVHl4RlFVRkZMRk5CUVZNc1EwRkJReXhIUVVGSExFTkJRVU1zVDBGQlR5eERRVUZETzFsQlF5OUNMRTlCUVU4c1JVRkJSU3hUUVVGVExFTkJRVU1zUjBGQlJ5eERRVUZETEU5QlFVOHNRMEZCUXp0VFFVTm9ReXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFT3pzN096czdUMEZOUnp0SlFVTlBMR3RDUVVGclFqdFJRVU14UWl4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRkxFTkJRVU03U1VGRGRFSXNRMEZCUXp0SlFVVkVPenM3T3pzN096czdPenM3T3pzN096dFBRV2xDUnp0SlFVTklMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQmRVSTdVVUZEY0VNc1NVRkJTU3hEUVVGRExHdENRVUZyUWl4RlFVRkZMRU5CUVVNN1VVRkRNVUlzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdXVUZEYUVNc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGRGNrSXNPRVJCUVRoRUxFTkJReTlFTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUTBRc1NVRkJTU3hEUVVGRE8xbEJRMGdzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhqUVVGakxFVkJRVVU3WjBKQlEzSkRMRTlCUVU4c1JVRkJSVHR2UWtGRFVDeFBRVUZQTEVWQlFVVXNTMEZCU3l4RFFVRkRMRTlCUVU4N2IwSkJRM1JDTEVsQlFVa3NSVUZCUlR0M1FrRkRTaXhYUVVGWExFVkJRVVVzUzBGQlN5eERRVUZETEZkQlFWY3NTVUZCU1N4TlFVRk5PM2RDUVVONFF5eFBRVUZQTEVWQlFVVXNTMEZCU3l4RFFVRkRMRWxCUVVrc1NVRkJTU3hGUVVGRk8zRkNRVU14UWp0dlFrRkRSQ3haUVVGWkxFVkJRVVVzWVVGQllTeERRVUZETEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUVVNN2IwSkJRM0pETEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEZsQlFWa3NSVUZCUlN4aFFVRmhMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJRenR2UWtGRE9VUXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNZVUZCWVN4RlFVRkZMR0ZCUVdFc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8ybENRVU5zUlR0blFrRkRSQ3hsUVVGbExFVkJRVVVzUzBGQlN5eERRVUZETEdWQlFXVXNTVUZCU1N4SlFVRkpPMkZCUXk5RExFTkJRVU1zUTBGQlF6dFpRVU5JTEU5QlFVOHNSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFVkJRVVVzUlVGQlJTeExRVUZMTEVOQlFVTXNSVUZCUlN4RlFVRkZMRTlCUVU4c1JVRkJSU3hMUVVGTExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdVVUZET1VRc1EwRkJRenRSUVVGRExFOUJRVThzUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZEWml4TlFVRk5MRk5CUVZNc1EwRkJReXh0UWtGQmJVSXNSVUZCUlN4WFFVRlhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRE0wUXNRMEZCUXp0SlFVTklMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPMDlCVTBjN1NVRkRTQ3hMUVVGTExFTkJRVU1zV1VGQldTeERRVUZETEZGQlFUQkNMRVZCUVVVN1VVRkROME1zU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhGUVVGRkxFTkJRVU03VVVGRE1VSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1MwRkJTeXhEUVVGRExGRkJRVkVzU1VGQlNTeFBRVUZQTEVOQlFVTTdVVUZEZWtNc1NVRkJTU3hEUVVGRE8xbEJRMGdzVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGRGNFTXNiVUpCUVcxQ0xHdENRVUZyUWl4RFFVRkRMRTFCUVUwc1EwRkJReXhYUVVGWExFVkJRM2hFTzJkQ1FVTkZMRTFCUVUwc1JVRkJSVHR2UWtGRFRpeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1MwRkJTeXhUUVVGVExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1EwRkJReXhIUVVGSExFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRPMjlDUVVOMlJDeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeFBRVUZQTEVWQlFVVXNTMEZCU3l4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdiMEpCUTJ4RUxFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFOUJRVThzUlVGQlJTeExRVUZMTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dHBRa0ZEYmtRN1lVRkRSaXhEUVVOR0xFTkJRVU03V1VGRFJpeFBRVUZQTEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNN1VVRkRka0lzUTBGQlF6dFJRVUZETEU5QlFVOHNTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRaaXhOUVVGTkxGTkJRVk1zUTBGQlF5eHRRa0ZCYlVJc1JVRkJSU3hsUVVGbExFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdVVUZETDBRc1EwRkJRenRKUVVOSUxFTkJRVU03U1VGRlJEczdPenM3T3pzN1QwRlJSenRKUVVOSUxFdEJRVXNzUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCYVVJN1VVRkRhRU1zU1VGQlNTeERRVUZETEd0Q1FVRnJRaXhGUVVGRkxFTkJRVU03VVVGRE1VSXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8xbEJRMllzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl4NVEwRkJlVU1zUTBGQlF5eERRVUZETzFGQlEzSkZMRU5CUVVNN1VVRkRSQ3hKUVVGSkxFTkJRVU03V1VGRFNDeE5RVUZOTEZGQlFWRXNSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVU53UXl4blFrRkJaMElzYTBKQlFXdENMRU5CUVVNc1UwRkJVeXhEUVVGRExFVkJRVVVzUTBGRGFFUXNRMEZCUXp0WlFVTkdMRTlCUVU4c1VVRkJVU3hEUVVGRExFbEJRVWtzUTBGQlF6dFJRVU4yUWl4RFFVRkRPMUZCUVVNc1QwRkJUeXhMUVVGTExFVkJRVVVzUTBGQlF6dFpRVU5tTEUxQlFVMHNVMEZCVXl4RFFVRkRMRzFDUVVGdFFpeEZRVUZGTEdGQlFXRXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVNM1JDeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVkVPenM3T3pzN096dFBRVkZITzBsQlEwZ3NTMEZCU3l4RFFVRkRMRlZCUVZVc1EwRkJReXhSUVVFd1FpeEZRVUZGTzFGQlF6TkRMRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRPMUZCUXpGQ0xFbEJRVWtzUTBGQlF6dFpRVU5JTEUxQlFVMHNVVUZCVVN4SFFVRkhMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNXVUZCV1N4RlFVRkZPMmRDUVVOdVJDeE5RVUZOTEVWQlFVVTdiMEpCUTA0c1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEV0QlFVc3NVMEZCVXl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFbEJRVWtzUlVGQlJTeExRVUZMTEVOQlFVTXNSMEZCUnl4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dHZRa0ZEZGtRc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1QwRkJUeXhGUVVGRkxFdEJRVXNzUTBGQlF5eE5RVUZOTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVGRE8yOUNRVU5zUkN4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhEUVVGRExFMUJRVTBzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN2FVSkJRMjVFTzJGQlEwWXNRMEZCUXl4RFFVRkRPMWxCUTBnc1QwRkJUeXhSUVVGUkxFTkJRVU1zU1VGQlNTeERRVUZETzFGQlEzWkNMRU5CUVVNN1VVRkJReXhQUVVGUExFdEJRVXNzUlVGQlJTeERRVUZETzFsQlEyWXNUVUZCVFN4VFFVRlRMRU5CUVVNc2JVSkJRVzFDTEVWQlFVVXNZVUZCWVN4RlFVRkZMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJRemRFTEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlVRN096czdPenM3T3pzN096czdPenM3TzA5QmFVSkhPMGxCUTBnc1MwRkJTeXhEUVVGRExGZEJRVmNzUTBGQlF5eExRVUYzUWp0UlFVTjRReXhKUVVGSkxFTkJRVU1zYTBKQlFXdENMRVZCUVVVc1EwRkJRenRSUVVNeFFpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eExRVUZMTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhGUVVGRkxFTkJRVU03V1VGRGFrUXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkRja0lzWjBWQlFXZEZMRU5CUTJwRkxFTkJRVU03VVVGRFNpeERRVUZETzFGQlEwUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1MwRkJTeXhEUVVGRExGRkJRVkVzU1VGQlNTeExRVUZMTEVOQlFVTTdVVUZEZWtNc1NVRkJTU3hEUVVGRE8xbEJRMGdzVFVGQlRTeFJRVUZSTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVTdaMEpCUTNCRUxFOUJRVThzUlVGQlJTeExRVUZMTEVOQlFVTXNUMEZCVHp0blFrRkRkRUlzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpPMjlDUVVOYUxFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZMRmRCUVZjc1JVRkJSU3hOUVVGTkxFVkJRVVVzVDBGQlR5eEZRVUZGTEV0QlFVc3NRMEZCUXl4SlFVRkpMRVZCUVVVc1JVRkJSVHR2UWtGRGVFUXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJRenRuUWtGRFVDeExRVUZMTEVWQlFVVXNSVUZCUlN4UlFVRlJMRVZCUVVVc1MwRkJTeXhEUVVGRExFdEJRVXNzUlVGQlJTeFJRVUZSTEVWQlFVVTdaMEpCUXpGRExFZEJRVWNzUlVGQlJTeEZRVUZGTEZGQlFWRXNSVUZCUlN4TFFVRkxMRU5CUVVNc1IwRkJSeXhGUVVGRkxGRkJRVkVzUlVGQlJUdG5Ra0ZEZEVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1VVRkJVU3hGUVVGRkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEV0QlFVc3NRMEZCUXl4UlFVRlJMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdaMEpCUTNoRkxFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXp0dlFrRkRha0lzUTBGQlF5eERRVUZETzNkQ1FVTkZMRk5CUVZNc1JVRkJSU3hoUVVGaExFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXpzMFFrRkRlRVFzV1VGQldTeEZRVUZGTEV0QlFVc3NRMEZCUXl4WlFVRlpPelJDUVVOb1F5eEpRVUZKTEVWQlFVVXNWVUZCVlR0NVFrRkRha0lzUTBGQlF5eERRVUZETzNGQ1FVTktPMjlDUVVOSUxFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdZVUZEVWl4RFFVRkRMRU5CUVVNN1dVRkRTQ3hQUVVGUExGRkJRVkVzUTBGQlF5eEpRVUZKTEVOQlFVTTdVVUZEZGtJc1EwRkJRenRSUVVGRExFOUJRVThzUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZEWml4TlFVRk5MRk5CUVZNc1EwRkJReXh0UWtGQmJVSXNSVUZCUlN4alFVRmpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRE9VUXNRMEZCUXp0SlFVTklMRU5CUVVNN1NVRkZSRHM3T3pzN096czdUMEZSUnp0SlFVTklMRXRCUVVzc1EwRkJReXhYUVVGWExFTkJRVU1zVDBGQlpUdFJRVU12UWl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVWQlFVVXNRMEZCUXp0UlFVTXhRaXhKUVVGSkxFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTTdXVUZEWWl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExIZERRVUYzUXl4RFFVRkRMRU5CUVVNN1VVRkRjRVVzUTBGQlF6dFJRVU5FTEVsQlFVa3NRMEZCUXp0WlFVTklMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNZMEZCWXl4clFrRkJhMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkRkRVVzVDBGQlR5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SlFVRkpMRVZCUVVVc1QwRkJUeXhGUVVGRkxFTkJRVU03VVVGRGNFTXNRMEZCUXp0UlFVRkRMRTlCUVU4c1MwRkJTeXhGUVVGRkxFTkJRVU03V1VGRFppeE5RVUZOTEZOQlFWTXNRMEZCUXl4dFFrRkJiVUlzUlVGQlJTeGpRVUZqTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1VVRkRPVVFzUTBGQlF6dEpRVU5JTEVOQlFVTTdRMEZEUmlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1FHMXZaSFZzWlNCcGJuUmxaM0poZEdsdmJuTXZZMjl0YlhNdmIzVjBiRzl2YXk5elpYSjJhV05sWEc0Z0tpQkFjM1Z0YldGeWVTQk5hV055YjNOdlpuUWdUM1YwYkc5dmF5QnRZV2xzSUdGdVpDQmpZV3hsYm1SaGNpQnBiblJsWjNKaGRHbHZiaUJ6WlhKMmFXTmxJQ2hOYVdOeWIzTnZablFnUjNKaGNHZ3BMbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRVY0Y0c5elpYTWdUM1YwYkc5dmF5QnRZV2xzSUNoZ2MyVnVaRTFoYVd4Z0xDQmdiR2x6ZEUxbGMzTmhaMlZ6WUN3Z1lHZGxkRTFsYzNOaFoyVmdLVnh1SUNvZ1lXNWtJR05oYkdWdVpHRnlJQ2hnYkdsemRFVjJaVzUwYzJBc0lHQmpjbVZoZEdWRmRtVnVkR0FzSUdCa1pXeGxkR1ZGZG1WdWRHQXBJRzl3WlhKaGRHbHZibk1nZEdoeWIzVm5hRnh1SUNvZ1RXbGpjbTl6YjJaMElFZHlZWEJvSUdCMk1TNHdZQ0JoY3lCaGJpQjFibVJsWTI5eVlYUmxaQ0JqYkdsbGJuUXRZbUZ6WldRZ2MyVnlkbWxqWlNCaWRXbHNkQ0J2Ymx4dUlDb2dlMEJzYVc1cklFaDBkSEJCY0dsVFpYSjJhV05sZlM0Z1EyOXVabWxuZFhKaGRHbHZiaUJqYjIxbGN5Qm1jbTl0SUdGdUlHVjRjR3hwWTJsMFhHNGdLaUJnVDNWMGJHOXZhMU5sY25acFkyVkRiMjVtYVdkZ0lHOXlJSFJvWlNCZ1kyOXRiWE11YjNWMGJHOXZhMkFnWlc1MmFYSnZibTFsYm5RZ2MyeHBZMlU3SUhSb1pTQmhZMk5sYzNOY2JpQXFJSFJ2YTJWdUlHbHpJSE5sYm5RZ1lYTWdZRUYxZEdodmNtbDZZWFJwYjI0NklFSmxZWEpsY2lBOGRHOXJaVzQrWUM0Z1EzSmxaR1Z1ZEdsaGJITWdZWEpsSUhKbFptVnlaVzVqWldSY2JpQXFJR1p5YjIwZ1kyOXVabWxuZFhKaGRHbHZiaUFvWVc1a0xDQm1jbTl0SUdGekxXZHlZWEJvSUc1dlpHVnpMQ0JtY205dElIUm9aU0J5WlhOdmJIWmxaRnh1SUNvZ1lHMXBZM0p2YzI5bWRDMXZkWFJzYjI5cllDQmpjbVZrWlc1MGFXRnNJSE5sWTNKbGRDa2dZVzVrSUdGeVpTQnVaWFpsY2lCbGJXSmxaR1JsWkNCcGJpQnpiM1Z5WTJVdVhHNGdLaUJHWVdsc2RYSmxjeUJoY21VZ2JXRndjR1ZrSUhSdklHUmxZMkZtSUdWeWNtOXljeUIyYVdFZ2UwQnNhVzVySUdoMGRIQkZjbkp2Y24wdVhHNGdLaTljYm1sdGNHOXlkQ0I3SUVsdWRHVnlibUZzUlhKeWIzSWdmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMlJpTFdSbFkyOXlZWFJ2Y25OY0lqdGNibWx0Y0c5eWRDQjdJRU52YlcxelJXNTJhWEp2Ym0xbGJuUWdmU0JtY205dElGd2lMaTR2Wlc1MmFYSnZibTFsYm5SY0lqdGNibWx0Y0c5eWRDQjdJR1Z1ZGs1MWJXSmxjaXdnWlc1MlUzUnlhVzVuSUgwZ1puSnZiU0JjSWk0dUx5NHVMM05vWVhKbFpDOWxiblpwY205dWJXVnVkRlpoYkhWbFhDSTdYRzVwYlhCdmNuUWdlMXh1SUNCSWRIUndRWEJwVTJWeWRtbGpaU3hjYmlBZ2RIbHdaU0JJZEhSd1FYQnBVMlZ5ZG1salpVTnZibVpwWnl4Y2JpQWdhSFIwY0VWeWNtOXlMRnh1ZlNCbWNtOXRJRndpTGk0dkxpNHZjMmhoY21Wa0wyaDBkSEJjSWp0Y2JseHVMeW9xWEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnUTI5dVptbG5kWEpoZEdsdmJpQm1iM0lnZEdobElFMXBZM0p2YzI5bWRDQlBkWFJzYjI5cklITmxjblpwWTJWY2JpQXFJRUJ6ZFcxdFlYSjVJRVY0ZEdWdVpITWdlMEJzYVc1cklFaDBkSEJCY0dsVFpYSjJhV05sUTI5dVptbG5mU0IzYVhSb0lIUm9aU0JOYVdOeWIzTnZablFnUjNKaGNHaGNiaUFxSUdGalkyVnpjeUIwYjJ0bGJpQnpaVzUwSUdGeklHRWdZbVZoY21WeUlIUnZhMlZ1TGlCWGFHVnVJRzl0YVhSMFpXUXNJSFJvWlNCZ1kyOXRiWE11YjNWMGJHOXZhMkJjYmlBcUlHVnVkbWx5YjI1dFpXNTBJSE5zYVdObElITjFjSEJzYVdWeklIUm9aU0IwYjJ0bGJpQW9jR3gxY3lCdmNIUnBiMjVoYkNCZ1ltRnpaVlZ5YkdBdllIUnBiV1Z2ZFhSZ0tTNWNiaUFxSUVCallYUmxaMjl5ZVNCRGIyMXRjMXh1SUNvZ1FHMWxiV0psY2s5bUlHMXZaSFZzWlRwcGJuUmxaM0poZEdsdmJuTXZZMjl0YlhNdmIzVjBiRzl2YXk5elpYSjJhV05sWEc0Z0tpOWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdUM1YwYkc5dmExTmxjblpwWTJWRGIyNW1hV2NnWlhoMFpXNWtjeUJJZEhSd1FYQnBVMlZ5ZG1salpVTnZibVpwWnlCN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1RXbGpjbTl6YjJaMElFZHlZWEJvSUdGalkyVnpjeUIwYjJ0bGJseHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCVFpXNTBJR0Z6SUdCQmRYUm9iM0pwZW1GMGFXOXVPaUJDWldGeVpYSWdQSFJ2YTJWdVBtQWdkMmwwYUNCbGRtVnllU0JCVUVrZ1kyRnNiQzVjYmlBZ0lDb3ZYRzRnSUhSdmEyVnVQem9nYzNSeWFXNW5PMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJQZFhSc2IyOXJJSEpsWTJsd2FXVnVkQ0JoWkdSeVpYTnpaWE5jYmlBcUlFQnpkVzF0WVhKNUlGQnlhVzFoY25rc0lHTmhjbUp2YmkxamIzQjVMQ0JoYm1RZ1lteHBibVF0WTJGeVltOXVMV052Y0hrZ2NtVmphWEJwWlc1MGN5NGdSV0ZqYUNCbWFXVnNaRnh1SUNvZ1lXTmpaWEIwY3lCaElITnBibWRzWlNCaFpHUnlaWE56SUc5eUlHRnVJR0Z5Y21GNUlDaHZjaUJqYjIxdFlTOXpaVzFwWTI5c2IyNHRjMlZ3WVhKaGRHVmtJR3hwYzNRcElHOW1YRzRnS2lCaFpHUnlaWE56WlhNdVhHNGdLaUJBWTJGMFpXZHZjbmtnUTI5dGJYTmNiaUFxSUVCdFpXMWlaWEpQWmlCdGIyUjFiR1U2YVc1MFpXZHlZWFJwYjI1ekwyTnZiVzF6TDI5MWRHeHZiMnN2YzJWeWRtbGpaVnh1SUNvdlhHNWxlSEJ2Y25RZ2FXNTBaWEptWVdObElFOTFkR3h2YjJ0U1pXTnBjR2xsYm5SeklIdGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQlFjbWx0WVhKNUlISmxZMmx3YVdWdWRDQmhaR1J5WlhOektHVnpLVnh1SUNBZ0tpOWNiaUFnZEc4NklITjBjbWx1WnlCOElITjBjbWx1WjF0ZE8xeHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFTmhjbUp2YmkxamIzQjVJR0ZrWkhKbGMzTW9aWE1wWEc0Z0lDQXFMMXh1SUNCall6ODZJSE4wY21sdVp5QjhJSE4wY21sdVoxdGRPMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRUpzYVc1a0xXTmhjbUp2YmkxamIzQjVJR0ZrWkhKbGMzTW9aWE1wWEc0Z0lDQXFMMXh1SUNCaVkyTS9PaUJ6ZEhKcGJtY2dmQ0J6ZEhKcGJtZGJYVHRjYm4xY2JseHVMeW9xWEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnU1c1d2RYUWdabTl5SUhObGJtUnBibWNnWVc0Z1QzVjBiRzl2YXlCdFlXbHNJRzFsYzNOaFoyVmNiaUFxSUVCemRXMXRZWEo1SUVOaGNuSnBaWE1nZEdobElISmxZMmx3YVdWdWRITXNJR0J6ZFdKcVpXTjBZQ3dnWW05a2VTd2dZbTlrZVNCamIyNTBaVzUwSUhSNWNHVXNJR0Z1WkZ4dUlDb2dkMmhsZEdobGNpQjBhR1VnYldWemMyRm5aU0JwY3lCellYWmxaQ0IwYnlCMGFHVWdVMlZ1ZENCSmRHVnRjeUJtYjJ4a1pYSWdLR1JsWm1GMWJIUWdZSFJ5ZFdWZ0tTNWNiaUFxSUVCallYUmxaMjl5ZVNCRGIyMXRjMXh1SUNvZ1FHMWxiV0psY2s5bUlHMXZaSFZzWlRwcGJuUmxaM0poZEdsdmJuTXZZMjl0YlhNdmIzVjBiRzl2YXk5elpYSjJhV05sWEc0Z0tpOWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdUM1YwYkc5dmEwMWhhV3hKYm5CMWRDQmxlSFJsYm1SeklFOTFkR3h2YjJ0U1pXTnBjR2xsYm5SeklIdGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQk5ZV2xzSUhOMVltcGxZM1FnYkdsdVpWeHVJQ0FnS2k5Y2JpQWdjM1ZpYW1WamREb2djM1J5YVc1bk8xeHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFMWhhV3dnWW05a2VWeHVJQ0FnS2k5Y2JpQWdZbTlrZVRvZ2MzUnlhVzVuTzF4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVKdlpIa2dZMjl1ZEdWdWRDQjBlWEJsSUNoa1pXWmhkV3gwSUdCY0lsUmxlSFJjSW1BcFhHNGdJQ0FxTDF4dUlDQmpiMjUwWlc1MFZIbHdaVDg2SUZ3aVZHVjRkRndpSUh3Z1hDSklWRTFNWENJN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1YyaGxkR2hsY2lCMGFHVWdjMlZ1ZENCdFpYTnpZV2RsSUdseklITmhkbVZrSUhSdklGTmxiblFnU1hSbGJYTWdLR1JsWm1GMWJIUWdZSFJ5ZFdWZ0tWeHVJQ0FnS2k5Y2JpQWdjMkYyWlZSdlUyVnVkRWwwWlcxelB6b2dZbTl2YkdWaGJqdGNibjFjYmx4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdUM0IwYVc5dWN5Qm1iM0lnYkdsemRHbHVaeUJQZFhSc2IyOXJJRzFsYzNOaFoyVnpJRzl5SUdOaGJHVnVaR0Z5SUdWMlpXNTBjMXh1SUNvZ1FITjFiVzFoY25rZ1EyRnljbWxsY3lCMGFHVWdiM0IwYVc5dVlXd2diV0ZwYkNCZ1ptOXNaR1Z5U1dSZ0lDaGtaV1poZFd4MElHQnBibUp2ZUdBcElIQnNkWE1nZEdobFhHNGdLaUJQUkdGMFlTQmdkRzl3WUN3Z1lHWnBiSFJsY21Bc0lHRnVaQ0JnYzJWaGNtTm9ZQ0J3WVhKaGJXVjBaWEp6TGlCZ1ptOXNaR1Z5U1dSZ0lHbHpJR2xuYm05eVpXUWdZbmxjYmlBcUlHQnNhWE4wUlhabGJuUnpZQzVjYmlBcUlFQmpZWFJsWjI5eWVTQkRiMjF0YzF4dUlDb2dRRzFsYldKbGNrOW1JRzF2WkhWc1pUcHBiblJsWjNKaGRHbHZibk12WTI5dGJYTXZiM1YwYkc5dmF5OXpaWEoyYVdObFhHNGdLaTljYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnVDNWMGJHOXZhMHhwYzNSSmJuQjFkQ0I3WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnVFdGcGJDQm1iMnhrWlhJZ1NVUWdkRzhnYkdsemRDQm1jbTl0SUNoa1pXWmhkV3gwSUdCcGJtSnZlR0FwWEc0Z0lDQXFMMXh1SUNCbWIyeGtaWEpKWkQ4NklITjBjbWx1Wnp0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCTllYaHBiWFZ0SUc1MWJXSmxjaUJ2WmlCeVpYTjFiSFJ6SUNoZ0pIUnZjR0FwWEc0Z0lDQXFMMXh1SUNCMGIzQS9PaUJ1ZFcxaVpYSTdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdUMFJoZEdFZ1ptbHNkR1Z5SUdWNGNISmxjM05wYjI0Z0tHQWtabWxzZEdWeVlDbGNiaUFnSUNvdlhHNGdJR1pwYkhSbGNqODZJSE4wY21sdVp6dGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQlBSR0YwWVNCelpXRnlZMmdnWlhod2NtVnpjMmx2YmlBb1lDUnpaV0Z5WTJoZ0tWeHVJQ0FnS2k5Y2JpQWdjMlZoY21Ob1B6b2djM1J5YVc1bk8xeHVmVnh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQkpibkIxZENCbWIzSWdZM0psWVhScGJtY2dZVzRnVDNWMGJHOXZheUJqWVd4bGJtUmhjaUJsZG1WdWRGeHVJQ29nUUhOMWJXMWhjbmtnUTJGeWNtbGxjeUIwYUdVZ1lITjFZbXBsWTNSZ0xDQnpkR0Z5ZENCaGJtUWdaVzVrSUhScGJXVnpkR0Z0Y0hNc0lHOXdkR2x2Ym1Gc0lIUnBiV1ZjYmlBcUlIcHZibVVnS0dSbFptRjFiSFFnWUZWVVEyQXBMQ0JpYjJSNUxDQnNiMk5oZEdsdmJpd2dZVzVrSUhKbGNYVnBjbVZrSUdGMGRHVnVaR1ZsSUdGa1pISmxjM05sY3k1Y2JpQXFJRUJqWVhSbFoyOXllU0JEYjIxdGMxeHVJQ29nUUcxbGJXSmxjazltSUcxdlpIVnNaVHBwYm5SbFozSmhkR2x2Ym5NdlkyOXRiWE12YjNWMGJHOXZheTl6WlhKMmFXTmxYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1QzVjBiRzl2YTBWMlpXNTBTVzV3ZFhRZ2UxeHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFVjJaVzUwSUhOMVltcGxZM1JjYmlBZ0lDb3ZYRzRnSUhOMVltcGxZM1E2SUhOMGNtbHVaenRjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJGZG1WdWRDQnpkR0Z5ZENCa1lYUmxMWFJwYldVZ0tFbFRUeUE0TmpBeEtWeHVJQ0FnS2k5Y2JpQWdjM1JoY25RNklITjBjbWx1Wnp0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCRmRtVnVkQ0JsYm1RZ1pHRjBaUzEwYVcxbElDaEpVMDhnT0RZd01TbGNiaUFnSUNvdlhHNGdJR1Z1WkRvZ2MzUnlhVzVuTzF4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVsQlRrRWdkR2x0WlNCNmIyNWxJR1p2Y2lCZ2MzUmhjblJnTDJCbGJtUmdJQ2hrWldaaGRXeDBJR0JWVkVOZ0tWeHVJQ0FnS2k5Y2JpQWdkR2x0WlZwdmJtVS9PaUJ6ZEhKcGJtYzdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdSWFpsYm5RZ1ltOWtlU0IwWlhoMFhHNGdJQ0FxTDF4dUlDQmliMlI1UHpvZ2MzUnlhVzVuTzF4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVWMlpXNTBJR3h2WTJGMGFXOXVJR1JwYzNCc1lYa2dibUZ0WlZ4dUlDQWdLaTljYmlBZ2JHOWpZWFJwYjI0L09pQnpkSEpwYm1jN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1VtVnhkV2x5WldRZ1lYUjBaVzVrWldVZ1lXUmtjbVZ6Y3lobGN5bGNiaUFnSUNvdlhHNGdJR0YwZEdWdVpHVmxjejg2SUhOMGNtbHVaeUI4SUhOMGNtbHVaMXRkTzF4dWZWeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCT2IzSnRZV3hwZW1WeklFOTFkR3h2YjJzZ2NtVmphWEJwWlc1MElHRmtaSEpsYzNObGN5QnBiblJ2SUVkeVlYQm9JSEpsWTJsd2FXVnVkSE5jYmlBcUlFQnpkVzF0WVhKNUlFRmpZMlZ3ZEhNZ1lTQnphVzVuYkdVZ1lXUmtjbVZ6Y3l3Z1lXNGdZWEp5WVhrc0lHOXlJR0VnWTI5dGJXRXZjMlZ0YVdOdmJHOXVMWE5sY0dGeVlYUmxaRnh1SUNvZ2MzUnlhVzVuTENCMGNtbHRjeUJsYm5SeWFXVnpMQ0JrY205d2N5QmliR0Z1YTNNc0lHRnVaQ0J0WVhCeklHVmhZMmdnWVdSa2NtVnpjeUIwYnlCMGFHVWdSM0poY0doY2JpQXFJR0I3SUdWdFlXbHNRV1JrY21WemN6b2dleUJoWkdSeVpYTnpJSDBnZldBZ1pXNTJaV3h2Y0dVdVhHNGdLaUJBY0dGeVlXMGdlM04wY21sdVp5QjhJSE4wY21sdVoxdGRJSHdnZFc1a1pXWnBibVZrZlNCMllXeDFaU0F0SUZSb1pTQnlZWGNnY21WamFYQnBaVzUwSUhaaGJIVmxMbHh1SUNvZ1FISmxkSFZ5Ym5NZ2UwRnljbUY1UEhzZ1pXMWhhV3hCWkdSeVpYTnpPaUI3SUdGa1pISmxjM002SUhOMGNtbHVaeUI5SUgwK2ZTQlVhR1VnUjNKaGNHZ2djbVZqYVhCcFpXNTBJR1Z1ZG1Wc2IzQmxjeTVjYmlBcUwxeHVablZ1WTNScGIyNGdjbVZqYVhCcFpXNTBUR2x6ZENoY2JpQWdkbUZzZFdVNklITjBjbWx1WnlCOElITjBjbWx1WjF0ZElId2dkVzVrWldacGJtVmtYRzRwT2lCQmNuSmhlVHg3SUdWdFlXbHNRV1JrY21WemN6b2dleUJoWkdSeVpYTnpPaUJ6ZEhKcGJtY2dmU0I5UGlCN1hHNGdJR2xtSUNnaGRtRnNkV1VwSUhKbGRIVnliaUJiWFR0Y2JpQWdZMjl1YzNRZ2RtRnNkV1Z6SUQwZ1FYSnlZWGt1YVhOQmNuSmhlU2gyWVd4MVpTbGNiaUFnSUNBL0lIWmhiSFZsWEc0Z0lDQWdPaUIyWVd4MVpTNXpjR3hwZENndld5dzdYUzhwTG0xaGNDZ29aVzUwY25rcElEMCtJR1Z1ZEhKNUxuUnlhVzBvS1NrN1hHNGdJSEpsZEhWeWJpQjJZV3gxWlhOY2JpQWdJQ0F1YldGd0tDaGxiblJ5ZVNrZ1BUNGdaVzUwY25rdWRISnBiU2dwS1Z4dUlDQWdJQzVtYVd4MFpYSW9LR1Z1ZEhKNUtTQTlQaUJsYm5SeWVTNXNaVzVuZEdnZ1BpQXdLVnh1SUNBZ0lDNXRZWEFvS0dGa1pISmxjM01wSUQwK0lDaDdJR1Z0WVdsc1FXUmtjbVZ6Y3pvZ2V5QmhaR1J5WlhOeklIMGdmU2twTzF4dWZWeHVYRzR2S2lwY2JpQXFJRUJrWlhOamNtbHdkR2x2YmlCTmFXTnliM052Wm5RZ1QzVjBiRzl2YXlBb1IzSmhjR2dwSUcxaGFXd2dZVzVrSUdOaGJHVnVaR0Z5SUdsdWRHVm5jbUYwYVc5dUlITmxjblpwWTJWY2JpQXFJRUJ6ZFcxdFlYSjVJRUZ1SUhWdVpHVmpiM0poZEdWa0lFaFVWRkFnYzJWeWRtbGpaU0JtYjNJZ2MyVnVaR2x1WnlCaGJtUWdjbVZoWkdsdVp5QnRZV2xzSUdGdVpDQm1iM0pjYmlBcUlHeHBjM1JwYm1jc0lHTnlaV0YwYVc1bkxDQmhibVFnWkdWc1pYUnBibWNnWTJGc1pXNWtZWElnWlhabGJuUnpJRzl1SUhSb1pTQnphV2R1WldRdGFXNGdkWE5sY2x4dUlDb2dLR0F2YldWZ0tTNGdSWFpsY25rZ2IzQmxjbUYwYVc5dUlISmxjWFZwY21WeklHRWdSM0poY0dnZ1lXTmpaWE56SUhSdmEyVnVPeUJ0YVhOemFXNW5JR055WldSbGJuUnBZV3h6WEc0Z0tpQnZjaUJwWkdWdWRHbG1hV1Z5Y3lCeVlXbHpaU0JnU1c1MFpYSnVZV3hGY25KdmNtQXNJR0Z1WkNCMGNtRnVjM0J2Y25RZ1ptRnBiSFZ5WlhNZ1lYSmxJRzFoY0hCbFpDQjBiMXh1SUNvZ1pHVmpZV1lnWlhKeWIzSnpJSFpwWVNCN1FHeHBibXNnYUhSMGNFVnljbTl5ZlM1Y2JpQXFJRUJqYkdGemN5Qk5hV055YjNOdlpuUlBkWFJzYjI5clUyVnlkbWxqWlZ4dUlDb2dRR1Y0ZEdWdVpITWdTSFIwY0VGd2FWTmxjblpwWTJWY2JpQXFJRUJqWVhSbFoyOXllU0JEYjIxdGMxeHVJQ29nUUdWNFlXMXdiR1ZjYmlBcUlHQmdZSFJ6WEc0Z0tpQnBiWEJ2Y25RZ2V5Qk5hV055YjNOdlpuUlBkWFJzYjI5clUyVnlkbWxqWlNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdmFXNTBaV2R5WVhScGIyNXpMMk52YlcxekwyOTFkR3h2YjJ0Y0lqdGNiaUFxWEc0Z0tpQmpiMjV6ZENCdmRYUnNiMjlySUQwZ2JtVjNJRTFwWTNKdmMyOW1kRTkxZEd4dmIydFRaWEoyYVdObEtDazdYRzRnS2lCaGQyRnBkQ0J2ZFhSc2IyOXJMbWx1YVhScFlXeHBlbVVvZTF4dUlDb2dJQ0IwYjJ0bGJqb2djSEp2WTJWemN5NWxibll1UjFKQlVFaGZRMUpGUkVWT1ZFbEJURjlOU1VOU1QxTlBSbFJmVDFWVVRFOVBTMTlVVDB0RlRpeGNiaUFxSUgwcE8xeHVJQ29nWVhkaGFYUWdiM1YwYkc5dmF5NXpaVzVrVFdGcGJDaDdYRzRnS2lBZ0lIUnZPaUJjSW5SbFlXMUFaWGhoYlhCc1pTNWpiMjFjSWl4Y2JpQXFJQ0FnYzNWaWFtVmpkRG9nWENKRVpYQnNiM2x0Wlc1MElHWnBibWx6YUdWa1hDSXNYRzRnS2lBZ0lHSnZaSGs2SUZ3aVVtVnNaV0Z6WlNBeExqSXVNQ0JwY3lCc2FYWmxYQ0lzWEc0Z0tpQjlLVHRjYmlBcUlHQmdZRnh1SUNvZ1FHMWxjbTFoYVdSY2JpQXFJSE5sY1hWbGJtTmxSR2xoWjNKaGJWeHVJQ29nSUNCaGRYUnZiblZ0WW1WeVhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElFTmhiR3hsY2x4dUlDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCVFpYSjJhV05sSUdGeklFMXBZM0p2YzI5bWRFOTFkR3h2YjJ0VFpYSjJhV05sWEc0Z0tpQWdJSEJoY25ScFkybHdZVzUwSUVkeVlYQm9JR0Z6SUUxcFkzSnZjMjltZENCSGNtRndhRnh1SUNvZ0lDQkRZV3hzWlhJdFBqNVRaWEoyYVdObE9pQnpaVzVrVFdGcGJDaHBibkIxZENsY2JpQXFJQ0FnWVdOMGFYWmhkR1VnVTJWeWRtbGpaVnh1SUNvZ0lDQlRaWEoyYVdObExUNCtVMlZ5ZG1salpUb2djbVZ4ZFdseVpVRmpZMlZ6YzFSdmEyVnVLQ2xjYmlBcUlDQWdVMlZ5ZG1salpTMCtQa2R5WVhCb09pQlFUMU5VSUM5dFpTOXpaVzVrVFdGcGJGeHVJQ29nSUNCaFkzUnBkbUYwWlNCSGNtRndhRnh1SUNvZ0lDQkhjbUZ3YUMwdFBqNVRaWEoyYVdObE9pQXlNRElnUVdOalpYQjBaV1JjYmlBcUlDQWdaR1ZoWTNScGRtRjBaU0JIY21Gd2FGeHVJQ29nSUNCVFpYSjJhV05sTFMwK1BrTmhiR3hsY2pvZ2V5QnpaVzUwTENCMGJ5d2djM1ZpYW1WamRDQjlYRzRnS2lBZ0lHUmxZV04wYVhaaGRHVWdVMlZ5ZG1salpWeHVJQ29nUUcxbGJXSmxjazltSUcxdlpIVnNaVHBwYm5SbFozSmhkR2x2Ym5NdlkyOXRiWE12YjNWMGJHOXZheTl6WlhKMmFXTmxYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJOYVdOeWIzTnZablJQZFhSc2IyOXJVMlZ5ZG1salpTQmxlSFJsYm1SeklFaDBkSEJCY0dsVFpYSjJhV05sUEU5MWRHeHZiMnRUWlhKMmFXTmxRMjl1Wm1sblBpQjdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdWR2hsSUhCeWIzWnBaR1Z5SUc1aGJXVWdkWE5sWkNCcGJpQmxjbkp2Y2lCdFpYTnpZV2RsYzF4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lISmxZV1J2Ym14NUlITmxjblpwWTJWT1lXMWxJRDBnWENKTmFXTnliM052Wm5RZ1QzVjBiRzl2YTF3aU8xeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdWR2hsSUUxcFkzSnZjMjltZENCSGNtRndhQ0JpWVhObElGVlNURnh1SUNBZ0tpQkFjM1Z0YldGeWVTQlZjMlZrSUhkb1pXNGdkR2hsSUhKbGMyOXNkbVZrSUdOdmJtWnBaeUJqWVhKeWFXVnpJRzV2SUdCaVlYTmxWWEpzWUM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTNOMGNtbHVaMzBnWUZ3aWFIUjBjSE02THk5bmNtRndhQzV0YVdOeWIzTnZablF1WTI5dEwzWXhMakJjSW1BdVhHNGdJQ0FxTDF4dUlDQndjbTkwWldOMFpXUWdaR1ZtWVhWc2RFSmhjMlZWY213b0tUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnWENKb2RIUndjem92TDJkeVlYQm9MbTFwWTNKdmMyOW1kQzVqYjIwdmRqRXVNRndpTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJDZFdsc1pITWdkR2hsSUUxcFkzSnZjMjltZENCSGNtRndhQ0JpWldGeVpYSWdZWFYwYUc5eWFYcGhkR2x2YmlCb1pXRmtaWEp6WEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRkpsZEhWeWJuTWdZRUYxZEdodmNtbDZZWFJwYjI0NklFSmxZWEpsY2lBOGRHOXJaVzQrWUNCM2FHVnVJR052Ym1acFozVnlaV1FzSUdGdVpDQnViMXh1SUNBZ0tpQm9aV0ZrWlhKeklHOTBhR1Z5ZDJselpTNWNiaUFnSUNvZ1FIQmhjbUZ0SUh0UGRYUnNiMjlyVTJWeWRtbGpaVU52Ym1acFozMGdZMjl1Wm1sbklDMGdWR2hsSUhKbGMyOXNkbVZrSUhObGNuWnBZMlVnWTI5dVptbG5kWEpoZEdsdmJpNWNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UxSmxZMjl5WkR4emRISnBibWNzSUhOMGNtbHVaejU5SUZSb1pTQmhkWFJvYjNKcGVtRjBhVzl1SUdobFlXUmxjbk1nS0dWdGNIUjVJSGRwZEdodmRYUWdZU0IwYjJ0bGJpa3VYRzRnSUNBcUwxeHVJQ0J3Y205MFpXTjBaV1FnWVhWMGFFaGxZV1JsY25Nb1hHNGdJQ0FnWTI5dVptbG5PaUJQZFhSc2IyOXJVMlZ5ZG1salpVTnZibVpwWjF4dUlDQXBPaUJTWldOdmNtUThjM1J5YVc1bkxDQnpkSEpwYm1jK0lIdGNiaUFnSUNCeVpYUjFjbTRnWTI5dVptbG5MblJ2YTJWdUlEOGdleUJCZFhSb2IzSnBlbUYwYVc5dU9pQmdRbVZoY21WeUlDUjdZMjl1Wm1sbkxuUnZhMlZ1ZldBZ2ZTQTZJSHQ5TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJTWldGa2N5QjBhR1VnVDNWMGJHOXZheUJqY21Wa1pXNTBhV0ZzY3lCaGJtUWdaR1ZtWVhWc2RITWdabkp2YlNCMGFHVWdaVzUyYVhKdmJtMWxiblJjYmlBZ0lDb2dRSE4xYlcxaGNua2dVbVZoWkhNZ2RHaGxJR0JqYjIxdGN5NXZkWFJzYjI5cllDQnpiR2xqWlNCaGJtUWdjbVYwZFhKdWN5QmhJSEJoY25ScFlXd2dZMjl1Wm1sbklIZG9aVzVjYmlBZ0lDb2dZVzRnWVdOalpYTnpJSFJ2YTJWdUlHbHpJR052Ym1acFozVnlaV1FzSUdCMWJtUmxabWx1WldSZ0lHOTBhR1Z5ZDJselpTNGdWbUZzZFdWeklIQmhjM01nZEdoeWIzVm5hRnh1SUNBZ0tpQmdaVzUyVTNSeWFXNW5ZQzlnWlc1MlRuVnRZbVZ5WUNCMGJ5QnlaV3BsWTNRZ2RXNXpaWFF0YkdWaFppQndjbTk0YVdWekxseHVJQ0FnS2lCQWNtVjBkWEp1Y3lCN1VHRnlkR2xoYkR4UGRYUnNiMjlyVTJWeWRtbGpaVU52Ym1acFp6NGdmQ0IxYm1SbFptbHVaV1I5SUVFZ2NHRnlkR2xoYkNCamIyNW1hV2NzSUc5eUlHQjFibVJsWm1sdVpXUmdJSGRvWlc0Z2JtOGdUM1YwYkc5dmF5QjBiMnRsYmlCcGN5QmpiMjVtYVdkMWNtVmtMbHh1SUNBZ0tpOWNiaUFnY0hKdmRHVmpkR1ZrSUdOdmJtWnBaMFp5YjIxRmJuWnBjbTl1YldWdWRDZ3BPbHh1SUNBZ0lId2dVR0Z5ZEdsaGJEeFBkWFJzYjI5clUyVnlkbWxqWlVOdmJtWnBaejVjYmlBZ0lDQjhJSFZ1WkdWbWFXNWxaQ0I3WEc0Z0lDQWdZMjl1YzNRZ1pXNTJJRDBnUTI5dGJYTkZiblpwY205dWJXVnVkQzVqYjIxdGN5NXZkWFJzYjI5ck8xeHVJQ0FnSUdOdmJuTjBJSFJ2YTJWdUlEMGdaVzUyVTNSeWFXNW5LR1Z1ZGo4dWRHOXJaVzRwTzF4dUlDQWdJR2xtSUNnaGRHOXJaVzRwSUhKbGRIVnliaUIxYm1SbFptbHVaV1E3WEc0Z0lDQWdjbVYwZFhKdUlIdGNiaUFnSUNBZ0lIUnZhMlZ1TEZ4dUlDQWdJQ0FnWW1GelpWVnliRG9nWlc1MlUzUnlhVzVuS0dWdWRpNWlZWE5sVlhKc0tTeGNiaUFnSUNBZ0lIUnBiV1Z2ZFhRNklHVnVkazUxYldKbGNpaGxibll1ZEdsdFpXOTFkQ2tzWEc0Z0lDQWdmVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdRWE56WlhKMGN5QjBhR0YwSUdFZ1RXbGpjbTl6YjJaMElFZHlZWEJvSUdGalkyVnpjeUIwYjJ0bGJpQnBjeUJqYjI1bWFXZDFjbVZrWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRVJsYkdWbllYUmxjeUIwYnlCMGFHVWdjMmhoY21Wa0lHQnlaWEYxYVhKbFZHOXJaVzRvS1dBZ1ozVmhjbVFnZFhObFpDQmllU0JsZG1WeWVWeHVJQ0FnS2lCdmNHVnlZWFJwYjI0dVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0MmIybGtmVnh1SUNBZ0tpQkFkR2h5YjNkeklIdEpiblJsY201aGJFVnljbTl5ZlNCWGFHVnVJSFJvWlNCeVpYTnZiSFpsWkNCamIyNW1hV2NnYUdGeklHNXZJR0IwYjJ0bGJtQXVYRzRnSUNBcUwxeHVJQ0J3Y205MFpXTjBaV1FnY21WeGRXbHlaVUZqWTJWemMxUnZhMlZ1S0NrNklIWnZhV1FnZTF4dUlDQWdJSFJvYVhNdWNtVnhkV2x5WlZSdmEyVnVLQ2s3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRk5sYm1SeklHRWdiV0ZwYkNCdFpYTnpZV2RsSUhSb2NtOTFaMmdnVDNWMGJHOXZhMXh1SUNBZ0tpQkFjM1Z0YldGeWVTQmdVRTlUVkdCeklIUm9aU0J0WlhOellXZGxJSFJ2SUdBdmJXVXZjMlZ1WkUxaGFXeGdPeUJ5WldOcGNHbGxiblJ6SUdGeVpTQnViM0p0WVd4cGVtVmtYRzRnSUNBcUlIUnZJRWR5WVhCb0lHVnVkbVZzYjNCbGN5QmhibVFnWUhOaGRtVlViMU5sYm5SSmRHVnRjMkFnWkdWbVlYVnNkSE1nZEc4Z1lIUnlkV1ZnTGx4dUlDQWdLaUJBY0dGeVlXMGdlMDkxZEd4dmIydE5ZV2xzU1c1d2RYUjlJR2x1Y0hWMElDMGdWR2hsSUhKbFkybHdhV1Z1ZEhNc0lITjFZbXBsWTNRc0lHSnZaSGtzSUdGdVpDQmpiMjUwWlc1MElHOXdkR2x2Ym5NdVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0UWNtOXRhWE5sUEhWdWEyNXZkMjQrZlNCZ2V5QnpaVzUwT2lCMGNuVmxMQ0IwYnl3Z2MzVmlhbVZqZENCOVlDQnZiaUJ6ZFdOalpYTnpMbHh1SUNBZ0tpQkFkR2h5YjNkeklIdEpiblJsY201aGJFVnljbTl5ZlNCWGFHVnVJRzV2SUhSdmEyVnVJR2x6SUdOdmJtWnBaM1Z5WldRc0lHOXlJSEpsWTJsd2FXVnVkSE1nYjNJZ2MzVmlhbVZqZENCaGNtVWdiV2x6YzJsdVp5NWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1FtRmtVbVZ4ZFdWemRFVnljbTl5ZlNCWGFHVnVJRWR5WVhCb0lISmxhbVZqZEhNZ2RHaGxJSEpsY1hWbGMzUXVYRzRnSUNBcUlFQmxlR0Z0Y0d4bFhHNGdJQ0FxSUdCZ1lIUnpYRzRnSUNBcUlHRjNZV2wwSUc5MWRHeHZiMnN1YzJWdVpFMWhhV3dvZTF4dUlDQWdLaUFnSUhSdk9pQmJYQ0poUUdWNFlXMXdiR1V1WTI5dFhDSXNJRndpWWtCbGVHRnRjR3hsTG1OdmJWd2lYU3hjYmlBZ0lDb2dJQ0J6ZFdKcVpXTjBPaUJjSWxOMFlYUjFjMXdpTEZ4dUlDQWdLaUFnSUdKdlpIazZJRndpUVd4c0lITjVjM1JsYlhNZ2IzQmxjbUYwYVc5dVlXeGNJaXhjYmlBZ0lDb2dJQ0JqYjI1MFpXNTBWSGx3WlRvZ1hDSlVaWGgwWENJc1hHNGdJQ0FxSUgwcE8xeHVJQ0FnS2lCZ1lHQmNiaUFnSUNvdlhHNGdJR0Z6ZVc1aklITmxibVJOWVdsc0tHbHVjSFYwT2lCUGRYUnNiMjlyVFdGcGJFbHVjSFYwS1RvZ1VISnZiV2x6WlR4MWJtdHViM2R1UGlCN1hHNGdJQ0FnZEdocGN5NXlaWEYxYVhKbFFXTmpaWE56Vkc5clpXNG9LVHRjYmlBZ0lDQnBaaUFvSVdsdWNIVjBMblJ2SUh4OElDRnBibkIxZEM1emRXSnFaV04wS1NCN1hHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhjYmlBZ0lDQWdJQ0FnWENKTmFXTnliM052Wm5RZ1QzVjBiRzl2YXlCelpXNWtUV0ZwYkNCeVpYRjFhWEpsY3lCeVpXTnBjR2xsYm5SeklHRnVaQ0JoSUhOMVltcGxZM1JjSWx4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdVkyeHBaVzUwTG5CdmMzUW9YQ0l2YldVdmMyVnVaRTFoYVd4Y0lpd2dlMXh1SUNBZ0lDQWdJQ0J0WlhOellXZGxPaUI3WEc0Z0lDQWdJQ0FnSUNBZ2MzVmlhbVZqZERvZ2FXNXdkWFF1YzNWaWFtVmpkQ3hjYmlBZ0lDQWdJQ0FnSUNCaWIyUjVPaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmpiMjUwWlc1MFZIbHdaVG9nYVc1d2RYUXVZMjl1ZEdWdWRGUjVjR1VnUHo4Z1hDSlVaWGgwWENJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JqYjI1MFpXNTBPaUJwYm5CMWRDNWliMlI1SUQ4L0lGd2lYQ0lzWEc0Z0lDQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lDQWdJQ0IwYjFKbFkybHdhV1Z1ZEhNNklISmxZMmx3YVdWdWRFeHBjM1FvYVc1d2RYUXVkRzhwTEZ4dUlDQWdJQ0FnSUNBZ0lDNHVMaWhwYm5CMWRDNWpZeUEvSUhzZ1kyTlNaV05wY0dsbGJuUnpPaUJ5WldOcGNHbGxiblJNYVhOMEtHbHVjSFYwTG1OaktTQjlJRG9nZTMwcExGeHVJQ0FnSUNBZ0lDQWdJQzR1TGlocGJuQjFkQzVpWTJNZ1B5QjdJR0pqWTFKbFkybHdhV1Z1ZEhNNklISmxZMmx3YVdWdWRFeHBjM1FvYVc1d2RYUXVZbU5qS1NCOUlEb2dlMzBwTEZ4dUlDQWdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ0lDQnpZWFpsVkc5VFpXNTBTWFJsYlhNNklHbHVjSFYwTG5OaGRtVlViMU5sYm5SSmRHVnRjeUEvUHlCMGNuVmxMRnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdleUJ6Wlc1ME9pQjBjblZsTENCMGJ6b2dhVzV3ZFhRdWRHOHNJSE4xWW1wbFkzUTZJR2x1Y0hWMExuTjFZbXBsWTNRZ2ZUdGNiaUFnSUNCOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dUlDQWdJQ0FnZEdoeWIzY2dhSFIwY0VWeWNtOXlLRndpVFdsamNtOXpiMlowSUU5MWRHeHZiMnRjSWl3Z1hDSnpaVzVrSUcxaGFXeGNJaXdnWlhKeWIzSXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1RHbHpkSE1nYldWemMyRm5aWE1nYVc0Z1lXNGdUM1YwYkc5dmF5QnRZV2xzSUdadmJHUmxjbHh1SUNBZ0tpQkFjM1Z0YldGeWVTQmdSMFZVWUhNZ1lDOXRaUzl0WVdsc1JtOXNaR1Z5Y3k4OFptOXNaR1Z5UGk5dFpYTnpZV2RsYzJBZ0tHUmxabUYxYkhRZ1lHbHVZbTk0WUNsY2JpQWdJQ29nWVhCd2JIbHBibWNnZEdobElHOXdkR2x2Ym1Gc0lHQWtkRzl3WUN3Z1lDUm1hV3gwWlhKZ0xDQmhibVFnWUNSelpXRnlZMmhnSUhCaGNtRnRaWFJsY25NdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VDNWMGJHOXZhMHhwYzNSSmJuQjFkSDBnVzJsdWNIVjBYU0F0SUZSb1pTQm1iMnhrWlhJZ1lXNWtJRTlFWVhSaElIRjFaWEo1SUc5d2RHbHZibk11WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxQSFZ1YTI1dmQyNCtmU0JVYUdVZ1IzSmhjR2dnYldWemMyRm5aU0JqYjJ4c1pXTjBhVzl1TGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRKYm5SbGNtNWhiRVZ5Y205eWZTQlhhR1Z1SUc1dklIUnZhMlZ1SUdseklHTnZibVpwWjNWeVpXUXVYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwNXZkRVp2ZFc1a1JYSnliM0o5SUZkb1pXNGdkR2hsSUdadmJHUmxjaUJrYjJWeklHNXZkQ0JsZUdsemRDQW9TRlJVVUNBME1EUXBMbHh1SUNBZ0tpQkFkR2h5YjNkeklIdENZV1JTWlhGMVpYTjBSWEp5YjNKOUlGZG9aVzRnUjNKaGNHZ2djbVZxWldOMGN5QjBhR1VnY1hWbGNua3VYRzRnSUNBcUwxeHVJQ0JoYzNsdVl5QnNhWE4wVFdWemMyRm5aWE1vYVc1d2RYUTZJRTkxZEd4dmIydE1hWE4wU1c1d2RYUWdQU0I3ZlNrNklGQnliMjFwYzJVOGRXNXJibTkzYmo0Z2UxeHVJQ0FnSUhSb2FYTXVjbVZ4ZFdseVpVRmpZMlZ6YzFSdmEyVnVLQ2s3WEc0Z0lDQWdZMjl1YzNRZ1ptOXNaR1Z5SUQwZ2FXNXdkWFF1Wm05c1pHVnlTV1FnUHo4Z1hDSnBibUp2ZUZ3aU8xeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTndiMjV6WlNBOUlHRjNZV2wwSUhSb2FYTXVZMnhwWlc1MExtZGxkQ2hjYmlBZ0lDQWdJQ0FnWUM5dFpTOXRZV2xzUm05c1pHVnljeThrZTJWdVkyOWtaVlZTU1VOdmJYQnZibVZ1ZENobWIyeGtaWElwZlM5dFpYTnpZV2RsYzJBc1hHNGdJQ0FnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdJQ0J3WVhKaGJYTTZJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDNHVMaWhwYm5CMWRDNTBiM0FnSVQwOUlIVnVaR1ZtYVc1bFpDQS9JSHNnSkhSdmNEb2dhVzV3ZFhRdWRHOXdJSDBnT2lCN2ZTa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBdUxpNG9hVzV3ZFhRdVptbHNkR1Z5SUQ4Z2V5QWtabWxzZEdWeU9pQnBibkIxZEM1bWFXeDBaWElnZlNBNklIdDlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDNHVMaWhwYm5CMWRDNXpaV0Z5WTJnZ1B5QjdJQ1J6WldGeVkyZzZJR2x1Y0hWMExuTmxZWEpqYUNCOUlEb2dlMzBwTEZ4dUlDQWdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0J5WlhSMWNtNGdjbVZ6Y0c5dWMyVXVaR0YwWVR0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsY25KdmNpa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2FIUjBjRVZ5Y205eUtGd2lUV2xqY205emIyWjBJRTkxZEd4dmIydGNJaXdnWENKc2FYTjBJRzFsYzNOaFoyVnpYQ0lzSUdWeWNtOXlLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFWmxkR05vWlhNZ1lTQnphVzVuYkdVZ1QzVjBiRzl2YXlCdFpYTnpZV2RsWEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJR0JIUlZSZ2N5QmdMMjFsTDIxbGMzTmhaMlZ6THp4cFpENWdJR0Z1WkNCeVpYUjFjbTV6SUhSb1pTQnRaWE56WVdkbElIQmhlV3h2WVdRdVhHNGdJQ0FxSUVCd1lYSmhiU0I3YzNSeWFXNW5mU0J0WlhOellXZGxTV1FnTFNCVWFHVWdSM0poY0dnZ2JXVnpjMkZuWlNCSlJDNWNiaUFnSUNvZ1FISmxkSFZ5Ym5NZ2UxQnliMjFwYzJVOGRXNXJibTkzYmo1OUlGUm9aU0J0WlhOellXZGxJSEJoZVd4dllXUXVYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwbHVkR1Z5Ym1Gc1JYSnliM0o5SUZkb1pXNGdibThnZEc5clpXNGdhWE1nWTI5dVptbG5kWEpsWkNCdmNpQjBhR1VnYldWemMyRm5aU0JKUkNCcGN5QmxiWEIwZVM1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3VG05MFJtOTFibVJGY25KdmNuMGdWMmhsYmlCMGFHVWdiV1Z6YzJGblpTQmtiMlZ6SUc1dmRDQmxlR2x6ZENBb1NGUlVVQ0EwTURRcExseHVJQ0FnS2lCQWRHaHliM2R6SUh0Q1lXUlNaWEYxWlhOMFJYSnliM0o5SUZkb1pXNGdSM0poY0dnZ2NtVnFaV04wY3lCMGFHVWdjbVZ4ZFdWemRDNWNiaUFnSUNvdlhHNGdJR0Z6ZVc1aklHZGxkRTFsYzNOaFoyVW9iV1Z6YzJGblpVbGtPaUJ6ZEhKcGJtY3BPaUJRY205dGFYTmxQSFZ1YTI1dmQyNCtJSHRjYmlBZ0lDQjBhR2x6TG5KbGNYVnBjbVZCWTJObGMzTlViMnRsYmlncE8xeHVJQ0FnSUdsbUlDZ2hiV1Z6YzJGblpVbGtLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNJazFwWTNKdmMyOW1kQ0JQZFhSc2IyOXJJSEpsY1hWcGNtVnpJR0VnYldWemMyRm5aU0JwWkZ3aUtUdGNiaUFnSUNCOVhHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lHTnZibk4wSUhKbGMzQnZibk5sSUQwZ1lYZGhhWFFnZEdocGN5NWpiR2xsYm5RdVoyVjBLRnh1SUNBZ0lDQWdJQ0JnTDIxbEwyMWxjM05oWjJWekx5UjdaVzVqYjJSbFZWSkpRMjl0Y0c5dVpXNTBLRzFsYzNOaFoyVkpaQ2w5WUZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ5WlhOd2IyNXpaUzVrWVhSaE8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNtOXlLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5Qm9kSFJ3UlhKeWIzSW9YQ0pOYVdOeWIzTnZablFnVDNWMGJHOXZhMXdpTENCY0ltZGxkQ0J0WlhOellXZGxYQ0lzSUdWeWNtOXlLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFeHBjM1J6SUU5MWRHeHZiMnNnWTJGc1pXNWtZWElnWlhabGJuUnpYRzRnSUNBcUlFQnpkVzF0WVhKNUlHQkhSVlJnY3lCZ0wyMWxMMlYyWlc1MGMyQWdZWEJ3YkhscGJtY2dkR2hsSUc5d2RHbHZibUZzSUdBa2RHOXdZQ3dnWUNSbWFXeDBaWEpnTENCaGJtUmNiaUFnSUNvZ1lDUnpaV0Z5WTJoZ0lIQmhjbUZ0WlhSbGNuTTdJSFJvWlNCdFlXbHNJR0JtYjJ4a1pYSkpaR0FnYVhNZ2JtOTBJSFZ6WldRdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VDNWMGJHOXZhMHhwYzNSSmJuQjFkSDBnVzJsdWNIVjBYU0F0SUZSb1pTQlBSR0YwWVNCeGRXVnllU0J2Y0hScGIyNXpMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdVSEp2YldselpUeDFibXR1YjNkdVBuMGdWR2hsSUVkeVlYQm9JR1YyWlc1MElHTnZiR3hsWTNScGIyNHVYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwbHVkR1Z5Ym1Gc1JYSnliM0o5SUZkb1pXNGdibThnZEc5clpXNGdhWE1nWTI5dVptbG5kWEpsWkM1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3UW1Ga1VtVnhkV1Z6ZEVWeWNtOXlmU0JYYUdWdUlFZHlZWEJvSUhKbGFtVmpkSE1nZEdobElIRjFaWEo1TGx4dUlDQWdLaTljYmlBZ1lYTjVibU1nYkdsemRFVjJaVzUwY3locGJuQjFkRG9nVDNWMGJHOXZhMHhwYzNSSmJuQjFkQ0E5SUh0OUtUb2dVSEp2YldselpUeDFibXR1YjNkdVBpQjdYRzRnSUNBZ2RHaHBjeTV5WlhGMWFYSmxRV05qWlhOelZHOXJaVzRvS1R0Y2JpQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY21WemNHOXVjMlVnUFNCaGQyRnBkQ0IwYUdsekxtTnNhV1Z1ZEM1blpYUW9YQ0l2YldVdlpYWmxiblJ6WENJc0lIdGNiaUFnSUNBZ0lDQWdjR0Z5WVcxek9pQjdYRzRnSUNBZ0lDQWdJQ0FnTGk0dUtHbHVjSFYwTG5SdmNDQWhQVDBnZFc1a1pXWnBibVZrSUQ4Z2V5QWtkRzl3T2lCcGJuQjFkQzUwYjNBZ2ZTQTZJSHQ5S1N4Y2JpQWdJQ0FnSUNBZ0lDQXVMaTRvYVc1d2RYUXVabWxzZEdWeUlEOGdleUFrWm1sc2RHVnlPaUJwYm5CMWRDNW1hV3gwWlhJZ2ZTQTZJSHQ5S1N4Y2JpQWdJQ0FnSUNBZ0lDQXVMaTRvYVc1d2RYUXVjMlZoY21Ob0lEOGdleUFrYzJWaGNtTm9PaUJwYm5CMWRDNXpaV0Z5WTJnZ2ZTQTZJSHQ5S1N4Y2JpQWdJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lIMHBPMXh1SUNBZ0lDQWdjbVYwZFhKdUlISmxjM0J2Ym5ObExtUmhkR0U3WEc0Z0lDQWdmU0JqWVhSamFDQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUdoMGRIQkZjbkp2Y2loY0lrMXBZM0p2YzI5bWRDQlBkWFJzYjI5clhDSXNJRndpYkdsemRDQmxkbVZ1ZEhOY0lpd2daWEp5YjNJcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUTNKbFlYUmxjeUJoYmlCUGRYUnNiMjlySUdOaGJHVnVaR0Z5SUdWMlpXNTBYRzRnSUNBcUlFQnpkVzF0WVhKNUlHQlFUMU5VWUhNZ2RHaGxJR1YyWlc1MElIUnZJR0F2YldVdlpYWmxiblJ6WURzZ1lITjBZWEowWUM5Z1pXNWtZQ0JoY21VZ2MyVnVkQ0IzYVhSb0lIUm9aVnh1SUNBZ0tpQmpiMjVtYVdkMWNtVmtJRzl5SUdSbFptRjFiSFFnS0dCVlZFTmdLU0IwYVcxbElIcHZibVVnWVc1a0lHRjBkR1Z1WkdWbGN5QmhjeUJ5WlhGMWFYSmxaQzVjYmlBZ0lDb2dRSEJoY21GdElIdFBkWFJzYjI5clJYWmxiblJKYm5CMWRIMGdhVzV3ZFhRZ0xTQlVhR1VnWlhabGJuUWdaR1ZtYVc1cGRHbHZiaTVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMUJ5YjIxcGMyVThkVzVyYm05M2JqNTlJRlJvWlNCamNtVmhkR1ZrSUVkeVlYQm9JR1YyWlc1MExseHVJQ0FnS2lCQWRHaHliM2R6SUh0SmJuUmxjbTVoYkVWeWNtOXlmU0JYYUdWdUlHNXZJSFJ2YTJWdUlHbHpJR052Ym1acFozVnlaV1FzSUc5eUlITjFZbXBsWTNRc0lITjBZWEowTENCdmNpQmxibVFnYVhNZ2JXbHpjMmx1Wnk1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3UW1Ga1VtVnhkV1Z6ZEVWeWNtOXlmU0JYYUdWdUlFZHlZWEJvSUhKbGFtVmpkSE1nZEdobElHVjJaVzUwTGx4dUlDQWdLaUJBWlhoaGJYQnNaVnh1SUNBZ0tpQmdZR0IwYzF4dUlDQWdLaUJoZDJGcGRDQnZkWFJzYjI5ckxtTnlaV0YwWlVWMlpXNTBLSHRjYmlBZ0lDb2dJQ0J6ZFdKcVpXTjBPaUJjSWxKbGJHVmhjMlVnY21WMmFXVjNYQ0lzWEc0Z0lDQXFJQ0FnYzNSaGNuUTZJRndpTWpBeU5pMHhNUzB3TVZRd09Ub3dNRG93TUZ3aUxGeHVJQ0FnS2lBZ0lHVnVaRG9nWENJeU1ESTJMVEV4TFRBeFZERXdPakF3T2pBd1hDSXNYRzRnSUNBcUlDQWdkR2x0WlZwdmJtVTZJRndpUlhWeWIzQmxMMHhwYzJKdmJsd2lMRnh1SUNBZ0tpQjlLVHRjYmlBZ0lDb2dZR0JnWEc0Z0lDQXFMMXh1SUNCaGMzbHVZeUJqY21WaGRHVkZkbVZ1ZENocGJuQjFkRG9nVDNWMGJHOXZhMFYyWlc1MFNXNXdkWFFwT2lCUWNtOXRhWE5sUEhWdWEyNXZkMjQrSUh0Y2JpQWdJQ0IwYUdsekxuSmxjWFZwY21WQlkyTmxjM05VYjJ0bGJpZ3BPMXh1SUNBZ0lHbG1JQ2doYVc1d2RYUXVjM1ZpYW1WamRDQjhmQ0FoYVc1d2RYUXVjM1JoY25RZ2ZId2dJV2x1Y0hWMExtVnVaQ2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQWdJRndpVFdsamNtOXpiMlowSUU5MWRHeHZiMnNnWTNKbFlYUmxSWFpsYm5RZ2NtVnhkV2x5WlhNZ2MzVmlhbVZqZEN3Z2MzUmhjblFzSUdGdVpDQmxibVJjSWx4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdZMjl1YzNRZ2RHbHRaVnB2Ym1VZ1BTQnBibkIxZEM1MGFXMWxXbTl1WlNBL1B5QmNJbFZVUTF3aU8xeHVJQ0FnSUhSeWVTQjdYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTndiMjV6WlNBOUlHRjNZV2wwSUhSb2FYTXVZMnhwWlc1MExuQnZjM1FvWENJdmJXVXZaWFpsYm5SelhDSXNJSHRjYmlBZ0lDQWdJQ0FnYzNWaWFtVmpkRG9nYVc1d2RYUXVjM1ZpYW1WamRDeGNiaUFnSUNBZ0lDQWdMaTR1S0dsdWNIVjBMbUp2WkhsY2JpQWdJQ0FnSUNBZ0lDQS9JSHNnWW05a2VUb2dleUJqYjI1MFpXNTBWSGx3WlRvZ1hDSlVaWGgwWENJc0lHTnZiblJsYm5RNklHbHVjSFYwTG1KdlpIa2dmU0I5WEc0Z0lDQWdJQ0FnSUNBZ09pQjdmU2tzWEc0Z0lDQWdJQ0FnSUhOMFlYSjBPaUI3SUdSaGRHVlVhVzFsT2lCcGJuQjFkQzV6ZEdGeWRDd2dkR2x0WlZwdmJtVWdmU3hjYmlBZ0lDQWdJQ0FnWlc1a09pQjdJR1JoZEdWVWFXMWxPaUJwYm5CMWRDNWxibVFzSUhScGJXVmFiMjVsSUgwc1hHNGdJQ0FnSUNBZ0lDNHVMaWhwYm5CMWRDNXNiMk5oZEdsdmJpQS9JSHNnYkc5allYUnBiMjQ2SUhzZ1pHbHpjR3hoZVU1aGJXVTZJR2x1Y0hWMExteHZZMkYwYVc5dUlIMGdmU0E2SUh0OUtTeGNiaUFnSUNBZ0lDQWdMaTR1S0dsdWNIVjBMbUYwZEdWdVpHVmxjMXh1SUNBZ0lDQWdJQ0FnSUQ4Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNCaGRIUmxibVJsWlhNNklISmxZMmx3YVdWdWRFeHBjM1FvYVc1d2RYUXVZWFIwWlc1a1pXVnpLUzV0WVhBb0tHVnVkSEo1S1NBOVBpQW9lMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR1Z0WVdsc1FXUmtjbVZ6Y3pvZ1pXNTBjbmt1WlcxaGFXeEJaR1J5WlhOekxGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1U2SUZ3aWNtVnhkV2x5WldSY0lpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2ZTa3BMRnh1SUNBZ0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQWdJRG9nZTMwcExGeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQnlaWFIxY200Z2NtVnpjRzl1YzJVdVpHRjBZVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxjbkp2Y2lrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYUhSMGNFVnljbTl5S0Z3aVRXbGpjbTl6YjJaMElFOTFkR3h2YjJ0Y0lpd2dYQ0pqY21WaGRHVWdaWFpsYm5SY0lpd2daWEp5YjNJcE8xeHVJQ0FnSUgxY2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUkdWc1pYUmxjeUJoYmlCUGRYUnNiMjlySUdOaGJHVnVaR0Z5SUdWMlpXNTBYRzRnSUNBcUlFQnpkVzF0WVhKNUlHQkVSVXhGVkVWZ2N5QmdMMjFsTDJWMlpXNTBjeTg4YVdRK1lDQmhibVFnY21WMGRYSnVjeUJnZXlCa1pXeGxkR1ZrT2lCMGNuVmxMQ0JsZG1WdWRFbGtJSDFnTGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdaWFpsYm5SSlpDQXRJRlJvWlNCSGNtRndhQ0JsZG1WdWRDQkpSQzVjYmlBZ0lDb2dRSEpsZEhWeWJuTWdlMUJ5YjIxcGMyVThkVzVyYm05M2JqNTlJR0I3SUdSbGJHVjBaV1E2SUhSeWRXVXNJR1YyWlc1MFNXUWdmV0FnYjI0Z2MzVmpZMlZ6Y3k1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3U1c1MFpYSnVZV3hGY25KdmNuMGdWMmhsYmlCdWJ5QjBiMnRsYmlCcGN5QmpiMjVtYVdkMWNtVmtJRzl5SUhSb1pTQmxkbVZ1ZENCSlJDQnBjeUJsYlhCMGVTNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1RtOTBSbTkxYm1SRmNuSnZjbjBnVjJobGJpQjBhR1VnWlhabGJuUWdaRzlsY3lCdWIzUWdaWGhwYzNRZ0tFaFVWRkFnTkRBMEtTNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1FtRmtVbVZ4ZFdWemRFVnljbTl5ZlNCWGFHVnVJRWR5WVhCb0lISmxhbVZqZEhNZ2RHaGxJSEpsY1hWbGMzUXVYRzRnSUNBcUwxeHVJQ0JoYzNsdVl5QmtaV3hsZEdWRmRtVnVkQ2hsZG1WdWRFbGtPaUJ6ZEhKcGJtY3BPaUJRY205dGFYTmxQSFZ1YTI1dmQyNCtJSHRjYmlBZ0lDQjBhR2x6TG5KbGNYVnBjbVZCWTJObGMzTlViMnRsYmlncE8xeHVJQ0FnSUdsbUlDZ2haWFpsYm5SSlpDa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1hDSk5hV055YjNOdlpuUWdUM1YwYkc5dmF5QnlaWEYxYVhKbGN5QmhiaUJsZG1WdWRDQnBaRndpS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdVkyeHBaVzUwTG1SbGJHVjBaU2hnTDIxbEwyVjJaVzUwY3k4a2UyVnVZMjlrWlZWU1NVTnZiWEJ2Ym1WdWRDaGxkbVZ1ZEVsa0tYMWdLVHRjYmlBZ0lDQWdJSEpsZEhWeWJpQjdJR1JsYkdWMFpXUTZJSFJ5ZFdVc0lHVjJaVzUwU1dRZ2ZUdGNiaUFnSUNCOUlHTmhkR05vSUNobGNuSnZjaWtnZTF4dUlDQWdJQ0FnZEdoeWIzY2dhSFIwY0VWeWNtOXlLRndpVFdsamNtOXpiMlowSUU5MWRHeHZiMnRjSWl3Z1hDSmtaV3hsZEdVZ1pYWmxiblJjSWl3Z1pYSnliM0lwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVmVnh1SWwxOSJdfQ==
|
|
324
|
+
//# sourceMappingURL=MicrosoftOutlookService.js.map
|
|
325
|
+
//# sourceMappingURL=MicrosoftOutlookService.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comms/outlook/MicrosoftOutlookService.cjs","sourceRoot":"","sources":["comms/outlook/MicrosoftOutlookService.js"],"names":[],"mappings":"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"}
|
|
@@ -15,5 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./MicrosoftOutlookService.cjs"), exports);
|
|
18
|
-
//# sourceMappingURL=
|
|
19
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
19
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comms/outlook/index.cjs","sourceRoot":"","sources":["comms/outlook/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,iCAAiC"}
|
|
@@ -260,5 +260,5 @@ class SlackService extends index_js_1.HttpApiService {
|
|
|
260
260
|
}
|
|
261
261
|
}
|
|
262
262
|
exports.SlackService = SlackService;
|
|
263
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2xhY2tTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1zL3NsYWNrL1NsYWNrU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsNEJBQXVCO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLDJDQUFzQztBQUNyRSxPQUFPLEVBQ0wsY0FBYyxFQUVkLFNBQVMsR0FDVixxQ0FBMEI7QUErRjNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkNHO0FBQ0gsTUFBTSxPQUFPLFlBQWEsU0FBUSxjQUFrQztJQUFwRTs7UUFDRTs7V0FFRztRQUNnQixnQkFBVyxHQUFHLE9BQU8sQ0FBQztJQXdPM0MsQ0FBQztJQXRPQzs7OztPQUlHO0lBQ08sY0FBYztRQUN0QixPQUFPLHVCQUF1QixDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxXQUFXLENBQUMsTUFBMEI7UUFDOUMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxVQUFVLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDekUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNPLHFCQUFxQjtRQUM3QixNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUM3QixPQUFPO1lBQ0wsS0FBSztZQUNMLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FB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QyxPQUFPLENBQ1gsTUFBYztRQUVkLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FFMUIsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQG1vZHVsZSBpbnRlZ3JhdGlvbnMvY29tbXMvc2xhY2svc2VydmljZVxuICogQHN1bW1hcnkgU2xhY2sgV2ViIEFQSSBpbnRlZ3JhdGlvbiBzZXJ2aWNlIGZvciBwb3N0aW5nIG1lc3NhZ2VzIGFuZCByZWFkaW5nIGNvbnZlcnNhdGlvbnMgYW5kIHVzZXJzLlxuICogQGRlc2NyaXB0aW9uIEV4cG9zZXMgdGhlIFNsYWNrIFdlYiBBUEkgKGBjaGF0LnBvc3RNZXNzYWdlYCwgYGNvbnZlcnNhdGlvbnMuKmAsIGB1c2Vycy5pbmZvYClcbiAqIGFzIGFuIHVuZGVjb3JhdGVkIGNsaWVudC1iYXNlZCBzZXJ2aWNlIGJ1aWx0IG9uIHtAbGluayBIdHRwQXBpU2VydmljZX0uXG4gKiBDb25maWd1cmF0aW9uIGNvbWVzIGZyb20gYW4gZXhwbGljaXQgYFNsYWNrU2VydmljZUNvbmZpZ2Agb3IgdGhlIGBjb21tcy5zbGFja2BcbiAqIGVudmlyb25tZW50IHNsaWNlOyBldmVyeSByZXNwb25zZSBpcyBub3JtYWxpemVkIGFuZCBmYWlsdXJlcyBhcmUgbWFwcGVkIHRvIGRlY2FmXG4gKiBlcnJvcnMgdmlhIHtAbGluayBodHRwRXJyb3J9LlxuICovXG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb21tc0Vudmlyb25tZW50IH0gZnJvbSBcIi4uL2Vudmlyb25tZW50XCI7XG5pbXBvcnQgeyBlbnZOdW1iZXIsIGVudlN0cmluZyB9IGZyb20gXCIuLi8uLi9zaGFyZWQvZW52aXJvbm1lbnRWYWx1ZVwiO1xuaW1wb3J0IHtcbiAgSHR0cEFwaVNlcnZpY2UsXG4gIHR5cGUgSHR0cEFwaVNlcnZpY2VDb25maWcsXG4gIGh0dHBFcnJvcixcbn0gZnJvbSBcIi4uLy4uL3NoYXJlZC9odHRwXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBTbGFjayBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHtAbGluayBIdHRwQXBpU2VydmljZUNvbmZpZ30gd2l0aCB0aGUgU2xhY2sgQm90IFVzZXIgT0F1dGhcbiAqIHRva2VuIHVzZWQgYXMgYSBiZWFyZXIgdG9rZW4uIFdoZW4gb21pdHRlZCwgdGhlIGBjb21tcy5zbGFja2AgZW52aXJvbm1lbnRcbiAqIHNsaWNlIHN1cHBsaWVzIHRoZSB0b2tlbiAoYW5kIG9wdGlvbmFsIGBiYXNlVXJsYC9gdGltZW91dGApLlxuICogQGNhdGVnb3J5IENvbW1zXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9jb21tcy9zbGFjay9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2xhY2tTZXJ2aWNlQ29uZmlnIGV4dGVuZHMgSHR0cEFwaVNlcnZpY2VDb25maWcge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFNsYWNrIEJvdCBVc2VyIE9BdXRoIHRva2VuXG4gICAqIEBzdW1tYXJ5IFNlbnQgYXMgYEF1dGhvcml6YXRpb246IEJlYXJlciA8dG9rZW4+YCB3aXRoIGV2ZXJ5IEFQSSBjYWxsLlxuICAgKi9cbiAgdG9rZW4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIElucHV0IGZvciBwb3N0aW5nIGEgbWVzc2FnZSB0byBhIFNsYWNrIGNoYW5uZWwgb3IgdGhyZWFkXG4gKiBAc3VtbWFyeSBDYXJyaWVzIHRoZSBkZXN0aW5hdGlvbiBgY2hhbm5lbGAgKElEIG9yIGAjY2hhbm5lbGAvYEB1c2VyYCBzdHlsZVxuICogbmFtZSksIHRoZSBwbGFpbi10ZXh0IGZhbGxiYWNrIGB0ZXh0YCwgb3B0aW9uYWwgQmxvY2sgS2l0IGBibG9ja3NgLCBhbmQgdGhlXG4gKiBwb3N0aW5nIG9wdGlvbnMgKHRocmVhZCByZXBseSwgYnJvYWRjYXN0IHJlcGx5LCB1bmZ1cmxpbmcpLlxuICogQGNhdGVnb3J5IENvbW1zXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9jb21tcy9zbGFjay9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2xhY2tQb3N0TWVzc2FnZUlucHV0IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBEZXN0aW5hdGlvbiBjaGFubmVsIElELCBgI2NoYW5uZWxgLCBvciBgQHVzZXJgIG1lbnRpb25cbiAgICovXG4gIGNoYW5uZWw6IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQbGFpbi10ZXh0IG1lc3NhZ2UgYm9keSAoYWxzbyB0aGUgZmFsbGJhY2sgZm9yIGBibG9ja3NgKVxuICAgKi9cbiAgdGV4dDogc3RyaW5nO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE9wdGlvbmFsIEJsb2NrIEtpdCBsYXlvdXQgYmxvY2tzIHJlcGxhY2luZyBwbGFpbiB0ZXh0XG4gICAqL1xuICBibG9ja3M/OiB1bmtub3duW107XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTWVzc2FnZSB0aW1lc3RhbXAgdG8gcmVwbHkgaW4tdGhyZWFkIHRvXG4gICAqL1xuICB0aHJlYWRUcz86IHN0cmluZztcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIHRvIGFsc28gbm90aWZ5IHRoZSBjaGFubmVsIHdoZW4gcmVwbHlpbmcgaW4gYSB0aHJlYWRcbiAgICovXG4gIHJlcGx5QnJvYWRjYXN0PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIGxpbmsgcHJldmlld3MgYXJlIGVuYWJsZWRcbiAgICovXG4gIHVuZnVybExpbmtzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIG1lZGlhIHVuZnVybHMgYXJlIGVuYWJsZWRcbiAgICovXG4gIHVuZnVybE1lZGlhPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVzdWx0IG9mIGEgcG9zdGVkIFNsYWNrIG1lc3NhZ2VcbiAqIEBzdW1tYXJ5IEVjaG9lcyB0aGUgZGVzdGluYXRpb24gYGNoYW5uZWxgIGFuZCB0aGUgbWVzc2FnZSB0aW1lc3RhbXAgYHRzYFxuICogKHVzYWJsZSBhcyBgdGhyZWFkVHNgIGZvciBmb2xsb3ctdXAgcmVwbGllcyksIHdpdGggdGhlIHBvc3RlZCBgdGV4dGAgYW5kIHRoZVxuICogcmF3IGBtZXNzYWdlYCBwYXlsb2FkIHdoZW4gU2xhY2sgcmV0dXJucyB0aGVtLlxuICogQGNhdGVnb3J5IENvbW1zXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9jb21tcy9zbGFjay9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2xhY2tQb3N0TWVzc2FnZVJlc3VsdCB7XG4gIGNoYW5uZWw6IHN0cmluZztcbiAgdHM6IHN0cmluZztcbiAgdGV4dD86IHN0cmluZztcbiAgbWVzc2FnZT86IHVua25vd247XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE5vcm1hbGl6ZWQgU2xhY2sgY29udmVyc2F0aW9uIChjaGFubmVsKSBkZXNjcmlwdG9yXG4gKiBAc3VtbWFyeSBNYXBzIHRoZSByYXcgYGNvbnZlcnNhdGlvbnMuKmAgcGF5bG9hZCBvbnRvIGNhbWVsQ2FzZSBmaWVsZHM6XG4gKiBpZGVudGl0eSAoYGlkYCwgYG5hbWVgKSwgdmlzaWJpbGl0eSAoYGlzUHJpdmF0ZWAsIGBpc0FyY2hpdmVkYCksXG4gKiBgbWVtYmVyQ291bnRgLCBhbmQgdG9waWMvcHVycG9zZSBzdW1tYXJpZXMuXG4gKiBAY2F0ZWdvcnkgQ29tbXNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2NvbW1zL3NsYWNrL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTbGFja0NoYW5uZWwge1xuICBpZDogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBpc1ByaXZhdGU/OiBib29sZWFuO1xuICBpc0FyY2hpdmVkPzogYm9vbGVhbjtcbiAgbWVtYmVyQ291bnQ/OiBudW1iZXI7XG4gIHRvcGljPzogc3RyaW5nO1xuICBwdXJwb3NlPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgU2xhY2tBcGlSZXNwb25zZSB7XG4gIG9rOiBib29sZWFuO1xuICBlcnJvcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gU2xhY2sgV2ViIEFQSSBpbnRlZ3JhdGlvbiBzZXJ2aWNlXG4gKiBAc3VtbWFyeSBBbiB1bmRlY29yYXRlZCBIVFRQIHNlcnZpY2UgZm9yIHBvc3RpbmcgbWVzc2FnZXMsXG4gKiBsaXN0aW5nIGNvbnZlcnNhdGlvbnMgd2l0aCBjdXJzb3IgcGFnaW5nLCBmZXRjaGluZyBhIHNpbmdsZSBjb252ZXJzYXRpb24sXG4gKiBhbmQgbG9va2luZyB1cCB1c2Vycy4gVGhlIFNsYWNrIEJvdCB0b2tlbiBpcyBzZW50IGFzIGEgYmVhcmVyIHRva2VuLCBldmVyeVxuICogY2FsbCByZXF1aXJlcyBpdCAoYHJlcXVpcmVUb2tlbigpYCksIG5vbi1gb2tgIFNsYWNrIHJlc3BvbnNlcyByYWlzZVxuICogYEludGVybmFsRXJyb3JgLCBhbmQgdHJhbnNwb3J0IGZhaWx1cmVzIGFyZSBtYXBwZWQgdG8gZGVjYWYgZXJyb3JzIHZpYVxuICoge0BsaW5rIGh0dHBFcnJvcn0uXG4gKiBAY2xhc3MgU2xhY2tTZXJ2aWNlXG4gKiBAY2F0ZWdvcnkgQ29tbXNcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgU2xhY2tTZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9pbnRlZ3JhdGlvbnMvY29tbXMvc2xhY2tcIjtcbiAqXG4gKiBjb25zdCBzbGFjayA9IG5ldyBTbGFja1NlcnZpY2UoKTtcbiAqIGF3YWl0IHNsYWNrLmluaXRpYWxpemUoe1xuICogICB0b2tlbjogcHJvY2Vzcy5lbnYuR1JBUEhfQ1JFREVOVElBTF9TTEFDS19UT0tFTixcbiAqIH0pO1xuICogYXdhaXQgc2xhY2sucG9zdE1lc3NhZ2Uoe1xuICogICBjaGFubmVsOiBcIiNnZW5lcmFsXCIsXG4gKiAgIHRleHQ6IFwiRGVwbG95bWVudCBmaW5pc2hlZFwiLFxuICogfSk7XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgYXV0b251bWJlclxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgU2VydmljZSBhcyBTbGFja1NlcnZpY2VcbiAqICAgcGFydGljaXBhbnQgU2xhY2sgYXMgU2xhY2sgV2ViIEFQSVxuICogICBDYWxsZXItPj5TZXJ2aWNlOiBwb3N0TWVzc2FnZShpbnB1dClcbiAqICAgYWN0aXZhdGUgU2VydmljZVxuICogICBTZXJ2aWNlLT4+U2VydmljZTogcmVxdWlyZVRva2VuKClcbiAqICAgU2VydmljZS0+PlNsYWNrOiBQT1NUIC9jaGF0LnBvc3RNZXNzYWdlXG4gKiAgIGFjdGl2YXRlIFNsYWNrXG4gKiAgIFNsYWNrLS0+PlNlcnZpY2U6IHsgb2ssIGNoYW5uZWwsIHRzIH1cbiAqICAgZGVhY3RpdmF0ZSBTbGFja1xuICogICBhbHQgb2tcbiAqICAgICBTZXJ2aWNlLS0+PkNhbGxlcjogU2xhY2tQb3N0TWVzc2FnZVJlc3VsdFxuICogICBlbHNlIGVycm9yXG4gKiAgICAgU2VydmljZS0teENhbGxlcjogSW50ZXJuYWxFcnJvciAvIG1hcHBlZCBkZWNhZiBlcnJvclxuICogICBlbmRcbiAqICAgZGVhY3RpdmF0ZSBTZXJ2aWNlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmludGVncmF0aW9ucy9jb21tcy9zbGFjay9zZXJ2aWNlXG4gKi9cbmV4cG9ydCBjbGFzcyBTbGFja1NlcnZpY2UgZXh0ZW5kcyBIdHRwQXBpU2VydmljZTxTbGFja1NlcnZpY2VDb25maWc+IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgcHJvdmlkZXIgbmFtZSB1c2VkIGluIGVycm9yIG1lc3NhZ2VzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZU5hbWUgPSBcIlNsYWNrXCI7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgU2xhY2sgV2ViIEFQSSBiYXNlIFVSTFxuICAgKiBAc3VtbWFyeSBVc2VkIHdoZW4gdGhlIHJlc29sdmVkIGNvbmZpZyBjYXJyaWVzIG5vIGBiYXNlVXJsYC5cbiAgICogQHJldHVybnMge3N0cmluZ30gYFwiaHR0cHM6Ly9zbGFjay5jb20vYXBpXCJgLlxuICAgKi9cbiAgcHJvdGVjdGVkIGRlZmF1bHRCYXNlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFwiaHR0cHM6Ly9zbGFjay5jb20vYXBpXCI7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEJ1aWxkcyB0aGUgU2xhY2sgYmVhcmVyIGF1dGhvcml6YXRpb24gaGVhZGVyc1xuICAgKiBAc3VtbWFyeSBSZXR1cm5zIHRoZSBgQXV0aG9yaXphdGlvbjogQmVhcmVyIDx0b2tlbj5gIGhlYWRlciB3aGVuIHRoZVxuICAgKiBjb25maWcgY2FycmllcyBhIHRva2VuLCBhbmQgbm8gaGVhZGVycyBvdGhlcndpc2UuXG4gICAqIEBwYXJhbSB7U2xhY2tTZXJ2aWNlQ29uZmlnfSBjb25maWcgLSBUaGUgcmVzb2x2ZWQgc2VydmljZSBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyB7UmVjb3JkPHN0cmluZywgc3RyaW5nPn0gVGhlIGF1dGhvcml6YXRpb24gaGVhZGVycyAoZW1wdHkgd2l0aG91dCBhIHRva2VuKS5cbiAgICovXG4gIHByb3RlY3RlZCBhdXRoSGVhZGVycyhjb25maWc6IFNsYWNrU2VydmljZUNvbmZpZyk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIHJldHVybiBjb25maWcudG9rZW4gPyB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtjb25maWcudG9rZW59YCB9IDoge307XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlYWRzIHRoZSBTbGFjayBjcmVkZW50aWFscyBhbmQgZGVmYXVsdHMgZnJvbSB0aGUgZW52aXJvbm1lbnRcbiAgICogQHN1bW1hcnkgUmVhZHMgdGhlIGBjb21tcy5zbGFja2AgZW52aXJvbm1lbnQgc2xpY2UgYW5kIHJldHVybnMgYSBwYXJ0aWFsXG4gICAqIGNvbmZpZyB3aGVuIGEgdG9rZW4gaXMgY29uZmlndXJlZCwgYHVuZGVmaW5lZGAgb3RoZXJ3aXNlLiBWYWx1ZXMgcGFzc1xuICAgKiB0aHJvdWdoIGBlbnZTdHJpbmdgL2BlbnZOdW1iZXJgIHRvIHJlamVjdCB1bnNldC1sZWFmIHByb3hpZXMuXG4gICAqIEByZXR1cm5zIHtQYXJ0aWFsPFNsYWNrU2VydmljZUNvbmZpZz4gfCB1bmRlZmluZWR9IEEgcGFydGlhbCBjb25maWcsIG9yIGB1bmRlZmluZWRgIHdoZW4gbm8gU2xhY2sgdG9rZW4gaXMgY29uZmlndXJlZC5cbiAgICovXG4gIHByb3RlY3RlZCBjb25maWdGcm9tRW52aXJvbm1lbnQoKTogUGFydGlhbDxTbGFja1NlcnZpY2VDb25maWc+IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBlbnYgPSBDb21tc0Vudmlyb25tZW50LmNvbW1zLnNsYWNrO1xuICAgIGNvbnN0IHRva2VuID0gZW52U3RyaW5nKGVudj8udG9rZW4pO1xuICAgIGlmICghdG9rZW4pIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRva2VuLFxuICAgICAgYmFzZVVybDogZW52U3RyaW5nKGVudi5iYXNlVXJsKSxcbiAgICAgIHRpbWVvdXQ6IGVudk51bWJlcihlbnYudGltZW91dCksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUG9zdHMgYSByZXF1ZXN0IHRvIGEgU2xhY2sgV2ViIEFQSSBtZXRob2RcbiAgICogQHN1bW1hcnkgU2hhcmVkIHJlcXVlc3QgcGF0aCBmb3IgYWxsIFNsYWNrIG9wZXJhdGlvbnM6IGFzc2VydHMgYSB0b2tlbiBpc1xuICAgKiBjb25maWd1cmVkLCBgUE9TVGBzIHRoZSBwYXlsb2FkIHRvIGAvPG1ldGhvZD5gLCByZWplY3RzIG5vbi1gb2tgIFNsYWNrXG4gICAqIHJlc3BvbnNlcyB3aXRoIGFuIGBJbnRlcm5hbEVycm9yYCwgYW5kIG1hcHMgdHJhbnNwb3J0IGZhaWx1cmVzIHRocm91Z2hcbiAgICoge0BsaW5rIGh0dHBFcnJvcn0uXG4gICAqIEB0ZW1wbGF0ZSBUIC0gVGhlIGV4cGVjdGVkIFNsYWNrIHJlc3BvbnNlIHNoYXBlLCBleHRlbmRpbmcgYFNsYWNrQXBpUmVzcG9uc2VgLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWV0aG9kIC0gVGhlIFNsYWNrIFdlYiBBUEkgbWV0aG9kIG5hbWUgKGUuZy4gYFwiY2hhdC5wb3N0TWVzc2FnZVwiYCkuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59IHBheWxvYWQgLSBUaGUgSlNPTiBib2R5IGZvciB0aGUgbWV0aG9kLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUPn0gVGhlIHBhcnNlZCBTbGFjayByZXNwb25zZSBwYXlsb2FkLlxuICAgKiBAdGhyb3dzIHtJbnRlcm5hbEVycm9yfSBXaGVuIG5vIHRva2VuIGlzIGNvbmZpZ3VyZWQgb3IgU2xhY2sgYW5zd2VycyB3aXRoIGBvazogZmFsc2VgLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIFNsYWNrIGFuc3dlcnMgd2l0aCBIVFRQIDQwNC5cbiAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiBTbGFjayBhbnN3ZXJzIHdpdGggSFRUUCA0MDkuXG4gICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBTbGFjayBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGNhbGw8VCBleHRlbmRzIFNsYWNrQXBpUmVzcG9uc2U+KFxuICAgIG1ldGhvZDogc3RyaW5nLFxuICAgIHBheWxvYWQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICk6IFByb21pc2U8VD4ge1xuICAgIHRoaXMucmVxdWlyZVRva2VuKCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucG9zdDxUPihgLyR7bWV0aG9kfWAsIHBheWxvYWQpO1xuICAgICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICBpZiAoIWRhdGEgfHwgZGF0YS5vayAhPT0gdHJ1ZSkge1xuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICBgU2xhY2sgQVBJICR7bWV0aG9kfSBmYWlsZWQ6ICR7ZGF0YT8uZXJyb3IgPz8gXCJ1bmtub3duIGVycm9yXCJ9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IGh0dHBFcnJvcihcIlNsYWNrXCIsIGBBUEkgJHttZXRob2R9YCwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUG9zdHMgYSBtZXNzYWdlIHRvIGEgU2xhY2sgY2hhbm5lbCBvciB0aHJlYWRcbiAgICogQHN1bW1hcnkgU2VuZHMgdGhlIGlucHV0IHRvIFNsYWNrJ3MgYGNoYXQucG9zdE1lc3NhZ2VgIG1ldGhvZCBhbmQgcmV0dXJuc1xuICAgKiB0aGUgZGVzdGluYXRpb24gY2hhbm5lbCBhbmQgbWVzc2FnZSB0aW1lc3RhbXA7IHVzZSB0aGUgcmV0dXJuZWQgYHRzYCBhc1xuICAgKiBgdGhyZWFkVHNgIHRvIHJlcGx5IGluIHRoZSBzYW1lIHRocmVhZC4gUHJvdmlkZSBgYmxvY2tzYCBmb3IgQmxvY2sgS2l0XG4gICAqIGxheW91dHMgKHdpdGggYHRleHRgIGFzIHRoZSBmYWxsYmFjayksIG9yIHBsYWluIHRleHQgYWxvbmUuXG4gICAqIEBwYXJhbSB7U2xhY2tQb3N0TWVzc2FnZUlucHV0fSBpbnB1dCAtIFRoZSBtZXNzYWdlIGRlc3RpbmF0aW9uIGFuZCBjb250ZW50LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxTbGFja1Bvc3RNZXNzYWdlUmVzdWx0Pn0gVGhlIHBvc3RlZCBtZXNzYWdlJ3MgY2hhbm5lbCwgdGltZXN0YW1wLCB0ZXh0LCBhbmQgcmF3IHBheWxvYWQuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gdG9rZW4gaXMgY29uZmlndXJlZCBvciBTbGFjayByZWplY3RzIHRoZSBtZXNzYWdlLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBjaGFubmVsIGNhbm5vdCBiZSBmb3VuZCAoSFRUUCA0MDQpLlxuICAgKiBAdGhyb3dzIHtDb25mbGljdEVycm9yfSBXaGVuIFNsYWNrIGFuc3dlcnMgd2l0aCBIVFRQIDQwOS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIFNsYWNrIGFuc3dlcnMgd2l0aCBhbnkgb3RoZXIgSFRUUCBlcnJvciBzdGF0dXMuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGF3YWl0IHNsYWNrLnBvc3RNZXNzYWdlKHtcbiAgICogICBjaGFubmVsOiBcIiNkZXBsb3lzXCIsXG4gICAqICAgdGV4dDogXCJSZWxlYXNlIDEuMi4wIGlzIGxpdmVcIixcbiAgICogICB1bmZ1cmxMaW5rczogZmFsc2UsXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIHBvc3RNZXNzYWdlKFxuICAgIGlucHV0OiBTbGFja1Bvc3RNZXNzYWdlSW5wdXRcbiAgKTogUHJvbWlzZTxTbGFja1Bvc3RNZXNzYWdlUmVzdWx0PiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY2FsbDxTbGFja0FwaVJlc3BvbnNlICYgU2xhY2tQb3N0TWVzc2FnZVJlc3VsdD4oXG4gICAgICBcImNoYXQucG9zdE1lc3NhZ2VcIixcbiAgICAgIHtcbiAgICAgICAgY2hhbm5lbDogaW5wdXQuY2hhbm5lbCxcbiAgICAgICAgdGV4dDogaW5wdXQudGV4dCxcbiAgICAgICAgYmxvY2tzOiBpbnB1dC5ibG9ja3MsXG4gICAgICAgIHRocmVhZF90czogaW5wdXQudGhyZWFkVHMsXG4gICAgICAgIHJlcGx5X2Jyb2FkY2FzdDogaW5wdXQucmVwbHlCcm9hZGNhc3QsXG4gICAgICAgIHVuZnVybF9saW5rczogaW5wdXQudW5mdXJsTGlua3MsXG4gICAgICAgIHVuZnVybF9tZWRpYTogaW5wdXQudW5mdXJsTWVkaWEsXG4gICAgICB9XG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgY2hhbm5lbDogZGF0YS5jaGFubmVsLFxuICAgICAgdHM6IGRhdGEudHMsXG4gICAgICB0ZXh0OiBkYXRhLnRleHQsXG4gICAgICBtZXNzYWdlOiBkYXRhLm1lc3NhZ2UsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTGlzdHMgU2xhY2sgY29udmVyc2F0aW9ucyB3aXRoIGN1cnNvciBwYWdpbmdcbiAgICogQHN1bW1hcnkgQ2FsbHMgYGNvbnZlcnNhdGlvbnMubGlzdGAgd2l0aCBhIHBhZ2Ugc2l6ZSAoZGVmYXVsdCBgMTAwYCksXG4gICAqIGNvbnZlcnNhdGlvbiBgdHlwZXNgIChkZWZhdWx0IHB1YmxpYyBhbmQgcHJpdmF0ZSBjaGFubmVscyksIGFuZCBhcmNoaXZlZFxuICAgKiBleGNsdXNpb24gKGRlZmF1bHQgYHRydWVgKSwgcmV0dXJuaW5nIG5vcm1hbGl6ZWQgY2hhbm5lbHMgYW5kIHRoZVxuICAgKiBgbmV4dEN1cnNvcmAgdG8gcGFzcyBiYWNrIGFzIGBjdXJzb3JgIGZvciB0aGUgbmV4dCBwYWdlLlxuICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gUGFnaW5nIGFuZCBmaWx0ZXIgb3B0aW9ucy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IFtvcHRpb25zLmxpbWl0XSAtIFBhZ2Ugc2l6ZTsgZGVmYXVsdHMgdG8gYDEwMGAuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3B0aW9ucy5jdXJzb3JdIC0gVGhlIGBuZXh0Q3Vyc29yYCBmcm9tIHRoZSBwcmV2aW91cyBwYWdlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMudHlwZXNdIC0gQ29tbWEtc2VwYXJhdGVkIGNvbnZlcnNhdGlvbiB0eXBlcyAoZS5nLiBgXCJwdWJsaWNfY2hhbm5lbCxwcml2YXRlX2NoYW5uZWxcImApOyBkZWZhdWx0cyB0byBgXCJwdWJsaWNfY2hhbm5lbCxwcml2YXRlX2NoYW5uZWxcImAuXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZXhjbHVkZUFyY2hpdmVkXSAtIFdoZXRoZXIgYXJjaGl2ZWQgY2hhbm5lbHMgYXJlIGV4Y2x1ZGVkOyBkZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHtjaGFubmVsczogU2xhY2tDaGFubmVsW10sIG5leHRDdXJzb3I/OiBzdHJpbmd9Pn0gVGhlIHBhZ2Ugb2YgY2hhbm5lbHMgYW5kIHRoZSBjdXJzb3IgZm9yIHRoZSBuZXh0IHBhZ2UsIHdoZW4gbW9yZSBwYWdlcyBleGlzdC5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBubyB0b2tlbiBpcyBjb25maWd1cmVkIG9yIFNsYWNrIHJlamVjdHMgdGhlIGNhbGwuXG4gICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gU2xhY2sgYW5zd2VycyB3aXRoIEhUVFAgNDA0LlxuICAgKiBAdGhyb3dzIHtDb25mbGljdEVycm9yfSBXaGVuIFNsYWNrIGFuc3dlcnMgd2l0aCBIVFRQIDQwOS5cbiAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIFNsYWNrIGFuc3dlcnMgd2l0aCBhbnkgb3RoZXIgSFRUUCBlcnJvciBzdGF0dXMuXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGxldCBjdXJzb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICogZG8ge1xuICAgKiAgIGNvbnN0IHBhZ2UgPSBhd2FpdCBzbGFjay5saXN0Q29udmVyc2F0aW9ucyh7IGxpbWl0OiAyMDAsIGN1cnNvciB9KTtcbiAgICogICBjb25zb2xlLmxvZyhwYWdlLmNoYW5uZWxzLm1hcCgoY2hhbm5lbCkgPT4gY2hhbm5lbC5uYW1lKSk7XG4gICAqICAgY3Vyc29yID0gcGFnZS5uZXh0Q3Vyc29yO1xuICAgKiB9IHdoaWxlIChjdXJzb3IpO1xuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGxpc3RDb252ZXJzYXRpb25zKFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIGxpbWl0PzogbnVtYmVyO1xuICAgICAgY3Vyc29yPzogc3RyaW5nO1xuICAgICAgdHlwZXM/OiBzdHJpbmc7XG4gICAgICBleGNsdWRlQXJjaGl2ZWQ/OiBib29sZWFuO1xuICAgIH0gPSB7fVxuICApOiBQcm9taXNlPHtcbiAgICBjaGFubmVsczogU2xhY2tDaGFubmVsW107XG4gICAgbmV4dEN1cnNvcj86IHN0cmluZztcbiAgfT4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNhbGw8XG4gICAgICBTbGFja0FwaVJlc3BvbnNlICYge1xuICAgICAgICBjaGFubmVscz86IEFycmF5PFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiAgICAgICAgcmVzcG9uc2VfbWV0YWRhdGE/OiB7IG5leHRfY3Vyc29yPzogc3RyaW5nIH07XG4gICAgICB9XG4gICAgPihcImNvbnZlcnNhdGlvbnMubGlzdFwiLCB7XG4gICAgICBsaW1pdDogb3B0aW9ucy5saW1pdCA/PyAxMDAsXG4gICAgICBjdXJzb3I6IG9wdGlvbnMuY3Vyc29yLFxuICAgICAgdHlwZXM6IG9wdGlvbnMudHlwZXMgPz8gXCJwdWJsaWNfY2hhbm5lbCxwcml2YXRlX2NoYW5uZWxcIixcbiAgICAgIGV4Y2x1ZGVfYXJjaGl2ZWQ6IG9wdGlvbnMuZXhjbHVkZUFyY2hpdmVkID8/IHRydWUsXG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNoYW5uZWxzOiAoZGF0YS5jaGFubmVscyA/PyBbXSkubWFwKChjaGFubmVsKSA9PiAoe1xuICAgICAgICBpZDogU3RyaW5nKGNoYW5uZWxbXCJpZFwiXSA/PyBcIlwiKSxcbiAgICAgICAgbmFtZTogZW52U3RyaW5nKGNoYW5uZWxbXCJuYW1lXCJdKSxcbiAgICAgICAgaXNQcml2YXRlOiBjaGFubmVsW1wiaXNfcHJpdmF0ZVwiXSA9PT0gdHJ1ZSxcbiAgICAgICAgaXNBcmNoaXZlZDogY2hhbm5lbFtcImlzX2FyY2hpdmVkXCJdID09PSB0cnVlLFxuICAgICAgICBtZW1iZXJDb3VudDpcbiAgICAgICAgICB0eXBlb2YgY2hhbm5lbFtcIm51bV9tZW1iZXJzXCJdID09PSBcIm51bWJlclwiXG4gICAgICAgICAgICA/IChjaGFubmVsW1wibnVtX21lbWJlcnNcIl0gYXMgbnVtYmVyKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIHRvcGljOiAoY2hhbm5lbFtcInRvcGljXCJdIGFzIHsgdmFsdWU/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCk/LnZhbHVlLFxuICAgICAgICBwdXJwb3NlOiAoY2hhbm5lbFtcInB1cnBvc2VcIl0gYXMgeyB2YWx1ZT86IHN0cmluZyB9IHwgdW5kZWZpbmVkKT8udmFsdWUsXG4gICAgICB9KSksXG4gICAgICBuZXh0Q3Vyc29yOiBlbnZTdHJpbmcoZGF0YS5yZXNwb25zZV9tZXRhZGF0YT8ubmV4dF9jdXJzb3IpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZldGNoZXMgYSBzaW5nbGUgU2xhY2sgY29udmVyc2F0aW9uXG4gICAqIEBzdW1tYXJ5IENhbGxzIGBjb252ZXJzYXRpb25zLmluZm9gIGZvciB0aGUgZ2l2ZW4gY2hhbm5lbCBJRCAob3JcbiAgICogYCNuYW1lYCkgYW5kIHJldHVybnMgdGhlIG5vcm1hbGl6ZWQgY2hhbm5lbCBkZXNjcmlwdG9yLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gY2hhbm5lbCAtIFRoZSBjaGFubmVsIElEIG9yIGAjbmFtZWAgdG8gbG9vayB1cC5cbiAgICogQHJldHVybnMge1Byb21pc2U8U2xhY2tDaGFubmVsPn0gVGhlIG5vcm1hbGl6ZWQgY29udmVyc2F0aW9uIGRlc2NyaXB0b3IuXG4gICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gdG9rZW4gaXMgY29uZmlndXJlZCBvciBTbGFjayByZWplY3RzIHRoZSBjYWxsLlxuICAgKiBAdGhyb3dzIHtOb3RGb3VuZEVycm9yfSBXaGVuIHRoZSBjaGFubmVsIGRvZXMgbm90IGV4aXN0IChIVFRQIDQwNCkuXG4gICAqIEB0aHJvd3Mge0NvbmZsaWN0RXJyb3J9IFdoZW4gU2xhY2sgYW5zd2VycyB3aXRoIEhUVFAgNDA5LlxuICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gU2xhY2sgYW5zd2VycyB3aXRoIGFueSBvdGhlciBIVFRQIGVycm9yIHN0YXR1cy5cbiAgICovXG4gIGFzeW5jIGdldENvbnZlcnNhdGlvbihjaGFubmVsOiBzdHJpbmcpOiBQcm9taXNlPFNsYWNrQ2hhbm5lbD4ge1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNhbGw8XG4gICAgICBTbGFja0FwaVJlc3BvbnNlICYgeyBjaGFubmVsPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfVxuICAgID4oXCJjb252ZXJzYXRpb25zLmluZm9cIiwgeyBjaGFubmVsIH0pO1xuICAgIGNvbnN0IGZvdW5kID0gZGF0YS5jaGFubmVsID8/IHt9O1xuICAgIHJldHVybiB7XG4gICAgICBpZDogU3RyaW5nKGZvdW5kW1wiaWRcIl0gPz8gY2hhbm5lbCksXG4gICAgICBuYW1lOiBlbnZTdHJpbmcoZm91bmRbXCJuYW1lXCJdKSxcbiAgICAgIGlzUHJpdmF0ZTogZm91bmRbXCJpc19wcml2YXRlXCJdID09PSB0cnVlLFxuICAgICAgaXNBcmNoaXZlZDogZm91bmRbXCJpc19hcmNoaXZlZFwiXSA9PT0gdHJ1ZSxcbiAgICAgIG1lbWJlckNvdW50OlxuICAgICAgICB0eXBlb2YgZm91bmRbXCJudW1fbWVtYmVyc1wiXSA9PT0gXCJudW1iZXJcIlxuICAgICAgICAgID8gKGZvdW5kW1wibnVtX21lbWJlcnNcIl0gYXMgbnVtYmVyKVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgdG9waWM6IChmb3VuZFtcInRvcGljXCJdIGFzIHsgdmFsdWU/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCk/LnZhbHVlLFxuICAgICAgcHVycG9zZTogKGZvdW5kW1wicHVycG9zZVwiXSBhcyB7IHZhbHVlPzogc3RyaW5nIH0gfCB1bmRlZmluZWQpPy52YWx1ZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBGZXRjaGVzIGEgU2xhY2sgdXNlciBwcm9maWxlXG4gICAqIEBzdW1tYXJ5IENhbGxzIGB1c2Vycy5pbmZvYCBmb3IgdGhlIGdpdmVuIHVzZXIgSUQgYW5kIHJldHVybnMgdGhlIHJhd1xuICAgKiB1c2VyIHBheWxvYWQsIG9yIGB1bmRlZmluZWRgIHdoZW4gU2xhY2sgcmVwb3J0cyBubyB1c2VyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXNlcklkIC0gVGhlIFNsYWNrIHVzZXIgSUQgdG8gbG9vayB1cCAoZS5nLiBgXCJVMTIzNDU2NzhcImApLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IHVuZGVmaW5lZD59IFRoZSByYXcgdXNlciBwYXlsb2FkLCBvciBgdW5kZWZpbmVkYCB3aGVuIHRoZSB1c2VyIGlzIG5vdCBmb3VuZC5cbiAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBubyB0b2tlbiBpcyBjb25maWd1cmVkIG9yIFNsYWNrIHJlamVjdHMgdGhlIGNhbGwuXG4gICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIHVzZXIgZG9lcyBub3QgZXhpc3QgKEhUVFAgNDA0KS5cbiAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiBTbGFjayBhbnN3ZXJzIHdpdGggSFRUUCA0MDkuXG4gICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBTbGFjayBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzLlxuICAgKi9cbiAgYXN5bmMgZ2V0VXNlcihcbiAgICB1c2VySWQ6IHN0cmluZ1xuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY2FsbDxcbiAgICAgIFNsYWNrQXBpUmVzcG9uc2UgJiB7IHVzZXI/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9XG4gICAgPihcInVzZXJzLmluZm9cIiwgeyB1c2VyOiB1c2VySWQgfSk7XG4gICAgcmV0dXJuIGRhdGEudXNlcjtcbiAgfVxufVxuIl19
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2xhY2tTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiU2xhY2tTZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7Ozs7OztHQVFHO0FBQ0gsMkRBQXdEO0FBQ3hELHdEQUF1RDtBQUN2RCw0RUFBMEU7QUFDMUUsMkRBQTBFO0FBQzFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkNHO0FBQ0gsTUFBYSxZQUFhLFNBQVEseUJBQWM7SUFDNUM7UUFDSSxLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUNwQjs7V0FFRztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO0lBQy9CLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsY0FBYztRQUNWLE9BQU8sdUJBQXVCLENBQUM7SUFDbkMsQ0FBQztJQUNEOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxNQUFNO1FBQ2QsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxVQUFVLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDM0UsQ0FBQztJQUNEOzs7Ozs7T0FNRztJQUNILHFCQUFxQjtRQUNqQixNQUFNLEdBQUcsR0FBRyxpQ0FBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLElBQUEsK0JBQVMsRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLEtBQUs7WUFDTixPQUFPLFNBQVMsQ0FBQztRQUNyQixPQUFPO1lBQ0gsS0FBSztZQUNMLE9BQU8sRUFBRSxJQUFBLCtCQUFTLEVBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztZQUMvQixPQUFPLEVBQUUsSUFBQSwrQkFBUyxFQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7U0FDbEMsQ0FBQztJQUNOLENBQUM7SUFD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LEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM3RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztDQUNKO0FBeE1ELG9DQXdNQztBQUNELDhqeUJBQThqeUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL2NvbW1zL3NsYWNrL3NlcnZpY2VcbiAqIEBzdW1tYXJ5IFNsYWNrIFdlYiBBUEkgaW50ZWdyYXRpb24gc2VydmljZSBmb3IgcG9zdGluZyBtZXNzYWdlcyBhbmQgcmVhZGluZyBjb252ZXJzYXRpb25zIGFuZCB1c2Vycy5cbiAqIEBkZXNjcmlwdGlvbiBFeHBvc2VzIHRoZSBTbGFjayBXZWIgQVBJIChgY2hhdC5wb3N0TWVzc2FnZWAsIGBjb252ZXJzYXRpb25zLipgLCBgdXNlcnMuaW5mb2ApXG4gKiBhcyBhbiB1bmRlY29yYXRlZCBjbGllbnQtYmFzZWQgc2VydmljZSBidWlsdCBvbiB7QGxpbmsgSHR0cEFwaVNlcnZpY2V9LlxuICogQ29uZmlndXJhdGlvbiBjb21lcyBmcm9tIGFuIGV4cGxpY2l0IGBTbGFja1NlcnZpY2VDb25maWdgIG9yIHRoZSBgY29tbXMuc2xhY2tgXG4gKiBlbnZpcm9ubWVudCBzbGljZTsgZXZlcnkgcmVzcG9uc2UgaXMgbm9ybWFsaXplZCBhbmQgZmFpbHVyZXMgYXJlIG1hcHBlZCB0byBkZWNhZlxuICogZXJyb3JzIHZpYSB7QGxpbmsgaHR0cEVycm9yfS5cbiAqL1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ29tbXNFbnZpcm9ubWVudCB9IGZyb20gXCIuLy4uL2Vudmlyb25tZW50LmpzXCI7XG5pbXBvcnQgeyBlbnZOdW1iZXIsIGVudlN0cmluZyB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9lbnZpcm9ubWVudFZhbHVlLmpzXCI7XG5pbXBvcnQgeyBIdHRwQXBpU2VydmljZSwgaHR0cEVycm9yLCB9IGZyb20gXCIuLy4uLy4uL3NoYXJlZC9odHRwL2luZGV4LmpzXCI7XG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTbGFjayBXZWIgQVBJIGludGVncmF0aW9uIHNlcnZpY2VcbiAqIEBzdW1tYXJ5IEFuIHVuZGVjb3JhdGVkIEhUVFAgc2VydmljZSBmb3IgcG9zdGluZyBtZXNzYWdlcyxcbiAqIGxpc3RpbmcgY29udmVyc2F0aW9ucyB3aXRoIGN1cnNvciBwYWdpbmcsIGZldGNoaW5nIGEgc2luZ2xlIGNvbnZlcnNhdGlvbixcbiAqIGFuZCBsb29raW5nIHVwIHVzZXJzLiBUaGUgU2xhY2sgQm90IHRva2VuIGlzIHNlbnQgYXMgYSBiZWFyZXIgdG9rZW4sIGV2ZXJ5XG4gKiBjYWxsIHJlcXVpcmVzIGl0IChgcmVxdWlyZVRva2VuKClgKSwgbm9uLWBva2AgU2xhY2sgcmVzcG9uc2VzIHJhaXNlXG4gKiBgSW50ZXJuYWxFcnJvcmAsIGFuZCB0cmFuc3BvcnQgZmFpbHVyZXMgYXJlIG1hcHBlZCB0byBkZWNhZiBlcnJvcnMgdmlhXG4gKiB7QGxpbmsgaHR0cEVycm9yfS5cbiAqIEBjbGFzcyBTbGFja1NlcnZpY2VcbiAqIEBjYXRlZ29yeSBDb21tc1xuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBTbGFja1NlcnZpY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2ludGVncmF0aW9ucy9jb21tcy9zbGFja1wiO1xuICpcbiAqIGNvbnN0IHNsYWNrID0gbmV3IFNsYWNrU2VydmljZSgpO1xuICogYXdhaXQgc2xhY2suaW5pdGlhbGl6ZSh7XG4gKiAgIHRva2VuOiBwcm9jZXNzLmVudi5HUkFQSF9DUkVERU5USUFMX1NMQUNLX1RPS0VOLFxuICogfSk7XG4gKiBhd2FpdCBzbGFjay5wb3N0TWVzc2FnZSh7XG4gKiAgIGNoYW5uZWw6IFwiI2dlbmVyYWxcIixcbiAqICAgdGV4dDogXCJEZXBsb3ltZW50IGZpbmlzaGVkXCIsXG4gKiB9KTtcbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBhdXRvbnVtYmVyXG4gKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICogICBwYXJ0aWNpcGFudCBTZXJ2aWNlIGFzIFNsYWNrU2VydmljZVxuICogICBwYXJ0aWNpcGFudCBTbGFjayBhcyBTbGFjayBXZWIgQVBJXG4gKiAgIENhbGxlci0+PlNlcnZpY2U6IHBvc3RNZXNzYWdlKGlucHV0KVxuICogICBhY3RpdmF0ZSBTZXJ2aWNlXG4gKiAgIFNlcnZpY2UtPj5TZXJ2aWNlOiByZXF1aXJlVG9rZW4oKVxuICogICBTZXJ2aWNlLT4+U2xhY2s6IFBPU1QgL2NoYXQucG9zdE1lc3NhZ2VcbiAqICAgYWN0aXZhdGUgU2xhY2tcbiAqICAgU2xhY2stLT4+U2VydmljZTogeyBvaywgY2hhbm5lbCwgdHMgfVxuICogICBkZWFjdGl2YXRlIFNsYWNrXG4gKiAgIGFsdCBva1xuICogICAgIFNlcnZpY2UtLT4+Q2FsbGVyOiBTbGFja1Bvc3RNZXNzYWdlUmVzdWx0XG4gKiAgIGVsc2UgZXJyb3JcbiAqICAgICBTZXJ2aWNlLS14Q2FsbGVyOiBJbnRlcm5hbEVycm9yIC8gbWFwcGVkIGRlY2FmIGVycm9yXG4gKiAgIGVuZFxuICogICBkZWFjdGl2YXRlIFNlcnZpY2VcbiAqIEBtZW1iZXJPZiBtb2R1bGU6aW50ZWdyYXRpb25zL2NvbW1zL3NsYWNrL3NlcnZpY2VcbiAqL1xuZXhwb3J0IGNsYXNzIFNsYWNrU2VydmljZSBleHRlbmRzIEh0dHBBcGlTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZXNjcmlwdGlvbiBUaGUgcHJvdmlkZXIgbmFtZSB1c2VkIGluIGVycm9yIG1lc3NhZ2VzXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnNlcnZpY2VOYW1lID0gXCJTbGFja1wiO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVGhlIFNsYWNrIFdlYiBBUEkgYmFzZSBVUkxcbiAgICAgKiBAc3VtbWFyeSBVc2VkIHdoZW4gdGhlIHJlc29sdmVkIGNvbmZpZyBjYXJyaWVzIG5vIGBiYXNlVXJsYC5cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBgXCJodHRwczovL3NsYWNrLmNvbS9hcGlcImAuXG4gICAgICovXG4gICAgZGVmYXVsdEJhc2VVcmwoKSB7XG4gICAgICAgIHJldHVybiBcImh0dHBzOi8vc2xhY2suY29tL2FwaVwiO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQnVpbGRzIHRoZSBTbGFjayBiZWFyZXIgYXV0aG9yaXphdGlvbiBoZWFkZXJzXG4gICAgICogQHN1bW1hcnkgUmV0dXJucyB0aGUgYEF1dGhvcml6YXRpb246IEJlYXJlciA8dG9rZW4+YCBoZWFkZXIgd2hlbiB0aGVcbiAgICAgKiBjb25maWcgY2FycmllcyBhIHRva2VuLCBhbmQgbm8gaGVhZGVycyBvdGhlcndpc2UuXG4gICAgICogQHBhcmFtIHtTbGFja1NlcnZpY2VDb25maWd9IGNvbmZpZyAtIFRoZSByZXNvbHZlZCBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uXG4gICAgICogQHJldHVybnMge1JlY29yZDxzdHJpbmcsIHN0cmluZz59IFRoZSBhdXRob3JpemF0aW9uIGhlYWRlcnMgKGVtcHR5IHdpdGhvdXQgYSB0b2tlbikuXG4gICAgICovXG4gICAgYXV0aEhlYWRlcnMoY29uZmlnKSB7XG4gICAgICAgIHJldHVybiBjb25maWcudG9rZW4gPyB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHtjb25maWcudG9rZW59YCB9IDoge307XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWFkcyB0aGUgU2xhY2sgY3JlZGVudGlhbHMgYW5kIGRlZmF1bHRzIGZyb20gdGhlIGVudmlyb25tZW50XG4gICAgICogQHN1bW1hcnkgUmVhZHMgdGhlIGBjb21tcy5zbGFja2AgZW52aXJvbm1lbnQgc2xpY2UgYW5kIHJldHVybnMgYSBwYXJ0aWFsXG4gICAgICogY29uZmlnIHdoZW4gYSB0b2tlbiBpcyBjb25maWd1cmVkLCBgdW5kZWZpbmVkYCBvdGhlcndpc2UuIFZhbHVlcyBwYXNzXG4gICAgICogdGhyb3VnaCBgZW52U3RyaW5nYC9gZW52TnVtYmVyYCB0byByZWplY3QgdW5zZXQtbGVhZiBwcm94aWVzLlxuICAgICAqIEByZXR1cm5zIHtQYXJ0aWFsPFNsYWNrU2VydmljZUNvbmZpZz4gfCB1bmRlZmluZWR9IEEgcGFydGlhbCBjb25maWcsIG9yIGB1bmRlZmluZWRgIHdoZW4gbm8gU2xhY2sgdG9rZW4gaXMgY29uZmlndXJlZC5cbiAgICAgKi9cbiAgICBjb25maWdGcm9tRW52aXJvbm1lbnQoKSB7XG4gICAgICAgIGNvbnN0IGVudiA9IENvbW1zRW52aXJvbm1lbnQuY29tbXMuc2xhY2s7XG4gICAgICAgIGNvbnN0IHRva2VuID0gZW52U3RyaW5nKGVudj8udG9rZW4pO1xuICAgICAgICBpZiAoIXRva2VuKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRva2VuLFxuICAgICAgICAgICAgYmFzZVVybDogZW52U3RyaW5nKGVudi5iYXNlVXJsKSxcbiAgICAgICAgICAgIHRpbWVvdXQ6IGVudk51bWJlcihlbnYudGltZW91dCksXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBQb3N0cyBhIHJlcXVlc3QgdG8gYSBTbGFjayBXZWIgQVBJIG1ldGhvZFxuICAgICAqIEBzdW1tYXJ5IFNoYXJlZCByZXF1ZXN0IHBhdGggZm9yIGFsbCBTbGFjayBvcGVyYXRpb25zOiBhc3NlcnRzIGEgdG9rZW4gaXNcbiAgICAgKiBjb25maWd1cmVkLCBgUE9TVGBzIHRoZSBwYXlsb2FkIHRvIGAvPG1ldGhvZD5gLCByZWplY3RzIG5vbi1gb2tgIFNsYWNrXG4gICAgICogcmVzcG9uc2VzIHdpdGggYW4gYEludGVybmFsRXJyb3JgLCBhbmQgbWFwcyB0cmFuc3BvcnQgZmFpbHVyZXMgdGhyb3VnaFxuICAgICAqIHtAbGluayBodHRwRXJyb3J9LlxuICAgICAqIEB0ZW1wbGF0ZSBUIC0gVGhlIGV4cGVjdGVkIFNsYWNrIHJlc3BvbnNlIHNoYXBlLCBleHRlbmRpbmcgYFNsYWNrQXBpUmVzcG9uc2VgLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtZXRob2QgLSBUaGUgU2xhY2sgV2ViIEFQSSBtZXRob2QgbmFtZSAoZS5nLiBgXCJjaGF0LnBvc3RNZXNzYWdlXCJgKS5cbiAgICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSBwYXlsb2FkIC0gVGhlIEpTT04gYm9keSBmb3IgdGhlIG1ldGhvZC5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUPn0gVGhlIHBhcnNlZCBTbGFjayByZXNwb25zZSBwYXlsb2FkLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gdG9rZW4gaXMgY29uZmlndXJlZCBvciBTbGFjayBhbnN3ZXJzIHdpdGggYG9rOiBmYWxzZWAuXG4gICAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiBTbGFjayBhbnN3ZXJzIHdpdGggSFRUUCA0MDQuXG4gICAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiBTbGFjayBhbnN3ZXJzIHdpdGggSFRUUCA0MDkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIFNsYWNrIGFuc3dlcnMgd2l0aCBhbnkgb3RoZXIgSFRUUCBlcnJvciBzdGF0dXMuXG4gICAgICovXG4gICAgYXN5bmMgY2FsbChtZXRob2QsIHBheWxvYWQpIHtcbiAgICAgICAgdGhpcy5yZXF1aXJlVG9rZW4oKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5jbGllbnQucG9zdChgLyR7bWV0aG9kfWAsIHBheWxvYWQpO1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICBpZiAoIWRhdGEgfHwgZGF0YS5vayAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBTbGFjayBBUEkgJHttZXRob2R9IGZhaWxlZDogJHtkYXRhPy5lcnJvciA/PyBcInVua25vd24gZXJyb3JcIn1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgaHR0cEVycm9yKFwiU2xhY2tcIiwgYEFQSSAke21ldGhvZH1gLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFBvc3RzIGEgbWVzc2FnZSB0byBhIFNsYWNrIGNoYW5uZWwgb3IgdGhyZWFkXG4gICAgICogQHN1bW1hcnkgU2VuZHMgdGhlIGlucHV0IHRvIFNsYWNrJ3MgYGNoYXQucG9zdE1lc3NhZ2VgIG1ldGhvZCBhbmQgcmV0dXJuc1xuICAgICAqIHRoZSBkZXN0aW5hdGlvbiBjaGFubmVsIGFuZCBtZXNzYWdlIHRpbWVzdGFtcDsgdXNlIHRoZSByZXR1cm5lZCBgdHNgIGFzXG4gICAgICogYHRocmVhZFRzYCB0byByZXBseSBpbiB0aGUgc2FtZSB0aHJlYWQuIFByb3ZpZGUgYGJsb2Nrc2AgZm9yIEJsb2NrIEtpdFxuICAgICAqIGxheW91dHMgKHdpdGggYHRleHRgIGFzIHRoZSBmYWxsYmFjayksIG9yIHBsYWluIHRleHQgYWxvbmUuXG4gICAgICogQHBhcmFtIHtTbGFja1Bvc3RNZXNzYWdlSW5wdXR9IGlucHV0IC0gVGhlIG1lc3NhZ2UgZGVzdGluYXRpb24gYW5kIGNvbnRlbnQuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8U2xhY2tQb3N0TWVzc2FnZVJlc3VsdD59IFRoZSBwb3N0ZWQgbWVzc2FnZSdzIGNoYW5uZWwsIHRpbWVzdGFtcCwgdGV4dCwgYW5kIHJhdyBwYXlsb2FkLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gdG9rZW4gaXMgY29uZmlndXJlZCBvciBTbGFjayByZWplY3RzIHRoZSBtZXNzYWdlLlxuICAgICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIGNoYW5uZWwgY2Fubm90IGJlIGZvdW5kIChIVFRQIDQwNCkuXG4gICAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiBTbGFjayBhbnN3ZXJzIHdpdGggSFRUUCA0MDkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIFNsYWNrIGFuc3dlcnMgd2l0aCBhbnkgb3RoZXIgSFRUUCBlcnJvciBzdGF0dXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0c1xuICAgICAqIGF3YWl0IHNsYWNrLnBvc3RNZXNzYWdlKHtcbiAgICAgKiAgIGNoYW5uZWw6IFwiI2RlcGxveXNcIixcbiAgICAgKiAgIHRleHQ6IFwiUmVsZWFzZSAxLjIuMCBpcyBsaXZlXCIsXG4gICAgICogICB1bmZ1cmxMaW5rczogZmFsc2UsXG4gICAgICogfSk7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgYXN5bmMgcG9zdE1lc3NhZ2UoaW5wdXQpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY2FsbChcImNoYXQucG9zdE1lc3NhZ2VcIiwge1xuICAgICAgICAgICAgY2hhbm5lbDogaW5wdXQuY2hhbm5lbCxcbiAgICAgICAgICAgIHRleHQ6IGlucHV0LnRleHQsXG4gICAgICAgICAgICBibG9ja3M6IGlucHV0LmJsb2NrcyxcbiAgICAgICAgICAgIHRocmVhZF90czogaW5wdXQudGhyZWFkVHMsXG4gICAgICAgICAgICByZXBseV9icm9hZGNhc3Q6IGlucHV0LnJlcGx5QnJvYWRjYXN0LFxuICAgICAgICAgICAgdW5mdXJsX2xpbmtzOiBpbnB1dC51bmZ1cmxMaW5rcyxcbiAgICAgICAgICAgIHVuZnVybF9tZWRpYTogaW5wdXQudW5mdXJsTWVkaWEsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2hhbm5lbDogZGF0YS5jaGFubmVsLFxuICAgICAgICAgICAgdHM6IGRhdGEudHMsXG4gICAgICAgICAgICB0ZXh0OiBkYXRhLnRleHQsXG4gICAgICAgICAgICBtZXNzYWdlOiBkYXRhLm1lc3NhZ2UsXG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0cyBTbGFjayBjb252ZXJzYXRpb25zIHdpdGggY3Vyc29yIHBhZ2luZ1xuICAgICAqIEBzdW1tYXJ5IENhbGxzIGBjb252ZXJzYXRpb25zLmxpc3RgIHdpdGggYSBwYWdlIHNpemUgKGRlZmF1bHQgYDEwMGApLFxuICAgICAqIGNvbnZlcnNhdGlvbiBgdHlwZXNgIChkZWZhdWx0IHB1YmxpYyBhbmQgcHJpdmF0ZSBjaGFubmVscyksIGFuZCBhcmNoaXZlZFxuICAgICAqIGV4Y2x1c2lvbiAoZGVmYXVsdCBgdHJ1ZWApLCByZXR1cm5pbmcgbm9ybWFsaXplZCBjaGFubmVscyBhbmQgdGhlXG4gICAgICogYG5leHRDdXJzb3JgIHRvIHBhc3MgYmFjayBhcyBgY3Vyc29yYCBmb3IgdGhlIG5leHQgcGFnZS5cbiAgICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnNdIC0gUGFnaW5nIGFuZCBmaWx0ZXIgb3B0aW9ucy5cbiAgICAgKiBAcGFyYW0ge251bWJlcn0gW29wdGlvbnMubGltaXRdIC0gUGFnZSBzaXplOyBkZWZhdWx0cyB0byBgMTAwYC5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMuY3Vyc29yXSAtIFRoZSBgbmV4dEN1cnNvcmAgZnJvbSB0aGUgcHJldmlvdXMgcGFnZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW29wdGlvbnMudHlwZXNdIC0gQ29tbWEtc2VwYXJhdGVkIGNvbnZlcnNhdGlvbiB0eXBlcyAoZS5nLiBgXCJwdWJsaWNfY2hhbm5lbCxwcml2YXRlX2NoYW5uZWxcImApOyBkZWZhdWx0cyB0byBgXCJwdWJsaWNfY2hhbm5lbCxwcml2YXRlX2NoYW5uZWxcImAuXG4gICAgICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5leGNsdWRlQXJjaGl2ZWRdIC0gV2hldGhlciBhcmNoaXZlZCBjaGFubmVscyBhcmUgZXhjbHVkZWQ7IGRlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7Y2hhbm5lbHM6IFNsYWNrQ2hhbm5lbFtdLCBuZXh0Q3Vyc29yPzogc3RyaW5nfT59IFRoZSBwYWdlIG9mIGNoYW5uZWxzIGFuZCB0aGUgY3Vyc29yIGZvciB0aGUgbmV4dCBwYWdlLCB3aGVuIG1vcmUgcGFnZXMgZXhpc3QuXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBubyB0b2tlbiBpcyBjb25maWd1cmVkIG9yIFNsYWNrIHJlamVjdHMgdGhlIGNhbGwuXG4gICAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiBTbGFjayBhbnN3ZXJzIHdpdGggSFRUUCA0MDQuXG4gICAgICogQHRocm93cyB7Q29uZmxpY3RFcnJvcn0gV2hlbiBTbGFjayBhbnN3ZXJzIHdpdGggSFRUUCA0MDkuXG4gICAgICogQHRocm93cyB7QmFkUmVxdWVzdEVycm9yfSBXaGVuIFNsYWNrIGFuc3dlcnMgd2l0aCBhbnkgb3RoZXIgSFRUUCBlcnJvciBzdGF0dXMuXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0c1xuICAgICAqIGxldCBjdXJzb3I6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgKiBkbyB7XG4gICAgICogICBjb25zdCBwYWdlID0gYXdhaXQgc2xhY2subGlzdENvbnZlcnNhdGlvbnMoeyBsaW1pdDogMjAwLCBjdXJzb3IgfSk7XG4gICAgICogICBjb25zb2xlLmxvZyhwYWdlLmNoYW5uZWxzLm1hcCgoY2hhbm5lbCkgPT4gY2hhbm5lbC5uYW1lKSk7XG4gICAgICogICBjdXJzb3IgPSBwYWdlLm5leHRDdXJzb3I7XG4gICAgICogfSB3aGlsZSAoY3Vyc29yKTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBhc3luYyBsaXN0Q29udmVyc2F0aW9ucyhvcHRpb25zID0ge30pIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY2FsbChcImNvbnZlcnNhdGlvbnMubGlzdFwiLCB7XG4gICAgICAgICAgICBsaW1pdDogb3B0aW9ucy5saW1pdCA/PyAxMDAsXG4gICAgICAgICAgICBjdXJzb3I6IG9wdGlvbnMuY3Vyc29yLFxuICAgICAgICAgICAgdHlwZXM6IG9wdGlvbnMudHlwZXMgPz8gXCJwdWJsaWNfY2hhbm5lbCxwcml2YXRlX2NoYW5uZWxcIixcbiAgICAgICAgICAgIGV4Y2x1ZGVfYXJjaGl2ZWQ6IG9wdGlvbnMuZXhjbHVkZUFyY2hpdmVkID8/IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2hhbm5lbHM6IChkYXRhLmNoYW5uZWxzID8/IFtdKS5tYXAoKGNoYW5uZWwpID0+ICh7XG4gICAgICAgICAgICAgICAgaWQ6IFN0cmluZyhjaGFubmVsW1wiaWRcIl0gPz8gXCJcIiksXG4gICAgICAgICAgICAgICAgbmFtZTogZW52U3RyaW5nKGNoYW5uZWxbXCJuYW1lXCJdKSxcbiAgICAgICAgICAgICAgICBpc1ByaXZhdGU6IGNoYW5uZWxbXCJpc19wcml2YXRlXCJdID09PSB0cnVlLFxuICAgICAgICAgICAgICAgIGlzQXJjaGl2ZWQ6IGNoYW5uZWxbXCJpc19hcmNoaXZlZFwiXSA9PT0gdHJ1ZSxcbiAgICAgICAgICAgICAgICBtZW1iZXJDb3VudDogdHlwZW9mIGNoYW5uZWxbXCJudW1fbWVtYmVyc1wiXSA9PT0gXCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICA/IGNoYW5uZWxbXCJudW1fbWVtYmVyc1wiXVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB0b3BpYzogY2hhbm5lbFtcInRvcGljXCJdPy52YWx1ZSxcbiAgICAgICAgICAgICAgICBwdXJwb3NlOiBjaGFubmVsW1wicHVycG9zZVwiXT8udmFsdWUsXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBuZXh0Q3Vyc29yOiBlbnZTdHJpbmcoZGF0YS5yZXNwb25zZV9tZXRhZGF0YT8ubmV4dF9jdXJzb3IpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRmV0Y2hlcyBhIHNpbmdsZSBTbGFjayBjb252ZXJzYXRpb25cbiAgICAgKiBAc3VtbWFyeSBDYWxscyBgY29udmVyc2F0aW9ucy5pbmZvYCBmb3IgdGhlIGdpdmVuIGNoYW5uZWwgSUQgKG9yXG4gICAgICogYCNuYW1lYCkgYW5kIHJldHVybnMgdGhlIG5vcm1hbGl6ZWQgY2hhbm5lbCBkZXNjcmlwdG9yLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjaGFubmVsIC0gVGhlIGNoYW5uZWwgSUQgb3IgYCNuYW1lYCB0byBsb29rIHVwLlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPFNsYWNrQ2hhbm5lbD59IFRoZSBub3JtYWxpemVkIGNvbnZlcnNhdGlvbiBkZXNjcmlwdG9yLlxuICAgICAqIEB0aHJvd3Mge0ludGVybmFsRXJyb3J9IFdoZW4gbm8gdG9rZW4gaXMgY29uZmlndXJlZCBvciBTbGFjayByZWplY3RzIHRoZSBjYWxsLlxuICAgICAqIEB0aHJvd3Mge05vdEZvdW5kRXJyb3J9IFdoZW4gdGhlIGNoYW5uZWwgZG9lcyBub3QgZXhpc3QgKEhUVFAgNDA0KS5cbiAgICAgKiBAdGhyb3dzIHtDb25mbGljdEVycm9yfSBXaGVuIFNsYWNrIGFuc3dlcnMgd2l0aCBIVFRQIDQwOS5cbiAgICAgKiBAdGhyb3dzIHtCYWRSZXF1ZXN0RXJyb3J9IFdoZW4gU2xhY2sgYW5zd2VycyB3aXRoIGFueSBvdGhlciBIVFRQIGVycm9yIHN0YXR1cy5cbiAgICAgKi9cbiAgICBhc3luYyBnZXRDb252ZXJzYXRpb24oY2hhbm5lbCkge1xuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5jYWxsKFwiY29udmVyc2F0aW9ucy5pbmZvXCIsIHsgY2hhbm5lbCB9KTtcbiAgICAgICAgY29uc3QgZm91bmQgPSBkYXRhLmNoYW5uZWwgPz8ge307XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogU3RyaW5nKGZvdW5kW1wiaWRcIl0gPz8gY2hhbm5lbCksXG4gICAgICAgICAgICBuYW1lOiBlbnZTdHJpbmcoZm91bmRbXCJuYW1lXCJdKSxcbiAgICAgICAgICAgIGlzUHJpdmF0ZTogZm91bmRbXCJpc19wcml2YXRlXCJdID09PSB0cnVlLFxuICAgICAgICAgICAgaXNBcmNoaXZlZDogZm91bmRbXCJpc19hcmNoaXZlZFwiXSA9PT0gdHJ1ZSxcbiAgICAgICAgICAgIG1lbWJlckNvdW50OiB0eXBlb2YgZm91bmRbXCJudW1fbWVtYmVyc1wiXSA9PT0gXCJudW1iZXJcIlxuICAgICAgICAgICAgICAgID8gZm91bmRbXCJudW1fbWVtYmVyc1wiXVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdG9waWM6IGZvdW5kW1widG9waWNcIl0/LnZhbHVlLFxuICAgICAgICAgICAgcHVycG9zZTogZm91bmRbXCJwdXJwb3NlXCJdPy52YWx1ZSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEZldGNoZXMgYSBTbGFjayB1c2VyIHByb2ZpbGVcbiAgICAgKiBAc3VtbWFyeSBDYWxscyBgdXNlcnMuaW5mb2AgZm9yIHRoZSBnaXZlbiB1c2VyIElEIGFuZCByZXR1cm5zIHRoZSByYXdcbiAgICAgKiB1c2VyIHBheWxvYWQsIG9yIGB1bmRlZmluZWRgIHdoZW4gU2xhY2sgcmVwb3J0cyBubyB1c2VyLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB1c2VySWQgLSBUaGUgU2xhY2sgdXNlciBJRCB0byBsb29rIHVwIChlLmcuIGBcIlUxMjM0NTY3OFwiYCkuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ+fSBUaGUgcmF3IHVzZXIgcGF5bG9hZCwgb3IgYHVuZGVmaW5lZGAgd2hlbiB0aGUgdXNlciBpcyBub3QgZm91bmQuXG4gICAgICogQHRocm93cyB7SW50ZXJuYWxFcnJvcn0gV2hlbiBubyB0b2tlbiBpcyBjb25maWd1cmVkIG9yIFNsYWNrIHJlamVjdHMgdGhlIGNhbGwuXG4gICAgICogQHRocm93cyB7Tm90Rm91bmRFcnJvcn0gV2hlbiB0aGUgdXNlciBkb2VzIG5vdCBleGlzdCAoSFRUUCA0MDQpLlxuICAgICAqIEB0aHJvd3Mge0NvbmZsaWN0RXJyb3J9IFdoZW4gU2xhY2sgYW5zd2VycyB3aXRoIEhUVFAgNDA5LlxuICAgICAqIEB0aHJvd3Mge0JhZFJlcXVlc3RFcnJvcn0gV2hlbiBTbGFjayBhbnN3ZXJzIHdpdGggYW55IG90aGVyIEhUVFAgZXJyb3Igc3RhdHVzLlxuICAgICAqL1xuICAgIGFzeW5jIGdldFVzZXIodXNlcklkKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNhbGwoXCJ1c2Vycy5pbmZvXCIsIHsgdXNlcjogdXNlcklkIH0pO1xuICAgICAgICByZXR1cm4gZGF0YS51c2VyO1xuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVUyeGhZMnRUWlhKMmFXTmxMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dkxpNHZjM0pqTDJOdmJXMXpMM05zWVdOckwxTnNZV05yVTJWeWRtbGpaUzUwY3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdPenM3T3pzN1IwRlJSenRCUVVOSUxFOUJRVThzUlVGQlJTeGhRVUZoTEVWQlFVVXNUVUZCVFN4NVFrRkJlVUlzUTBGQlF6dEJRVU40UkN4UFFVRlBMRVZCUVVVc1owSkJRV2RDTEVWQlFVVXNORUpCUVhWQ08wRkJRMnhFTEU5QlFVOHNSVUZCUlN4VFFVRlRMRVZCUVVVc1UwRkJVeXhGUVVGRkxESkRRVUZ6UXp0QlFVTnlSU3hQUVVGUExFVkJRMHdzWTBGQll5eEZRVVZrTEZOQlFWTXNSMEZEVml4eFEwRkJNRUk3UVVFclJqTkNPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wZEJNa05ITzBGQlEwZ3NUVUZCVFN4UFFVRlBMRmxCUVdFc1UwRkJVU3hqUVVGclF6dEpRVUZ3UlRzN1VVRkRSVHM3VjBGRlJ6dFJRVU5uUWl4blFrRkJWeXhIUVVGSExFOUJRVThzUTBGQlF6dEpRWGRQTTBNc1EwRkJRenRKUVhSUFF6czdPenRQUVVsSE8wbEJRMDhzWTBGQll6dFJRVU4wUWl4UFFVRlBMSFZDUVVGMVFpeERRVUZETzBsQlEycERMRU5CUVVNN1NVRkZSRHM3T3pzN08wOUJUVWM3U1VGRFR5eFhRVUZYTEVOQlFVTXNUVUZCTUVJN1VVRkRPVU1zVDBGQlR5eE5RVUZOTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxHRkJRV0VzUlVGQlJTeFZRVUZWTEUxQlFVMHNRMEZCUXl4TFFVRkxMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdTVUZEZWtVc1EwRkJRenRKUVVWRU96czdPenM3VDBGTlJ6dEpRVU5QTEhGQ1FVRnhRanRSUVVNM1FpeE5RVUZOTEVkQlFVY3NSMEZCUnl4blFrRkJaMElzUTBGQlF5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRPMUZCUTNwRExFMUJRVTBzUzBGQlN5eEhRVUZITEZOQlFWTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGNFTXNTVUZCU1N4RFFVRkRMRXRCUVVzN1dVRkJSU3hQUVVGUExGTkJRVk1zUTBGQlF6dFJRVU0zUWl4UFFVRlBPMWxCUTB3c1MwRkJTenRaUVVOTUxFOUJRVThzUlVGQlJTeFRRVUZUTEVOQlFVTXNSMEZCUnl4RFFVRkRMRTlCUVU4c1EwRkJRenRaUVVNdlFpeFBRVUZQTEVWQlFVVXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRVU03VTBGRGFFTXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPenM3T3pzN1QwRmpSenRKUVVOUExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlEyeENMRTFCUVdNc1JVRkRaQ3hQUVVGblF6dFJRVVZvUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hGUVVGRkxFTkJRVU03VVVGRGNFSXNTVUZCU1N4RFFVRkRPMWxCUTBnc1RVRkJUU3hSUVVGUkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJTU3hKUVVGSkxFMUJRVTBzUlVGQlJTeEZRVUZGTEU5QlFVOHNRMEZCUXl4RFFVRkRPMWxCUTJ4RkxFMUJRVTBzU1VGQlNTeEhRVUZITEZGQlFWRXNRMEZCUXl4SlFVRkpMRU5CUVVNN1dVRkRNMElzU1VGQlNTeERRVUZETEVsQlFVa3NTVUZCU1N4SlFVRkpMRU5CUVVNc1JVRkJSU3hMUVVGTExFbEJRVWtzUlVGQlJTeERRVUZETzJkQ1FVTTVRaXhOUVVGTkxFbEJRVWtzWVVGQllTeERRVU55UWl4aFFVRmhMRTFCUVUwc1dVRkJXU3hKUVVGSkxFVkJRVVVzUzBGQlN5eEpRVUZKTEdWQlFXVXNSVUZCUlN4RFFVTm9SU3hEUVVGRE8xbEJRMG9zUTBGQlF6dFpRVU5FTEU5QlFVOHNTVUZCU1N4RFFVRkRPMUZCUTJRc1EwRkJRenRSUVVGRExFOUJRVThzUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZEWml4TlFVRk5MRk5CUVZNc1EwRkJReXhQUVVGUExFVkJRVVVzVDBGQlR5eE5RVUZOTEVWQlFVVXNSVUZCUlN4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVOdVJDeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVkVPenM3T3pzN096czdPenM3T3pzN096czdPenRQUVc5Q1J6dEpRVU5JTEV0QlFVc3NRMEZCUXl4WFFVRlhMRU5CUTJZc1MwRkJORUk3VVVGRk5VSXNUVUZCVFN4SlFVRkpMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVU14UWl4clFrRkJhMElzUlVGRGJFSTdXVUZEUlN4UFFVRlBMRVZCUVVVc1MwRkJTeXhEUVVGRExFOUJRVTg3V1VGRGRFSXNTVUZCU1N4RlFVRkZMRXRCUVVzc1EwRkJReXhKUVVGSk8xbEJRMmhDTEUxQlFVMHNSVUZCUlN4TFFVRkxMRU5CUVVNc1RVRkJUVHRaUVVOd1FpeFRRVUZUTEVWQlFVVXNTMEZCU3l4RFFVRkRMRkZCUVZFN1dVRkRla0lzWlVGQlpTeEZRVUZGTEV0QlFVc3NRMEZCUXl4alFVRmpPMWxCUTNKRExGbEJRVmtzUlVGQlJTeExRVUZMTEVOQlFVTXNWMEZCVnp0WlFVTXZRaXhaUVVGWkxFVkJRVVVzUzBGQlN5eERRVUZETEZkQlFWYzdVMEZEYUVNc1EwRkRSaXhEUVVGRE8xRkJRMFlzVDBGQlR6dFpRVU5NTEU5QlFVOHNSVUZCUlN4SlFVRkpMRU5CUVVNc1QwRkJUenRaUVVOeVFpeEZRVUZGTEVWQlFVVXNTVUZCU1N4RFFVRkRMRVZCUVVVN1dVRkRXQ3hKUVVGSkxFVkJRVVVzU1VGQlNTeERRVUZETEVsQlFVazdXVUZEWml4UFFVRlBMRVZCUVVVc1NVRkJTU3hEUVVGRExFOUJRVTg3VTBGRGRFSXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096dFBRWGxDUnp0SlFVTklMRXRCUVVzc1EwRkJReXhwUWtGQmFVSXNRMEZEY2tJc1ZVRkxTU3hGUVVGRk8xRkJTMDRzVFVGQlRTeEpRVUZKTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVzeFFpeHZRa0ZCYjBJc1JVRkJSVHRaUVVOMFFpeExRVUZMTEVWQlFVVXNUMEZCVHl4RFFVRkRMRXRCUVVzc1NVRkJTU3hIUVVGSE8xbEJRek5DTEUxQlFVMHNSVUZCUlN4UFFVRlBMRU5CUVVNc1RVRkJUVHRaUVVOMFFpeExRVUZMTEVWQlFVVXNUMEZCVHl4RFFVRkRMRXRCUVVzc1NVRkJTU3huUTBGQlowTTdXVUZEZUVRc1owSkJRV2RDTEVWQlFVVXNUMEZCVHl4RFFVRkRMR1ZCUVdVc1NVRkJTU3hKUVVGSk8xTkJRMnhFTEVOQlFVTXNRMEZCUXp0UlFVTklMRTlCUVU4N1dVRkRUQ3hSUVVGUkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETEU5QlFVOHNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRGFFUXNSVUZCUlN4RlFVRkZMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRPMmRDUVVNdlFpeEpRVUZKTEVWQlFVVXNVMEZCVXl4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dG5Ra0ZEYUVNc1UwRkJVeXhGUVVGRkxFOUJRVThzUTBGQlF5eFpRVUZaTEVOQlFVTXNTMEZCU3l4SlFVRkpPMmRDUVVONlF5eFZRVUZWTEVWQlFVVXNUMEZCVHl4RFFVRkRMR0ZCUVdFc1EwRkJReXhMUVVGTExFbEJRVWs3WjBKQlF6TkRMRmRCUVZjc1JVRkRWQ3hQUVVGUExFOUJRVThzUTBGQlF5eGhRVUZoTEVOQlFVTXNTMEZCU3l4UlFVRlJPMjlDUVVONFF5eERRVUZETEVOQlFVVXNUMEZCVHl4RFFVRkRMR0ZCUVdFc1EwRkJXVHR2UWtGRGNFTXNRMEZCUXl4RFFVRkRMRk5CUVZNN1owSkJRMllzUzBGQlN5eEZRVUZITEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVc5RExFVkJRVVVzUzBGQlN6dG5Ra0ZEYkVVc1QwRkJUeXhGUVVGSExFOUJRVThzUTBGQlF5eFRRVUZUTEVOQlFXOURMRVZCUVVVc1MwRkJTenRoUVVOMlJTeERRVUZETEVOQlFVTTdXVUZEU0N4VlFVRlZMRVZCUVVVc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1JVRkJSU3hYUVVGWExFTkJRVU03VTBGRE0wUXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPenRQUVZWSE8wbEJRMGdzUzBGQlN5eERRVUZETEdWQlFXVXNRMEZCUXl4UFFVRmxPMUZCUTI1RExFMUJRVTBzU1VGQlNTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkZNVUlzYjBKQlFXOUNMRVZCUVVVc1JVRkJSU3hQUVVGUExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzSkRMRTFCUVUwc1MwRkJTeXhIUVVGSExFbEJRVWtzUTBGQlF5eFBRVUZQTEVsQlFVa3NSVUZCUlN4RFFVRkRPMUZCUTJwRExFOUJRVTg3V1VGRFRDeEZRVUZGTEVWQlFVVXNUVUZCVFN4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTTdXVUZEYkVNc1NVRkJTU3hGUVVGRkxGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRPVUlzVTBGQlV5eEZRVUZGTEV0QlFVc3NRMEZCUXl4WlFVRlpMRU5CUVVNc1MwRkJTeXhKUVVGSk8xbEJRM1pETEZWQlFWVXNSVUZCUlN4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRExFdEJRVXNzU1VGQlNUdFpRVU42UXl4WFFVRlhMRVZCUTFRc1QwRkJUeXhMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETEV0QlFVc3NVVUZCVVR0blFrRkRkRU1zUTBGQlF5eERRVUZGTEV0QlFVc3NRMEZCUXl4aFFVRmhMRU5CUVZrN1owSkJRMnhETEVOQlFVTXNRMEZCUXl4VFFVRlRPMWxCUTJZc1MwRkJTeXhGUVVGSExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFXOURMRVZCUVVVc1MwRkJTenRaUVVOb1JTeFBRVUZQTEVWQlFVY3NTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJiME1zUlVGQlJTeExRVUZMTzFOQlEzSkZMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVE3T3pzN096czdPenM3VDBGVlJ6dEpRVU5JTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUTFnc1RVRkJZenRSUVVWa0xFMUJRVTBzU1VGQlNTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkZNVUlzV1VGQldTeEZRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTFCUVUwc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGJFTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRE8wbEJRMjVDTEVOQlFVTTdRMEZEUmlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYklpOHFLbHh1SUNvZ1FHMXZaSFZzWlNCcGJuUmxaM0poZEdsdmJuTXZZMjl0YlhNdmMyeGhZMnN2YzJWeWRtbGpaVnh1SUNvZ1FITjFiVzFoY25rZ1UyeGhZMnNnVjJWaUlFRlFTU0JwYm5SbFozSmhkR2x2YmlCelpYSjJhV05sSUdadmNpQndiM04wYVc1bklHMWxjM05oWjJWeklHRnVaQ0J5WldGa2FXNW5JR052Ym5abGNuTmhkR2x2Ym5NZ1lXNWtJSFZ6WlhKekxseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFVjRjRzl6WlhNZ2RHaGxJRk5zWVdOcklGZGxZaUJCVUVrZ0tHQmphR0YwTG5CdmMzUk5aWE56WVdkbFlDd2dZR052Ym5abGNuTmhkR2x2Ym5NdUttQXNJR0IxYzJWeWN5NXBibVp2WUNsY2JpQXFJR0Z6SUdGdUlIVnVaR1ZqYjNKaGRHVmtJR05zYVdWdWRDMWlZWE5sWkNCelpYSjJhV05sSUdKMWFXeDBJRzl1SUh0QWJHbHVheUJJZEhSd1FYQnBVMlZ5ZG1salpYMHVYRzRnS2lCRGIyNW1hV2QxY21GMGFXOXVJR052YldWeklHWnliMjBnWVc0Z1pYaHdiR2xqYVhRZ1lGTnNZV05yVTJWeWRtbGpaVU52Ym1acFoyQWdiM0lnZEdobElHQmpiMjF0Y3k1emJHRmphMkJjYmlBcUlHVnVkbWx5YjI1dFpXNTBJSE5zYVdObE95QmxkbVZ5ZVNCeVpYTndiMjV6WlNCcGN5QnViM0p0WVd4cGVtVmtJR0Z1WkNCbVlXbHNkWEpsY3lCaGNtVWdiV0Z3Y0dWa0lIUnZJR1JsWTJGbVhHNGdLaUJsY25KdmNuTWdkbWxoSUh0QWJHbHVheUJvZEhSd1JYSnliM0o5TGx4dUlDb3ZYRzVwYlhCdmNuUWdleUJKYm5SbGNtNWhiRVZ5Y205eUlIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtZaTFrWldOdmNtRjBiM0p6WENJN1hHNXBiWEJ2Y25RZ2V5QkRiMjF0YzBWdWRtbHliMjV0Wlc1MElIMGdabkp2YlNCY0lpNHVMMlZ1ZG1seWIyNXRaVzUwWENJN1hHNXBiWEJ2Y25RZ2V5QmxiblpPZFcxaVpYSXNJR1Z1ZGxOMGNtbHVaeUI5SUdaeWIyMGdYQ0l1TGk4dUxpOXphR0Z5WldRdlpXNTJhWEp2Ym0xbGJuUldZV3gxWlZ3aU8xeHVhVzF3YjNKMElIdGNiaUFnU0hSMGNFRndhVk5sY25acFkyVXNYRzRnSUhSNWNHVWdTSFIwY0VGd2FWTmxjblpwWTJWRGIyNW1hV2NzWEc0Z0lHaDBkSEJGY25KdmNpeGNibjBnWm5KdmJTQmNJaTR1THk0dUwzTm9ZWEpsWkM5b2RIUndYQ0k3WEc1Y2JpOHFLbHh1SUNvZ1FHUmxjMk55YVhCMGFXOXVJRU52Ym1acFozVnlZWFJwYjI0Z1ptOXlJSFJvWlNCVGJHRmpheUJ6WlhKMmFXTmxYRzRnS2lCQWMzVnRiV0Z5ZVNCRmVIUmxibVJ6SUh0QWJHbHVheUJJZEhSd1FYQnBVMlZ5ZG1salpVTnZibVpwWjMwZ2QybDBhQ0IwYUdVZ1UyeGhZMnNnUW05MElGVnpaWElnVDBGMWRHaGNiaUFxSUhSdmEyVnVJSFZ6WldRZ1lYTWdZU0JpWldGeVpYSWdkRzlyWlc0dUlGZG9aVzRnYjIxcGRIUmxaQ3dnZEdobElHQmpiMjF0Y3k1emJHRmphMkFnWlc1MmFYSnZibTFsYm5SY2JpQXFJSE5zYVdObElITjFjSEJzYVdWeklIUm9aU0IwYjJ0bGJpQW9ZVzVrSUc5d2RHbHZibUZzSUdCaVlYTmxWWEpzWUM5Z2RHbHRaVzkxZEdBcExseHVJQ29nUUdOaGRHVm5iM0o1SUVOdmJXMXpYRzRnS2lCQWJXVnRZbVZ5VDJZZ2JXOWtkV3hsT21sdWRHVm5jbUYwYVc5dWN5OWpiMjF0Y3k5emJHRmpheTl6WlhKMmFXTmxYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1UyeGhZMnRUWlhKMmFXTmxRMjl1Wm1sbklHVjRkR1Z1WkhNZ1NIUjBjRUZ3YVZObGNuWnBZMlZEYjI1bWFXY2dlMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRk5zWVdOcklFSnZkQ0JWYzJWeUlFOUJkWFJvSUhSdmEyVnVYRzRnSUNBcUlFQnpkVzF0WVhKNUlGTmxiblFnWVhNZ1lFRjFkR2h2Y21sNllYUnBiMjQ2SUVKbFlYSmxjaUE4ZEc5clpXNCtZQ0IzYVhSb0lHVjJaWEo1SUVGUVNTQmpZV3hzTGx4dUlDQWdLaTljYmlBZ2RHOXJaVzQvT2lCemRISnBibWM3WEc1OVhHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUVsdWNIVjBJR1p2Y2lCd2IzTjBhVzVuSUdFZ2JXVnpjMkZuWlNCMGJ5QmhJRk5zWVdOcklHTm9ZVzV1Wld3Z2IzSWdkR2h5WldGa1hHNGdLaUJBYzNWdGJXRnllU0JEWVhKeWFXVnpJSFJvWlNCa1pYTjBhVzVoZEdsdmJpQmdZMmhoYm01bGJHQWdLRWxFSUc5eUlHQWpZMmhoYm01bGJHQXZZRUIxYzJWeVlDQnpkSGxzWlZ4dUlDb2dibUZ0WlNrc0lIUm9aU0J3YkdGcGJpMTBaWGgwSUdaaGJHeGlZV05ySUdCMFpYaDBZQ3dnYjNCMGFXOXVZV3dnUW14dlkyc2dTMmwwSUdCaWJHOWphM05nTENCaGJtUWdkR2hsWEc0Z0tpQndiM04wYVc1bklHOXdkR2x2Ym5NZ0tIUm9jbVZoWkNCeVpYQnNlU3dnWW5KdllXUmpZWE4wSUhKbGNHeDVMQ0IxYm1aMWNteHBibWNwTGx4dUlDb2dRR05oZEdWbmIzSjVJRU52YlcxelhHNGdLaUJBYldWdFltVnlUMllnYlc5a2RXeGxPbWx1ZEdWbmNtRjBhVzl1Y3k5amIyMXRjeTl6YkdGamF5OXpaWEoyYVdObFhHNGdLaTljYm1WNGNHOXlkQ0JwYm5SbGNtWmhZMlVnVTJ4aFkydFFiM04wVFdWemMyRm5aVWx1Y0hWMElIdGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkVaWE4wYVc1aGRHbHZiaUJqYUdGdWJtVnNJRWxFTENCZ0kyTm9ZVzV1Wld4Z0xDQnZjaUJnUUhWelpYSmdJRzFsYm5ScGIyNWNiaUFnSUNvdlhHNGdJR05vWVc1dVpXdzZJSE4wY21sdVp6dGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQlFiR0ZwYmkxMFpYaDBJRzFsYzNOaFoyVWdZbTlrZVNBb1lXeHpieUIwYUdVZ1ptRnNiR0poWTJzZ1ptOXlJR0JpYkc5amEzTmdLVnh1SUNBZ0tpOWNiaUFnZEdWNGREb2djM1J5YVc1bk8xeHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFOXdkR2x2Ym1Gc0lFSnNiMk5ySUV0cGRDQnNZWGx2ZFhRZ1lteHZZMnR6SUhKbGNHeGhZMmx1WnlCd2JHRnBiaUIwWlhoMFhHNGdJQ0FxTDF4dUlDQmliRzlqYTNNL09pQjFibXR1YjNkdVcxMDdYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdUV1Z6YzJGblpTQjBhVzFsYzNSaGJYQWdkRzhnY21Wd2JIa2dhVzR0ZEdoeVpXRmtJSFJ2WEc0Z0lDQXFMMXh1SUNCMGFISmxZV1JVY3o4NklITjBjbWx1Wnp0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCWGFHVjBhR1Z5SUhSdklHRnNjMjhnYm05MGFXWjVJSFJvWlNCamFHRnVibVZzSUhkb1pXNGdjbVZ3YkhscGJtY2dhVzRnWVNCMGFISmxZV1JjYmlBZ0lDb3ZYRzRnSUhKbGNHeDVRbkp2WVdSallYTjBQem9nWW05dmJHVmhianRjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJYYUdWMGFHVnlJR3hwYm1zZ2NISmxkbWxsZDNNZ1lYSmxJR1Z1WVdKc1pXUmNiaUFnSUNvdlhHNGdJSFZ1Wm5WeWJFeHBibXR6UHpvZ1ltOXZiR1ZoYmp0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCWGFHVjBhR1Z5SUcxbFpHbGhJSFZ1Wm5WeWJITWdZWEpsSUdWdVlXSnNaV1JjYmlBZ0lDb3ZYRzRnSUhWdVpuVnliRTFsWkdsaFB6b2dZbTl2YkdWaGJqdGNibjFjYmx4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdVbVZ6ZFd4MElHOW1JR0VnY0c5emRHVmtJRk5zWVdOcklHMWxjM05oWjJWY2JpQXFJRUJ6ZFcxdFlYSjVJRVZqYUc5bGN5QjBhR1VnWkdWemRHbHVZWFJwYjI0Z1lHTm9ZVzV1Wld4Z0lHRnVaQ0IwYUdVZ2JXVnpjMkZuWlNCMGFXMWxjM1JoYlhBZ1lIUnpZRnh1SUNvZ0tIVnpZV0pzWlNCaGN5QmdkR2h5WldGa1ZITmdJR1p2Y2lCbWIyeHNiM2N0ZFhBZ2NtVndiR2xsY3lrc0lIZHBkR2dnZEdobElIQnZjM1JsWkNCZ2RHVjRkR0FnWVc1a0lIUm9aVnh1SUNvZ2NtRjNJR0J0WlhOellXZGxZQ0J3WVhsc2IyRmtJSGRvWlc0Z1UyeGhZMnNnY21WMGRYSnVjeUIwYUdWdExseHVJQ29nUUdOaGRHVm5iM0o1SUVOdmJXMXpYRzRnS2lCQWJXVnRZbVZ5VDJZZ2JXOWtkV3hsT21sdWRHVm5jbUYwYVc5dWN5OWpiMjF0Y3k5emJHRmpheTl6WlhKMmFXTmxYRzRnS2k5Y2JtVjRjRzl5ZENCcGJuUmxjbVpoWTJVZ1UyeGhZMnRRYjNOMFRXVnpjMkZuWlZKbGMzVnNkQ0I3WEc0Z0lHTm9ZVzV1Wld3NklITjBjbWx1Wnp0Y2JpQWdkSE02SUhOMGNtbHVaenRjYmlBZ2RHVjRkRDg2SUhOMGNtbHVaenRjYmlBZ2JXVnpjMkZuWlQ4NklIVnVhMjV2ZDI0N1hHNTlYRzVjYmk4cUtseHVJQ29nUUdSbGMyTnlhWEIwYVc5dUlFNXZjbTFoYkdsNlpXUWdVMnhoWTJzZ1kyOXVkbVZ5YzJGMGFXOXVJQ2hqYUdGdWJtVnNLU0JrWlhOamNtbHdkRzl5WEc0Z0tpQkFjM1Z0YldGeWVTQk5ZWEJ6SUhSb1pTQnlZWGNnWUdOdmJuWmxjbk5oZEdsdmJuTXVLbUFnY0dGNWJHOWhaQ0J2Ym5SdklHTmhiV1ZzUTJGelpTQm1hV1ZzWkhNNlhHNGdLaUJwWkdWdWRHbDBlU0FvWUdsa1lDd2dZRzVoYldWZ0tTd2dkbWx6YVdKcGJHbDBlU0FvWUdselVISnBkbUYwWldBc0lHQnBjMEZ5WTJocGRtVmtZQ2tzWEc0Z0tpQmdiV1Z0WW1WeVEyOTFiblJnTENCaGJtUWdkRzl3YVdNdmNIVnljRzl6WlNCemRXMXRZWEpwWlhNdVhHNGdLaUJBWTJGMFpXZHZjbmtnUTI5dGJYTmNiaUFxSUVCdFpXMWlaWEpQWmlCdGIyUjFiR1U2YVc1MFpXZHlZWFJwYjI1ekwyTnZiVzF6TDNOc1lXTnJMM05sY25acFkyVmNiaUFxTDF4dVpYaHdiM0owSUdsdWRHVnlabUZqWlNCVGJHRmphME5vWVc1dVpXd2dlMXh1SUNCcFpEb2djM1J5YVc1bk8xeHVJQ0J1WVcxbFB6b2djM1J5YVc1bk8xeHVJQ0JwYzFCeWFYWmhkR1UvT2lCaWIyOXNaV0Z1TzF4dUlDQnBjMEZ5WTJocGRtVmtQem9nWW05dmJHVmhianRjYmlBZ2JXVnRZbVZ5UTI5MWJuUS9PaUJ1ZFcxaVpYSTdYRzRnSUhSdmNHbGpQem9nYzNSeWFXNW5PMXh1SUNCd2RYSndiM05sUHpvZ2MzUnlhVzVuTzF4dWZWeHVYRzVwYm5SbGNtWmhZMlVnVTJ4aFkydEJjR2xTWlhOd2IyNXpaU0I3WEc0Z0lHOXJPaUJpYjI5c1pXRnVPMXh1SUNCbGNuSnZjajg2SUhOMGNtbHVaenRjYm4xY2JseHVMeW9xWEc0Z0tpQkFaR1Z6WTNKcGNIUnBiMjRnVTJ4aFkyc2dWMlZpSUVGUVNTQnBiblJsWjNKaGRHbHZiaUJ6WlhKMmFXTmxYRzRnS2lCQWMzVnRiV0Z5ZVNCQmJpQjFibVJsWTI5eVlYUmxaQ0JJVkZSUUlITmxjblpwWTJVZ1ptOXlJSEJ2YzNScGJtY2diV1Z6YzJGblpYTXNYRzRnS2lCc2FYTjBhVzVuSUdOdmJuWmxjbk5oZEdsdmJuTWdkMmwwYUNCamRYSnpiM0lnY0dGbmFXNW5MQ0JtWlhSamFHbHVaeUJoSUhOcGJtZHNaU0JqYjI1MlpYSnpZWFJwYjI0c1hHNGdLaUJoYm1RZ2JHOXZhMmx1WnlCMWNDQjFjMlZ5Y3k0Z1ZHaGxJRk5zWVdOcklFSnZkQ0IwYjJ0bGJpQnBjeUJ6Wlc1MElHRnpJR0VnWW1WaGNtVnlJSFJ2YTJWdUxDQmxkbVZ5ZVZ4dUlDb2dZMkZzYkNCeVpYRjFhWEpsY3lCcGRDQW9ZSEpsY1hWcGNtVlViMnRsYmlncFlDa3NJRzV2YmkxZ2IydGdJRk5zWVdOcklISmxjM0J2Ym5ObGN5QnlZV2x6WlZ4dUlDb2dZRWx1ZEdWeWJtRnNSWEp5YjNKZ0xDQmhibVFnZEhKaGJuTndiM0owSUdaaGFXeDFjbVZ6SUdGeVpTQnRZWEJ3WldRZ2RHOGdaR1ZqWVdZZ1pYSnliM0p6SUhacFlWeHVJQ29nZTBCc2FXNXJJR2gwZEhCRmNuSnZjbjB1WEc0Z0tpQkFZMnhoYzNNZ1UyeGhZMnRUWlhKMmFXTmxYRzRnS2lCQVkyRjBaV2R2Y25rZ1EyOXRiWE5jYmlBcUlFQmxlR0Z0Y0d4bFhHNGdLaUJnWUdCMGMxeHVJQ29nYVcxd2IzSjBJSHNnVTJ4aFkydFRaWEoyYVdObElIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OXBiblJsWjNKaGRHbHZibk12WTI5dGJYTXZjMnhoWTJ0Y0lqdGNiaUFxWEc0Z0tpQmpiMjV6ZENCemJHRmpheUE5SUc1bGR5QlRiR0ZqYTFObGNuWnBZMlVvS1R0Y2JpQXFJR0YzWVdsMElITnNZV05yTG1sdWFYUnBZV3hwZW1Vb2UxeHVJQ29nSUNCMGIydGxiam9nY0hKdlkyVnpjeTVsYm5ZdVIxSkJVRWhmUTFKRlJFVk9WRWxCVEY5VFRFRkRTMTlVVDB0RlRpeGNiaUFxSUgwcE8xeHVJQ29nWVhkaGFYUWdjMnhoWTJzdWNHOXpkRTFsYzNOaFoyVW9lMXh1SUNvZ0lDQmphR0Z1Ym1Wc09pQmNJaU5uWlc1bGNtRnNYQ0lzWEc0Z0tpQWdJSFJsZUhRNklGd2lSR1Z3Ykc5NWJXVnVkQ0JtYVc1cGMyaGxaRndpTEZ4dUlDb2dmU2s3WEc0Z0tpQmdZR0JjYmlBcUlFQnRaWEp0WVdsa1hHNGdLaUJ6WlhGMVpXNWpaVVJwWVdkeVlXMWNiaUFxSUNBZ1lYVjBiMjUxYldKbGNseHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkRZV3hzWlhKY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1UyVnlkbWxqWlNCaGN5QlRiR0ZqYTFObGNuWnBZMlZjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnVTJ4aFkyc2dZWE1nVTJ4aFkyc2dWMlZpSUVGUVNWeHVJQ29nSUNCRFlXeHNaWEl0UGo1VFpYSjJhV05sT2lCd2IzTjBUV1Z6YzJGblpTaHBibkIxZENsY2JpQXFJQ0FnWVdOMGFYWmhkR1VnVTJWeWRtbGpaVnh1SUNvZ0lDQlRaWEoyYVdObExUNCtVMlZ5ZG1salpUb2djbVZ4ZFdseVpWUnZhMlZ1S0NsY2JpQXFJQ0FnVTJWeWRtbGpaUzArUGxOc1lXTnJPaUJRVDFOVUlDOWphR0YwTG5CdmMzUk5aWE56WVdkbFhHNGdLaUFnSUdGamRHbDJZWFJsSUZOc1lXTnJYRzRnS2lBZ0lGTnNZV05yTFMwK1BsTmxjblpwWTJVNklIc2diMnNzSUdOb1lXNXVaV3dzSUhSeklIMWNiaUFxSUNBZ1pHVmhZM1JwZG1GMFpTQlRiR0ZqYTF4dUlDb2dJQ0JoYkhRZ2IydGNiaUFxSUNBZ0lDQlRaWEoyYVdObExTMCtQa05oYkd4bGNqb2dVMnhoWTJ0UWIzTjBUV1Z6YzJGblpWSmxjM1ZzZEZ4dUlDb2dJQ0JsYkhObElHVnljbTl5WEc0Z0tpQWdJQ0FnVTJWeWRtbGpaUzB0ZUVOaGJHeGxjam9nU1c1MFpYSnVZV3hGY25KdmNpQXZJRzFoY0hCbFpDQmtaV05oWmlCbGNuSnZjbHh1SUNvZ0lDQmxibVJjYmlBcUlDQWdaR1ZoWTNScGRtRjBaU0JUWlhKMmFXTmxYRzRnS2lCQWJXVnRZbVZ5VDJZZ2JXOWtkV3hsT21sdWRHVm5jbUYwYVc5dWN5OWpiMjF0Y3k5emJHRmpheTl6WlhKMmFXTmxYRzRnS2k5Y2JtVjRjRzl5ZENCamJHRnpjeUJUYkdGamExTmxjblpwWTJVZ1pYaDBaVzVrY3lCSWRIUndRWEJwVTJWeWRtbGpaVHhUYkdGamExTmxjblpwWTJWRGIyNW1hV2MrSUh0Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCVWFHVWdjSEp2ZG1sa1pYSWdibUZ0WlNCMWMyVmtJR2x1SUdWeWNtOXlJRzFsYzNOaFoyVnpYRzRnSUNBcUwxeHVJQ0J3Y205MFpXTjBaV1FnY21WaFpHOXViSGtnYzJWeWRtbGpaVTVoYldVZ1BTQmNJbE5zWVdOclhDSTdYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJVYUdVZ1UyeGhZMnNnVjJWaUlFRlFTU0JpWVhObElGVlNURnh1SUNBZ0tpQkFjM1Z0YldGeWVTQlZjMlZrSUhkb1pXNGdkR2hsSUhKbGMyOXNkbVZrSUdOdmJtWnBaeUJqWVhKeWFXVnpJRzV2SUdCaVlYTmxWWEpzWUM1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTNOMGNtbHVaMzBnWUZ3aWFIUjBjSE02THk5emJHRmpheTVqYjIwdllYQnBYQ0pnTGx4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lHUmxabUYxYkhSQ1lYTmxWWEpzS0NrNklITjBjbWx1WnlCN1hHNGdJQ0FnY21WMGRYSnVJRndpYUhSMGNITTZMeTl6YkdGamF5NWpiMjB2WVhCcFhDSTdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFSjFhV3hrY3lCMGFHVWdVMnhoWTJzZ1ltVmhjbVZ5SUdGMWRHaHZjbWw2WVhScGIyNGdhR1ZoWkdWeWMxeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCU1pYUjFjbTV6SUhSb1pTQmdRWFYwYUc5eWFYcGhkR2x2YmpvZ1FtVmhjbVZ5SUR4MGIydGxiajVnSUdobFlXUmxjaUIzYUdWdUlIUm9aVnh1SUNBZ0tpQmpiMjVtYVdjZ1kyRnljbWxsY3lCaElIUnZhMlZ1TENCaGJtUWdibThnYUdWaFpHVnljeUJ2ZEdobGNuZHBjMlV1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdVMnhoWTJ0VFpYSjJhV05sUTI5dVptbG5mU0JqYjI1bWFXY2dMU0JVYUdVZ2NtVnpiMngyWldRZ2MyVnlkbWxqWlNCamIyNW1hV2QxY21GMGFXOXVMbHh1SUNBZ0tpQkFjbVYwZFhKdWN5QjdVbVZqYjNKa1BITjBjbWx1Wnl3Z2MzUnlhVzVuUG4wZ1ZHaGxJR0YxZEdodmNtbDZZWFJwYjI0Z2FHVmhaR1Z5Y3lBb1pXMXdkSGtnZDJsMGFHOTFkQ0JoSUhSdmEyVnVLUzVjYmlBZ0lDb3ZYRzRnSUhCeWIzUmxZM1JsWkNCaGRYUm9TR1ZoWkdWeWN5aGpiMjVtYVdjNklGTnNZV05yVTJWeWRtbGpaVU52Ym1acFp5azZJRkpsWTI5eVpEeHpkSEpwYm1jc0lITjBjbWx1Wno0Z2UxeHVJQ0FnSUhKbGRIVnliaUJqYjI1bWFXY3VkRzlyWlc0Z1B5QjdJRUYxZEdodmNtbDZZWFJwYjI0NklHQkNaV0Z5WlhJZ0pIdGpiMjVtYVdjdWRHOXJaVzU5WUNCOUlEb2dlMzA3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRkpsWVdSeklIUm9aU0JUYkdGamF5QmpjbVZrWlc1MGFXRnNjeUJoYm1RZ1pHVm1ZWFZzZEhNZ1puSnZiU0IwYUdVZ1pXNTJhWEp2Ym0xbGJuUmNiaUFnSUNvZ1FITjFiVzFoY25rZ1VtVmhaSE1nZEdobElHQmpiMjF0Y3k1emJHRmphMkFnWlc1MmFYSnZibTFsYm5RZ2MyeHBZMlVnWVc1a0lISmxkSFZ5Ym5NZ1lTQndZWEowYVdGc1hHNGdJQ0FxSUdOdmJtWnBaeUIzYUdWdUlHRWdkRzlyWlc0Z2FYTWdZMjl1Wm1sbmRYSmxaQ3dnWUhWdVpHVm1hVzVsWkdBZ2IzUm9aWEozYVhObExpQldZV3gxWlhNZ2NHRnpjMXh1SUNBZ0tpQjBhSEp2ZFdkb0lHQmxiblpUZEhKcGJtZGdMMkJsYm5aT2RXMWlaWEpnSUhSdklISmxhbVZqZENCMWJuTmxkQzFzWldGbUlIQnliM2hwWlhNdVhHNGdJQ0FxSUVCeVpYUjFjbTV6SUh0UVlYSjBhV0ZzUEZOc1lXTnJVMlZ5ZG1salpVTnZibVpwWno0Z2ZDQjFibVJsWm1sdVpXUjlJRUVnY0dGeWRHbGhiQ0JqYjI1bWFXY3NJRzl5SUdCMWJtUmxabWx1WldSZ0lIZG9aVzRnYm04Z1UyeGhZMnNnZEc5clpXNGdhWE1nWTI5dVptbG5kWEpsWkM1Y2JpQWdJQ292WEc0Z0lIQnliM1JsWTNSbFpDQmpiMjVtYVdkR2NtOXRSVzUyYVhKdmJtMWxiblFvS1RvZ1VHRnlkR2xoYkR4VGJHRmphMU5sY25acFkyVkRiMjVtYVdjK0lId2dkVzVrWldacGJtVmtJSHRjYmlBZ0lDQmpiMjV6ZENCbGJuWWdQU0JEYjIxdGMwVnVkbWx5YjI1dFpXNTBMbU52YlcxekxuTnNZV05yTzF4dUlDQWdJR052Ym5OMElIUnZhMlZ1SUQwZ1pXNTJVM1J5YVc1bktHVnVkajh1ZEc5clpXNHBPMXh1SUNBZ0lHbG1JQ2doZEc5clpXNHBJSEpsZEhWeWJpQjFibVJsWm1sdVpXUTdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUhSdmEyVnVMRnh1SUNBZ0lDQWdZbUZ6WlZWeWJEb2daVzUyVTNSeWFXNW5LR1Z1ZGk1aVlYTmxWWEpzS1N4Y2JpQWdJQ0FnSUhScGJXVnZkWFE2SUdWdWRrNTFiV0psY2lobGJuWXVkR2x0Wlc5MWRDa3NYRzRnSUNBZ2ZUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1VHOXpkSE1nWVNCeVpYRjFaWE4wSUhSdklHRWdVMnhoWTJzZ1YyVmlJRUZRU1NCdFpYUm9iMlJjYmlBZ0lDb2dRSE4xYlcxaGNua2dVMmhoY21Wa0lISmxjWFZsYzNRZ2NHRjBhQ0JtYjNJZ1lXeHNJRk5zWVdOcklHOXdaWEpoZEdsdmJuTTZJR0Z6YzJWeWRITWdZU0IwYjJ0bGJpQnBjMXh1SUNBZ0tpQmpiMjVtYVdkMWNtVmtMQ0JnVUU5VFZHQnpJSFJvWlNCd1lYbHNiMkZrSUhSdklHQXZQRzFsZEdodlpENWdMQ0J5WldwbFkzUnpJRzV2YmkxZ2IydGdJRk5zWVdOclhHNGdJQ0FxSUhKbGMzQnZibk5sY3lCM2FYUm9JR0Z1SUdCSmJuUmxjbTVoYkVWeWNtOXlZQ3dnWVc1a0lHMWhjSE1nZEhKaGJuTndiM0owSUdaaGFXeDFjbVZ6SUhSb2NtOTFaMmhjYmlBZ0lDb2dlMEJzYVc1cklHaDBkSEJGY25KdmNuMHVYRzRnSUNBcUlFQjBaVzF3YkdGMFpTQlVJQzBnVkdobElHVjRjR1ZqZEdWa0lGTnNZV05ySUhKbGMzQnZibk5sSUhOb1lYQmxMQ0JsZUhSbGJtUnBibWNnWUZOc1lXTnJRWEJwVW1WemNHOXVjMlZnTGx4dUlDQWdLaUJBY0dGeVlXMGdlM04wY21sdVozMGdiV1YwYUc5a0lDMGdWR2hsSUZOc1lXTnJJRmRsWWlCQlVFa2diV1YwYUc5a0lHNWhiV1VnS0dVdVp5NGdZRndpWTJoaGRDNXdiM04wVFdWemMyRm5aVndpWUNrdVhHNGdJQ0FxSUVCd1lYSmhiU0I3VW1WamIzSmtQSE4wY21sdVp5d2dkVzVyYm05M2JqNTlJSEJoZVd4dllXUWdMU0JVYUdVZ1NsTlBUaUJpYjJSNUlHWnZjaUIwYUdVZ2JXVjBhRzlrTGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3VUhKdmJXbHpaVHhVUG4wZ1ZHaGxJSEJoY25ObFpDQlRiR0ZqYXlCeVpYTndiMjV6WlNCd1lYbHNiMkZrTGx4dUlDQWdLaUJBZEdoeWIzZHpJSHRKYm5SbGNtNWhiRVZ5Y205eWZTQlhhR1Z1SUc1dklIUnZhMlZ1SUdseklHTnZibVpwWjNWeVpXUWdiM0lnVTJ4aFkyc2dZVzV6ZDJWeWN5QjNhWFJvSUdCdmF6b2dabUZzYzJWZ0xseHVJQ0FnS2lCQWRHaHliM2R6SUh0T2IzUkdiM1Z1WkVWeWNtOXlmU0JYYUdWdUlGTnNZV05ySUdGdWMzZGxjbk1nZDJsMGFDQklWRlJRSURRd05DNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1EyOXVabXhwWTNSRmNuSnZjbjBnVjJobGJpQlRiR0ZqYXlCaGJuTjNaWEp6SUhkcGRHZ2dTRlJVVUNBME1Ea3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwSmhaRkpsY1hWbGMzUkZjbkp2Y24wZ1YyaGxiaUJUYkdGamF5Qmhibk4zWlhKeklIZHBkR2dnWVc1NUlHOTBhR1Z5SUVoVVZGQWdaWEp5YjNJZ2MzUmhkSFZ6TGx4dUlDQWdLaTljYmlBZ2NISnZkR1ZqZEdWa0lHRnplVzVqSUdOaGJHdzhWQ0JsZUhSbGJtUnpJRk5zWVdOclFYQnBVbVZ6Y0c5dWMyVStLRnh1SUNBZ0lHMWxkR2h2WkRvZ2MzUnlhVzVuTEZ4dUlDQWdJSEJoZVd4dllXUTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lIVnVhMjV2ZDI0K1hHNGdJQ2s2SUZCeWIyMXBjMlU4VkQ0Z2UxeHVJQ0FnSUhSb2FYTXVjbVZ4ZFdseVpWUnZhMlZ1S0NrN1hHNGdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lHTnZibk4wSUhKbGMzQnZibk5sSUQwZ1lYZGhhWFFnZEdocGN5NWpiR2xsYm5RdWNHOXpkRHhVUGloZ0x5UjdiV1YwYUc5a2ZXQXNJSEJoZVd4dllXUXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ1pHRjBZU0E5SUhKbGMzQnZibk5sTG1SaGRHRTdYRzRnSUNBZ0lDQnBaaUFvSVdSaGRHRWdmSHdnWkdGMFlTNXZheUFoUFQwZ2RISjFaU2tnZTF4dUlDQWdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhjYmlBZ0lDQWdJQ0FnSUNCZ1UyeGhZMnNnUVZCSklDUjdiV1YwYUc5a2ZTQm1ZV2xzWldRNklDUjdaR0YwWVQ4dVpYSnliM0lnUHo4Z1hDSjFibXR1YjNkdUlHVnljbTl5WENKOVlGeHVJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlHUmhkR0U3WEc0Z0lDQWdmU0JqWVhSamFDQW9aWEp5YjNJcElIdGNiaUFnSUNBZ0lIUm9jbTkzSUdoMGRIQkZjbkp2Y2loY0lsTnNZV05yWENJc0lHQkJVRWtnSkh0dFpYUm9iMlI5WUN3Z1pYSnliM0lwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdVRzl6ZEhNZ1lTQnRaWE56WVdkbElIUnZJR0VnVTJ4aFkyc2dZMmhoYm01bGJDQnZjaUIwYUhKbFlXUmNiaUFnSUNvZ1FITjFiVzFoY25rZ1UyVnVaSE1nZEdobElHbHVjSFYwSUhSdklGTnNZV05ySjNNZ1lHTm9ZWFF1Y0c5emRFMWxjM05oWjJWZ0lHMWxkR2h2WkNCaGJtUWdjbVYwZFhKdWMxeHVJQ0FnS2lCMGFHVWdaR1Z6ZEdsdVlYUnBiMjRnWTJoaGJtNWxiQ0JoYm1RZ2JXVnpjMkZuWlNCMGFXMWxjM1JoYlhBN0lIVnpaU0IwYUdVZ2NtVjBkWEp1WldRZ1lIUnpZQ0JoYzF4dUlDQWdLaUJnZEdoeVpXRmtWSE5nSUhSdklISmxjR3g1SUdsdUlIUm9aU0J6WVcxbElIUm9jbVZoWkM0Z1VISnZkbWxrWlNCZ1lteHZZMnR6WUNCbWIzSWdRbXh2WTJzZ1MybDBYRzRnSUNBcUlHeGhlVzkxZEhNZ0tIZHBkR2dnWUhSbGVIUmdJR0Z6SUhSb1pTQm1ZV3hzWW1GamF5a3NJRzl5SUhCc1lXbHVJSFJsZUhRZ1lXeHZibVV1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdVMnhoWTJ0UWIzTjBUV1Z6YzJGblpVbHVjSFYwZlNCcGJuQjFkQ0F0SUZSb1pTQnRaWE56WVdkbElHUmxjM1JwYm1GMGFXOXVJR0Z1WkNCamIyNTBaVzUwTGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3VUhKdmJXbHpaVHhUYkdGamExQnZjM1JOWlhOellXZGxVbVZ6ZFd4MFBuMGdWR2hsSUhCdmMzUmxaQ0J0WlhOellXZGxKM01nWTJoaGJtNWxiQ3dnZEdsdFpYTjBZVzF3TENCMFpYaDBMQ0JoYm1RZ2NtRjNJSEJoZVd4dllXUXVYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwbHVkR1Z5Ym1Gc1JYSnliM0o5SUZkb1pXNGdibThnZEc5clpXNGdhWE1nWTI5dVptbG5kWEpsWkNCdmNpQlRiR0ZqYXlCeVpXcGxZM1J6SUhSb1pTQnRaWE56WVdkbExseHVJQ0FnS2lCQWRHaHliM2R6SUh0T2IzUkdiM1Z1WkVWeWNtOXlmU0JYYUdWdUlIUm9aU0JqYUdGdWJtVnNJR05oYm01dmRDQmlaU0JtYjNWdVpDQW9TRlJVVUNBME1EUXBMbHh1SUNBZ0tpQkFkR2h5YjNkeklIdERiMjVtYkdsamRFVnljbTl5ZlNCWGFHVnVJRk5zWVdOcklHRnVjM2RsY25NZ2QybDBhQ0JJVkZSUUlEUXdPUzVjYmlBZ0lDb2dRSFJvY205M2N5QjdRbUZrVW1WeGRXVnpkRVZ5Y205eWZTQlhhR1Z1SUZOc1lXTnJJR0Z1YzNkbGNuTWdkMmwwYUNCaGJua2diM1JvWlhJZ1NGUlVVQ0JsY25KdmNpQnpkR0YwZFhNdVhHNGdJQ0FxSUVCbGVHRnRjR3hsWEc0Z0lDQXFJR0JnWUhSelhHNGdJQ0FxSUdGM1lXbDBJSE5zWVdOckxuQnZjM1JOWlhOellXZGxLSHRjYmlBZ0lDb2dJQ0JqYUdGdWJtVnNPaUJjSWlOa1pYQnNiM2x6WENJc1hHNGdJQ0FxSUNBZ2RHVjRkRG9nWENKU1pXeGxZWE5sSURFdU1pNHdJR2x6SUd4cGRtVmNJaXhjYmlBZ0lDb2dJQ0IxYm1aMWNteE1hVzVyY3pvZ1ptRnNjMlVzWEc0Z0lDQXFJSDBwTzF4dUlDQWdLaUJnWUdCY2JpQWdJQ292WEc0Z0lHRnplVzVqSUhCdmMzUk5aWE56WVdkbEtGeHVJQ0FnSUdsdWNIVjBPaUJUYkdGamExQnZjM1JOWlhOellXZGxTVzV3ZFhSY2JpQWdLVG9nVUhKdmJXbHpaVHhUYkdGamExQnZjM1JOWlhOellXZGxVbVZ6ZFd4MFBpQjdYRzRnSUNBZ1kyOXVjM1FnWkdGMFlTQTlJR0YzWVdsMElIUm9hWE11WTJGc2JEeFRiR0ZqYTBGd2FWSmxjM0J2Ym5ObElDWWdVMnhoWTJ0UWIzTjBUV1Z6YzJGblpWSmxjM1ZzZEQ0b1hHNGdJQ0FnSUNCY0ltTm9ZWFF1Y0c5emRFMWxjM05oWjJWY0lpeGNiaUFnSUNBZ0lIdGNiaUFnSUNBZ0lDQWdZMmhoYm01bGJEb2dhVzV3ZFhRdVkyaGhibTVsYkN4Y2JpQWdJQ0FnSUNBZ2RHVjRkRG9nYVc1d2RYUXVkR1Y0ZEN4Y2JpQWdJQ0FnSUNBZ1lteHZZMnR6T2lCcGJuQjFkQzVpYkc5amEzTXNYRzRnSUNBZ0lDQWdJSFJvY21WaFpGOTBjem9nYVc1d2RYUXVkR2h5WldGa1ZITXNYRzRnSUNBZ0lDQWdJSEpsY0d4NVgySnliMkZrWTJGemREb2dhVzV3ZFhRdWNtVndiSGxDY205aFpHTmhjM1FzWEc0Z0lDQWdJQ0FnSUhWdVpuVnliRjlzYVc1cmN6b2dhVzV3ZFhRdWRXNW1kWEpzVEdsdWEzTXNYRzRnSUNBZ0lDQWdJSFZ1Wm5WeWJGOXRaV1JwWVRvZ2FXNXdkWFF1ZFc1bWRYSnNUV1ZrYVdFc1hHNGdJQ0FnSUNCOVhHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdlMXh1SUNBZ0lDQWdZMmhoYm01bGJEb2daR0YwWVM1amFHRnVibVZzTEZ4dUlDQWdJQ0FnZEhNNklHUmhkR0V1ZEhNc1hHNGdJQ0FnSUNCMFpYaDBPaUJrWVhSaExuUmxlSFFzWEc0Z0lDQWdJQ0J0WlhOellXZGxPaUJrWVhSaExtMWxjM05oWjJVc1hHNGdJQ0FnZlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnVEdsemRITWdVMnhoWTJzZ1kyOXVkbVZ5YzJGMGFXOXVjeUIzYVhSb0lHTjFjbk52Y2lCd1lXZHBibWRjYmlBZ0lDb2dRSE4xYlcxaGNua2dRMkZzYkhNZ1lHTnZiblpsY25OaGRHbHZibk11YkdsemRHQWdkMmwwYUNCaElIQmhaMlVnYzJsNlpTQW9aR1ZtWVhWc2RDQmdNVEF3WUNrc1hHNGdJQ0FxSUdOdmJuWmxjbk5oZEdsdmJpQmdkSGx3WlhOZ0lDaGtaV1poZFd4MElIQjFZbXhwWXlCaGJtUWdjSEpwZG1GMFpTQmphR0Z1Ym1Wc2N5a3NJR0Z1WkNCaGNtTm9hWFpsWkZ4dUlDQWdLaUJsZUdOc2RYTnBiMjRnS0dSbFptRjFiSFFnWUhSeWRXVmdLU3dnY21WMGRYSnVhVzVuSUc1dmNtMWhiR2w2WldRZ1kyaGhibTVsYkhNZ1lXNWtJSFJvWlZ4dUlDQWdLaUJnYm1WNGRFTjFjbk52Y21BZ2RHOGdjR0Z6Y3lCaVlXTnJJR0Z6SUdCamRYSnpiM0pnSUdadmNpQjBhR1VnYm1WNGRDQndZV2RsTGx4dUlDQWdLaUJBY0dGeVlXMGdlMjlpYW1WamRIMGdXMjl3ZEdsdmJuTmRJQzBnVUdGbmFXNW5JR0Z1WkNCbWFXeDBaWElnYjNCMGFXOXVjeTVjYmlBZ0lDb2dRSEJoY21GdElIdHVkVzFpWlhKOUlGdHZjSFJwYjI1ekxteHBiV2wwWFNBdElGQmhaMlVnYzJsNlpUc2daR1ZtWVhWc2RITWdkRzhnWURFd01HQXVYRzRnSUNBcUlFQndZWEpoYlNCN2MzUnlhVzVuZlNCYmIzQjBhVzl1Y3k1amRYSnpiM0pkSUMwZ1ZHaGxJR0J1WlhoMFEzVnljMjl5WUNCbWNtOXRJSFJvWlNCd2NtVjJhVzkxY3lCd1lXZGxMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ1cyOXdkR2x2Ym5NdWRIbHdaWE5kSUMwZ1EyOXRiV0V0YzJWd1lYSmhkR1ZrSUdOdmJuWmxjbk5oZEdsdmJpQjBlWEJsY3lBb1pTNW5MaUJnWENKd2RXSnNhV05mWTJoaGJtNWxiQ3h3Y21sMllYUmxYMk5vWVc1dVpXeGNJbUFwT3lCa1pXWmhkV3gwY3lCMGJ5QmdYQ0p3ZFdKc2FXTmZZMmhoYm01bGJDeHdjbWwyWVhSbFgyTm9ZVzV1Wld4Y0ltQXVYRzRnSUNBcUlFQndZWEpoYlNCN1ltOXZiR1ZoYm4wZ1cyOXdkR2x2Ym5NdVpYaGpiSFZrWlVGeVkyaHBkbVZrWFNBdElGZG9aWFJvWlhJZ1lYSmphR2wyWldRZ1kyaGhibTVsYkhNZ1lYSmxJR1Y0WTJ4MVpHVmtPeUJrWldaaGRXeDBjeUIwYnlCZ2RISjFaV0F1WEc0Z0lDQXFJRUJ5WlhSMWNtNXpJSHRRY205dGFYTmxQSHRqYUdGdWJtVnNjem9nVTJ4aFkydERhR0Z1Ym1Wc1cxMHNJRzVsZUhSRGRYSnpiM0kvT2lCemRISnBibWQ5UG4wZ1ZHaGxJSEJoWjJVZ2IyWWdZMmhoYm01bGJITWdZVzVrSUhSb1pTQmpkWEp6YjNJZ1ptOXlJSFJvWlNCdVpYaDBJSEJoWjJVc0lIZG9aVzRnYlc5eVpTQndZV2RsY3lCbGVHbHpkQzVjYmlBZ0lDb2dRSFJvY205M2N5QjdTVzUwWlhKdVlXeEZjbkp2Y24wZ1YyaGxiaUJ1YnlCMGIydGxiaUJwY3lCamIyNW1hV2QxY21Wa0lHOXlJRk5zWVdOcklISmxhbVZqZEhNZ2RHaGxJR05oYkd3dVhHNGdJQ0FxSUVCMGFISnZkM01nZTA1dmRFWnZkVzVrUlhKeWIzSjlJRmRvWlc0Z1UyeGhZMnNnWVc1emQyVnljeUIzYVhSb0lFaFVWRkFnTkRBMExseHVJQ0FnS2lCQWRHaHliM2R6SUh0RGIyNW1iR2xqZEVWeWNtOXlmU0JYYUdWdUlGTnNZV05ySUdGdWMzZGxjbk1nZDJsMGFDQklWRlJRSURRd09TNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1FtRmtVbVZ4ZFdWemRFVnljbTl5ZlNCWGFHVnVJRk5zWVdOcklHRnVjM2RsY25NZ2QybDBhQ0JoYm5rZ2IzUm9aWElnU0ZSVVVDQmxjbkp2Y2lCemRHRjBkWE11WEc0Z0lDQXFJRUJsZUdGdGNHeGxYRzRnSUNBcUlHQmdZSFJ6WEc0Z0lDQXFJR3hsZENCamRYSnpiM0k2SUhOMGNtbHVaeUI4SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ29nWkc4Z2UxeHVJQ0FnS2lBZ0lHTnZibk4wSUhCaFoyVWdQU0JoZDJGcGRDQnpiR0ZqYXk1c2FYTjBRMjl1ZG1WeWMyRjBhVzl1Y3loN0lHeHBiV2wwT2lBeU1EQXNJR04xY25OdmNpQjlLVHRjYmlBZ0lDb2dJQ0JqYjI1emIyeGxMbXh2Wnlod1lXZGxMbU5vWVc1dVpXeHpMbTFoY0Nnb1kyaGhibTVsYkNrZ1BUNGdZMmhoYm01bGJDNXVZVzFsS1NrN1hHNGdJQ0FxSUNBZ1kzVnljMjl5SUQwZ2NHRm5aUzV1WlhoMFEzVnljMjl5TzF4dUlDQWdLaUI5SUhkb2FXeGxJQ2hqZFhKemIzSXBPMXh1SUNBZ0tpQmdZR0JjYmlBZ0lDb3ZYRzRnSUdGemVXNWpJR3hwYzNSRGIyNTJaWEp6WVhScGIyNXpLRnh1SUNBZ0lHOXdkR2x2Ym5NNklIdGNiaUFnSUNBZ0lHeHBiV2wwUHpvZ2JuVnRZbVZ5TzF4dUlDQWdJQ0FnWTNWeWMyOXlQem9nYzNSeWFXNW5PMXh1SUNBZ0lDQWdkSGx3WlhNL09pQnpkSEpwYm1jN1hHNGdJQ0FnSUNCbGVHTnNkV1JsUVhKamFHbDJaV1EvT2lCaWIyOXNaV0Z1TzF4dUlDQWdJSDBnUFNCN2ZWeHVJQ0FwT2lCUWNtOXRhWE5sUEh0Y2JpQWdJQ0JqYUdGdWJtVnNjem9nVTJ4aFkydERhR0Z1Ym1Wc1cxMDdYRzRnSUNBZ2JtVjRkRU4xY25OdmNqODZJSE4wY21sdVp6dGNiaUFnZlQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR1JoZEdFZ1BTQmhkMkZwZENCMGFHbHpMbU5oYkd3OFhHNGdJQ0FnSUNCVGJHRmphMEZ3YVZKbGMzQnZibk5sSUNZZ2UxeHVJQ0FnSUNBZ0lDQmphR0Z1Ym1Wc2N6ODZJRUZ5Y21GNVBGSmxZMjl5WkR4emRISnBibWNzSUhWdWEyNXZkMjQrUGp0Y2JpQWdJQ0FnSUNBZ2NtVnpjRzl1YzJWZmJXVjBZV1JoZEdFL09pQjdJRzVsZUhSZlkzVnljMjl5UHpvZ2MzUnlhVzVuSUgwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnUGloY0ltTnZiblpsY25OaGRHbHZibk11YkdsemRGd2lMQ0I3WEc0Z0lDQWdJQ0JzYVcxcGREb2diM0IwYVc5dWN5NXNhVzFwZENBL1B5QXhNREFzWEc0Z0lDQWdJQ0JqZFhKemIzSTZJRzl3ZEdsdmJuTXVZM1Z5YzI5eUxGeHVJQ0FnSUNBZ2RIbHdaWE02SUc5d2RHbHZibk11ZEhsd1pYTWdQejhnWENKd2RXSnNhV05mWTJoaGJtNWxiQ3h3Y21sMllYUmxYMk5vWVc1dVpXeGNJaXhjYmlBZ0lDQWdJR1Y0WTJ4MVpHVmZZWEpqYUdsMlpXUTZJRzl3ZEdsdmJuTXVaWGhqYkhWa1pVRnlZMmhwZG1Wa0lEOC9JSFJ5ZFdVc1hHNGdJQ0FnZlNrN1hHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJR05vWVc1dVpXeHpPaUFvWkdGMFlTNWphR0Z1Ym1Wc2N5QS9QeUJiWFNrdWJXRndLQ2hqYUdGdWJtVnNLU0E5UGlBb2UxeHVJQ0FnSUNBZ0lDQnBaRG9nVTNSeWFXNW5LR05vWVc1dVpXeGJYQ0pwWkZ3aVhTQS9QeUJjSWx3aUtTeGNiaUFnSUNBZ0lDQWdibUZ0WlRvZ1pXNTJVM1J5YVc1bktHTm9ZVzV1Wld4YlhDSnVZVzFsWENKZEtTeGNiaUFnSUNBZ0lDQWdhWE5RY21sMllYUmxPaUJqYUdGdWJtVnNXMXdpYVhOZmNISnBkbUYwWlZ3aVhTQTlQVDBnZEhKMVpTeGNiaUFnSUNBZ0lDQWdhWE5CY21Ob2FYWmxaRG9nWTJoaGJtNWxiRnRjSW1selgyRnlZMmhwZG1Wa1hDSmRJRDA5UFNCMGNuVmxMRnh1SUNBZ0lDQWdJQ0J0WlcxaVpYSkRiM1Z1ZERwY2JpQWdJQ0FnSUNBZ0lDQjBlWEJsYjJZZ1kyaGhibTVsYkZ0Y0ltNTFiVjl0WlcxaVpYSnpYQ0pkSUQwOVBTQmNJbTUxYldKbGNsd2lYRzRnSUNBZ0lDQWdJQ0FnSUNBL0lDaGphR0Z1Ym1Wc1cxd2liblZ0WDIxbGJXSmxjbk5jSWwwZ1lYTWdiblZ0WW1WeUtWeHVJQ0FnSUNBZ0lDQWdJQ0FnT2lCMWJtUmxabWx1WldRc1hHNGdJQ0FnSUNBZ0lIUnZjR2xqT2lBb1kyaGhibTVsYkZ0Y0luUnZjR2xqWENKZElHRnpJSHNnZG1Gc2RXVS9PaUJ6ZEhKcGJtY2dmU0I4SUhWdVpHVm1hVzVsWkNrL0xuWmhiSFZsTEZ4dUlDQWdJQ0FnSUNCd2RYSndiM05sT2lBb1kyaGhibTVsYkZ0Y0luQjFjbkJ2YzJWY0lsMGdZWE1nZXlCMllXeDFaVDg2SUhOMGNtbHVaeUI5SUh3Z2RXNWtaV1pwYm1Wa0tUOHVkbUZzZFdVc1hHNGdJQ0FnSUNCOUtTa3NYRzRnSUNBZ0lDQnVaWGgwUTNWeWMyOXlPaUJsYm5aVGRISnBibWNvWkdGMFlTNXlaWE53YjI1elpWOXRaWFJoWkdGMFlUOHVibVY0ZEY5amRYSnpiM0lwTEZ4dUlDQWdJSDA3WEc0Z0lIMWNibHh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRVpsZEdOb1pYTWdZU0J6YVc1bmJHVWdVMnhoWTJzZ1kyOXVkbVZ5YzJGMGFXOXVYRzRnSUNBcUlFQnpkVzF0WVhKNUlFTmhiR3h6SUdCamIyNTJaWEp6WVhScGIyNXpMbWx1Wm05Z0lHWnZjaUIwYUdVZ1oybDJaVzRnWTJoaGJtNWxiQ0JKUkNBb2IzSmNiaUFnSUNvZ1lDTnVZVzFsWUNrZ1lXNWtJSEpsZEhWeWJuTWdkR2hsSUc1dmNtMWhiR2w2WldRZ1kyaGhibTVsYkNCa1pYTmpjbWx3ZEc5eUxseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaMzBnWTJoaGJtNWxiQ0F0SUZSb1pTQmphR0Z1Ym1Wc0lFbEVJRzl5SUdBamJtRnRaV0FnZEc4Z2JHOXZheUIxY0M1Y2JpQWdJQ29nUUhKbGRIVnlibk1nZTFCeWIyMXBjMlU4VTJ4aFkydERhR0Z1Ym1Wc1BuMGdWR2hsSUc1dmNtMWhiR2w2WldRZ1kyOXVkbVZ5YzJGMGFXOXVJR1JsYzJOeWFYQjBiM0l1WEc0Z0lDQXFJRUIwYUhKdmQzTWdlMGx1ZEdWeWJtRnNSWEp5YjNKOUlGZG9aVzRnYm04Z2RHOXJaVzRnYVhNZ1kyOXVabWxuZFhKbFpDQnZjaUJUYkdGamF5QnlaV3BsWTNSeklIUm9aU0JqWVd4c0xseHVJQ0FnS2lCQWRHaHliM2R6SUh0T2IzUkdiM1Z1WkVWeWNtOXlmU0JYYUdWdUlIUm9aU0JqYUdGdWJtVnNJR1J2WlhNZ2JtOTBJR1Y0YVhOMElDaElWRlJRSURRd05Da3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwTnZibVpzYVdOMFJYSnliM0o5SUZkb1pXNGdVMnhoWTJzZ1lXNXpkMlZ5Y3lCM2FYUm9JRWhVVkZBZ05EQTVMbHh1SUNBZ0tpQkFkR2h5YjNkeklIdENZV1JTWlhGMVpYTjBSWEp5YjNKOUlGZG9aVzRnVTJ4aFkyc2dZVzV6ZDJWeWN5QjNhWFJvSUdGdWVTQnZkR2hsY2lCSVZGUlFJR1Z5Y205eUlITjBZWFIxY3k1Y2JpQWdJQ292WEc0Z0lHRnplVzVqSUdkbGRFTnZiblpsY25OaGRHbHZiaWhqYUdGdWJtVnNPaUJ6ZEhKcGJtY3BPaUJRY205dGFYTmxQRk5zWVdOclEyaGhibTVsYkQ0Z2UxeHVJQ0FnSUdOdmJuTjBJR1JoZEdFZ1BTQmhkMkZwZENCMGFHbHpMbU5oYkd3OFhHNGdJQ0FnSUNCVGJHRmphMEZ3YVZKbGMzQnZibk5sSUNZZ2V5QmphR0Z1Ym1Wc1B6b2dVbVZqYjNKa1BITjBjbWx1Wnl3Z2RXNXJibTkzYmo0Z2ZWeHVJQ0FnSUQ0b1hDSmpiMjUyWlhKellYUnBiMjV6TG1sdVptOWNJaXdnZXlCamFHRnVibVZzSUgwcE8xeHVJQ0FnSUdOdmJuTjBJR1p2ZFc1a0lEMGdaR0YwWVM1amFHRnVibVZzSUQ4L0lIdDlPMXh1SUNBZ0lISmxkSFZ5YmlCN1hHNGdJQ0FnSUNCcFpEb2dVM1J5YVc1bktHWnZkVzVrVzF3aWFXUmNJbDBnUHo4Z1kyaGhibTVsYkNrc1hHNGdJQ0FnSUNCdVlXMWxPaUJsYm5aVGRISnBibWNvWm05MWJtUmJYQ0p1WVcxbFhDSmRLU3hjYmlBZ0lDQWdJR2x6VUhKcGRtRjBaVG9nWm05MWJtUmJYQ0pwYzE5d2NtbDJZWFJsWENKZElEMDlQU0IwY25WbExGeHVJQ0FnSUNBZ2FYTkJjbU5vYVhabFpEb2dabTkxYm1SYlhDSnBjMTloY21Ob2FYWmxaRndpWFNBOVBUMGdkSEoxWlN4Y2JpQWdJQ0FnSUcxbGJXSmxja052ZFc1ME9seHVJQ0FnSUNBZ0lDQjBlWEJsYjJZZ1ptOTFibVJiWENKdWRXMWZiV1Z0WW1WeWMxd2lYU0E5UFQwZ1hDSnVkVzFpWlhKY0lseHVJQ0FnSUNBZ0lDQWdJRDhnS0dadmRXNWtXMXdpYm5WdFgyMWxiV0psY25OY0lsMGdZWE1nYm5WdFltVnlLVnh1SUNBZ0lDQWdJQ0FnSURvZ2RXNWtaV1pwYm1Wa0xGeHVJQ0FnSUNBZ2RHOXdhV002SUNobWIzVnVaRnRjSW5SdmNHbGpYQ0pkSUdGeklIc2dkbUZzZFdVL09pQnpkSEpwYm1jZ2ZTQjhJSFZ1WkdWbWFXNWxaQ2svTG5aaGJIVmxMRnh1SUNBZ0lDQWdjSFZ5Y0c5elpUb2dLR1p2ZFc1a1cxd2ljSFZ5Y0c5elpWd2lYU0JoY3lCN0lIWmhiSFZsUHpvZ2MzUnlhVzVuSUgwZ2ZDQjFibVJsWm1sdVpXUXBQeTUyWVd4MVpTeGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCR1pYUmphR1Z6SUdFZ1UyeGhZMnNnZFhObGNpQndjbTltYVd4bFhHNGdJQ0FxSUVCemRXMXRZWEo1SUVOaGJHeHpJR0IxYzJWeWN5NXBibVp2WUNCbWIzSWdkR2hsSUdkcGRtVnVJSFZ6WlhJZ1NVUWdZVzVrSUhKbGRIVnlibk1nZEdobElISmhkMXh1SUNBZ0tpQjFjMlZ5SUhCaGVXeHZZV1FzSUc5eUlHQjFibVJsWm1sdVpXUmdJSGRvWlc0Z1UyeGhZMnNnY21Wd2IzSjBjeUJ1YnlCMWMyVnlMbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UzTjBjbWx1WjMwZ2RYTmxja2xrSUMwZ1ZHaGxJRk5zWVdOcklIVnpaWElnU1VRZ2RHOGdiRzl2YXlCMWNDQW9aUzVuTGlCZ1hDSlZNVEl6TkRVMk56aGNJbUFwTGx4dUlDQWdLaUJBY21WMGRYSnVjeUI3VUhKdmJXbHpaVHhTWldOdmNtUThjM1J5YVc1bkxDQjFibXR1YjNkdVBpQjhJSFZ1WkdWbWFXNWxaRDU5SUZSb1pTQnlZWGNnZFhObGNpQndZWGxzYjJGa0xDQnZjaUJnZFc1a1pXWnBibVZrWUNCM2FHVnVJSFJvWlNCMWMyVnlJR2x6SUc1dmRDQm1iM1Z1WkM1Y2JpQWdJQ29nUUhSb2NtOTNjeUI3U1c1MFpYSnVZV3hGY25KdmNuMGdWMmhsYmlCdWJ5QjBiMnRsYmlCcGN5QmpiMjVtYVdkMWNtVmtJRzl5SUZOc1lXTnJJSEpsYW1WamRITWdkR2hsSUdOaGJHd3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwNXZkRVp2ZFc1a1JYSnliM0o5SUZkb1pXNGdkR2hsSUhWelpYSWdaRzlsY3lCdWIzUWdaWGhwYzNRZ0tFaFVWRkFnTkRBMEtTNWNiaUFnSUNvZ1FIUm9jbTkzY3lCN1EyOXVabXhwWTNSRmNuSnZjbjBnVjJobGJpQlRiR0ZqYXlCaGJuTjNaWEp6SUhkcGRHZ2dTRlJVVUNBME1Ea3VYRzRnSUNBcUlFQjBhSEp2ZDNNZ2UwSmhaRkpsY1hWbGMzUkZjbkp2Y24wZ1YyaGxiaUJUYkdGamF5Qmhibk4zWlhKeklIZHBkR2dnWVc1NUlHOTBhR1Z5SUVoVVZGQWdaWEp5YjNJZ2MzUmhkSFZ6TGx4dUlDQWdLaTljYmlBZ1lYTjVibU1nWjJWMFZYTmxjaWhjYmlBZ0lDQjFjMlZ5U1dRNklITjBjbWx1WjF4dUlDQXBPaUJRY205dGFYTmxQRkpsWTI5eVpEeHpkSEpwYm1jc0lIVnVhMjV2ZDI0K0lId2dkVzVrWldacGJtVmtQaUI3WEc0Z0lDQWdZMjl1YzNRZ1pHRjBZU0E5SUdGM1lXbDBJSFJvYVhNdVkyRnNiRHhjYmlBZ0lDQWdJRk5zWVdOclFYQnBVbVZ6Y0c5dWMyVWdKaUI3SUhWelpYSS9PaUJTWldOdmNtUThjM1J5YVc1bkxDQjFibXR1YjNkdVBpQjlYRzRnSUNBZ1BpaGNJblZ6WlhKekxtbHVabTljSWl3Z2V5QjFjMlZ5T2lCMWMyVnlTV1FnZlNrN1hHNGdJQ0FnY21WMGRYSnVJR1JoZEdFdWRYTmxjanRjYmlBZ2ZWeHVmVnh1SWwxOSJdfQ==
|
|
263
|
+
//# sourceMappingURL=SlackService.js.map
|
|
264
|
+
//# sourceMappingURL=SlackService.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comms/slack/SlackService.cjs","sourceRoot":"","sources":["comms/slack/SlackService.js"],"names":[],"mappings":"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"}
|
|
@@ -20,5 +20,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
20
20
|
* @description Re-exports the Slack client-based service and its types.
|
|
21
21
|
*/
|
|
22
22
|
__exportStar(require("./SlackService.cjs"), exports);
|
|
23
|
-
//# sourceMappingURL=
|
|
24
|
-
//# sourceMappingURL=
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
24
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comms/slack/index.cjs","sourceRoot":"","sources":["comms/slack/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;GAIG;AACH,oDAAkC;AAClC,iCAAiC"}
|