@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
|
@@ -389,5 +389,5 @@ __decorate([
|
|
|
389
389
|
exports.CalendarService = CalendarService = __decorate([
|
|
390
390
|
(0, core_1.service)()
|
|
391
391
|
], CalendarService);
|
|
392
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsZW5kYXJTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NhbGVuZGFyL0NhbGVuZGFyU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQStCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFPbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFekQ7Ozs7O0dBS0c7QUFFSSxJQUFNLGVBQWUsR0FBckIsTUFBTSxlQUFnQixTQUFRLE9BQU87SUFJbkMsS0FBSyxDQUFDLHdCQUF3QixDQUNuQyxPQUFnQyxFQUNoQyxHQUFHLElBQTZCO1FBRWhDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FDbkIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUNwRCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUVuRSxNQUFNLFFBQVEsR0FDWixPQUFPLENBQUMsUUFBUTtZQUNoQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUMsUUFBUTtZQUNoRCxLQUFLLENBQUM7UUFFUixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztRQUN0RCxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUM7UUFDNUQsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFNUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXhFLE1BQU0sZUFBZSxHQUNuQixVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUV6RCxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLEdBQUcsZUFBZSxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBRTNFLE1BQU0sS0FBSyxHQUFhO1lBQ3RCLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2Isb0JBQW9CO1lBQ3BCLHFDQUFxQztZQUNyQyxnQkFBZ0I7WUFDaEIsY0FBYztZQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqQyxXQUFXLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQzNDLGdCQUFnQixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQ3BFLGVBQWUsRUFDZixRQUFRLENBQ1QsRUFBRTtZQUNILGNBQWMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUNsRSxHQUFHLEVBQ0gsUUFBUSxDQUNULEVBQUU7WUFDSCxXQUFXLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1NBQzVDLENBQUM7UUFFRixJQUFJLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQixLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQixLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxtREFBbUQ7WUFDbkQsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFN0MsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDM0IsS0FBSyxDQUFDLElBQUksQ0FDUixvQkFBb0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FDbEUsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQixLQUFLLENBQUMsSUFBSSxDQUNSO2dCQUNFLFVBQVU7Z0JBQ1YsbUJBQW1CO2dCQUNuQixzQkFBc0I7Z0JBQ3RCLHVCQUF1QjtnQkFDdkIsV0FBVzthQUNaLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFdBQVcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FDdEUsQ0FBQztRQUNKLENBQUM7UUFFRCxLQUFLLENBQUMsSUFBSSxDQUNSLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsY0FBYyxrQkFBa0IsR0FBRyxFQUNuQyxlQUFlLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQy9DLFlBQVksRUFDWixZQUFZLEVBQ1osZUFBZSxDQUNoQixDQUFDO1FBRUYsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQzVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBELEdBQUcsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbkQsR0FBRyxDQUFDLEtBQUssQ0FBQyxlQUFlLFFBQVEsS0FBSyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRWpELE9BQU87WUFDTCxRQUFRO1lBQ1IsT0FBTztZQUNQLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLEtBQUssRUFBRSxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDekMsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsc0JBQXNCLENBQ2pDLE9BQWdDLEVBQ2hDLEdBQUcsSUFBNkI7UUFFaEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUN2RSxJQUFJLENBQUMsc0JBQXNCLENBQzVCLENBQUM7UUFFRixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFL0QsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLGdCQUFnQixDQUN0QixPQUFnQyxFQUNoQyxLQUFXLEVBQ1gsUUFBZ0IsRUFDaEIsR0FBaUI7UUFFakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFNUUsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFM0QsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbkIsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQzFCLE9BQU8sQ0FBQyxJQUFJLEVBQ1osS0FBSyxFQUNMLFFBQVEsRUFDUixPQUFPLENBQUMsY0FBYyxJQUFJLEdBQUcsRUFDN0IsT0FBTyxDQUFDLEtBQUssQ0FDZDtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLHdCQUF3QixDQUM5QixJQUFnQixFQUNoQixLQUFjO1FBRWQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFbEMsTUFBTSxTQUFTLEdBQUcsVUFBVSxLQUFLLGFBQWEsT0FBTyxhQUFhLENBQUM7UUFFbkUsTUFBTSxRQUFRLEdBQ1osSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJO1lBQ3hCLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSTtZQUNuQixJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQztRQUUxQixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsT0FBTyxjQUFjLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUM1QyxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQ1YsSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJO1lBQ3hCLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSTtZQUNuQixJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQztRQUUxQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxRQUFRLEdBQUcsSUFBSTtpQkFDbEIsU0FBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRWIsT0FBTyxxQkFBcUIsUUFBUSxJQUFJLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUMvRCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQ1gsSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJO1lBQ3hCLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSTtZQUNuQixJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQztRQUUxQixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxDQUNMLDJCQUEyQixJQUFJLENBQUMsVUFBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRztnQkFDeEQsR0FBRyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQ3hCLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQ1YsSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJO1lBQ3hCLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSTtZQUNuQixJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQztRQUUxQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUNMLHVCQUF1QixJQUFJLENBQUMsS0FBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRztnQkFDL0MsY0FBYyxJQUFJLENBQUMsVUFBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRztnQkFDM0MsR0FBRyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQ3hCLENBQUM7UUFDSixDQUFDO1FBRUQsb0VBQW9FO1FBQ3BFLHlFQUF5RTtRQUN6RSxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sZUFBZSxDQUNyQixVQUFrQixFQUNsQixHQUFpQjtRQUVqQixNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN6RCxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTlDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4QixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBRUQsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7UUFFNUQsSUFBSSxDQUFDO1lBQ0gsT0FBTztnQkFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7Z0JBQy9DLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQztnQkFDM0MsVUFBVSxFQUNSLFVBQVUsS0FBSyxHQUFHO29CQUNoQixDQUFDLENBQUMsSUFBSTtvQkFDTixDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7Z0JBQ2pELEtBQUssRUFBRSxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDO2dCQUNwRSxTQUFTLEVBQ1AsU0FBUyxLQUFLLEdBQUc7b0JBQ2YsQ0FBQyxDQUFDLElBQUk7b0JBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDdEQsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQ3hCO2FBQ1IsQ0FBQztRQUNKLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxHQUFHLENBQUMsS0FBSyxDQUFDLGlEQUFpRCxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ3pFLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUNwQixLQUFhLEVBQ2IsT0FBZSxFQUNmLE9BQWU7SUFDZiw2REFBNkQ7SUFDN0QsR0FBaUI7UUFFakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztRQUVqQyxLQUFLLE1BQU0sT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLENBQUMsZUFBZSxFQUFFLGNBQWMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFN0QsTUFBTSxJQUFJLEdBQ1IsY0FBYyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUV6RSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLE1BQU0sSUFBSSxlQUFlLENBQUMsc0JBQXNCLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDN0QsQ0FBQztZQUVELElBQUksS0FBYSxDQUFDO1lBQ2xCLElBQUksR0FBVyxDQUFDO1lBRWhCLElBQUksZUFBZSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUM1QixLQUFLLEdBQUcsT0FBTyxDQUFDO2dCQUNoQixHQUFHLEdBQUcsT0FBTyxDQUFDO1lBQ2hCLENBQUM7aUJBQU0sSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRTFDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDeEIsTUFBTSxJQUFJLGVBQWUsQ0FBQyx1QkFBdUIsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDOUQsQ0FBQztnQkFFRCxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZDLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM3QyxHQUFHLEdBQUcsS0FBSyxDQUFDO1lBQ2QsQ0FBQztZQUVELElBQ0UsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztnQkFDeEIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztnQkFDdEIsS0FBSyxHQUFHLE9BQU87Z0JBQ2YsR0FBRyxHQUFHLE9BQU87Z0JBQ2IsS0FBSyxHQUFHLEdBQUcsRUFDWCxDQUFDO2dCQUNELE1BQU0sSUFBSSxlQUFlLENBQUMsdUJBQXVCLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDOUQsQ0FBQztZQUVELEtBQUssSUFBSSxLQUFLLEdBQUcsS0FBSyxFQUFFLEtBQUssSUFBSSxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNwRCxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BCLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxlQUFlLENBQ3JCLElBQVksRUFDWixLQUFXLEVBQ1gsUUFBZ0IsRUFDaEIsT0FBZSxFQUNmLEtBQVk7UUFFWixNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ2hELFdBQVcsRUFBRSxLQUFLO1lBQ2xCLEVBQUUsRUFBRSxRQUFRO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsTUFBTSxXQUFXLEdBQVcsRUFBRSxDQUFDO1FBRS9CLE9BQU8sV0FBVyxDQUFDLE1BQU0sR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFdEMsSUFBSSxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssRUFBRSxDQUFDO2dCQUMxQixNQUFNO1lBQ1IsQ0FBQztZQUVELFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUVELElBQUksV0FBVyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksS0FBSyxDQUNiLHFFQUFxRSxDQUN0RSxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxrQkFBa0IsQ0FDeEIsSUFBWSxFQUNaLEtBQVcsRUFDWCxRQUFnQjtRQUVoQixNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ2hELFdBQVcsRUFBRSxLQUFLO1lBQ2xCLEVBQUUsRUFBRSxRQUFRO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQWEsRUFBRSxRQUFnQjtRQUM1RCxNQUFNLE1BQU0sR0FBRyxjQUFjLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUUvRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRXpFLHVFQUF1RTtRQUN2RSxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7UUFDNUIsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBRXJCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDM0IsTUFBTSxTQUFTLEdBQ2IsT0FBTyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBRXBFLElBQUksSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUNyRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNyQixPQUFPLEdBQUcsR0FBRyxNQUFNLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDaEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sR0FBRyxTQUFTLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLE9BQU8sS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sYUFBYSxDQUFDLElBQVU7UUFDOUIsT0FBTyxJQUFJO2FBQ1IsV0FBVyxFQUFFO2FBQ2IsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7YUFDcEIsT0FBTyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU8sZUFBZSxDQUFDLElBQVUsRUFBRSxRQUFnQjtRQUNsRCxNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFO1lBQzdDLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSyxFQUFFLFNBQVM7WUFDaEIsR0FBRyxFQUFFLFNBQVM7WUFDZCxJQUFJLEVBQUUsU0FBUztZQUNmLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLFNBQVMsRUFBRSxLQUFLO1NBQ2pCLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdkIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FDL0IsS0FBSzthQUNGLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7YUFDekMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzFDLENBQUM7UUFFRixPQUFPLENBQ0wsR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUM1QyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQ2xELENBQUM7SUFDSixDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQWU7UUFDL0IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ssUUFBUSxDQUFDLElBQVk7UUFDM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNsQyxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7UUFDNUIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUVqQixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDdkUsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNoQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDZixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7WUFFakIsS0FBSyxNQUFNLFNBQVMsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxTQUFTLEdBQUcsR0FBRyxNQUFNLEdBQUcsS0FBSyxHQUFHLFNBQVMsRUFBRSxDQUFDO2dCQUVsRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxDQUFDO29CQUMxQyxNQUFNO2dCQUNSLENBQUM7Z0JBRUQsS0FBSyxJQUFJLFNBQVMsQ0FBQztnQkFDbkIsUUFBUSxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUM7WUFDL0IsQ0FBQztZQUVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWCxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7WUFDNUQsQ0FBQztZQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNqQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLENBQUM7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFakQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUFhO1FBQzlCLE9BQU8sS0FBSzthQUNULE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO2FBQ3RCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDO2FBQ3hCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO2FBQ3BCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFhO1FBQ2xDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFhO1FBQ25DLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLElBQUksZUFBZSxDQUFDLCtCQUErQixLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxZQUFZLENBQUMsR0FBVztRQUM5QixNQUFNLElBQUksR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV6QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksZUFBZSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sU0FBUztRQUNmLE1BQU0sTUFBTSxHQUNWLFVBQVUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUU7WUFDakMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUV6RCxPQUFPLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQztJQUN0QyxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQWE7UUFDbEMsTUFBTSxTQUFTLEdBQUcsS0FBSzthQUNwQixTQUFTLENBQUMsTUFBTSxDQUFDO2FBQ2pCLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDO2FBQ3pCLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO2FBQ3ZCLFdBQVcsRUFBRSxDQUFDO1FBRWpCLE9BQU8sR0FBRyxTQUFTLElBQUksbUJBQW1CLE1BQU0sQ0FBQztJQUNuRCxDQUFDO0lBRU8sZUFBZSxDQUFDLE9BQWdDO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLGVBQWUsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSxlQUFlLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsSUFDRSxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVM7WUFDckMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztnQkFDeEMsT0FBTyxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsRUFDL0IsQ0FBQztZQUNELE1BQU0sSUFBSSxlQUFlLENBQUMsNENBQTRDLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsSUFDRSxPQUFPLENBQUMsa0JBQWtCLEtBQUssU0FBUztZQUN4QyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUM7Z0JBQzVDLE9BQU8sQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUMsRUFDakMsQ0FBQztZQUNELE1BQU0sSUFBSSxlQUFlLENBQ3ZCLG9EQUFvRCxDQUNyRCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQ0UsT0FBTyxDQUFDLGNBQWMsS0FBSyxTQUFTO1lBQ3BDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxPQUFPLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxFQUMxRSxDQUFDO1lBQ0QsTUFBTSxJQUFJLGVBQWUsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQzFFLENBQUM7SUFDSCxDQUFDO0NBQ0YsQ0FBQTtBQS9oQlc7SUFEVCxNQUFNLENBQUMsbUJBQW1CLENBQUM7OytDQUNPO0FBRnhCLGVBQWU7SUFEM0IsT0FBTyxFQUFFO0dBQ0csZUFBZSxDQWlpQjNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGV4dCwgTWF5YmVDb250ZXh0dWFsQXJnLCBzZXJ2aWNlLCBTZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBDcm9uRXhwcmVzc2lvblBhcnNlciB9IGZyb20gXCJjcm9uLXBhcnNlclwiO1xuaW1wb3J0IHtcbiAgQ2FsZW5kYXJGaWxlLFxuICBDYWxlbmRhclJlbWluZGVyT3B0aW9ucyxcbiAgUGFyc2VkQ3JvbixcbiAgUmVjdXJyZW5jZVJlc3VsdCxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IE9wZXJhdGlvbktleXMsIFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgdHlwZSBJQ2FsZW5kYXJXcml0ZXIgfSBmcm9tIFwiLi93cml0ZXJzL0lDYWxlbmRhcldyaXRlclwiO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSBcIkBkZWNhZi10cy9pbmplY3RhYmxlLWRlY29yYXRvcnNcIjtcblxuLyoqXG4gKiBDcmVhdGVzIGludGVyb3BlcmFibGUgaUNhbGVuZGFyIG1lZGljYXRpb24gcmVtaW5kZXJzLlxuICpcbiAqIFRoZSBzZXJ2aWNlIGhhcyBubyBzdGF0aWMgTm9kZSBpbXBvcnRzLCBzbyB0aGUgc2FtZSBtb2R1bGUgY2FuIGJlIGJ1bmRsZWRcbiAqIGZvciBicm93c2Vycy4gTm9kZS1vbmx5IGZpbGVzeXN0ZW0gYmVoYXZpb3IgaXMgbG9hZGVkIGR5bmFtaWNhbGx5LlxuICovXG5Ac2VydmljZSgpXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJTZXJ2aWNlIGV4dGVuZHMgU2VydmljZSB7XG4gIEBpbmplY3QoJ1wiY2FsZW5kYXItd3JpdGVyXCInKVxuICBwcm90ZWN0ZWQgd3JpdGVyITogSUNhbGVuZGFyV3JpdGVyO1xuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVNZWRpY2F0aW9uUmVtaW5kZXIoXG4gICAgb3B0aW9uczogQ2FsZW5kYXJSZW1pbmRlck9wdGlvbnMsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxDYWxlbmRhckZpbGU+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4IH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBPcGVyYXRpb25LZXlzLkNSRUFURSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNyZWF0ZU1lZGljYXRpb25SZW1pbmRlcik7XG4gICAgdGhpcy52YWxpZGF0ZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgICBjb25zdCBzdGFydCA9IG9wdGlvbnMuc3RhcnQgPyBuZXcgRGF0ZShvcHRpb25zLnN0YXJ0KSA6IG5ldyBEYXRlKCk7XG5cbiAgICBjb25zdCB0aW1lem9uZSA9XG4gICAgICBvcHRpb25zLnRpbWV6b25lID8/XG4gICAgICBJbnRsLkRhdGVUaW1lRm9ybWF0KCkucmVzb2x2ZWRPcHRpb25zKCkudGltZVpvbmUgPz9cbiAgICAgIFwiVVRDXCI7XG5cbiAgICBjb25zdCBkdXJhdGlvbk1pbnV0ZXMgPSBvcHRpb25zLmR1cmF0aW9uTWludXRlcyA/PyAxNTtcbiAgICBjb25zdCBhbGFybU1pbnV0ZXNCZWZvcmUgPSBvcHRpb25zLmFsYXJtTWludXRlc0JlZm9yZSA/PyAxMDtcbiAgICBjb25zdCB1aWQgPSBvcHRpb25zLnVpZCA/PyB0aGlzLmNyZWF0ZVVpZCgpO1xuXG4gICAgY29uc3QgcmVjdXJyZW5jZSA9IHRoaXMuY3JlYXRlUmVjdXJyZW5jZShvcHRpb25zLCBzdGFydCwgdGltZXpvbmUsIGN0eCk7XG5cbiAgICBjb25zdCBmaXJzdE9jY3VycmVuY2UgPVxuICAgICAgcmVjdXJyZW5jZS5yZGF0ZXM/LlswXSA/P1xuICAgICAgdGhpcy5nZXRGaXJzdE9jY3VycmVuY2Uob3B0aW9ucy5jcm9uLCBzdGFydCwgdGltZXpvbmUpO1xuXG4gICAgY29uc3QgZW5kID0gbmV3IERhdGUoZmlyc3RPY2N1cnJlbmNlLmdldFRpbWUoKSArIGR1cmF0aW9uTWludXRlcyAqIDYwXzAwMCk7XG5cbiAgICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXG4gICAgICBcIkJFR0lOOlZDQUxFTkRBUlwiLFxuICAgICAgXCJWRVJTSU9OOjIuMFwiLFxuICAgICAgXCJDQUxTQ0FMRTpHUkVHT1JJQU5cIixcbiAgICAgIFwiUFJPRElEOi0vL1BUUC8vQ2FsZW5kYXIgU2VydmljZS8vRU5cIixcbiAgICAgIFwiTUVUSE9EOlBVQkxJU0hcIixcbiAgICAgIFwiQkVHSU46VkVWRU5UXCIsXG4gICAgICBgVUlEOiR7dGhpcy5lc2NhcGVQcm9wZXJ0eSh1aWQpfWAsXG4gICAgICBgRFRTVEFNUDoke3RoaXMuZm9ybWF0VXRjRGF0ZShuZXcgRGF0ZSgpKX1gLFxuICAgICAgYERUU1RBUlQ7VFpJRD0ke3RoaXMuZXNjYXBlUGFyYW1ldGVyKHRpbWV6b25lKX06JHt0aGlzLmZvcm1hdExvY2FsRGF0ZShcbiAgICAgICAgZmlyc3RPY2N1cnJlbmNlLFxuICAgICAgICB0aW1lem9uZVxuICAgICAgKX1gLFxuICAgICAgYERURU5EO1RaSUQ9JHt0aGlzLmVzY2FwZVBhcmFtZXRlcih0aW1lem9uZSl9OiR7dGhpcy5mb3JtYXRMb2NhbERhdGUoXG4gICAgICAgIGVuZCxcbiAgICAgICAgdGltZXpvbmVcbiAgICAgICl9YCxcbiAgICAgIGBTVU1NQVJZOiR7dGhpcy5lc2NhcGVUZXh0KG9wdGlvbnMudGl0bGUpfWAsXG4gICAgXTtcblxuICAgIGlmIChvcHRpb25zLmRlc2NyaXB0aW9uKSB7XG4gICAgICBsaW5lcy5wdXNoKGBERVNDUklQVElPTjoke3RoaXMuZXNjYXBlVGV4dChvcHRpb25zLmRlc2NyaXB0aW9uKX1gKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5sb2NhdGlvbikge1xuICAgICAgbGluZXMucHVzaChgTE9DQVRJT046JHt0aGlzLmVzY2FwZVRleHQob3B0aW9ucy5sb2NhdGlvbil9YCk7XG4gICAgfVxuXG4gICAgaWYgKHJlY3VycmVuY2UucnJ1bGUpIHtcbiAgICAgIGxpbmVzLnB1c2goYFJSVUxFOiR7cmVjdXJyZW5jZS5ycnVsZX1gKTtcbiAgICB9XG5cbiAgICBpZiAocmVjdXJyZW5jZS5yZGF0ZXMgJiYgcmVjdXJyZW5jZS5yZGF0ZXMubGVuZ3RoID4gMSkge1xuICAgICAgLy8gRFRTVEFSVCBhbHJlYWR5IHJlcHJlc2VudHMgdGhlIGZpcnN0IG9jY3VycmVuY2UuXG4gICAgICBjb25zdCByZW1haW5pbmcgPSByZWN1cnJlbmNlLnJkYXRlcy5zbGljZSgxKTtcblxuICAgICAgbGluZXMucHVzaCguLi50aGlzLmNyZWF0ZUZvbGRlZFJEYXRlTGluZXMocmVtYWluaW5nLCB0aW1lem9uZSkpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLm9yZ2FuaXplckVtYWlsKSB7XG4gICAgICBsaW5lcy5wdXNoKFxuICAgICAgICBgT1JHQU5JWkVSOm1haWx0bzoke3RoaXMuZXNjYXBlUHJvcGVydHkob3B0aW9ucy5vcmdhbml6ZXJFbWFpbCl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5hdHRlbmRlZUVtYWlsKSB7XG4gICAgICBsaW5lcy5wdXNoKFxuICAgICAgICBbXG4gICAgICAgICAgXCJBVFRFTkRFRVwiLFxuICAgICAgICAgIFwiQ1VUWVBFPUlORElWSURVQUxcIixcbiAgICAgICAgICBcIlJPTEU9UkVRLVBBUlRJQ0lQQU5UXCIsXG4gICAgICAgICAgXCJQQVJUU1RBVD1ORUVEUy1BQ1RJT05cIixcbiAgICAgICAgICBcIlJTVlA9VFJVRVwiLFxuICAgICAgICBdLmpvaW4oXCI7XCIpICsgYDptYWlsdG86JHt0aGlzLmVzY2FwZVByb3BlcnR5KG9wdGlvbnMuYXR0ZW5kZWVFbWFpbCl9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsaW5lcy5wdXNoKFxuICAgICAgXCJCRUdJTjpWQUxBUk1cIixcbiAgICAgIFwiQUNUSU9OOkRJU1BMQVlcIixcbiAgICAgIGBUUklHR0VSOi1QVCR7YWxhcm1NaW51dGVzQmVmb3JlfU1gLFxuICAgICAgYERFU0NSSVBUSU9OOiR7dGhpcy5lc2NhcGVUZXh0KG9wdGlvbnMudGl0bGUpfWAsXG4gICAgICBcIkVORDpWQUxBUk1cIixcbiAgICAgIFwiRU5EOlZFVkVOVFwiLFxuICAgICAgXCJFTkQ6VkNBTEVOREFSXCJcbiAgICApO1xuXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuZm9sZExpbmVzKGxpbmVzKS5qb2luKFwiXFxyXFxuXCIpICsgXCJcXHJcXG5cIjtcbiAgICBjb25zdCBmaWxlbmFtZSA9IHRoaXMuY3JlYXRlRmlsZW5hbWUob3B0aW9ucy50aXRsZSk7XG5cbiAgICBsb2cudmVyYm9zZShgQ2FsZW5kYXIgZXZlbnQgY3JlYXRlZDogJHtmaWxlbmFtZX1gKTtcbiAgICBsb2cuZGVidWcoYENvbnRlbnQgZm9yICR7ZmlsZW5hbWV9OiAke2NvbnRlbnR9YCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZmlsZW5hbWUsXG4gICAgICBjb250ZW50LFxuICAgICAgbWltZVR5cGU6IFwidGV4dC9jYWxlbmRhclwiLFxuICAgICAgYnl0ZXM6IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShjb250ZW50KSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNyZWF0ZUFuZFN0b3JlUmVtaW5kZXIoXG4gICAgb3B0aW9uczogQ2FsZW5kYXJSZW1pbmRlck9wdGlvbnMsXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBjdHggfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBPcGVyYXRpb25LZXlzLkNSRUFURSwgdHJ1ZSkpLmZvcihcbiAgICAgIHRoaXMuY3JlYXRlQW5kU3RvcmVSZW1pbmRlclxuICAgICk7XG5cbiAgICBjb25zdCBmaWxlID0gYXdhaXQgdGhpcy5jcmVhdGVNZWRpY2F0aW9uUmVtaW5kZXIob3B0aW9ucywgY3R4KTtcblxuICAgIGF3YWl0IHRoaXMud3JpdGVyLndyaXRlKGZpbGUsIGN0eCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlY3VycmVuY2UoXG4gICAgb3B0aW9uczogQ2FsZW5kYXJSZW1pbmRlck9wdGlvbnMsXG4gICAgc3RhcnQ6IERhdGUsXG4gICAgdGltZXpvbmU6IHN0cmluZyxcbiAgICBjdHg6IENvbnRleHQ8YW55PlxuICApOiBSZWN1cnJlbmNlUmVzdWx0IHtcbiAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlU2ltcGxlQ3JvbihvcHRpb25zLmNyb24sIGN0eCk7XG4gICAgY29uc3QgdW50aWwgPSBvcHRpb25zLnVudGlsID8gdGhpcy5mb3JtYXRVdGNEYXRlKG9wdGlvbnMudW50aWwpIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKHBhcnNlZCkge1xuICAgICAgY29uc3QgcnJ1bGUgPSB0aGlzLmNvbnZlcnRTaW1wbGVDcm9uVG9SUnVsZShwYXJzZWQsIHVudGlsKTtcblxuICAgICAgaWYgKHJydWxlKSB7XG4gICAgICAgIHJldHVybiB7IHJydWxlIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJkYXRlczogdGhpcy5leHBhbmRDcm9uRGF0ZXMoXG4gICAgICAgIG9wdGlvbnMuY3JvbixcbiAgICAgICAgc3RhcnQsXG4gICAgICAgIHRpbWV6b25lLFxuICAgICAgICBvcHRpb25zLm1heE9jY3VycmVuY2VzID8/IDM2NSxcbiAgICAgICAgb3B0aW9ucy51bnRpbFxuICAgICAgKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBjb21tb25seSBuZWVkZWQgbWVkaWNhdGlvbiBzY2hlZHVsZXMuXG4gICAqXG4gICAqIFVuc3VwcG9ydGVkIGNyb24gc2hhcGVzIGZhbGwgYmFjayB0byBleHBsaWNpdCBSREFURSBvY2N1cnJlbmNlcy5cbiAgICovXG4gIHByaXZhdGUgY29udmVydFNpbXBsZUNyb25Ub1JSdWxlKFxuICAgIGNyb246IFBhcnNlZENyb24sXG4gICAgdW50aWw/OiBzdHJpbmdcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzdWZmaXggPSB1bnRpbCA/IGA7VU5USUw9JHt1bnRpbH1gIDogXCJcIjtcblxuICAgIGNvbnN0IG1pbnV0ZXMgPSBjcm9uLm1pbnV0ZS5qb2luKFwiLFwiKTtcbiAgICBjb25zdCBob3VycyA9IGNyb24uaG91ci5qb2luKFwiLFwiKTtcblxuICAgIGNvbnN0IHRpbWVQYXJ0cyA9IGBCWUhPVVI9JHtob3Vyc307QllNSU5VVEU9JHttaW51dGVzfTtCWVNFQ09ORD0wYDtcblxuICAgIGNvbnN0IGV2ZXJ5RGF5ID1cbiAgICAgIGNyb24uZGF5T2ZNb250aCA9PT0gbnVsbCAmJlxuICAgICAgY3Jvbi5tb250aCA9PT0gbnVsbCAmJlxuICAgICAgY3Jvbi5kYXlPZldlZWsgPT09IG51bGw7XG5cbiAgICBpZiAoZXZlcnlEYXkpIHtcbiAgICAgIHJldHVybiBgRlJFUT1EQUlMWTske3RpbWVQYXJ0c30ke3N1ZmZpeH1gO1xuICAgIH1cblxuICAgIGNvbnN0IHdlZWtseSA9XG4gICAgICBjcm9uLmRheU9mTW9udGggPT09IG51bGwgJiZcbiAgICAgIGNyb24ubW9udGggPT09IG51bGwgJiZcbiAgICAgIGNyb24uZGF5T2ZXZWVrICE9PSBudWxsO1xuXG4gICAgaWYgKHdlZWtseSkge1xuICAgICAgY29uc3Qgd2Vla2RheXMgPSBjcm9uXG4gICAgICAgIC5kYXlPZldlZWshLm1hcCgoZGF5KSA9PiB0aGlzLndlZWtkYXlUb0ljcyhkYXkpKVxuICAgICAgICAuam9pbihcIixcIik7XG5cbiAgICAgIHJldHVybiBgRlJFUT1XRUVLTFk7QllEQVk9JHt3ZWVrZGF5c307JHt0aW1lUGFydHN9JHtzdWZmaXh9YDtcbiAgICB9XG5cbiAgICBjb25zdCBtb250aGx5ID1cbiAgICAgIGNyb24uZGF5T2ZNb250aCAhPT0gbnVsbCAmJlxuICAgICAgY3Jvbi5tb250aCA9PT0gbnVsbCAmJlxuICAgICAgY3Jvbi5kYXlPZldlZWsgPT09IG51bGw7XG5cbiAgICBpZiAobW9udGhseSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgYEZSRVE9TU9OVEhMWTtCWU1PTlRIREFZPSR7Y3Jvbi5kYXlPZk1vbnRoIS5qb2luKFwiLFwiKX07YCArXG4gICAgICAgIGAke3RpbWVQYXJ0c30ke3N1ZmZpeH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHllYXJseSA9XG4gICAgICBjcm9uLmRheU9mTW9udGggIT09IG51bGwgJiZcbiAgICAgIGNyb24ubW9udGggIT09IG51bGwgJiZcbiAgICAgIGNyb24uZGF5T2ZXZWVrID09PSBudWxsO1xuXG4gICAgaWYgKHllYXJseSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgYEZSRVE9WUVBUkxZO0JZTU9OVEg9JHtjcm9uLm1vbnRoIS5qb2luKFwiLFwiKX07YCArXG4gICAgICAgIGBCWU1PTlRIREFZPSR7Y3Jvbi5kYXlPZk1vbnRoIS5qb2luKFwiLFwiKX07YCArXG4gICAgICAgIGAke3RpbWVQYXJ0c30ke3N1ZmZpeH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIENyb24gZGF5LW9mLW1vbnRoL2RheS1vZi13ZWVrIGNvbWJpbmF0aW9ucyBoYXZlIE9SLWxpa2Ugc2VtYW50aWNzXG4gICAgLy8gaW4gbWFueSBpbXBsZW1lbnRhdGlvbnMgYW5kIGNhbm5vdCBiZSByZXByZXNlbnRlZCBzYWZlbHkgYXMgb25lIFJSVUxFLlxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlU2ltcGxlQ3JvbihcbiAgICBleHByZXNzaW9uOiBzdHJpbmcsXG4gICAgY3R4OiBDb250ZXh0PGFueT5cbiAgKTogUGFyc2VkQ3JvbiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgeyBsb2cgfSA9IHRoaXMubG9nQ3R4KFtjdHhdLCB0aGlzLnBhcnNlU2ltcGxlQ3Jvbik7XG4gICAgY29uc3QgZmllbGRzID0gZXhwcmVzc2lvbi50cmltKCkuc3BsaXQoL1xccysvKTtcblxuICAgIGlmIChmaWVsZHMubGVuZ3RoICE9PSA1KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IFttaW51dGUsIGhvdXIsIGRheU9mTW9udGgsIG1vbnRoLCBkYXlPZldlZWtdID0gZmllbGRzO1xuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1pbnV0ZTogdGhpcy5wYXJzZUNyb25GaWVsZChtaW51dGUsIDAsIDU5LCBjdHgpLFxuICAgICAgICBob3VyOiB0aGlzLnBhcnNlQ3JvbkZpZWxkKGhvdXIsIDAsIDIzLCBjdHgpLFxuICAgICAgICBkYXlPZk1vbnRoOlxuICAgICAgICAgIGRheU9mTW9udGggPT09IFwiKlwiXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdGhpcy5wYXJzZUNyb25GaWVsZChkYXlPZk1vbnRoLCAxLCAzMSwgY3R4KSxcbiAgICAgICAgbW9udGg6IG1vbnRoID09PSBcIipcIiA/IG51bGwgOiB0aGlzLnBhcnNlQ3JvbkZpZWxkKG1vbnRoLCAxLCAxMiwgY3R4KSxcbiAgICAgICAgZGF5T2ZXZWVrOlxuICAgICAgICAgIGRheU9mV2VlayA9PT0gXCIqXCJcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB0aGlzLnBhcnNlQ3JvbkZpZWxkKGRheU9mV2VlaywgMCwgNywgY3R4KS5tYXAoKHZhbHVlKSA9PlxuICAgICAgICAgICAgICAgIHZhbHVlID09PSA3ID8gMCA6IHZhbHVlXG4gICAgICAgICAgICAgICksXG4gICAgICB9O1xuICAgIH0gY2F0Y2gge1xuICAgICAgbG9nLmRlYnVnKGBGYWlsZWQgdG8gZ2VuZXJhdGUgc2ltcGxlIGNyb24gZXhwcmVzc2lvbiBmb3IgJHtleHByZXNzaW9ufWApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlQ3JvbkZpZWxkKFxuICAgIGZpZWxkOiBzdHJpbmcsXG4gICAgbWluaW11bTogbnVtYmVyLFxuICAgIG1heGltdW06IG51bWJlcixcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgY3R4OiBDb250ZXh0PGFueT5cbiAgKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IHZhbHVlcyA9IG5ldyBTZXQ8bnVtYmVyPigpO1xuXG4gICAgZm9yIChjb25zdCBzZWdtZW50IG9mIGZpZWxkLnNwbGl0KFwiLFwiKSkge1xuICAgICAgY29uc3QgW3JhbmdlRXhwcmVzc2lvbiwgc3RlcEV4cHJlc3Npb25dID0gc2VnbWVudC5zcGxpdChcIi9cIik7XG5cbiAgICAgIGNvbnN0IHN0ZXAgPVxuICAgICAgICBzdGVwRXhwcmVzc2lvbiA9PT0gdW5kZWZpbmVkID8gMSA6IE51bWJlci5wYXJzZUludChzdGVwRXhwcmVzc2lvbiwgMTApO1xuXG4gICAgICBpZiAoIU51bWJlci5pc0ludGVnZXIoc3RlcCkgfHwgc3RlcCA8PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYEludmFsaWQgY3JvbiBzdGVwOiAke3NlZ21lbnR9YCk7XG4gICAgICB9XG5cbiAgICAgIGxldCBzdGFydDogbnVtYmVyO1xuICAgICAgbGV0IGVuZDogbnVtYmVyO1xuXG4gICAgICBpZiAocmFuZ2VFeHByZXNzaW9uID09PSBcIipcIikge1xuICAgICAgICBzdGFydCA9IG1pbmltdW07XG4gICAgICAgIGVuZCA9IG1heGltdW07XG4gICAgICB9IGVsc2UgaWYgKHJhbmdlRXhwcmVzc2lvbi5pbmNsdWRlcyhcIi1cIikpIHtcbiAgICAgICAgY29uc3QgYm91bmRzID0gcmFuZ2VFeHByZXNzaW9uLnNwbGl0KFwiLVwiKTtcblxuICAgICAgICBpZiAoYm91bmRzLmxlbmd0aCAhPT0gMikge1xuICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYEludmFsaWQgY3JvbiByYW5nZTogJHtzZWdtZW50fWApO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RhcnQgPSBOdW1iZXIucGFyc2VJbnQoYm91bmRzWzBdLCAxMCk7XG4gICAgICAgIGVuZCA9IE51bWJlci5wYXJzZUludChib3VuZHNbMV0sIDEwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0YXJ0ID0gTnVtYmVyLnBhcnNlSW50KHJhbmdlRXhwcmVzc2lvbiwgMTApO1xuICAgICAgICBlbmQgPSBzdGFydDtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICAhTnVtYmVyLmlzSW50ZWdlcihzdGFydCkgfHxcbiAgICAgICAgIU51bWJlci5pc0ludGVnZXIoZW5kKSB8fFxuICAgICAgICBzdGFydCA8IG1pbmltdW0gfHxcbiAgICAgICAgZW5kID4gbWF4aW11bSB8fFxuICAgICAgICBzdGFydCA+IGVuZFxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYEludmFsaWQgY3JvbiBmaWVsZDogJHtzZWdtZW50fWApO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCB2YWx1ZSA9IHN0YXJ0OyB2YWx1ZSA8PSBlbmQ7IHZhbHVlICs9IHN0ZXApIHtcbiAgICAgICAgdmFsdWVzLmFkZCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFsuLi52YWx1ZXNdLnNvcnQoKGEsIGIpID0+IGEgLSBiKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwYW5kQ3JvbkRhdGVzKFxuICAgIGNyb246IHN0cmluZyxcbiAgICBzdGFydDogRGF0ZSxcbiAgICB0aW1lem9uZTogc3RyaW5nLFxuICAgIG1heGltdW06IG51bWJlcixcbiAgICB1bnRpbD86IERhdGVcbiAgKTogRGF0ZVtdIHtcbiAgICBjb25zdCBpbnRlcnZhbCA9IENyb25FeHByZXNzaW9uUGFyc2VyLnBhcnNlKGNyb24sIHtcbiAgICAgIGN1cnJlbnREYXRlOiBzdGFydCxcbiAgICAgIHR6OiB0aW1lem9uZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IG9jY3VycmVuY2VzOiBEYXRlW10gPSBbXTtcblxuICAgIHdoaWxlIChvY2N1cnJlbmNlcy5sZW5ndGggPCBtYXhpbXVtKSB7XG4gICAgICBjb25zdCBuZXh0ID0gaW50ZXJ2YWwubmV4dCgpLnRvRGF0ZSgpO1xuXG4gICAgICBpZiAodW50aWwgJiYgbmV4dCA+IHVudGlsKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBvY2N1cnJlbmNlcy5wdXNoKG5leHQpO1xuICAgIH1cblxuICAgIGlmIChvY2N1cnJlbmNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJUaGUgY3JvbiBleHByZXNzaW9uIHByb2R1Y2VkIG5vIG9jY3VycmVuY2VzIGluIHRoZSByZXF1ZXN0ZWQgcmFuZ2UuXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9jY3VycmVuY2VzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaXJzdE9jY3VycmVuY2UoXG4gICAgY3Jvbjogc3RyaW5nLFxuICAgIHN0YXJ0OiBEYXRlLFxuICAgIHRpbWV6b25lOiBzdHJpbmdcbiAgKTogRGF0ZSB7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSBDcm9uRXhwcmVzc2lvblBhcnNlci5wYXJzZShjcm9uLCB7XG4gICAgICBjdXJyZW50RGF0ZTogc3RhcnQsXG4gICAgICB0ejogdGltZXpvbmUsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gaW50ZXJ2YWwubmV4dCgpLnRvRGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGb2xkZWRSRGF0ZUxpbmVzKGRhdGVzOiBEYXRlW10sIHRpbWV6b25lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgcHJlZml4ID0gYFJEQVRFO1RaSUQ9JHt0aGlzLmVzY2FwZVBhcmFtZXRlcih0aW1lem9uZSl9OmA7XG5cbiAgICBjb25zdCB2YWx1ZXMgPSBkYXRlcy5tYXAoKGRhdGUpID0+IHRoaXMuZm9ybWF0TG9jYWxEYXRlKGRhdGUsIHRpbWV6b25lKSk7XG5cbiAgICAvLyBLZWVwIGVhY2ggbG9naWNhbCBwcm9wZXJ0eSByZWFzb25hYmx5IHNpemVkIGJlZm9yZSBSRkMgbGluZSBmb2xkaW5nLlxuICAgIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcbiAgICBsZXQgY3VycmVudCA9IHByZWZpeDtcblxuICAgIGZvciAoY29uc3QgdmFsdWUgb2YgdmFsdWVzKSB7XG4gICAgICBjb25zdCBjYW5kaWRhdGUgPVxuICAgICAgICBjdXJyZW50ID09PSBwcmVmaXggPyBgJHtjdXJyZW50fSR7dmFsdWV9YCA6IGAke2N1cnJlbnR9LCR7dmFsdWV9YDtcblxuICAgICAgaWYgKG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShjYW5kaWRhdGUpLmxlbmd0aCA+IDcwMCkge1xuICAgICAgICByZXN1bHQucHVzaChjdXJyZW50KTtcbiAgICAgICAgY3VycmVudCA9IGAke3ByZWZpeH0ke3ZhbHVlfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJyZW50ID0gY2FuZGlkYXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjdXJyZW50ICE9PSBwcmVmaXgpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGN1cnJlbnQpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFV0Y0RhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRhdGVcbiAgICAgIC50b0lTT1N0cmluZygpXG4gICAgICAucmVwbGFjZSgvWy06XS9nLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoL1xcLlxcZHszfVokLywgXCJaXCIpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRMb2NhbERhdGUoZGF0ZTogRGF0ZSwgdGltZXpvbmU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHMgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImVuLUNBXCIsIHtcbiAgICAgIHRpbWVab25lOiB0aW1lem9uZSxcbiAgICAgIHllYXI6IFwibnVtZXJpY1wiLFxuICAgICAgbW9udGg6IFwiMi1kaWdpdFwiLFxuICAgICAgZGF5OiBcIjItZGlnaXRcIixcbiAgICAgIGhvdXI6IFwiMi1kaWdpdFwiLFxuICAgICAgbWludXRlOiBcIjItZGlnaXRcIixcbiAgICAgIHNlY29uZDogXCIyLWRpZ2l0XCIsXG4gICAgICBob3VyQ3ljbGU6IFwiaDIzXCIsXG4gICAgfSkuZm9ybWF0VG9QYXJ0cyhkYXRlKTtcblxuICAgIGNvbnN0IHZhbHVlcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIHBhcnRzXG4gICAgICAgIC5maWx0ZXIoKHBhcnQpID0+IHBhcnQudHlwZSAhPT0gXCJsaXRlcmFsXCIpXG4gICAgICAgIC5tYXAoKHBhcnQpID0+IFtwYXJ0LnR5cGUsIHBhcnQudmFsdWVdKVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgYCR7dmFsdWVzLnllYXJ9JHt2YWx1ZXMubW9udGh9JHt2YWx1ZXMuZGF5fWAgK1xuICAgICAgYFQke3ZhbHVlcy5ob3VyfSR7dmFsdWVzLm1pbnV0ZX0ke3ZhbHVlcy5zZWNvbmR9YFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZvbGRMaW5lcyhsaW5lczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGxpbmVzLmZsYXRNYXAoKGxpbmUpID0+IHRoaXMuZm9sZExpbmUobGluZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJGQyA1NTQ1IGNvbnRlbnQgbGluZXMgc2hvdWxkIGJlIGZvbGRlZCBhdCA3NSBvY3RldHMuXG4gICAqL1xuICBwcml2YXRlIGZvbGRMaW5lKGxpbmU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGxldCByZW1haW5pbmcgPSBsaW5lO1xuICAgIGxldCBmaXJzdCA9IHRydWU7XG5cbiAgICB3aGlsZSAoZW5jb2Rlci5lbmNvZGUoZmlyc3QgPyByZW1haW5pbmcgOiBgICR7cmVtYWluaW5nfWApLmxlbmd0aCA+IDc1KSB7XG4gICAgICBjb25zdCBwcmVmaXggPSBmaXJzdCA/IFwiXCIgOiBcIiBcIjtcbiAgICAgIGxldCBjaHVuayA9IFwiXCI7XG4gICAgICBsZXQgY29uc3VtZWQgPSAwO1xuXG4gICAgICBmb3IgKGNvbnN0IGNoYXJhY3RlciBvZiByZW1haW5pbmcpIHtcbiAgICAgICAgY29uc3QgY2FuZGlkYXRlID0gYCR7cHJlZml4fSR7Y2h1bmt9JHtjaGFyYWN0ZXJ9YDtcblxuICAgICAgICBpZiAoZW5jb2Rlci5lbmNvZGUoY2FuZGlkYXRlKS5sZW5ndGggPiA3NSkge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY2h1bmsgKz0gY2hhcmFjdGVyO1xuICAgICAgICBjb25zdW1lZCArPSBjaGFyYWN0ZXIubGVuZ3RoO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWNodW5rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuYWJsZSB0byBmb2xkIGlDYWxlbmRhciBjb250ZW50IGxpbmUuXCIpO1xuICAgICAgfVxuXG4gICAgICByZXN1bHQucHVzaChgJHtwcmVmaXh9JHtjaHVua31gKTtcbiAgICAgIHJlbWFpbmluZyA9IHJlbWFpbmluZy5zbGljZShjb25zdW1lZCk7XG4gICAgICBmaXJzdCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJlc3VsdC5wdXNoKGZpcnN0ID8gcmVtYWluaW5nIDogYCAke3JlbWFpbmluZ31gKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGVzY2FwZVRleHQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlXG4gICAgICAucmVwbGFjZSgvXFxcXC9nLCBcIlxcXFxcXFxcXCIpXG4gICAgICAucmVwbGFjZSgvXFxyP1xcbi9nLCBcIlxcXFxuXCIpXG4gICAgICAucmVwbGFjZSgvOy9nLCBcIlxcXFw7XCIpXG4gICAgICAucmVwbGFjZSgvLC9nLCBcIlxcXFwsXCIpO1xuICB9XG5cbiAgcHJpdmF0ZSBlc2NhcGVQcm9wZXJ0eSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvW1xcclxcbl0vZywgXCJcIik7XG4gIH1cblxuICBwcml2YXRlIGVzY2FwZVBhcmFtZXRlcih2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIS9eW0EtWmEtejAtOV8rLi8tXSskLy50ZXN0KHZhbHVlKSkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgVW5zYWZlIGlDYWxlbmRhciBwYXJhbWV0ZXI6ICR7dmFsdWV9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSB3ZWVrZGF5VG9JY3MoZGF5OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRheXMgPSBbXCJTVVwiLCBcIk1PXCIsIFwiVFVcIiwgXCJXRVwiLCBcIlRIXCIsIFwiRlJcIiwgXCJTQVwiXTtcbiAgICBjb25zdCByZXN1bHQgPSBkYXlzW2RheV07XG5cbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgSW52YWxpZCB3ZWVrZGF5OiAke2RheX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVVaWQoKTogc3RyaW5nIHtcbiAgICBjb25zdCByYW5kb20gPVxuICAgICAgZ2xvYmFsVGhpcy5jcnlwdG8/LnJhbmRvbVVVSUQ/LigpID8/XG4gICAgICBgJHtEYXRlLm5vdygpfS0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMTYpLnNsaWNlKDIpfWA7XG5cbiAgICByZXR1cm4gYCR7cmFuZG9tfUBjYWxlbmRhci1zZXJ2aWNlYDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRmlsZW5hbWUodGl0bGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2FmZVRpdGxlID0gdGl0bGVcbiAgICAgIC5ub3JtYWxpemUoXCJORktEXCIpXG4gICAgICAucmVwbGFjZSgvW15cXHcuLV0rL2csIFwiLVwiKVxuICAgICAgLnJlcGxhY2UoL14tK3wtKyQvZywgXCJcIilcbiAgICAgIC50b0xvd2VyQ2FzZSgpO1xuXG4gICAgcmV0dXJuIGAke3NhZmVUaXRsZSB8fCBcImNhbGVuZGFyLXJlbWluZGVyXCJ9Lmljc2A7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlT3B0aW9ucyhvcHRpb25zOiBDYWxlbmRhclJlbWluZGVyT3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICghb3B0aW9ucy5jcm9uPy50cmltKCkpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXCJBIGNyb24gZXhwcmVzc2lvbiBpcyByZXF1aXJlZC5cIik7XG4gICAgfVxuXG4gICAgaWYgKCFvcHRpb25zLnRpdGxlPy50cmltKCkpIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXCJBIGNhbGVuZGFyIHRpdGxlIGlzIHJlcXVpcmVkLlwiKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBvcHRpb25zLmR1cmF0aW9uTWludXRlcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAoIU51bWJlci5pc0Zpbml0ZShvcHRpb25zLmR1cmF0aW9uTWludXRlcykgfHxcbiAgICAgICAgb3B0aW9ucy5kdXJhdGlvbk1pbnV0ZXMgPD0gMClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXCJkdXJhdGlvbk1pbnV0ZXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby5cIik7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgb3B0aW9ucy5hbGFybU1pbnV0ZXNCZWZvcmUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgKCFOdW1iZXIuaXNJbnRlZ2VyKG9wdGlvbnMuYWxhcm1NaW51dGVzQmVmb3JlKSB8fFxuICAgICAgICBvcHRpb25zLmFsYXJtTWludXRlc0JlZm9yZSA8IDApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBcImFsYXJtTWludXRlc0JlZm9yZSBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIuXCJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgb3B0aW9ucy5tYXhPY2N1cnJlbmNlcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAoIU51bWJlci5pc0ludGVnZXIob3B0aW9ucy5tYXhPY2N1cnJlbmNlcykgfHwgb3B0aW9ucy5tYXhPY2N1cnJlbmNlcyA8PSAwKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcIm1heE9jY3VycmVuY2VzIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLlwiKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
393
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsZW5kYXJTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQ2FsZW5kYXJTZXJ2aWNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQUksVUFBVSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUk7SUFDakYsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3SCxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssVUFBVTtRQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztRQUMxSCxLQUFLLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLEdB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Q0FBQyxDQUFDO0FBRXBCLDg3dENBQTg3dEMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19kZWNvcmF0ZSA9ICh0aGlzICYmIHRoaXMuX19kZWNvcmF0ZSkgfHwgZnVuY3Rpb24gKGRlY29yYXRvcnMsIHRhcmdldCwga2V5LCBkZXNjKSB7XG4gICAgdmFyIGMgPSBhcmd1bWVudHMubGVuZ3RoLCByID0gYyA8IDMgPyB0YXJnZXQgOiBkZXNjID09PSBudWxsID8gZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpIDogZGVzYywgZDtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xuICAgIGVsc2UgZm9yICh2YXIgaSA9IGRlY29yYXRvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIGlmIChkID0gZGVjb3JhdG9yc1tpXSkgciA9IChjIDwgMyA/IGQocikgOiBjID4gMyA/IGQodGFyZ2V0LCBrZXksIHIpIDogZCh0YXJnZXQsIGtleSkpIHx8IHI7XG4gICAgcmV0dXJuIGMgPiAzICYmIHIgJiYgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCByKSwgcjtcbn07XG52YXIgX19tZXRhZGF0YSA9ICh0aGlzICYmIHRoaXMuX19tZXRhZGF0YSkgfHwgZnVuY3Rpb24gKGssIHYpIHtcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEoaywgdik7XG59O1xuaW1wb3J0IHsgc2VydmljZSwgU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQ3JvbkV4cHJlc3Npb25QYXJzZXIgfSBmcm9tIFwiY3Jvbi1wYXJzZXJcIjtcbmltcG9ydCB7IE9wZXJhdGlvbktleXMsIFZhbGlkYXRpb25FcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSBcIkBkZWNhZi10cy9pbmplY3RhYmxlLWRlY29yYXRvcnNcIjtcbi8qKlxuICogQ3JlYXRlcyBpbnRlcm9wZXJhYmxlIGlDYWxlbmRhciBtZWRpY2F0aW9uIHJlbWluZGVycy5cbiAqXG4gKiBUaGUgc2VydmljZSBoYXMgbm8gc3RhdGljIE5vZGUgaW1wb3J0cywgc28gdGhlIHNhbWUgbW9kdWxlIGNhbiBiZSBidW5kbGVkXG4gKiBmb3IgYnJvd3NlcnMuIE5vZGUtb25seSBmaWxlc3lzdGVtIGJlaGF2aW9yIGlzIGxvYWRlZCBkeW5hbWljYWxseS5cbiAqL1xubGV0IENhbGVuZGFyU2VydmljZSA9IGNsYXNzIENhbGVuZGFyU2VydmljZSBleHRlbmRzIFNlcnZpY2Uge1xuICAgIGFzeW5jIGNyZWF0ZU1lZGljYXRpb25SZW1pbmRlcihvcHRpb25zLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgbG9nLCBjdHggfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBPcGVyYXRpb25LZXlzLkNSRUFURSwgdHJ1ZSkpLmZvcih0aGlzLmNyZWF0ZU1lZGljYXRpb25SZW1pbmRlcik7XG4gICAgICAgIHRoaXMudmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCBzdGFydCA9IG9wdGlvbnMuc3RhcnQgPyBuZXcgRGF0ZShvcHRpb25zLnN0YXJ0KSA6IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IHRpbWV6b25lID0gb3B0aW9ucy50aW1lem9uZSA/P1xuICAgICAgICAgICAgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lID8/XG4gICAgICAgICAgICBcIlVUQ1wiO1xuICAgICAgICBjb25zdCBkdXJhdGlvbk1pbnV0ZXMgPSBvcHRpb25zLmR1cmF0aW9uTWludXRlcyA/PyAxNTtcbiAgICAgICAgY29uc3QgYWxhcm1NaW51dGVzQmVmb3JlID0gb3B0aW9ucy5hbGFybU1pbnV0ZXNCZWZvcmUgPz8gMTA7XG4gICAgICAgIGNvbnN0IHVpZCA9IG9wdGlvbnMudWlkID8/IHRoaXMuY3JlYXRlVWlkKCk7XG4gICAgICAgIGNvbnN0IHJlY3VycmVuY2UgPSB0aGlzLmNyZWF0ZVJlY3VycmVuY2Uob3B0aW9ucywgc3RhcnQsIHRpbWV6b25lLCBjdHgpO1xuICAgICAgICBjb25zdCBmaXJzdE9jY3VycmVuY2UgPSByZWN1cnJlbmNlLnJkYXRlcz8uWzBdID8/XG4gICAgICAgICAgICB0aGlzLmdldEZpcnN0T2NjdXJyZW5jZShvcHRpb25zLmNyb24sIHN0YXJ0LCB0aW1lem9uZSk7XG4gICAgICAgIGNvbnN0IGVuZCA9IG5ldyBEYXRlKGZpcnN0T2NjdXJyZW5jZS5nZXRUaW1lKCkgKyBkdXJhdGlvbk1pbnV0ZXMgKiA2MF8wMDApO1xuICAgICAgICBjb25zdCBsaW5lcyA9IFtcbiAgICAgICAgICAgIFwiQkVHSU46VkNBTEVOREFSXCIsXG4gICAgICAgICAgICBcIlZFUlNJT046Mi4wXCIsXG4gICAgICAgICAgICBcIkNBTFNDQUxFOkdSRUdPUklBTlwiLFxuICAgICAgICAgICAgXCJQUk9ESUQ6LS8vUFRQLy9DYWxlbmRhciBTZXJ2aWNlLy9FTlwiLFxuICAgICAgICAgICAgXCJNRVRIT0Q6UFVCTElTSFwiLFxuICAgICAgICAgICAgXCJCRUdJTjpWRVZFTlRcIixcbiAgICAgICAgICAgIGBVSUQ6JHt0aGlzLmVzY2FwZVByb3BlcnR5KHVpZCl9YCxcbiAgICAgICAgICAgIGBEVFNUQU1QOiR7dGhpcy5mb3JtYXRVdGNEYXRlKG5ldyBEYXRlKCkpfWAsXG4gICAgICAgICAgICBgRFRTVEFSVDtUWklEPSR7dGhpcy5lc2NhcGVQYXJhbWV0ZXIodGltZXpvbmUpfToke3RoaXMuZm9ybWF0TG9jYWxEYXRlKGZpcnN0T2NjdXJyZW5jZSwgdGltZXpvbmUpfWAsXG4gICAgICAgICAgICBgRFRFTkQ7VFpJRD0ke3RoaXMuZXNjYXBlUGFyYW1ldGVyKHRpbWV6b25lKX06JHt0aGlzLmZvcm1hdExvY2FsRGF0ZShlbmQsIHRpbWV6b25lKX1gLFxuICAgICAgICAgICAgYFNVTU1BUlk6JHt0aGlzLmVzY2FwZVRleHQob3B0aW9ucy50aXRsZSl9YCxcbiAgICAgICAgXTtcbiAgICAgICAgaWYgKG9wdGlvbnMuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIGxpbmVzLnB1c2goYERFU0NSSVBUSU9OOiR7dGhpcy5lc2NhcGVUZXh0KG9wdGlvbnMuZGVzY3JpcHRpb24pfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmxvY2F0aW9uKSB7XG4gICAgICAgICAgICBsaW5lcy5wdXNoKGBMT0NBVElPTjoke3RoaXMuZXNjYXBlVGV4dChvcHRpb25zLmxvY2F0aW9uKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVjdXJyZW5jZS5ycnVsZSkge1xuICAgICAgICAgICAgbGluZXMucHVzaChgUlJVTEU6JHtyZWN1cnJlbmNlLnJydWxlfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWN1cnJlbmNlLnJkYXRlcyAmJiByZWN1cnJlbmNlLnJkYXRlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAvLyBEVFNUQVJUIGFscmVhZHkgcmVwcmVzZW50cyB0aGUgZmlyc3Qgb2NjdXJyZW5jZS5cbiAgICAgICAgICAgIGNvbnN0IHJlbWFpbmluZyA9IHJlY3VycmVuY2UucmRhdGVzLnNsaWNlKDEpO1xuICAgICAgICAgICAgbGluZXMucHVzaCguLi50aGlzLmNyZWF0ZUZvbGRlZFJEYXRlTGluZXMocmVtYWluaW5nLCB0aW1lem9uZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLm9yZ2FuaXplckVtYWlsKSB7XG4gICAgICAgICAgICBsaW5lcy5wdXNoKGBPUkdBTklaRVI6bWFpbHRvOiR7dGhpcy5lc2NhcGVQcm9wZXJ0eShvcHRpb25zLm9yZ2FuaXplckVtYWlsKX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5hdHRlbmRlZUVtYWlsKSB7XG4gICAgICAgICAgICBsaW5lcy5wdXNoKFtcbiAgICAgICAgICAgICAgICBcIkFUVEVOREVFXCIsXG4gICAgICAgICAgICAgICAgXCJDVVRZUEU9SU5ESVZJRFVBTFwiLFxuICAgICAgICAgICAgICAgIFwiUk9MRT1SRVEtUEFSVElDSVBBTlRcIixcbiAgICAgICAgICAgICAgICBcIlBBUlRTVEFUPU5FRURTLUFDVElPTlwiLFxuICAgICAgICAgICAgICAgIFwiUlNWUD1UUlVFXCIsXG4gICAgICAgICAgICBdLmpvaW4oXCI7XCIpICsgYDptYWlsdG86JHt0aGlzLmVzY2FwZVByb3BlcnR5KG9wdGlvbnMuYXR0ZW5kZWVFbWFpbCl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgbGluZXMucHVzaChcIkJFR0lOOlZBTEFSTVwiLCBcIkFDVElPTjpESVNQTEFZXCIsIGBUUklHR0VSOi1QVCR7YWxhcm1NaW51dGVzQmVmb3JlfU1gLCBgREVTQ1JJUFRJT046JHt0aGlzLmVzY2FwZVRleHQob3B0aW9ucy50aXRsZSl9YCwgXCJFTkQ6VkFMQVJNXCIsIFwiRU5EOlZFVkVOVFwiLCBcIkVORDpWQ0FMRU5EQVJcIik7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmZvbGRMaW5lcyhsaW5lcykuam9pbihcIlxcclxcblwiKSArIFwiXFxyXFxuXCI7XG4gICAgICAgIGNvbnN0IGZpbGVuYW1lID0gdGhpcy5jcmVhdGVGaWxlbmFtZShvcHRpb25zLnRpdGxlKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYENhbGVuZGFyIGV2ZW50IGNyZWF0ZWQ6ICR7ZmlsZW5hbWV9YCk7XG4gICAgICAgIGxvZy5kZWJ1ZyhgQ29udGVudCBmb3IgJHtmaWxlbmFtZX06ICR7Y29udGVudH1gKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgIG1pbWVUeXBlOiBcInRleHQvY2FsZW5kYXJcIixcbiAgICAgICAgICAgIGJ5dGVzOiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoY29udGVudCksXG4gICAgICAgIH07XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZUFuZFN0b3JlUmVtaW5kZXIob3B0aW9ucywgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eCB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIE9wZXJhdGlvbktleXMuQ1JFQVRFLCB0cnVlKSkuZm9yKHRoaXMuY3JlYXRlQW5kU3RvcmVSZW1pbmRlcik7XG4gICAgICAgIGNvbnN0IGZpbGUgPSBhd2FpdCB0aGlzLmNyZWF0ZU1lZGljYXRpb25SZW1pbmRlcihvcHRpb25zLCBjdHgpO1xuICAgICAgICBhd2FpdCB0aGlzLndyaXRlci53cml0ZShmaWxlLCBjdHgpO1xuICAgIH1cbiAgICBjcmVhdGVSZWN1cnJlbmNlKG9wdGlvbnMsIHN0YXJ0LCB0aW1lem9uZSwgY3R4KSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IHRoaXMucGFyc2VTaW1wbGVDcm9uKG9wdGlvbnMuY3JvbiwgY3R4KTtcbiAgICAgICAgY29uc3QgdW50aWwgPSBvcHRpb25zLnVudGlsID8gdGhpcy5mb3JtYXRVdGNEYXRlKG9wdGlvbnMudW50aWwpIDogdW5kZWZpbmVkO1xuICAgICAgICBpZiAocGFyc2VkKSB7XG4gICAgICAgICAgICBjb25zdCBycnVsZSA9IHRoaXMuY29udmVydFNpbXBsZUNyb25Ub1JSdWxlKHBhcnNlZCwgdW50aWwpO1xuICAgICAgICAgICAgaWYgKHJydWxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgcnJ1bGUgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmRhdGVzOiB0aGlzLmV4cGFuZENyb25EYXRlcyhvcHRpb25zLmNyb24sIHN0YXJ0LCB0aW1lem9uZSwgb3B0aW9ucy5tYXhPY2N1cnJlbmNlcyA/PyAzNjUsIG9wdGlvbnMudW50aWwpLFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyB0aGUgY29tbW9ubHkgbmVlZGVkIG1lZGljYXRpb24gc2NoZWR1bGVzLlxuICAgICAqXG4gICAgICogVW5zdXBwb3J0ZWQgY3JvbiBzaGFwZXMgZmFsbCBiYWNrIHRvIGV4cGxpY2l0IFJEQVRFIG9jY3VycmVuY2VzLlxuICAgICAqL1xuICAgIGNvbnZlcnRTaW1wbGVDcm9uVG9SUnVsZShjcm9uLCB1bnRpbCkge1xuICAgICAgICBjb25zdCBzdWZmaXggPSB1bnRpbCA/IGA7VU5USUw9JHt1bnRpbH1gIDogXCJcIjtcbiAgICAgICAgY29uc3QgbWludXRlcyA9IGNyb24ubWludXRlLmpvaW4oXCIsXCIpO1xuICAgICAgICBjb25zdCBob3VycyA9IGNyb24uaG91ci5qb2luKFwiLFwiKTtcbiAgICAgICAgY29uc3QgdGltZVBhcnRzID0gYEJZSE9VUj0ke2hvdXJzfTtCWU1JTlVURT0ke21pbnV0ZXN9O0JZU0VDT05EPTBgO1xuICAgICAgICBjb25zdCBldmVyeURheSA9IGNyb24uZGF5T2ZNb250aCA9PT0gbnVsbCAmJlxuICAgICAgICAgICAgY3Jvbi5tb250aCA9PT0gbnVsbCAmJlxuICAgICAgICAgICAgY3Jvbi5kYXlPZldlZWsgPT09IG51bGw7XG4gICAgICAgIGlmIChldmVyeURheSkge1xuICAgICAgICAgICAgcmV0dXJuIGBGUkVRPURBSUxZOyR7dGltZVBhcnRzfSR7c3VmZml4fWA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgd2Vla2x5ID0gY3Jvbi5kYXlPZk1vbnRoID09PSBudWxsICYmXG4gICAgICAgICAgICBjcm9uLm1vbnRoID09PSBudWxsICYmXG4gICAgICAgICAgICBjcm9uLmRheU9mV2VlayAhPT0gbnVsbDtcbiAgICAgICAgaWYgKHdlZWtseSkge1xuICAgICAgICAgICAgY29uc3Qgd2Vla2RheXMgPSBjcm9uXG4gICAgICAgICAgICAgICAgLmRheU9mV2Vlay5tYXAoKGRheSkgPT4gdGhpcy53ZWVrZGF5VG9JY3MoZGF5KSlcbiAgICAgICAgICAgICAgICAuam9pbihcIixcIik7XG4gICAgICAgICAgICByZXR1cm4gYEZSRVE9V0VFS0xZO0JZREFZPSR7d2Vla2RheXN9OyR7dGltZVBhcnRzfSR7c3VmZml4fWA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbW9udGhseSA9IGNyb24uZGF5T2ZNb250aCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgY3Jvbi5tb250aCA9PT0gbnVsbCAmJlxuICAgICAgICAgICAgY3Jvbi5kYXlPZldlZWsgPT09IG51bGw7XG4gICAgICAgIGlmIChtb250aGx5KSB7XG4gICAgICAgICAgICByZXR1cm4gKGBGUkVRPU1PTlRITFk7QllNT05USERBWT0ke2Nyb24uZGF5T2ZNb250aC5qb2luKFwiLFwiKX07YCArXG4gICAgICAgICAgICAgICAgYCR7dGltZVBhcnRzfSR7c3VmZml4fWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHllYXJseSA9IGNyb24uZGF5T2ZNb250aCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgY3Jvbi5tb250aCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgY3Jvbi5kYXlPZldlZWsgPT09IG51bGw7XG4gICAgICAgIGlmICh5ZWFybHkpIHtcbiAgICAgICAgICAgIHJldHVybiAoYEZSRVE9WUVBUkxZO0JZTU9OVEg9JHtjcm9uLm1vbnRoLmpvaW4oXCIsXCIpfTtgICtcbiAgICAgICAgICAgICAgICBgQllNT05USERBWT0ke2Nyb24uZGF5T2ZNb250aC5qb2luKFwiLFwiKX07YCArXG4gICAgICAgICAgICAgICAgYCR7dGltZVBhcnRzfSR7c3VmZml4fWApO1xuICAgICAgICB9XG4gICAgICAgIC8vIENyb24gZGF5LW9mLW1vbnRoL2RheS1vZi13ZWVrIGNvbWJpbmF0aW9ucyBoYXZlIE9SLWxpa2Ugc2VtYW50aWNzXG4gICAgICAgIC8vIGluIG1hbnkgaW1wbGVtZW50YXRpb25zIGFuZCBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgc2FmZWx5IGFzIG9uZSBSUlVMRS5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcGFyc2VTaW1wbGVDcm9uKGV4cHJlc3Npb24sIGN0eCkge1xuICAgICAgICBjb25zdCB7IGxvZyB9ID0gdGhpcy5sb2dDdHgoW2N0eF0sIHRoaXMucGFyc2VTaW1wbGVDcm9uKTtcbiAgICAgICAgY29uc3QgZmllbGRzID0gZXhwcmVzc2lvbi50cmltKCkuc3BsaXQoL1xccysvKTtcbiAgICAgICAgaWYgKGZpZWxkcy5sZW5ndGggIT09IDUpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgW21pbnV0ZSwgaG91ciwgZGF5T2ZNb250aCwgbW9udGgsIGRheU9mV2Vla10gPSBmaWVsZHM7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG1pbnV0ZTogdGhpcy5wYXJzZUNyb25GaWVsZChtaW51dGUsIDAsIDU5LCBjdHgpLFxuICAgICAgICAgICAgICAgIGhvdXI6IHRoaXMucGFyc2VDcm9uRmllbGQoaG91ciwgMCwgMjMsIGN0eCksXG4gICAgICAgICAgICAgICAgZGF5T2ZNb250aDogZGF5T2ZNb250aCA9PT0gXCIqXCJcbiAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5wYXJzZUNyb25GaWVsZChkYXlPZk1vbnRoLCAxLCAzMSwgY3R4KSxcbiAgICAgICAgICAgICAgICBtb250aDogbW9udGggPT09IFwiKlwiID8gbnVsbCA6IHRoaXMucGFyc2VDcm9uRmllbGQobW9udGgsIDEsIDEyLCBjdHgpLFxuICAgICAgICAgICAgICAgIGRheU9mV2VlazogZGF5T2ZXZWVrID09PSBcIipcIlxuICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnBhcnNlQ3JvbkZpZWxkKGRheU9mV2VlaywgMCwgNywgY3R4KS5tYXAoKHZhbHVlKSA9PiB2YWx1ZSA9PT0gNyA/IDAgOiB2YWx1ZSksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhgRmFpbGVkIHRvIGdlbmVyYXRlIHNpbXBsZSBjcm9uIGV4cHJlc3Npb24gZm9yICR7ZXhwcmVzc2lvbn1gKTtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGFyc2VDcm9uRmllbGQoZmllbGQsIG1pbmltdW0sIG1heGltdW0sIFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBjdHgpIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gbmV3IFNldCgpO1xuICAgICAgICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgZmllbGQuc3BsaXQoXCIsXCIpKSB7XG4gICAgICAgICAgICBjb25zdCBbcmFuZ2VFeHByZXNzaW9uLCBzdGVwRXhwcmVzc2lvbl0gPSBzZWdtZW50LnNwbGl0KFwiL1wiKTtcbiAgICAgICAgICAgIGNvbnN0IHN0ZXAgPSBzdGVwRXhwcmVzc2lvbiA9PT0gdW5kZWZpbmVkID8gMSA6IE51bWJlci5wYXJzZUludChzdGVwRXhwcmVzc2lvbiwgMTApO1xuICAgICAgICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHN0ZXApIHx8IHN0ZXAgPD0gMCkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYEludmFsaWQgY3JvbiBzdGVwOiAke3NlZ21lbnR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgc3RhcnQ7XG4gICAgICAgICAgICBsZXQgZW5kO1xuICAgICAgICAgICAgaWYgKHJhbmdlRXhwcmVzc2lvbiA9PT0gXCIqXCIpIHtcbiAgICAgICAgICAgICAgICBzdGFydCA9IG1pbmltdW07XG4gICAgICAgICAgICAgICAgZW5kID0gbWF4aW11bTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHJhbmdlRXhwcmVzc2lvbi5pbmNsdWRlcyhcIi1cIikpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBib3VuZHMgPSByYW5nZUV4cHJlc3Npb24uc3BsaXQoXCItXCIpO1xuICAgICAgICAgICAgICAgIGlmIChib3VuZHMubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYEludmFsaWQgY3JvbiByYW5nZTogJHtzZWdtZW50fWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdGFydCA9IE51bWJlci5wYXJzZUludChib3VuZHNbMF0sIDEwKTtcbiAgICAgICAgICAgICAgICBlbmQgPSBOdW1iZXIucGFyc2VJbnQoYm91bmRzWzFdLCAxMCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdGFydCA9IE51bWJlci5wYXJzZUludChyYW5nZUV4cHJlc3Npb24sIDEwKTtcbiAgICAgICAgICAgICAgICBlbmQgPSBzdGFydDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcihzdGFydCkgfHxcbiAgICAgICAgICAgICAgICAhTnVtYmVyLmlzSW50ZWdlcihlbmQpIHx8XG4gICAgICAgICAgICAgICAgc3RhcnQgPCBtaW5pbXVtIHx8XG4gICAgICAgICAgICAgICAgZW5kID4gbWF4aW11bSB8fFxuICAgICAgICAgICAgICAgIHN0YXJ0ID4gZW5kKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgSW52YWxpZCBjcm9uIGZpZWxkOiAke3NlZ21lbnR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKGxldCB2YWx1ZSA9IHN0YXJ0OyB2YWx1ZSA8PSBlbmQ7IHZhbHVlICs9IHN0ZXApIHtcbiAgICAgICAgICAgICAgICB2YWx1ZXMuYWRkKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gWy4uLnZhbHVlc10uc29ydCgoYSwgYikgPT4gYSAtIGIpO1xuICAgIH1cbiAgICBleHBhbmRDcm9uRGF0ZXMoY3Jvbiwgc3RhcnQsIHRpbWV6b25lLCBtYXhpbXVtLCB1bnRpbCkge1xuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IENyb25FeHByZXNzaW9uUGFyc2VyLnBhcnNlKGNyb24sIHtcbiAgICAgICAgICAgIGN1cnJlbnREYXRlOiBzdGFydCxcbiAgICAgICAgICAgIHR6OiB0aW1lem9uZSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG9jY3VycmVuY2VzID0gW107XG4gICAgICAgIHdoaWxlIChvY2N1cnJlbmNlcy5sZW5ndGggPCBtYXhpbXVtKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gaW50ZXJ2YWwubmV4dCgpLnRvRGF0ZSgpO1xuICAgICAgICAgICAgaWYgKHVudGlsICYmIG5leHQgPiB1bnRpbCkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb2NjdXJyZW5jZXMucHVzaChuZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2NjdXJyZW5jZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGUgY3JvbiBleHByZXNzaW9uIHByb2R1Y2VkIG5vIG9jY3VycmVuY2VzIGluIHRoZSByZXF1ZXN0ZWQgcmFuZ2UuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvY2N1cnJlbmNlcztcbiAgICB9XG4gICAgZ2V0Rmlyc3RPY2N1cnJlbmNlKGNyb24sIHN0YXJ0LCB0aW1lem9uZSkge1xuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IENyb25FeHByZXNzaW9uUGFyc2VyLnBhcnNlKGNyb24sIHtcbiAgICAgICAgICAgIGN1cnJlbnREYXRlOiBzdGFydCxcbiAgICAgICAgICAgIHR6OiB0aW1lem9uZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBpbnRlcnZhbC5uZXh0KCkudG9EYXRlKCk7XG4gICAgfVxuICAgIGNyZWF0ZUZvbGRlZFJEYXRlTGluZXMoZGF0ZXMsIHRpbWV6b25lKSB7XG4gICAgICAgIGNvbnN0IHByZWZpeCA9IGBSREFURTtUWklEPSR7dGhpcy5lc2NhcGVQYXJhbWV0ZXIodGltZXpvbmUpfTpgO1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBkYXRlcy5tYXAoKGRhdGUpID0+IHRoaXMuZm9ybWF0TG9jYWxEYXRlKGRhdGUsIHRpbWV6b25lKSk7XG4gICAgICAgIC8vIEtlZXAgZWFjaCBsb2dpY2FsIHByb3BlcnR5IHJlYXNvbmFibHkgc2l6ZWQgYmVmb3JlIFJGQyBsaW5lIGZvbGRpbmcuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBsZXQgY3VycmVudCA9IHByZWZpeDtcbiAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiB2YWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9IGN1cnJlbnQgPT09IHByZWZpeCA/IGAke2N1cnJlbnR9JHt2YWx1ZX1gIDogYCR7Y3VycmVudH0sJHt2YWx1ZX1gO1xuICAgICAgICAgICAgaWYgKG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShjYW5kaWRhdGUpLmxlbmd0aCA+IDcwMCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBgJHtwcmVmaXh9JHt2YWx1ZX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9IGNhbmRpZGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY3VycmVudCAhPT0gcHJlZml4KSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChjdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBmb3JtYXRVdGNEYXRlKGRhdGUpIHtcbiAgICAgICAgcmV0dXJuIGRhdGVcbiAgICAgICAgICAgIC50b0lTT1N0cmluZygpXG4gICAgICAgICAgICAucmVwbGFjZSgvWy06XS9nLCBcIlwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL1xcLlxcZHszfVokLywgXCJaXCIpO1xuICAgIH1cbiAgICBmb3JtYXRMb2NhbERhdGUoZGF0ZSwgdGltZXpvbmUpIHtcbiAgICAgICAgY29uc3QgcGFydHMgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdChcImVuLUNBXCIsIHtcbiAgICAgICAgICAgIHRpbWVab25lOiB0aW1lem9uZSxcbiAgICAgICAgICAgIHllYXI6IFwibnVtZXJpY1wiLFxuICAgICAgICAgICAgbW9udGg6IFwiMi1kaWdpdFwiLFxuICAgICAgICAgICAgZGF5OiBcIjItZGlnaXRcIixcbiAgICAgICAgICAgIGhvdXI6IFwiMi1kaWdpdFwiLFxuICAgICAgICAgICAgbWludXRlOiBcIjItZGlnaXRcIixcbiAgICAgICAgICAgIHNlY29uZDogXCIyLWRpZ2l0XCIsXG4gICAgICAgICAgICBob3VyQ3ljbGU6IFwiaDIzXCIsXG4gICAgICAgIH0pLmZvcm1hdFRvUGFydHMoZGF0ZSk7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IE9iamVjdC5mcm9tRW50cmllcyhwYXJ0c1xuICAgICAgICAgICAgLmZpbHRlcigocGFydCkgPT4gcGFydC50eXBlICE9PSBcImxpdGVyYWxcIilcbiAgICAgICAgICAgIC5tYXAoKHBhcnQpID0+IFtwYXJ0LnR5cGUsIHBhcnQudmFsdWVdKSk7XG4gICAgICAgIHJldHVybiAoYCR7dmFsdWVzLnllYXJ9JHt2YWx1ZXMubW9udGh9JHt2YWx1ZXMuZGF5fWAgK1xuICAgICAgICAgICAgYFQke3ZhbHVlcy5ob3VyfSR7dmFsdWVzLm1pbnV0ZX0ke3ZhbHVlcy5zZWNvbmR9YCk7XG4gICAgfVxuICAgIGZvbGRMaW5lcyhsaW5lcykge1xuICAgICAgICByZXR1cm4gbGluZXMuZmxhdE1hcCgobGluZSkgPT4gdGhpcy5mb2xkTGluZShsaW5lKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJGQyA1NTQ1IGNvbnRlbnQgbGluZXMgc2hvdWxkIGJlIGZvbGRlZCBhdCA3NSBvY3RldHMuXG4gICAgICovXG4gICAgZm9sZExpbmUobGluZSkge1xuICAgICAgICBjb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuICAgICAgICBsZXQgcmVtYWluaW5nID0gbGluZTtcbiAgICAgICAgbGV0IGZpcnN0ID0gdHJ1ZTtcbiAgICAgICAgd2hpbGUgKGVuY29kZXIuZW5jb2RlKGZpcnN0ID8gcmVtYWluaW5nIDogYCAke3JlbWFpbmluZ31gKS5sZW5ndGggPiA3NSkge1xuICAgICAgICAgICAgY29uc3QgcHJlZml4ID0gZmlyc3QgPyBcIlwiIDogXCIgXCI7XG4gICAgICAgICAgICBsZXQgY2h1bmsgPSBcIlwiO1xuICAgICAgICAgICAgbGV0IGNvbnN1bWVkID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2hhcmFjdGVyIG9mIHJlbWFpbmluZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9IGAke3ByZWZpeH0ke2NodW5rfSR7Y2hhcmFjdGVyfWA7XG4gICAgICAgICAgICAgICAgaWYgKGVuY29kZXIuZW5jb2RlKGNhbmRpZGF0ZSkubGVuZ3RoID4gNzUpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNodW5rICs9IGNoYXJhY3RlcjtcbiAgICAgICAgICAgICAgICBjb25zdW1lZCArPSBjaGFyYWN0ZXIubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFjaHVuaykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuYWJsZSB0byBmb2xkIGlDYWxlbmRhciBjb250ZW50IGxpbmUuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0LnB1c2goYCR7cHJlZml4fSR7Y2h1bmt9YCk7XG4gICAgICAgICAgICByZW1haW5pbmcgPSByZW1haW5pbmcuc2xpY2UoY29uc3VtZWQpO1xuICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHVzaChmaXJzdCA/IHJlbWFpbmluZyA6IGAgJHtyZW1haW5pbmd9YCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGVzY2FwZVRleHQodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxcXC9nLCBcIlxcXFxcXFxcXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvXFxyP1xcbi9nLCBcIlxcXFxuXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvOy9nLCBcIlxcXFw7XCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvLC9nLCBcIlxcXFwsXCIpO1xuICAgIH1cbiAgICBlc2NhcGVQcm9wZXJ0eSh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvW1xcclxcbl0vZywgXCJcIik7XG4gICAgfVxuICAgIGVzY2FwZVBhcmFtZXRlcih2YWx1ZSkge1xuICAgICAgICBpZiAoIS9eW0EtWmEtejAtOV8rLi8tXSskLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgVW5zYWZlIGlDYWxlbmRhciBwYXJhbWV0ZXI6ICR7dmFsdWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICB3ZWVrZGF5VG9JY3MoZGF5KSB7XG4gICAgICAgIGNvbnN0IGRheXMgPSBbXCJTVVwiLCBcIk1PXCIsIFwiVFVcIiwgXCJXRVwiLCBcIlRIXCIsIFwiRlJcIiwgXCJTQVwiXTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZGF5c1tkYXldO1xuICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgSW52YWxpZCB3ZWVrZGF5OiAke2RheX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBjcmVhdGVVaWQoKSB7XG4gICAgICAgIGNvbnN0IHJhbmRvbSA9IGdsb2JhbFRoaXMuY3J5cHRvPy5yYW5kb21VVUlEPy4oKSA/P1xuICAgICAgICAgICAgYCR7RGF0ZS5ub3coKX0tJHtNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDE2KS5zbGljZSgyKX1gO1xuICAgICAgICByZXR1cm4gYCR7cmFuZG9tfUBjYWxlbmRhci1zZXJ2aWNlYDtcbiAgICB9XG4gICAgY3JlYXRlRmlsZW5hbWUodGl0bGUpIHtcbiAgICAgICAgY29uc3Qgc2FmZVRpdGxlID0gdGl0bGVcbiAgICAgICAgICAgIC5ub3JtYWxpemUoXCJORktEXCIpXG4gICAgICAgICAgICAucmVwbGFjZSgvW15cXHcuLV0rL2csIFwiLVwiKVxuICAgICAgICAgICAgLnJlcGxhY2UoL14tK3wtKyQvZywgXCJcIilcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICByZXR1cm4gYCR7c2FmZVRpdGxlIHx8IFwiY2FsZW5kYXItcmVtaW5kZXJcIn0uaWNzYDtcbiAgICB9XG4gICAgdmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCFvcHRpb25zLmNyb24/LnRyaW0oKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcIkEgY3JvbiBleHByZXNzaW9uIGlzIHJlcXVpcmVkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW9wdGlvbnMudGl0bGU/LnRyaW0oKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcIkEgY2FsZW5kYXIgdGl0bGUgaXMgcmVxdWlyZWQuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLmR1cmF0aW9uTWludXRlcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAoIU51bWJlci5pc0Zpbml0ZShvcHRpb25zLmR1cmF0aW9uTWludXRlcykgfHxcbiAgICAgICAgICAgICAgICBvcHRpb25zLmR1cmF0aW9uTWludXRlcyA8PSAwKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcImR1cmF0aW9uTWludXRlcyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5hbGFybU1pbnV0ZXNCZWZvcmUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgKCFOdW1iZXIuaXNJbnRlZ2VyKG9wdGlvbnMuYWxhcm1NaW51dGVzQmVmb3JlKSB8fFxuICAgICAgICAgICAgICAgIG9wdGlvbnMuYWxhcm1NaW51dGVzQmVmb3JlIDwgMCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoXCJhbGFybU1pbnV0ZXNCZWZvcmUgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0aW9ucy5tYXhPY2N1cnJlbmNlcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAoIU51bWJlci5pc0ludGVnZXIob3B0aW9ucy5tYXhPY2N1cnJlbmNlcykgfHwgb3B0aW9ucy5tYXhPY2N1cnJlbmNlcyA8PSAwKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihcIm1heE9jY3VycmVuY2VzIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLlwiKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5fX2RlY29yYXRlKFtcbiAgICBpbmplY3QoJ1wiY2FsZW5kYXItd3JpdGVyXCInKSxcbiAgICBfX21ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgT2JqZWN0KVxuXSwgQ2FsZW5kYXJTZXJ2aWNlLnByb3RvdHlwZSwgXCJ3cml0ZXJcIiwgdm9pZCAwKTtcbkNhbGVuZGFyU2VydmljZSA9IF9fZGVjb3JhdGUoW1xuICAgIHNlcnZpY2UoKVxuXSwgQ2FsZW5kYXJTZXJ2aWNlKTtcbmV4cG9ydCB7IENhbGVuZGFyU2VydmljZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUTJGc1pXNWtZWEpUWlhKMmFXTmxMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dmMzSmpMMk5oYkdWdVpHRnlMME5oYkdWdVpHRnlVMlZ5ZG1salpTNTBjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lPenM3T3pzN096czdRVUZCUVN4UFFVRlBMRVZCUVN0Q0xFOUJRVThzUlVGQlJTeFBRVUZQTEVWQlFVVXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU12UlN4UFFVRlBMRVZCUVVVc2IwSkJRVzlDTEVWQlFVVXNUVUZCVFN4aFFVRmhMRU5CUVVNN1FVRlBia1FzVDBGQlR5eEZRVUZGTEdGQlFXRXNSVUZCUlN4bFFVRmxMRVZCUVVVc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVVjZSU3hQUVVGUExFVkJRVVVzVFVGQlRTeEZRVUZGTEUxQlFVMHNhVU5CUVdsRExFTkJRVU03UVVGRmVrUTdPenM3TzBkQlMwYzdRVUZGU1N4SlFVRk5MR1ZCUVdVc1IwRkJja0lzVFVGQlRTeGxRVUZuUWl4VFFVRlJMRTlCUVU4N1NVRkpia01zUzBGQlN5eERRVUZETEhkQ1FVRjNRaXhEUVVOdVF5eFBRVUZuUXl4RlFVTm9ReXhIUVVGSExFbEJRVFpDTzFGQlJXaERMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZEYmtJc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4aFFVRmhMRU5CUVVNc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eERRVU53UkN4RFFVRkRMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zZDBKQlFYZENMRU5CUVVNc1EwRkJRenRSUVVOeVF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJSVGxDTEUxQlFVMHNTMEZCU3l4SFFVRkhMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNTVUZCU1N4SlFVRkpMRVZCUVVVc1EwRkJRenRSUVVWdVJTeE5RVUZOTEZGQlFWRXNSMEZEV2l4UFFVRlBMRU5CUVVNc1VVRkJVVHRaUVVOb1FpeEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU1zVVVGQlVUdFpRVU5vUkN4TFFVRkxMRU5CUVVNN1VVRkZVaXhOUVVGTkxHVkJRV1VzUjBGQlJ5eFBRVUZQTEVOQlFVTXNaVUZCWlN4SlFVRkpMRVZCUVVVc1EwRkJRenRSUVVOMFJDeE5RVUZOTEd0Q1FVRnJRaXhIUVVGSExFOUJRVThzUTBGQlF5eHJRa0ZCYTBJc1NVRkJTU3hGUVVGRkxFTkJRVU03VVVGRE5VUXNUVUZCVFN4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRExFZEJRVWNzU1VGQlNTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNN1VVRkZOVU1zVFVGQlRTeFZRVUZWTEVkQlFVY3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeERRVUZETEU5QlFVOHNSVUZCUlN4TFFVRkxMRVZCUVVVc1VVRkJVU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlJYaEZMRTFCUVUwc1pVRkJaU3hIUVVOdVFpeFZRVUZWTEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNc1EwRkJReXhEUVVGRE8xbEJRM1JDTEVsQlFVa3NRMEZCUXl4clFrRkJhMElzUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVVY2UkN4TlFVRk5MRWRCUVVjc1IwRkJSeXhKUVVGSkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNUMEZCVHl4RlFVRkZMRWRCUVVjc1pVRkJaU3hIUVVGSExFMUJRVTBzUTBGQlF5eERRVUZETzFGQlJUTkZMRTFCUVUwc1MwRkJTeXhIUVVGaE8xbEJRM1JDTEdsQ1FVRnBRanRaUVVOcVFpeGhRVUZoTzFsQlEySXNiMEpCUVc5Q08xbEJRM0JDTEhGRFFVRnhRenRaUVVOeVF5eG5Ra0ZCWjBJN1dVRkRhRUlzWTBGQll6dFpRVU5rTEU5QlFVOHNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhIUVVGSExFTkJRVU1zUlVGQlJUdFpRVU5xUXl4WFFVRlhMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zU1VGQlNTeEpRVUZKTEVWQlFVVXNRMEZCUXl4RlFVRkZPMWxCUXpORExHZENRVUZuUWl4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUTNCRkxHVkJRV1VzUlVGRFppeFJRVUZSTEVOQlExUXNSVUZCUlR0WlFVTklMR05CUVdNc1NVRkJTU3hEUVVGRExHVkJRV1VzUTBGQlF5eFJRVUZSTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1pVRkJaU3hEUVVOc1JTeEhRVUZITEVWQlEwZ3NVVUZCVVN4RFFVTlVMRVZCUVVVN1dVRkRTQ3hYUVVGWExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRk8xTkJRelZETEVOQlFVTTdVVUZGUml4SlFVRkpMRTlCUVU4c1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFpRVU40UWl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExHVkJRV1VzU1VGQlNTeERRVUZETEZWQlFWVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1YwRkJWeXhEUVVGRExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlEzQkZMRU5CUVVNN1VVRkZSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eFJRVUZSTEVWQlFVVXNRMEZCUXp0WlFVTnlRaXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhQUVVGUExFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUXpsRUxFTkJRVU03VVVGRlJDeEpRVUZKTEZWQlFWVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJRenRaUVVOeVFpeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1ZVRkJWU3hEUVVGRExFdEJRVXNzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZETVVNc1EwRkJRenRSUVVWRUxFbEJRVWtzVlVGQlZTeERRVUZETEUxQlFVMHNTVUZCU1N4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTjBSQ3h0UkVGQmJVUTdXVUZEYmtRc1RVRkJUU3hUUVVGVExFZEJRVWNzVlVGQlZTeERRVUZETEUxQlFVMHNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU03V1VGRk4wTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF5eHpRa0ZCYzBJc1EwRkJReXhUUVVGVExFVkJRVVVzVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnNSU3hEUVVGRE8xRkJSVVFzU1VGQlNTeFBRVUZQTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNN1dVRkRNMElzUzBGQlN5eERRVUZETEVsQlFVa3NRMEZEVWl4dlFrRkJiMElzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1kwRkJZeXhEUVVGRExFVkJRVVVzUTBGRGJFVXNRMEZCUXp0UlFVTktMRU5CUVVNN1VVRkZSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eGhRVUZoTEVWQlFVVXNRMEZCUXp0WlFVTXhRaXhMUVVGTExFTkJRVU1zU1VGQlNTeERRVU5TTzJkQ1FVTkZMRlZCUVZVN1owSkJRMVlzYlVKQlFXMUNPMmRDUVVOdVFpeHpRa0ZCYzBJN1owSkJRM1JDTEhWQ1FVRjFRanRuUWtGRGRrSXNWMEZCVnp0aFFVTmFMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzUTBGQlF5eEhRVUZITEZkQlFWY3NTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhQUVVGUExFTkJRVU1zWVVGQllTeERRVUZETEVWQlFVVXNRMEZEZEVVc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRlJDeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVTlNMR05CUVdNc1JVRkRaQ3huUWtGQlowSXNSVUZEYUVJc1kwRkJZeXhyUWtGQmEwSXNSMEZCUnl4RlFVTnVReXhsUVVGbExFbEJRVWtzUTBGQlF5eFZRVUZWTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhGUVVGRkxFVkJReTlETEZsQlFWa3NSVUZEV2l4WlFVRlpMRVZCUTFvc1pVRkJaU3hEUVVOb1FpeERRVUZETzFGQlJVWXNUVUZCVFN4UFFVRlBMRWRCUVVjc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzVFVGQlRTeERRVUZETzFGQlF6VkVMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNUMEZCVHl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8xRkJSWEJFTEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc01rSkJRVEpDTEZGQlFWRXNSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRia1FzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4bFFVRmxMRkZCUVZFc1MwRkJTeXhQUVVGUExFVkJRVVVzUTBGQlF5eERRVUZETzFGQlJXcEVMRTlCUVU4N1dVRkRUQ3hSUVVGUk8xbEJRMUlzVDBGQlR6dFpRVU5RTEZGQlFWRXNSVUZCUlN4bFFVRmxPMWxCUTNwQ0xFdEJRVXNzUlVGQlJTeEpRVUZKTEZkQlFWY3NSVUZCUlN4RFFVRkRMRTFCUVUwc1EwRkJReXhQUVVGUExFTkJRVU03VTBGRGVrTXNRMEZCUXp0SlFVTktMRU5CUVVNN1NVRkZUU3hMUVVGTExFTkJRVU1zYzBKQlFYTkNMRU5CUTJwRExFOUJRV2RETEVWQlEyaERMRWRCUVVjc1NVRkJOa0k3VVVGRmFFTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRVU1zVFVGQlRTeEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hoUVVGaExFTkJRVU1zVFVGQlRTeEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhEUVVOMlJTeEpRVUZKTEVOQlFVTXNjMEpCUVhOQ0xFTkJRelZDTEVOQlFVTTdVVUZGUml4TlFVRk5MRWxCUVVrc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eDNRa0ZCZDBJc1EwRkJReXhQUVVGUExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGTDBRc1RVRkJUU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03U1VGRGNrTXNRMEZCUXp0SlFVVlBMR2RDUVVGblFpeERRVU4wUWl4UFFVRm5ReXhGUVVOb1F5eExRVUZYTEVWQlExZ3NVVUZCWjBJc1JVRkRhRUlzUjBGQmFVSTdVVUZGYWtJc1RVRkJUU3hOUVVGTkxFZEJRVWNzU1VGQlNTeERRVUZETEdWQlFXVXNRMEZCUXl4UFFVRlBMRU5CUVVNc1NVRkJTU3hGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEzWkVMRTFCUVUwc1MwRkJTeXhIUVVGSExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFTkJRVU03VVVGRk5VVXNTVUZCU1N4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVOWUxFMUJRVTBzUzBGQlN5eEhRVUZITEVsQlFVa3NRMEZCUXl4M1FrRkJkMElzUTBGQlF5eE5RVUZOTEVWQlFVVXNTMEZCU3l4RFFVRkRMRU5CUVVNN1dVRkZNMFFzU1VGQlNTeExRVUZMTEVWQlFVVXNRMEZCUXp0blFrRkRWaXhQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEVOQlFVTTdXVUZEYmtJc1EwRkJRenRSUVVOSUxFTkJRVU03VVVGRlJDeFBRVUZQTzFsQlEwd3NUVUZCVFN4RlFVRkZMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRekZDTEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUTFvc1MwRkJTeXhGUVVOTUxGRkJRVkVzUlVGRFVpeFBRVUZQTEVOQlFVTXNZMEZCWXl4SlFVRkpMRWRCUVVjc1JVRkROMElzVDBGQlR5eERRVUZETEV0QlFVc3NRMEZEWkR0VFFVTkdMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVVE3T3pzN1QwRkpSenRKUVVOTExIZENRVUYzUWl4RFFVTTVRaXhKUVVGblFpeEZRVU5vUWl4TFFVRmpPMUZCUldRc1RVRkJUU3hOUVVGTkxFZEJRVWNzUzBGQlN5eERRVUZETEVOQlFVTXNRMEZCUXl4VlFVRlZMRXRCUVVzc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTTdVVUZGT1VNc1RVRkJUU3hQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGRGRFTXNUVUZCVFN4TFFVRkxMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkZiRU1zVFVGQlRTeFRRVUZUTEVkQlFVY3NWVUZCVlN4TFFVRkxMR0ZCUVdFc1QwRkJUeXhoUVVGaExFTkJRVU03VVVGRmJrVXNUVUZCVFN4UlFVRlJMRWRCUTFvc1NVRkJTU3hEUVVGRExGVkJRVlVzUzBGQlN5eEpRVUZKTzFsQlEzaENMRWxCUVVrc1EwRkJReXhMUVVGTExFdEJRVXNzU1VGQlNUdFpRVU51UWl4SlFVRkpMRU5CUVVNc1UwRkJVeXhMUVVGTExFbEJRVWtzUTBGQlF6dFJRVVV4UWl4SlFVRkpMRkZCUVZFc1JVRkJSU3hEUVVGRE8xbEJRMklzVDBGQlR5eGpRVUZqTEZOQlFWTXNSMEZCUnl4TlFVRk5MRVZCUVVVc1EwRkJRenRSUVVNMVF5eERRVUZETzFGQlJVUXNUVUZCVFN4TlFVRk5MRWRCUTFZc1NVRkJTU3hEUVVGRExGVkJRVlVzUzBGQlN5eEpRVUZKTzFsQlEzaENMRWxCUVVrc1EwRkJReXhMUVVGTExFdEJRVXNzU1VGQlNUdFpRVU51UWl4SlFVRkpMRU5CUVVNc1UwRkJVeXhMUVVGTExFbEJRVWtzUTBGQlF6dFJRVVV4UWl4SlFVRkpMRTFCUVUwc1JVRkJSU3hEUVVGRE8xbEJRMWdzVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1R0cFFrRkRiRUlzVTBGQlZTeERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRWRCUVVjc1JVRkJSU3hGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJRenRwUWtGREwwTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xbEJSV0lzVDBGQlR5eHhRa0ZCY1VJc1VVRkJVU3hKUVVGSkxGTkJRVk1zUjBGQlJ5eE5RVUZOTEVWQlFVVXNRMEZCUXp0UlFVTXZSQ3hEUVVGRE8xRkJSVVFzVFVGQlRTeFBRVUZQTEVkQlExZ3NTVUZCU1N4RFFVRkRMRlZCUVZVc1MwRkJTeXhKUVVGSk8xbEJRM2hDTEVsQlFVa3NRMEZCUXl4TFFVRkxMRXRCUVVzc1NVRkJTVHRaUVVOdVFpeEpRVUZKTEVOQlFVTXNVMEZCVXl4TFFVRkxMRWxCUVVrc1EwRkJRenRSUVVVeFFpeEpRVUZKTEU5QlFVOHNSVUZCUlN4RFFVRkRPMWxCUTFvc1QwRkJUeXhEUVVOTUxESkNRVUV5UWl4SlFVRkpMRU5CUVVNc1ZVRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnp0blFrRkRlRVFzUjBGQlJ5eFRRVUZUTEVkQlFVY3NUVUZCVFN4RlFVRkZMRU5CUTNoQ0xFTkJRVU03VVVGRFNpeERRVUZETzFGQlJVUXNUVUZCVFN4TlFVRk5MRWRCUTFZc1NVRkJTU3hEUVVGRExGVkJRVlVzUzBGQlN5eEpRVUZKTzFsQlEzaENMRWxCUVVrc1EwRkJReXhMUVVGTExFdEJRVXNzU1VGQlNUdFpRVU51UWl4SlFVRkpMRU5CUVVNc1UwRkJVeXhMUVVGTExFbEJRVWtzUTBGQlF6dFJRVVV4UWl4SlFVRkpMRTFCUVUwc1JVRkJSU3hEUVVGRE8xbEJRMWdzVDBGQlR5eERRVU5NTEhWQ1FVRjFRaXhKUVVGSkxFTkJRVU1zUzBGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSenRuUWtGREwwTXNZMEZCWXl4SlFVRkpMRU5CUVVNc1ZVRkJWeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnp0blFrRkRNME1zUjBGQlJ5eFRRVUZUTEVkQlFVY3NUVUZCVFN4RlFVRkZMRU5CUTNoQ0xFTkJRVU03VVVGRFNpeERRVUZETzFGQlJVUXNiMFZCUVc5Rk8xRkJRM0JGTEhsRlFVRjVSVHRSUVVONlJTeFBRVUZQTEZOQlFWTXNRMEZCUXp0SlFVTnVRaXhEUVVGRE8wbEJSVThzWlVGQlpTeERRVU55UWl4VlFVRnJRaXhGUVVOc1FpeEhRVUZwUWp0UlFVVnFRaXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4bFFVRmxMRU5CUVVNc1EwRkJRenRSUVVONlJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4VlFVRlZMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUlRsRExFbEJRVWtzVFVGQlRTeERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVONFFpeFBRVUZQTEZOQlFWTXNRMEZCUXp0UlFVTnVRaXhEUVVGRE8xRkJSVVFzVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFdEJRVXNzUlVGQlJTeFRRVUZUTEVOQlFVTXNSMEZCUnl4TlFVRk5MRU5CUVVNN1VVRkZOVVFzU1VGQlNTeERRVUZETzFsQlEwZ3NUMEZCVHp0blFrRkRUQ3hOUVVGTkxFVkJRVVVzU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEhRVUZITEVOQlFVTTdaMEpCUXk5RExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRExFVkJRVVVzUlVGQlJTeEZRVUZGTEVkQlFVY3NRMEZCUXp0blFrRkRNME1zVlVGQlZTeEZRVU5TTEZWQlFWVXNTMEZCU3l4SFFVRkhPMjlDUVVOb1FpeERRVUZETEVOQlFVTXNTVUZCU1R0dlFrRkRUaXhEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEdOQlFXTXNRMEZCUXl4VlFVRlZMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUlVGQlJTeEhRVUZITEVOQlFVTTdaMEpCUTJwRUxFdEJRVXNzUlVGQlJTeExRVUZMTEV0QlFVc3NSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4alFVRmpMRU5CUVVNc1MwRkJTeXhGUVVGRkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNSMEZCUnl4RFFVRkRPMmRDUVVOd1JTeFRRVUZUTEVWQlExQXNVMEZCVXl4TFFVRkxMRWRCUVVjN2IwSkJRMllzUTBGQlF5eERRVUZETEVsQlFVazdiMEpCUTA0c1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNVMEZCVXl4RlFVRkZMRU5CUVVNc1JVRkJSU3hEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzUTBGRGRFUXNTMEZCU3l4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUTNoQ08yRkJRMUlzUTBGQlF6dFJRVU5LTEVOQlFVTTdVVUZCUXl4TlFVRk5MRU5CUVVNN1dVRkRVQ3hIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEdsRVFVRnBSQ3hWUVVGVkxFVkJRVVVzUTBGQlF5eERRVUZETzFsQlEzcEZMRTlCUVU4c1UwRkJVeXhEUVVGRE8xRkJRMjVDTEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlU4c1kwRkJZeXhEUVVOd1FpeExRVUZoTEVWQlEySXNUMEZCWlN4RlFVTm1MRTlCUVdVN1NVRkRaaXcyUkVGQk5rUTdTVUZETjBRc1IwRkJhVUk3VVVGRmFrSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1NVRkJTU3hIUVVGSExFVkJRVlVzUTBGQlF6dFJRVVZxUXl4TFFVRkxMRTFCUVUwc1QwRkJUeXhKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVOMlF5eE5RVUZOTEVOQlFVTXNaVUZCWlN4RlFVRkZMR05CUVdNc1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1dVRkZOMFFzVFVGQlRTeEpRVUZKTEVkQlExSXNZMEZCWXl4TFFVRkxMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExHTkJRV01zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0WlFVVjZSU3hKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTTdaMEpCUTNwRExFMUJRVTBzU1VGQlNTeGxRVUZsTEVOQlFVTXNjMEpCUVhOQ0xFOUJRVThzUlVGQlJTeERRVUZETEVOQlFVTTdXVUZETjBRc1EwRkJRenRaUVVWRUxFbEJRVWtzUzBGQllTeERRVUZETzFsQlEyeENMRWxCUVVrc1IwRkJWeXhEUVVGRE8xbEJSV2hDTEVsQlFVa3NaVUZCWlN4TFFVRkxMRWRCUVVjc1JVRkJSU3hEUVVGRE8yZENRVU0xUWl4TFFVRkxMRWRCUVVjc1QwRkJUeXhEUVVGRE8yZENRVU5vUWl4SFFVRkhMRWRCUVVjc1QwRkJUeXhEUVVGRE8xbEJRMmhDTEVOQlFVTTdhVUpCUVUwc1NVRkJTU3hsUVVGbExFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRU5CUVVNN1owSkJRM3BETEUxQlFVMHNUVUZCVFN4SFFVRkhMR1ZCUVdVc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUlRGRExFbEJRVWtzVFVGQlRTeERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenR2UWtGRGVFSXNUVUZCVFN4SlFVRkpMR1ZCUVdVc1EwRkJReXgxUWtGQmRVSXNUMEZCVHl4RlFVRkZMRU5CUVVNc1EwRkJRenRuUWtGRE9VUXNRMEZCUXp0blFrRkZSQ3hMUVVGTExFZEJRVWNzVFVGQlRTeERRVUZETEZGQlFWRXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdaMEpCUTNaRExFZEJRVWNzUjBGQlJ5eE5RVUZOTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0WlFVTjJReXhEUVVGRE8ybENRVUZOTEVOQlFVTTdaMEpCUTA0c1MwRkJTeXhIUVVGSExFMUJRVTBzUTBGQlF5eFJRVUZSTEVOQlFVTXNaVUZCWlN4RlFVRkZMRVZCUVVVc1EwRkJReXhEUVVGRE8yZENRVU0zUXl4SFFVRkhMRWRCUVVjc1MwRkJTeXhEUVVGRE8xbEJRMlFzUTBGQlF6dFpRVVZFTEVsQlEwVXNRMEZCUXl4TlFVRk5MRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF6dG5Ra0ZEZUVJc1EwRkJReXhOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXp0blFrRkRkRUlzUzBGQlN5eEhRVUZITEU5QlFVODdaMEpCUTJZc1IwRkJSeXhIUVVGSExFOUJRVTg3WjBKQlEySXNTMEZCU3l4SFFVRkhMRWRCUVVjc1JVRkRXQ3hEUVVGRE8yZENRVU5FTEUxQlFVMHNTVUZCU1N4bFFVRmxMRU5CUVVNc2RVSkJRWFZDTEU5QlFVOHNSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkRPVVFzUTBGQlF6dFpRVVZFTEV0QlFVc3NTVUZCU1N4TFFVRkxMRWRCUVVjc1MwRkJTeXhGUVVGRkxFdEJRVXNzU1VGQlNTeEhRVUZITEVWQlFVVXNTMEZCU3l4SlFVRkpMRWxCUVVrc1JVRkJSU3hEUVVGRE8yZENRVU53UkN4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEzQkNMRU5CUVVNN1VVRkRTQ3hEUVVGRE8xRkJSVVFzVDBGQlR5eERRVUZETEVkQlFVY3NUVUZCVFN4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzBsQlF6TkRMRU5CUVVNN1NVRkZUeXhsUVVGbExFTkJRM0pDTEVsQlFWa3NSVUZEV2l4TFFVRlhMRVZCUTFnc1VVRkJaMElzUlVGRGFFSXNUMEZCWlN4RlFVTm1MRXRCUVZrN1VVRkZXaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eHZRa0ZCYjBJc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEZRVUZGTzFsQlEyaEVMRmRCUVZjc1JVRkJSU3hMUVVGTE8xbEJRMnhDTEVWQlFVVXNSVUZCUlN4UlFVRlJPMU5CUTJJc1EwRkJReXhEUVVGRE8xRkJSVWdzVFVGQlRTeFhRVUZYTEVkQlFWY3NSVUZCUlN4RFFVRkRPMUZCUlM5Q0xFOUJRVThzVjBGQlZ5eERRVUZETEUxQlFVMHNSMEZCUnl4UFFVRlBMRVZCUVVVc1EwRkJRenRaUVVOd1F5eE5RVUZOTEVsQlFVa3NSMEZCUnl4UlFVRlJMRU5CUVVNc1NVRkJTU3hGUVVGRkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdXVUZGZEVNc1NVRkJTU3hMUVVGTExFbEJRVWtzU1VGQlNTeEhRVUZITEV0QlFVc3NSVUZCUlN4RFFVRkRPMmRDUVVNeFFpeE5RVUZOTzFsQlExSXNRMEZCUXp0WlFVVkVMRmRCUVZjc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdVVUZEZWtJc1EwRkJRenRSUVVWRUxFbEJRVWtzVjBGQlZ5eERRVUZETEUxQlFVMHNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVNM1FpeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVTmlMSEZGUVVGeFJTeERRVU4wUlN4RFFVRkRPMUZCUTBvc1EwRkJRenRSUVVWRUxFOUJRVThzVjBGQlZ5eERRVUZETzBsQlEzSkNMRU5CUVVNN1NVRkZUeXhyUWtGQmEwSXNRMEZEZUVJc1NVRkJXU3hGUVVOYUxFdEJRVmNzUlVGRFdDeFJRVUZuUWp0UlFVVm9RaXhOUVVGTkxGRkJRVkVzUjBGQlJ5eHZRa0ZCYjBJc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeEZRVUZGTzFsQlEyaEVMRmRCUVZjc1JVRkJSU3hMUVVGTE8xbEJRMnhDTEVWQlFVVXNSVUZCUlN4UlFVRlJPMU5CUTJJc1EwRkJReXhEUVVGRE8xRkJSVWdzVDBGQlR5eFJRVUZSTEVOQlFVTXNTVUZCU1N4RlFVRkZMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03U1VGRGJFTXNRMEZCUXp0SlFVVlBMSE5DUVVGelFpeERRVUZETEV0QlFXRXNSVUZCUlN4UlFVRm5RanRSUVVNMVJDeE5RVUZOTEUxQlFVMHNSMEZCUnl4alFVRmpMRWxCUVVrc1EwRkJReXhsUVVGbExFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXp0UlFVVXZSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETzFGQlJYcEZMSFZGUVVGMVJUdFJRVU4yUlN4TlFVRk5MRTFCUVUwc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRE5VSXNTVUZCU1N4UFFVRlBMRWRCUVVjc1RVRkJUU3hEUVVGRE8xRkJSWEpDTEV0QlFVc3NUVUZCVFN4TFFVRkxMRWxCUVVrc1RVRkJUU3hGUVVGRkxFTkJRVU03V1VGRE0wSXNUVUZCVFN4VFFVRlRMRWRCUTJJc1QwRkJUeXhMUVVGTExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNSMEZCUnl4UFFVRlBMRWRCUVVjc1MwRkJTeXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NUMEZCVHl4SlFVRkpMRXRCUVVzc1JVRkJSU3hEUVVGRE8xbEJSWEJGTEVsQlFVa3NTVUZCU1N4WFFVRlhMRVZCUVVVc1EwRkJReXhOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRWRCUVVjc1JVRkJSU3hEUVVGRE8yZENRVU55UkN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzJkQ1FVTnlRaXhQUVVGUExFZEJRVWNzUjBGQlJ5eE5RVUZOTEVkQlFVY3NTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRhRU1zUTBGQlF6dHBRa0ZCVFN4RFFVRkRPMmRDUVVOT0xFOUJRVThzUjBGQlJ5eFRRVUZUTEVOQlFVTTdXVUZEZEVJc1EwRkJRenRSUVVOSUxFTkJRVU03VVVGRlJDeEpRVUZKTEU5QlFVOHNTMEZCU3l4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVOMlFpeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM1pDTEVOQlFVTTdVVUZGUkN4UFFVRlBMRTFCUVUwc1EwRkJRenRKUVVOb1FpeERRVUZETzBsQlJVOHNZVUZCWVN4RFFVRkRMRWxCUVZVN1VVRkRPVUlzVDBGQlR5eEpRVUZKTzJGQlExSXNWMEZCVnl4RlFVRkZPMkZCUTJJc1QwRkJUeXhEUVVGRExFOUJRVThzUlVGQlJTeEZRVUZGTEVOQlFVTTdZVUZEY0VJc1QwRkJUeXhEUVVGRExGZEJRVmNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXp0SlFVTXZRaXhEUVVGRE8wbEJSVThzWlVGQlpTeERRVUZETEVsQlFWVXNSVUZCUlN4UlFVRm5RanRSUVVOc1JDeE5RVUZOTEV0QlFVc3NSMEZCUnl4SlFVRkpMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU1zVDBGQlR5eEZRVUZGTzFsQlF6ZERMRkZCUVZFc1JVRkJSU3hSUVVGUk8xbEJRMnhDTEVsQlFVa3NSVUZCUlN4VFFVRlRPMWxCUTJZc1MwRkJTeXhGUVVGRkxGTkJRVk03V1VGRGFFSXNSMEZCUnl4RlFVRkZMRk5CUVZNN1dVRkRaQ3hKUVVGSkxFVkJRVVVzVTBGQlV6dFpRVU5tTEUxQlFVMHNSVUZCUlN4VFFVRlRPMWxCUTJwQ0xFMUJRVTBzUlVGQlJTeFRRVUZUTzFsQlEycENMRk5CUVZNc1JVRkJSU3hMUVVGTE8xTkJRMnBDTEVOQlFVTXNRMEZCUXl4aFFVRmhMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03VVVGRmRrSXNUVUZCVFN4TlFVRk5MRWRCUVVjc1RVRkJUU3hEUVVGRExGZEJRVmNzUTBGREwwSXNTMEZCU3p0aFFVTkdMRTFCUVUwc1EwRkJReXhEUVVGRExFbEJRVWtzUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1MwRkJTeXhUUVVGVExFTkJRVU03WVVGRGVrTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1NVRkJTU3hGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlF6RkRMRU5CUVVNN1VVRkZSaXhQUVVGUExFTkJRMHdzUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4SFFVRkhMRTFCUVUwc1EwRkJReXhMUVVGTExFZEJRVWNzVFVGQlRTeERRVUZETEVkQlFVY3NSVUZCUlR0WlFVTTFReXhKUVVGSkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVkQlFVY3NUVUZCVFN4RFFVRkRMRTFCUVUwc1IwRkJSeXhOUVVGTkxFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlEyeEVMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVThzVTBGQlV5eERRVUZETEV0QlFXVTdVVUZETDBJc1QwRkJUeXhMUVVGTExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNTVUZCU1N4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1NVRkRkRVFzUTBGQlF6dEpRVVZFT3p0UFFVVkhPMGxCUTBzc1VVRkJVU3hEUVVGRExFbEJRVms3VVVGRE0wSXNUVUZCVFN4UFFVRlBMRWRCUVVjc1NVRkJTU3hYUVVGWExFVkJRVVVzUTBGQlF6dFJRVU5zUXl4TlFVRk5MRTFCUVUwc1IwRkJZU3hGUVVGRkxFTkJRVU03VVVGRE5VSXNTVUZCU1N4VFFVRlRMRWRCUVVjc1NVRkJTU3hEUVVGRE8xRkJRM0pDTEVsQlFVa3NTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJRenRSUVVWcVFpeFBRVUZQTEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUTBGQlF5eFRRVUZUTEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1UwRkJVeXhGUVVGRkxFTkJRVU1zUTBGQlF5eE5RVUZOTEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNN1dVRkRka1VzVFVGQlRTeE5RVUZOTEVkQlFVY3NTMEZCU3l4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETEVkQlFVY3NRMEZCUXp0WlFVTm9ReXhKUVVGSkxFdEJRVXNzUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEWml4SlFVRkpMRkZCUVZFc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRmFrSXNTMEZCU3l4TlFVRk5MRk5CUVZNc1NVRkJTU3hUUVVGVExFVkJRVVVzUTBGQlF6dG5Ra0ZEYkVNc1RVRkJUU3hUUVVGVExFZEJRVWNzUjBGQlJ5eE5RVUZOTEVkQlFVY3NTMEZCU3l4SFFVRkhMRk5CUVZNc1JVRkJSU3hEUVVGRE8yZENRVVZzUkN4SlFVRkpMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNUVUZCVFN4SFFVRkhMRVZCUVVVc1JVRkJSU3hEUVVGRE8yOUNRVU14UXl4TlFVRk5PMmRDUVVOU0xFTkJRVU03WjBKQlJVUXNTMEZCU3l4SlFVRkpMRk5CUVZNc1EwRkJRenRuUWtGRGJrSXNVVUZCVVN4SlFVRkpMRk5CUVZNc1EwRkJReXhOUVVGTkxFTkJRVU03V1VGREwwSXNRMEZCUXp0WlFVVkVMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dG5Ra0ZEV0N4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExIZERRVUYzUXl4RFFVRkRMRU5CUVVNN1dVRkROVVFzUTBGQlF6dFpRVVZFTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1IwRkJSeXhOUVVGTkxFZEJRVWNzUzBGQlN5eEZRVUZGTEVOQlFVTXNRMEZCUXp0WlFVTnFReXhUUVVGVExFZEJRVWNzVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRaUVVOMFF5eExRVUZMTEVkQlFVY3NTMEZCU3l4RFFVRkRPMUZCUTJoQ0xFTkJRVU03VVVGRlJDeE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRk5CUVZNc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRmFrUXNUMEZCVHl4TlFVRk5MRU5CUVVNN1NVRkRhRUlzUTBGQlF6dEpRVVZQTEZWQlFWVXNRMEZCUXl4TFFVRmhPMUZCUXpsQ0xFOUJRVThzUzBGQlN6dGhRVU5VTEU5QlFVOHNRMEZCUXl4TFFVRkxMRVZCUVVVc1RVRkJUU3hEUVVGRE8yRkJRM1JDTEU5QlFVOHNRMEZCUXl4UlFVRlJMRVZCUVVVc1MwRkJTeXhEUVVGRE8yRkJRM2hDTEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1MwRkJTeXhEUVVGRE8yRkJRM0JDTEU5QlFVOHNRMEZCUXl4SlFVRkpMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03U1VGRE1VSXNRMEZCUXp0SlFVVlBMR05CUVdNc1EwRkJReXhMUVVGaE8xRkJRMnhETEU5QlFVOHNTMEZCU3l4RFFVRkRMRTlCUVU4c1EwRkJReXhUUVVGVExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTTdTVUZEZEVNc1EwRkJRenRKUVVWUExHVkJRV1VzUTBGQlF5eExRVUZoTzFGQlEyNURMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU4yUXl4TlFVRk5MRWxCUVVrc1pVRkJaU3hEUVVGRExDdENRVUVyUWl4TFFVRkxMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJRM0JGTEVOQlFVTTdVVUZGUkN4UFFVRlBMRXRCUVVzc1EwRkJRenRKUVVObUxFTkJRVU03U1VGRlR5eFpRVUZaTEVOQlFVTXNSMEZCVnp0UlFVTTVRaXhOUVVGTkxFbEJRVWtzUjBGQlJ5eERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVc1NVRkJTU3hGUVVGRkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVXNTVUZCU1N4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRM2hFTEUxQlFVMHNUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dFJRVVY2UWl4SlFVRkpMRU5CUVVNc1RVRkJUU3hGUVVGRkxFTkJRVU03V1VGRFdpeE5RVUZOTEVsQlFVa3NaVUZCWlN4RFFVRkRMRzlDUVVGdlFpeEhRVUZITEVWQlFVVXNRMEZCUXl4RFFVRkRPMUZCUTNaRUxFTkJRVU03VVVGRlJDeFBRVUZQTEUxQlFVMHNRMEZCUXp0SlFVTm9RaXhEUVVGRE8wbEJSVThzVTBGQlV6dFJRVU5tTEUxQlFVMHNUVUZCVFN4SFFVTldMRlZCUVZVc1EwRkJReXhOUVVGTkxFVkJRVVVzVlVGQlZTeEZRVUZGTEVWQlFVVTdXVUZEYWtNc1IwRkJSeXhKUVVGSkxFTkJRVU1zUjBGQlJ5eEZRVUZGTEVsQlFVa3NTVUZCU1N4RFFVRkRMRTFCUVUwc1JVRkJSU3hEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dFJRVVY2UkN4UFFVRlBMRWRCUVVjc1RVRkJUU3h0UWtGQmJVSXNRMEZCUXp0SlFVTjBReXhEUVVGRE8wbEJSVThzWTBGQll5eERRVUZETEV0QlFXRTdVVUZEYkVNc1RVRkJUU3hUUVVGVExFZEJRVWNzUzBGQlN6dGhRVU53UWl4VFFVRlRMRU5CUVVNc1RVRkJUU3hEUVVGRE8yRkJRMnBDTEU5QlFVOHNRMEZCUXl4WFFVRlhMRVZCUVVVc1IwRkJSeXhEUVVGRE8yRkJRM3BDTEU5QlFVOHNRMEZCUXl4VlFVRlZMRVZCUVVVc1JVRkJSU3hEUVVGRE8yRkJRM1pDTEZkQlFWY3NSVUZCUlN4RFFVRkRPMUZCUldwQ0xFOUJRVThzUjBGQlJ5eFRRVUZUTEVsQlFVa3NiVUpCUVcxQ0xFMUJRVTBzUTBGQlF6dEpRVU51UkN4RFFVRkRPMGxCUlU4c1pVRkJaU3hEUVVGRExFOUJRV2RETzFGQlEzUkVMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NSVUZCUlN4RlFVRkZMRU5CUVVNN1dVRkRNVUlzVFVGQlRTeEpRVUZKTEdWQlFXVXNRMEZCUXl4blEwRkJaME1zUTBGQlF5eERRVUZETzFGQlF6bEVMRU5CUVVNN1VVRkZSQ3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEV0QlFVc3NSVUZCUlN4SlFVRkpMRVZCUVVVc1JVRkJSU3hEUVVGRE8xbEJRek5DTEUxQlFVMHNTVUZCU1N4bFFVRmxMRU5CUVVNc0swSkJRU3RDTEVOQlFVTXNRMEZCUXp0UlFVTTNSQ3hEUVVGRE8xRkJSVVFzU1VGRFJTeFBRVUZQTEVOQlFVTXNaVUZCWlN4TFFVRkxMRk5CUVZNN1dVRkRja01zUTBGQlF5eERRVUZETEUxQlFVMHNRMEZCUXl4UlFVRlJMRU5CUVVNc1QwRkJUeXhEUVVGRExHVkJRV1VzUTBGQlF6dG5Ra0ZEZUVNc1QwRkJUeXhEUVVGRExHVkJRV1VzU1VGQlNTeERRVUZETEVOQlFVTXNSVUZETDBJc1EwRkJRenRaUVVORUxFMUJRVTBzU1VGQlNTeGxRVUZsTEVOQlFVTXNORU5CUVRSRExFTkJRVU1zUTBGQlF6dFJRVU14UlN4RFFVRkRPMUZCUlVRc1NVRkRSU3hQUVVGUExFTkJRVU1zYTBKQlFXdENMRXRCUVVzc1UwRkJVenRaUVVONFF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zYTBKQlFXdENMRU5CUVVNN1owSkJRelZETEU5QlFVOHNRMEZCUXl4clFrRkJhMElzUjBGQlJ5eERRVUZETEVOQlFVTXNSVUZEYWtNc1EwRkJRenRaUVVORUxFMUJRVTBzU1VGQlNTeGxRVUZsTEVOQlEzWkNMRzlFUVVGdlJDeERRVU55UkN4RFFVRkRPMUZCUTBvc1EwRkJRenRSUVVWRUxFbEJRMFVzVDBGQlR5eERRVUZETEdOQlFXTXNTMEZCU3l4VFFVRlRPMWxCUTNCRExFTkJRVU1zUTBGQlF5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMRTlCUVU4c1EwRkJReXhqUVVGakxFTkJRVU1zU1VGQlNTeFBRVUZQTEVOQlFVTXNZMEZCWXl4SlFVRkpMRU5CUVVNc1EwRkJReXhGUVVNeFJTeERRVUZETzFsQlEwUXNUVUZCVFN4SlFVRkpMR1ZCUVdVc1EwRkJReXcwUTBGQk5FTXNRMEZCUXl4RFFVRkRPMUZCUXpGRkxFTkJRVU03U1VGRFNDeERRVUZETzBOQlEwWXNRMEZCUVR0QlFTOW9RbGM3U1VGRVZDeE5RVUZOTEVOQlFVTXNiVUpCUVcxQ0xFTkJRVU03T3l0RFFVTlBPMEZCUm5oQ0xHVkJRV1U3U1VGRU0wSXNUMEZCVHl4RlFVRkZPMGRCUTBjc1pVRkJaU3hEUVdscFFqTkNJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJSHNnUTI5dWRHVjRkQ3dnVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuTENCelpYSjJhV05sTENCVFpYSjJhV05sSUgwZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCRGNtOXVSWGh3Y21WemMybHZibEJoY25ObGNpQjlJR1p5YjIwZ1hDSmpjbTl1TFhCaGNuTmxjbHdpTzF4dWFXMXdiM0owSUh0Y2JpQWdRMkZzWlc1a1lYSkdhV3hsTEZ4dUlDQkRZV3hsYm1SaGNsSmxiV2x1WkdWeVQzQjBhVzl1Y3l4Y2JpQWdVR0Z5YzJWa1EzSnZiaXhjYmlBZ1VtVmpkWEp5Wlc1alpWSmxjM1ZzZEN4Y2JuMGdabkp2YlNCY0lpNHZkSGx3WlhOY0lqdGNibWx0Y0c5eWRDQjdJRTl3WlhKaGRHbHZia3RsZVhNc0lGWmhiR2xrWVhScGIyNUZjbkp2Y2lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHSXRaR1ZqYjNKaGRHOXljMXdpTzF4dWFXMXdiM0owSUhzZ2RIbHdaU0JKUTJGc1pXNWtZWEpYY21sMFpYSWdmU0JtY205dElGd2lMaTkzY21sMFpYSnpMMGxEWVd4bGJtUmhjbGR5YVhSbGNsd2lPMXh1YVcxd2IzSjBJSHNnYVc1cVpXTjBJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlwYm1wbFkzUmhZbXhsTFdSbFkyOXlZWFJ2Y25OY0lqdGNibHh1THlvcVhHNGdLaUJEY21WaGRHVnpJR2x1ZEdWeWIzQmxjbUZpYkdVZ2FVTmhiR1Z1WkdGeUlHMWxaR2xqWVhScGIyNGdjbVZ0YVc1a1pYSnpMbHh1SUNwY2JpQXFJRlJvWlNCelpYSjJhV05sSUdoaGN5QnVieUJ6ZEdGMGFXTWdUbTlrWlNCcGJYQnZjblJ6TENCemJ5QjBhR1VnYzJGdFpTQnRiMlIxYkdVZ1kyRnVJR0psSUdKMWJtUnNaV1JjYmlBcUlHWnZjaUJpY205M2MyVnljeTRnVG05a1pTMXZibXg1SUdacGJHVnplWE4wWlcwZ1ltVm9ZWFpwYjNJZ2FYTWdiRzloWkdWa0lHUjVibUZ0YVdOaGJHeDVMbHh1SUNvdlhHNUFjMlZ5ZG1salpTZ3BYRzVsZUhCdmNuUWdZMnhoYzNNZ1EyRnNaVzVrWVhKVFpYSjJhV05sSUdWNGRHVnVaSE1nVTJWeWRtbGpaU0I3WEc0Z0lFQnBibXBsWTNRb0oxd2lZMkZzWlc1a1lYSXRkM0pwZEdWeVhDSW5LVnh1SUNCd2NtOTBaV04wWldRZ2QzSnBkR1Z5SVRvZ1NVTmhiR1Z1WkdGeVYzSnBkR1Z5TzF4dVhHNGdJSEIxWW14cFl5QmhjM2x1WXlCamNtVmhkR1ZOWldScFkyRjBhVzl1VW1WdGFXNWtaWElvWEc0Z0lDQWdiM0IwYVc5dWN6b2dRMkZzWlc1a1lYSlNaVzFwYm1SbGNrOXdkR2x2Ym5Nc1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4RFlXeGxibVJoY2tacGJHVStJSHRjYmlBZ0lDQmpiMjV6ZENCN0lHeHZaeXdnWTNSNElIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQlBjR1Z5WVhScGIyNUxaWGx6TGtOU1JVRlVSU3dnZEhKMVpTbGNiaUFnSUNBcExtWnZjaWgwYUdsekxtTnlaV0YwWlUxbFpHbGpZWFJwYjI1U1pXMXBibVJsY2lrN1hHNGdJQ0FnZEdocGN5NTJZV3hwWkdGMFpVOXdkR2x2Ym5Nb2IzQjBhVzl1Y3lrN1hHNWNiaUFnSUNCamIyNXpkQ0J6ZEdGeWRDQTlJRzl3ZEdsdmJuTXVjM1JoY25RZ1B5QnVaWGNnUkdGMFpTaHZjSFJwYjI1ekxuTjBZWEowS1NBNklHNWxkeUJFWVhSbEtDazdYRzVjYmlBZ0lDQmpiMjV6ZENCMGFXMWxlbTl1WlNBOVhHNGdJQ0FnSUNCdmNIUnBiMjV6TG5ScGJXVjZiMjVsSUQ4L1hHNGdJQ0FnSUNCSmJuUnNMa1JoZEdWVWFXMWxSbTl5YldGMEtDa3VjbVZ6YjJ4MlpXUlBjSFJwYjI1ektDa3VkR2x0WlZwdmJtVWdQejljYmlBZ0lDQWdJRndpVlZSRFhDSTdYRzVjYmlBZ0lDQmpiMjV6ZENCa2RYSmhkR2x2YmsxcGJuVjBaWE1nUFNCdmNIUnBiMjV6TG1SMWNtRjBhVzl1VFdsdWRYUmxjeUEvUHlBeE5UdGNiaUFnSUNCamIyNXpkQ0JoYkdGeWJVMXBiblYwWlhOQ1pXWnZjbVVnUFNCdmNIUnBiMjV6TG1Gc1lYSnRUV2x1ZFhSbGMwSmxabTl5WlNBL1B5QXhNRHRjYmlBZ0lDQmpiMjV6ZENCMWFXUWdQU0J2Y0hScGIyNXpMblZwWkNBL1B5QjBhR2x6TG1OeVpXRjBaVlZwWkNncE8xeHVYRzRnSUNBZ1kyOXVjM1FnY21WamRYSnlaVzVqWlNBOUlIUm9hWE11WTNKbFlYUmxVbVZqZFhKeVpXNWpaU2h2Y0hScGIyNXpMQ0J6ZEdGeWRDd2dkR2x0WlhwdmJtVXNJR04wZUNrN1hHNWNiaUFnSUNCamIyNXpkQ0JtYVhKemRFOWpZM1Z5Y21WdVkyVWdQVnh1SUNBZ0lDQWdjbVZqZFhKeVpXNWpaUzV5WkdGMFpYTS9MbHN3WFNBL1AxeHVJQ0FnSUNBZ2RHaHBjeTVuWlhSR2FYSnpkRTlqWTNWeWNtVnVZMlVvYjNCMGFXOXVjeTVqY205dUxDQnpkR0Z5ZEN3Z2RHbHRaWHB2Ym1VcE8xeHVYRzRnSUNBZ1kyOXVjM1FnWlc1a0lEMGdibVYzSUVSaGRHVW9abWx5YzNSUFkyTjFjbkpsYm1ObExtZGxkRlJwYldVb0tTQXJJR1IxY21GMGFXOXVUV2x1ZFhSbGN5QXFJRFl3WHpBd01DazdYRzVjYmlBZ0lDQmpiMjV6ZENCc2FXNWxjem9nYzNSeWFXNW5XMTBnUFNCYlhHNGdJQ0FnSUNCY0lrSkZSMGxPT2xaRFFVeEZUa1JCVWx3aUxGeHVJQ0FnSUNBZ1hDSldSVkpUU1U5T09qSXVNRndpTEZ4dUlDQWdJQ0FnWENKRFFVeFRRMEZNUlRwSFVrVkhUMUpKUVU1Y0lpeGNiaUFnSUNBZ0lGd2lVRkpQUkVsRU9pMHZMMUJVVUM4dlEyRnNaVzVrWVhJZ1UyVnlkbWxqWlM4dlJVNWNJaXhjYmlBZ0lDQWdJRndpVFVWVVNFOUVPbEJWUWt4SlUwaGNJaXhjYmlBZ0lDQWdJRndpUWtWSFNVNDZWa1ZXUlU1VVhDSXNYRzRnSUNBZ0lDQmdWVWxFT2lSN2RHaHBjeTVsYzJOaGNHVlFjbTl3WlhKMGVTaDFhV1FwZldBc1hHNGdJQ0FnSUNCZ1JGUlRWRUZOVURva2UzUm9hWE11Wm05eWJXRjBWWFJqUkdGMFpTaHVaWGNnUkdGMFpTZ3BLWDFnTEZ4dUlDQWdJQ0FnWUVSVVUxUkJVbFE3VkZwSlJEMGtlM1JvYVhNdVpYTmpZWEJsVUdGeVlXMWxkR1Z5S0hScGJXVjZiMjVsS1gwNkpIdDBhR2x6TG1admNtMWhkRXh2WTJGc1JHRjBaU2hjYmlBZ0lDQWdJQ0FnWm1seWMzUlBZMk4xY25KbGJtTmxMRnh1SUNBZ0lDQWdJQ0IwYVcxbGVtOXVaVnh1SUNBZ0lDQWdLWDFnTEZ4dUlDQWdJQ0FnWUVSVVJVNUVPMVJhU1VROUpIdDBhR2x6TG1WelkyRndaVkJoY21GdFpYUmxjaWgwYVcxbGVtOXVaU2w5T2lSN2RHaHBjeTVtYjNKdFlYUk1iMk5oYkVSaGRHVW9YRzRnSUNBZ0lDQWdJR1Z1WkN4Y2JpQWdJQ0FnSUNBZ2RHbHRaWHB2Ym1WY2JpQWdJQ0FnSUNsOVlDeGNiaUFnSUNBZ0lHQlRWVTFOUVZKWk9pUjdkR2hwY3k1bGMyTmhjR1ZVWlhoMEtHOXdkR2x2Ym5NdWRHbDBiR1VwZldBc1hHNGdJQ0FnWFR0Y2JseHVJQ0FnSUdsbUlDaHZjSFJwYjI1ekxtUmxjMk55YVhCMGFXOXVLU0I3WEc0Z0lDQWdJQ0JzYVc1bGN5NXdkWE5vS0dCRVJWTkRVa2xRVkVsUFRqb2tlM1JvYVhNdVpYTmpZWEJsVkdWNGRDaHZjSFJwYjI1ekxtUmxjMk55YVhCMGFXOXVLWDFnS1R0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JwWmlBb2IzQjBhVzl1Y3k1c2IyTmhkR2x2YmlrZ2UxeHVJQ0FnSUNBZ2JHbHVaWE11Y0hWemFDaGdURTlEUVZSSlQwNDZKSHQwYUdsekxtVnpZMkZ3WlZSbGVIUW9iM0IwYVc5dWN5NXNiMk5oZEdsdmJpbDlZQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0hKbFkzVnljbVZ1WTJVdWNuSjFiR1VwSUh0Y2JpQWdJQ0FnSUd4cGJtVnpMbkIxYzJnb1lGSlNWVXhGT2lSN2NtVmpkWEp5Wlc1alpTNXljblZzWlgxZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9jbVZqZFhKeVpXNWpaUzV5WkdGMFpYTWdKaVlnY21WamRYSnlaVzVqWlM1eVpHRjBaWE11YkdWdVozUm9JRDRnTVNrZ2UxeHVJQ0FnSUNBZ0x5OGdSRlJUVkVGU1ZDQmhiSEpsWVdSNUlISmxjSEpsYzJWdWRITWdkR2hsSUdacGNuTjBJRzlqWTNWeWNtVnVZMlV1WEc0Z0lDQWdJQ0JqYjI1emRDQnlaVzFoYVc1cGJtY2dQU0J5WldOMWNuSmxibU5sTG5Ka1lYUmxjeTV6YkdsalpTZ3hLVHRjYmx4dUlDQWdJQ0FnYkdsdVpYTXVjSFZ6YUNndUxpNTBhR2x6TG1OeVpXRjBaVVp2YkdSbFpGSkVZWFJsVEdsdVpYTW9jbVZ0WVdsdWFXNW5MQ0IwYVcxbGVtOXVaU2twTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNodmNIUnBiMjV6TG05eVoyRnVhWHBsY2tWdFlXbHNLU0I3WEc0Z0lDQWdJQ0JzYVc1bGN5NXdkWE5vS0Z4dUlDQWdJQ0FnSUNCZ1QxSkhRVTVKV2tWU09tMWhhV3gwYnpva2UzUm9hWE11WlhOallYQmxVSEp2Y0dWeWRIa29iM0IwYVc5dWN5NXZjbWRoYm1sNlpYSkZiV0ZwYkNsOVlGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9iM0IwYVc5dWN5NWhkSFJsYm1SbFpVVnRZV2xzS1NCN1hHNGdJQ0FnSUNCc2FXNWxjeTV3ZFhOb0tGeHVJQ0FnSUNBZ0lDQmJYRzRnSUNBZ0lDQWdJQ0FnWENKQlZGUkZUa1JGUlZ3aUxGeHVJQ0FnSUNBZ0lDQWdJRndpUTFWVVdWQkZQVWxPUkVsV1NVUlZRVXhjSWl4Y2JpQWdJQ0FnSUNBZ0lDQmNJbEpQVEVVOVVrVlJMVkJCVWxSSlEwbFFRVTVVWENJc1hHNGdJQ0FnSUNBZ0lDQWdYQ0pRUVZKVVUxUkJWRDFPUlVWRVV5MUJRMVJKVDA1Y0lpeGNiaUFnSUNBZ0lDQWdJQ0JjSWxKVFZsQTlWRkpWUlZ3aUxGeHVJQ0FnSUNBZ0lDQmRMbXB2YVc0b1hDSTdYQ0lwSUNzZ1lEcHRZV2xzZEc4NkpIdDBhR2x6TG1WelkyRndaVkJ5YjNCbGNuUjVLRzl3ZEdsdmJuTXVZWFIwWlc1a1pXVkZiV0ZwYkNsOVlGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCc2FXNWxjeTV3ZFhOb0tGeHVJQ0FnSUNBZ1hDSkNSVWRKVGpwV1FVeEJVazFjSWl4Y2JpQWdJQ0FnSUZ3aVFVTlVTVTlPT2tSSlUxQk1RVmxjSWl4Y2JpQWdJQ0FnSUdCVVVrbEhSMFZTT2kxUVZDUjdZV3hoY20xTmFXNTFkR1Z6UW1WbWIzSmxmVTFnTEZ4dUlDQWdJQ0FnWUVSRlUwTlNTVkJVU1U5T09pUjdkR2hwY3k1bGMyTmhjR1ZVWlhoMEtHOXdkR2x2Ym5NdWRHbDBiR1VwZldBc1hHNGdJQ0FnSUNCY0lrVk9SRHBXUVV4QlVrMWNJaXhjYmlBZ0lDQWdJRndpUlU1RU9sWkZWa1ZPVkZ3aUxGeHVJQ0FnSUNBZ1hDSkZUa1E2VmtOQlRFVk9SRUZTWENKY2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWTI5dWMzUWdZMjl1ZEdWdWRDQTlJSFJvYVhNdVptOXNaRXhwYm1WektHeHBibVZ6S1M1cWIybHVLRndpWEZ4eVhGeHVYQ0lwSUNzZ1hDSmNYSEpjWEc1Y0lqdGNiaUFnSUNCamIyNXpkQ0JtYVd4bGJtRnRaU0E5SUhSb2FYTXVZM0psWVhSbFJtbHNaVzVoYldVb2IzQjBhVzl1Y3k1MGFYUnNaU2s3WEc1Y2JpQWdJQ0JzYjJjdWRtVnlZbTl6WlNoZ1EyRnNaVzVrWVhJZ1pYWmxiblFnWTNKbFlYUmxaRG9nSkh0bWFXeGxibUZ0WlgxZ0tUdGNiaUFnSUNCc2IyY3VaR1ZpZFdjb1lFTnZiblJsYm5RZ1ptOXlJQ1I3Wm1sc1pXNWhiV1Y5T2lBa2UyTnZiblJsYm5SOVlDazdYRzVjYmlBZ0lDQnlaWFIxY200Z2UxeHVJQ0FnSUNBZ1ptbHNaVzVoYldVc1hHNGdJQ0FnSUNCamIyNTBaVzUwTEZ4dUlDQWdJQ0FnYldsdFpWUjVjR1U2SUZ3aWRHVjRkQzlqWVd4bGJtUmhjbHdpTEZ4dUlDQWdJQ0FnWW5sMFpYTTZJRzVsZHlCVVpYaDBSVzVqYjJSbGNpZ3BMbVZ1WTI5a1pTaGpiMjUwWlc1MEtTeGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHRnplVzVqSUdOeVpXRjBaVUZ1WkZOMGIzSmxVbVZ0YVc1a1pYSW9YRzRnSUNBZ2IzQjBhVzl1Y3pvZ1EyRnNaVzVrWVhKU1pXMXBibVJsY2s5d2RHbHZibk1zWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QR0Z1ZVQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCamRIZ2dmU0E5SUNoaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JQY0dWeVlYUnBiMjVMWlhsekxrTlNSVUZVUlN3Z2RISjFaU2twTG1admNpaGNiaUFnSUNBZ0lIUm9hWE11WTNKbFlYUmxRVzVrVTNSdmNtVlNaVzFwYm1SbGNseHVJQ0FnSUNrN1hHNWNiaUFnSUNCamIyNXpkQ0JtYVd4bElEMGdZWGRoYVhRZ2RHaHBjeTVqY21WaGRHVk5aV1JwWTJGMGFXOXVVbVZ0YVc1a1pYSW9iM0IwYVc5dWN5d2dZM1I0S1R0Y2JseHVJQ0FnSUdGM1lXbDBJSFJvYVhNdWQzSnBkR1Z5TG5keWFYUmxLR1pwYkdVc0lHTjBlQ2s3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUdOeVpXRjBaVkpsWTNWeWNtVnVZMlVvWEc0Z0lDQWdiM0IwYVc5dWN6b2dRMkZzWlc1a1lYSlNaVzFwYm1SbGNrOXdkR2x2Ym5Nc1hHNGdJQ0FnYzNSaGNuUTZJRVJoZEdVc1hHNGdJQ0FnZEdsdFpYcHZibVU2SUhOMGNtbHVaeXhjYmlBZ0lDQmpkSGc2SUVOdmJuUmxlSFE4WVc1NVBseHVJQ0FwT2lCU1pXTjFjbkpsYm1ObFVtVnpkV3gwSUh0Y2JpQWdJQ0JqYjI1emRDQndZWEp6WldRZ1BTQjBhR2x6TG5CaGNuTmxVMmx0Y0d4bFEzSnZiaWh2Y0hScGIyNXpMbU55YjI0c0lHTjBlQ2s3WEc0Z0lDQWdZMjl1YzNRZ2RXNTBhV3dnUFNCdmNIUnBiMjV6TG5WdWRHbHNJRDhnZEdocGN5NW1iM0p0WVhSVmRHTkVZWFJsS0c5d2RHbHZibk11ZFc1MGFXd3BJRG9nZFc1a1pXWnBibVZrTzF4dVhHNGdJQ0FnYVdZZ0tIQmhjbk5sWkNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnY25KMWJHVWdQU0IwYUdsekxtTnZiblpsY25SVGFXMXdiR1ZEY205dVZHOVNVblZzWlNod1lYSnpaV1FzSUhWdWRHbHNLVHRjYmx4dUlDQWdJQ0FnYVdZZ0tISnlkV3hsS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCN0lISnlkV3hsSUgwN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSHRjYmlBZ0lDQWdJSEprWVhSbGN6b2dkR2hwY3k1bGVIQmhibVJEY205dVJHRjBaWE1vWEc0Z0lDQWdJQ0FnSUc5d2RHbHZibk11WTNKdmJpeGNiaUFnSUNBZ0lDQWdjM1JoY25Rc1hHNGdJQ0FnSUNBZ0lIUnBiV1Y2YjI1bExGeHVJQ0FnSUNBZ0lDQnZjSFJwYjI1ekxtMWhlRTlqWTNWeWNtVnVZMlZ6SUQ4L0lETTJOU3hjYmlBZ0lDQWdJQ0FnYjNCMGFXOXVjeTUxYm5ScGJGeHVJQ0FnSUNBZ0tTeGNiaUFnSUNCOU8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRU52Ym5abGNuUnpJSFJvWlNCamIyMXRiMjVzZVNCdVpXVmtaV1FnYldWa2FXTmhkR2x2YmlCelkyaGxaSFZzWlhNdVhHNGdJQ0FxWEc0Z0lDQXFJRlZ1YzNWd2NHOXlkR1ZrSUdOeWIyNGdjMmhoY0dWeklHWmhiR3dnWW1GamF5QjBieUJsZUhCc2FXTnBkQ0JTUkVGVVJTQnZZMk4xY25KbGJtTmxjeTVjYmlBZ0lDb3ZYRzRnSUhCeWFYWmhkR1VnWTI5dWRtVnlkRk5wYlhCc1pVTnliMjVVYjFKU2RXeGxLRnh1SUNBZ0lHTnliMjQ2SUZCaGNuTmxaRU55YjI0c1hHNGdJQ0FnZFc1MGFXdy9PaUJ6ZEhKcGJtZGNiaUFnS1RvZ2MzUnlhVzVuSUh3Z2RXNWtaV1pwYm1Wa0lIdGNiaUFnSUNCamIyNXpkQ0J6ZFdabWFYZ2dQU0IxYm5ScGJDQS9JR0E3VlU1VVNVdzlKSHQxYm5ScGJIMWdJRG9nWENKY0lqdGNibHh1SUNBZ0lHTnZibk4wSUcxcGJuVjBaWE1nUFNCamNtOXVMbTFwYm5WMFpTNXFiMmx1S0Z3aUxGd2lLVHRjYmlBZ0lDQmpiMjV6ZENCb2IzVnljeUE5SUdOeWIyNHVhRzkxY2k1cWIybHVLRndpTEZ3aUtUdGNibHh1SUNBZ0lHTnZibk4wSUhScGJXVlFZWEowY3lBOUlHQkNXVWhQVlZJOUpIdG9iM1Z5YzMwN1FsbE5TVTVWVkVVOUpIdHRhVzUxZEdWemZUdENXVk5GUTA5T1JEMHdZRHRjYmx4dUlDQWdJR052Ym5OMElHVjJaWEo1UkdGNUlEMWNiaUFnSUNBZ0lHTnliMjR1WkdGNVQyWk5iMjUwYUNBOVBUMGdiblZzYkNBbUpseHVJQ0FnSUNBZ1kzSnZiaTV0YjI1MGFDQTlQVDBnYm5Wc2JDQW1KbHh1SUNBZ0lDQWdZM0p2Ymk1a1lYbFBabGRsWldzZ1BUMDlJRzUxYkd3N1hHNWNiaUFnSUNCcFppQW9aWFpsY25sRVlYa3BJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmdSbEpGVVQxRVFVbE1XVHNrZTNScGJXVlFZWEowYzMwa2UzTjFabVpwZUgxZ08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJSGRsWld0c2VTQTlYRzRnSUNBZ0lDQmpjbTl1TG1SaGVVOW1UVzl1ZEdnZ1BUMDlJRzUxYkd3Z0ppWmNiaUFnSUNBZ0lHTnliMjR1Ylc5dWRHZ2dQVDA5SUc1MWJHd2dKaVpjYmlBZ0lDQWdJR055YjI0dVpHRjVUMlpYWldWcklDRTlQU0J1ZFd4c08xeHVYRzRnSUNBZ2FXWWdLSGRsWld0c2VTa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2QyVmxhMlJoZVhNZ1BTQmpjbTl1WEc0Z0lDQWdJQ0FnSUM1a1lYbFBabGRsWldzaExtMWhjQ2dvWkdGNUtTQTlQaUIwYUdsekxuZGxaV3RrWVhsVWIwbGpjeWhrWVhrcEtWeHVJQ0FnSUNBZ0lDQXVhbTlwYmloY0lpeGNJaWs3WEc1Y2JpQWdJQ0FnSUhKbGRIVnliaUJnUmxKRlVUMVhSVVZMVEZrN1FsbEVRVms5Skh0M1pXVnJaR0Y1YzMwN0pIdDBhVzFsVUdGeWRITjlKSHR6ZFdabWFYaDlZRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCdGIyNTBhR3g1SUQxY2JpQWdJQ0FnSUdOeWIyNHVaR0Y1VDJaTmIyNTBhQ0FoUFQwZ2JuVnNiQ0FtSmx4dUlDQWdJQ0FnWTNKdmJpNXRiMjUwYUNBOVBUMGdiblZzYkNBbUpseHVJQ0FnSUNBZ1kzSnZiaTVrWVhsUFpsZGxaV3NnUFQwOUlHNTFiR3c3WEc1Y2JpQWdJQ0JwWmlBb2JXOXVkR2hzZVNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1SUNoY2JpQWdJQ0FnSUNBZ1lFWlNSVkU5VFU5T1ZFaE1XVHRDV1UxUFRsUklSRUZaUFNSN1kzSnZiaTVrWVhsUFprMXZiblJvSVM1cWIybHVLRndpTEZ3aUtYMDdZQ0FyWEc0Z0lDQWdJQ0FnSUdBa2UzUnBiV1ZRWVhKMGMzMGtlM04xWm1acGVIMWdYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhsbFlYSnNlU0E5WEc0Z0lDQWdJQ0JqY205dUxtUmhlVTltVFc5dWRHZ2dJVDA5SUc1MWJHd2dKaVpjYmlBZ0lDQWdJR055YjI0dWJXOXVkR2dnSVQwOUlHNTFiR3dnSmlaY2JpQWdJQ0FnSUdOeWIyNHVaR0Y1VDJaWFpXVnJJRDA5UFNCdWRXeHNPMXh1WEc0Z0lDQWdhV1lnS0hsbFlYSnNlU2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVJQ2hjYmlBZ0lDQWdJQ0FnWUVaU1JWRTlXVVZCVWt4Wk8wSlpUVTlPVkVnOUpIdGpjbTl1TG0xdmJuUm9JUzVxYjJsdUtGd2lMRndpS1gwN1lDQXJYRzRnSUNBZ0lDQWdJR0JDV1UxUFRsUklSRUZaUFNSN1kzSnZiaTVrWVhsUFprMXZiblJvSVM1cWIybHVLRndpTEZ3aUtYMDdZQ0FyWEc0Z0lDQWdJQ0FnSUdBa2UzUnBiV1ZRWVhKMGMzMGtlM04xWm1acGVIMWdYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDOHZJRU55YjI0Z1pHRjVMVzltTFcxdmJuUm9MMlJoZVMxdlppMTNaV1ZySUdOdmJXSnBibUYwYVc5dWN5Qm9ZWFpsSUU5U0xXeHBhMlVnYzJWdFlXNTBhV056WEc0Z0lDQWdMeThnYVc0Z2JXRnVlU0JwYlhCc1pXMWxiblJoZEdsdmJuTWdZVzVrSUdOaGJtNXZkQ0JpWlNCeVpYQnlaWE5sYm5SbFpDQnpZV1psYkhrZ1lYTWdiMjVsSUZKU1ZVeEZMbHh1SUNBZ0lISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElIQmhjbk5sVTJsdGNHeGxRM0p2YmloY2JpQWdJQ0JsZUhCeVpYTnphVzl1T2lCemRISnBibWNzWEc0Z0lDQWdZM1I0T2lCRGIyNTBaWGgwUEdGdWVUNWNiaUFnS1RvZ1VHRnljMlZrUTNKdmJpQjhJSFZ1WkdWbWFXNWxaQ0I3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNnZlNBOUlIUm9hWE11Ykc5blEzUjRLRnRqZEhoZExDQjBhR2x6TG5CaGNuTmxVMmx0Y0d4bFEzSnZiaWs3WEc0Z0lDQWdZMjl1YzNRZ1ptbGxiR1J6SUQwZ1pYaHdjbVZ6YzJsdmJpNTBjbWx0S0NrdWMzQnNhWFFvTDF4Y2N5c3ZLVHRjYmx4dUlDQWdJR2xtSUNobWFXVnNaSE11YkdWdVozUm9JQ0U5UFNBMUtTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RXNWtaV1pwYm1Wa08xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJRnR0YVc1MWRHVXNJR2h2ZFhJc0lHUmhlVTltVFc5dWRHZ3NJRzF2Ym5Sb0xDQmtZWGxQWmxkbFpXdGRJRDBnWm1sbGJHUnpPMXh1WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUhKbGRIVnliaUI3WEc0Z0lDQWdJQ0FnSUcxcGJuVjBaVG9nZEdocGN5NXdZWEp6WlVOeWIyNUdhV1ZzWkNodGFXNTFkR1VzSURBc0lEVTVMQ0JqZEhncExGeHVJQ0FnSUNBZ0lDQm9iM1Z5T2lCMGFHbHpMbkJoY25ObFEzSnZia1pwWld4a0tHaHZkWElzSURBc0lESXpMQ0JqZEhncExGeHVJQ0FnSUNBZ0lDQmtZWGxQWmsxdmJuUm9PbHh1SUNBZ0lDQWdJQ0FnSUdSaGVVOW1UVzl1ZEdnZ1BUMDlJRndpS2x3aVhHNGdJQ0FnSUNBZ0lDQWdJQ0EvSUc1MWJHeGNiaUFnSUNBZ0lDQWdJQ0FnSURvZ2RHaHBjeTV3WVhKelpVTnliMjVHYVdWc1pDaGtZWGxQWmsxdmJuUm9MQ0F4TENBek1Td2dZM1I0S1N4Y2JpQWdJQ0FnSUNBZ2JXOXVkR2c2SUcxdmJuUm9JRDA5UFNCY0lpcGNJaUEvSUc1MWJHd2dPaUIwYUdsekxuQmhjbk5sUTNKdmJrWnBaV3hrS0cxdmJuUm9MQ0F4TENBeE1pd2dZM1I0S1N4Y2JpQWdJQ0FnSUNBZ1pHRjVUMlpYWldWck9seHVJQ0FnSUNBZ0lDQWdJR1JoZVU5bVYyVmxheUE5UFQwZ1hDSXFYQ0pjYmlBZ0lDQWdJQ0FnSUNBZ0lEOGdiblZzYkZ4dUlDQWdJQ0FnSUNBZ0lDQWdPaUIwYUdsekxuQmhjbk5sUTNKdmJrWnBaV3hrS0dSaGVVOW1WMlZsYXl3Z01Dd2dOeXdnWTNSNEtTNXRZWEFvS0haaGJIVmxLU0E5UGx4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUhaaGJIVmxJRDA5UFNBM0lEOGdNQ0E2SUhaaGJIVmxYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDa3NYRzRnSUNBZ0lDQjlPMXh1SUNBZ0lIMGdZMkYwWTJnZ2UxeHVJQ0FnSUNBZ2JHOW5MbVJsWW5WbktHQkdZV2xzWldRZ2RHOGdaMlZ1WlhKaGRHVWdjMmx0Y0d4bElHTnliMjRnWlhod2NtVnpjMmx2YmlCbWIzSWdKSHRsZUhCeVpYTnphVzl1ZldBcE8xeHVJQ0FnSUNBZ2NtVjBkWEp1SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0I5WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhCaGNuTmxRM0p2YmtacFpXeGtLRnh1SUNBZ0lHWnBaV3hrT2lCemRISnBibWNzWEc0Z0lDQWdiV2x1YVcxMWJUb2diblZ0WW1WeUxGeHVJQ0FnSUcxaGVHbHRkVzA2SUc1MWJXSmxjaXhjYmlBZ0lDQXZMeUJsYzJ4cGJuUXRaR2x6WVdKc1pTMXVaWGgwTFd4cGJtVWdRSFI1Y0dWelkzSnBjSFF0WlhOc2FXNTBMMjV2TFhWdWRYTmxaQzEyWVhKelhHNGdJQ0FnWTNSNE9pQkRiMjUwWlhoMFBHRnVlVDVjYmlBZ0tUb2diblZ0WW1WeVcxMGdlMXh1SUNBZ0lHTnZibk4wSUhaaGJIVmxjeUE5SUc1bGR5QlRaWFE4Ym5WdFltVnlQaWdwTzF4dVhHNGdJQ0FnWm05eUlDaGpiMjV6ZENCelpXZHRaVzUwSUc5bUlHWnBaV3hrTG5Od2JHbDBLRndpTEZ3aUtTa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1czSmhibWRsUlhod2NtVnpjMmx2Yml3Z2MzUmxjRVY0Y0hKbGMzTnBiMjVkSUQwZ2MyVm5iV1Z1ZEM1emNHeHBkQ2hjSWk5Y0lpazdYRzVjYmlBZ0lDQWdJR052Ym5OMElITjBaWEFnUFZ4dUlDQWdJQ0FnSUNCemRHVndSWGh3Y21WemMybHZiaUE5UFQwZ2RXNWtaV1pwYm1Wa0lEOGdNU0E2SUU1MWJXSmxjaTV3WVhKelpVbHVkQ2h6ZEdWd1JYaHdjbVZ6YzJsdmJpd2dNVEFwTzF4dVhHNGdJQ0FnSUNCcFppQW9JVTUxYldKbGNpNXBjMGx1ZEdWblpYSW9jM1JsY0NrZ2ZId2djM1JsY0NBOFBTQXdLU0I3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCV1lXeHBaR0YwYVc5dVJYSnliM0lvWUVsdWRtRnNhV1FnWTNKdmJpQnpkR1Z3T2lBa2UzTmxaMjFsYm5SOVlDazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR3hsZENCemRHRnlkRG9nYm5WdFltVnlPMXh1SUNBZ0lDQWdiR1YwSUdWdVpEb2diblZ0WW1WeU8xeHVYRzRnSUNBZ0lDQnBaaUFvY21GdVoyVkZlSEJ5WlhOemFXOXVJRDA5UFNCY0lpcGNJaWtnZTF4dUlDQWdJQ0FnSUNCemRHRnlkQ0E5SUcxcGJtbHRkVzA3WEc0Z0lDQWdJQ0FnSUdWdVpDQTlJRzFoZUdsdGRXMDdYRzRnSUNBZ0lDQjlJR1ZzYzJVZ2FXWWdLSEpoYm1kbFJYaHdjbVZ6YzJsdmJpNXBibU5zZFdSbGN5aGNJaTFjSWlrcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1ltOTFibVJ6SUQwZ2NtRnVaMlZGZUhCeVpYTnphVzl1TG5Od2JHbDBLRndpTFZ3aUtUdGNibHh1SUNBZ0lDQWdJQ0JwWmlBb1ltOTFibVJ6TG14bGJtZDBhQ0FoUFQwZ01pa2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCV1lXeHBaR0YwYVc5dVJYSnliM0lvWUVsdWRtRnNhV1FnWTNKdmJpQnlZVzVuWlRvZ0pIdHpaV2R0Wlc1MGZXQXBPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ2MzUmhjblFnUFNCT2RXMWlaWEl1Y0dGeWMyVkpiblFvWW05MWJtUnpXekJkTENBeE1DazdYRzRnSUNBZ0lDQWdJR1Z1WkNBOUlFNTFiV0psY2k1d1lYSnpaVWx1ZENoaWIzVnVaSE5iTVYwc0lERXdLVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJSE4wWVhKMElEMGdUblZ0WW1WeUxuQmhjbk5sU1c1MEtISmhibWRsUlhod2NtVnpjMmx2Yml3Z01UQXBPMXh1SUNBZ0lDQWdJQ0JsYm1RZ1BTQnpkR0Z5ZER0Y2JpQWdJQ0FnSUgxY2JseHVJQ0FnSUNBZ2FXWWdLRnh1SUNBZ0lDQWdJQ0FoVG5WdFltVnlMbWx6U1c1MFpXZGxjaWh6ZEdGeWRDa2dmSHhjYmlBZ0lDQWdJQ0FnSVU1MWJXSmxjaTVwYzBsdWRHVm5aWElvWlc1a0tTQjhmRnh1SUNBZ0lDQWdJQ0J6ZEdGeWRDQThJRzFwYm1sdGRXMGdmSHhjYmlBZ0lDQWdJQ0FnWlc1a0lENGdiV0Y0YVcxMWJTQjhmRnh1SUNBZ0lDQWdJQ0J6ZEdGeWRDQStJR1Z1WkZ4dUlDQWdJQ0FnS1NCN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QldZV3hwWkdGMGFXOXVSWEp5YjNJb1lFbHVkbUZzYVdRZ1kzSnZiaUJtYVdWc1pEb2dKSHR6WldkdFpXNTBmV0FwTzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCbWIzSWdLR3hsZENCMllXeDFaU0E5SUhOMFlYSjBPeUIyWVd4MVpTQThQU0JsYm1RN0lIWmhiSFZsSUNzOUlITjBaWEFwSUh0Y2JpQWdJQ0FnSUNBZ2RtRnNkV1Z6TG1Ga1pDaDJZV3gxWlNrN1hHNGdJQ0FnSUNCOVhHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJRnN1TGk1MllXeDFaWE5kTG5OdmNuUW9LR0VzSUdJcElEMCtJR0VnTFNCaUtUdGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdaWGh3WVc1a1EzSnZia1JoZEdWektGeHVJQ0FnSUdOeWIyNDZJSE4wY21sdVp5eGNiaUFnSUNCemRHRnlkRG9nUkdGMFpTeGNiaUFnSUNCMGFXMWxlbTl1WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJRzFoZUdsdGRXMDZJRzUxYldKbGNpeGNiaUFnSUNCMWJuUnBiRDg2SUVSaGRHVmNiaUFnS1RvZ1JHRjBaVnRkSUh0Y2JpQWdJQ0JqYjI1emRDQnBiblJsY25aaGJDQTlJRU55YjI1RmVIQnlaWE56YVc5dVVHRnljMlZ5TG5CaGNuTmxLR055YjI0c0lIdGNiaUFnSUNBZ0lHTjFjbkpsYm5SRVlYUmxPaUJ6ZEdGeWRDeGNiaUFnSUNBZ0lIUjZPaUIwYVcxbGVtOXVaU3hjYmlBZ0lDQjlLVHRjYmx4dUlDQWdJR052Ym5OMElHOWpZM1Z5Y21WdVkyVnpPaUJFWVhSbFcxMGdQU0JiWFR0Y2JseHVJQ0FnSUhkb2FXeGxJQ2h2WTJOMWNuSmxibU5sY3k1c1pXNW5kR2dnUENCdFlYaHBiWFZ0S1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0J1WlhoMElEMGdhVzUwWlhKMllXd3VibVY0ZENncExuUnZSR0YwWlNncE8xeHVYRzRnSUNBZ0lDQnBaaUFvZFc1MGFXd2dKaVlnYm1WNGRDQStJSFZ1ZEdsc0tTQjdYRzRnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnZZMk4xY25KbGJtTmxjeTV3ZFhOb0tHNWxlSFFwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNodlkyTjFjbkpsYm1ObGN5NXNaVzVuZEdnZ1BUMDlJREFwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhjYmlBZ0lDQWdJQ0FnWENKVWFHVWdZM0p2YmlCbGVIQnlaWE56YVc5dUlIQnliMlIxWTJWa0lHNXZJRzlqWTNWeWNtVnVZMlZ6SUdsdUlIUm9aU0J5WlhGMVpYTjBaV1FnY21GdVoyVXVYQ0pjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdjbVYwZFhKdUlHOWpZM1Z5Y21WdVkyVnpPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JuWlhSR2FYSnpkRTlqWTNWeWNtVnVZMlVvWEc0Z0lDQWdZM0p2YmpvZ2MzUnlhVzVuTEZ4dUlDQWdJSE4wWVhKME9pQkVZWFJsTEZ4dUlDQWdJSFJwYldWNmIyNWxPaUJ6ZEhKcGJtZGNiaUFnS1RvZ1JHRjBaU0I3WEc0Z0lDQWdZMjl1YzNRZ2FXNTBaWEoyWVd3Z1BTQkRjbTl1Ulhod2NtVnpjMmx2YmxCaGNuTmxjaTV3WVhKelpTaGpjbTl1TENCN1hHNGdJQ0FnSUNCamRYSnlaVzUwUkdGMFpUb2djM1JoY25Rc1hHNGdJQ0FnSUNCMGVqb2dkR2x0WlhwdmJtVXNYRzRnSUNBZ2ZTazdYRzVjYmlBZ0lDQnlaWFIxY200Z2FXNTBaWEoyWVd3dWJtVjRkQ2dwTG5SdlJHRjBaU2dwTzF4dUlDQjlYRzVjYmlBZ2NISnBkbUYwWlNCamNtVmhkR1ZHYjJ4a1pXUlNSR0YwWlV4cGJtVnpLR1JoZEdWek9pQkVZWFJsVzEwc0lIUnBiV1Y2YjI1bE9pQnpkSEpwYm1jcE9pQnpkSEpwYm1kYlhTQjdYRzRnSUNBZ1kyOXVjM1FnY0hKbFptbDRJRDBnWUZKRVFWUkZPMVJhU1VROUpIdDBhR2x6TG1WelkyRndaVkJoY21GdFpYUmxjaWgwYVcxbGVtOXVaU2w5T21BN1hHNWNiaUFnSUNCamIyNXpkQ0IyWVd4MVpYTWdQU0JrWVhSbGN5NXRZWEFvS0dSaGRHVXBJRDArSUhSb2FYTXVabTl5YldGMFRHOWpZV3hFWVhSbEtHUmhkR1VzSUhScGJXVjZiMjVsS1NrN1hHNWNiaUFnSUNBdkx5QkxaV1Z3SUdWaFkyZ2diRzluYVdOaGJDQndjbTl3WlhKMGVTQnlaV0Z6YjI1aFlteDVJSE5wZW1Wa0lHSmxabTl5WlNCU1JrTWdiR2x1WlNCbWIyeGthVzVuTGx4dUlDQWdJR052Ym5OMElISmxjM1ZzZERvZ2MzUnlhVzVuVzEwZ1BTQmJYVHRjYmlBZ0lDQnNaWFFnWTNWeWNtVnVkQ0E5SUhCeVpXWnBlRHRjYmx4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnZG1Gc2RXVWdiMllnZG1Gc2RXVnpLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmpZVzVrYVdSaGRHVWdQVnh1SUNBZ0lDQWdJQ0JqZFhKeVpXNTBJRDA5UFNCd2NtVm1hWGdnUHlCZ0pIdGpkWEp5Wlc1MGZTUjdkbUZzZFdWOVlDQTZJR0FrZTJOMWNuSmxiblI5TENSN2RtRnNkV1Y5WUR0Y2JseHVJQ0FnSUNBZ2FXWWdLRzVsZHlCVVpYaDBSVzVqYjJSbGNpZ3BMbVZ1WTI5a1pTaGpZVzVrYVdSaGRHVXBMbXhsYm1kMGFDQStJRGN3TUNrZ2UxeHVJQ0FnSUNBZ0lDQnlaWE4xYkhRdWNIVnphQ2hqZFhKeVpXNTBLVHRjYmlBZ0lDQWdJQ0FnWTNWeWNtVnVkQ0E5SUdBa2UzQnlaV1pwZUgwa2UzWmhiSFZsZldBN1hHNGdJQ0FnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnSUNCamRYSnlaVzUwSUQwZ1kyRnVaR2xrWVhSbE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JseHVJQ0FnSUdsbUlDaGpkWEp5Wlc1MElDRTlQU0J3Y21WbWFYZ3BJSHRjYmlBZ0lDQWdJSEpsYzNWc2RDNXdkWE5vS0dOMWNuSmxiblFwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHWnZjbTFoZEZWMFkwUmhkR1VvWkdGMFpUb2dSR0YwWlNrNklITjBjbWx1WnlCN1hHNGdJQ0FnY21WMGRYSnVJR1JoZEdWY2JpQWdJQ0FnSUM1MGIwbFRUMU4wY21sdVp5Z3BYRzRnSUNBZ0lDQXVjbVZ3YkdGalpTZ3ZXeTA2WFM5bkxDQmNJbHdpS1Z4dUlDQWdJQ0FnTG5KbGNHeGhZMlVvTDF4Y0xseGNaSHN6ZlZva0x5d2dYQ0phWENJcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQm1iM0p0WVhSTWIyTmhiRVJoZEdVb1pHRjBaVG9nUkdGMFpTd2dkR2x0WlhwdmJtVTZJSE4wY21sdVp5azZJSE4wY21sdVp5QjdYRzRnSUNBZ1kyOXVjM1FnY0dGeWRITWdQU0J1WlhjZ1NXNTBiQzVFWVhSbFZHbHRaVVp2Y20xaGRDaGNJbVZ1TFVOQlhDSXNJSHRjYmlBZ0lDQWdJSFJwYldWYWIyNWxPaUIwYVcxbGVtOXVaU3hjYmlBZ0lDQWdJSGxsWVhJNklGd2liblZ0WlhKcFkxd2lMRnh1SUNBZ0lDQWdiVzl1ZEdnNklGd2lNaTFrYVdkcGRGd2lMRnh1SUNBZ0lDQWdaR0Y1T2lCY0lqSXRaR2xuYVhSY0lpeGNiaUFnSUNBZ0lHaHZkWEk2SUZ3aU1pMWthV2RwZEZ3aUxGeHVJQ0FnSUNBZ2JXbHVkWFJsT2lCY0lqSXRaR2xuYVhSY0lpeGNiaUFnSUNBZ0lITmxZMjl1WkRvZ1hDSXlMV1JwWjJsMFhDSXNYRzRnSUNBZ0lDQm9iM1Z5UTNsamJHVTZJRndpYURJelhDSXNYRzRnSUNBZ2ZTa3VabTl5YldGMFZHOVFZWEowY3loa1lYUmxLVHRjYmx4dUlDQWdJR052Ym5OMElIWmhiSFZsY3lBOUlFOWlhbVZqZEM1bWNtOXRSVzUwY21sbGN5aGNiaUFnSUNBZ0lIQmhjblJ6WEc0Z0lDQWdJQ0FnSUM1bWFXeDBaWElvS0hCaGNuUXBJRDArSUhCaGNuUXVkSGx3WlNBaFBUMGdYQ0pzYVhSbGNtRnNYQ0lwWEc0Z0lDQWdJQ0FnSUM1dFlYQW9LSEJoY25RcElEMCtJRnR3WVhKMExuUjVjR1VzSUhCaGNuUXVkbUZzZFdWZEtWeHVJQ0FnSUNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnS0Z4dUlDQWdJQ0FnWUNSN2RtRnNkV1Z6TG5sbFlYSjlKSHQyWVd4MVpYTXViVzl1ZEdoOUpIdDJZV3gxWlhNdVpHRjVmV0FnSzF4dUlDQWdJQ0FnWUZRa2UzWmhiSFZsY3k1b2IzVnlmU1I3ZG1Gc2RXVnpMbTFwYm5WMFpYMGtlM1poYkhWbGN5NXpaV052Ym1SOVlGeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHWnZiR1JNYVc1bGN5aHNhVzVsY3pvZ2MzUnlhVzVuVzEwcE9pQnpkSEpwYm1kYlhTQjdYRzRnSUNBZ2NtVjBkWEp1SUd4cGJtVnpMbVpzWVhSTllYQW9LR3hwYm1VcElEMCtJSFJvYVhNdVptOXNaRXhwYm1Vb2JHbHVaU2twTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSkdReUExTlRRMUlHTnZiblJsYm5RZ2JHbHVaWE1nYzJodmRXeGtJR0psSUdadmJHUmxaQ0JoZENBM05TQnZZM1JsZEhNdVhHNGdJQ0FxTDF4dUlDQndjbWwyWVhSbElHWnZiR1JNYVc1bEtHeHBibVU2SUhOMGNtbHVaeWs2SUhOMGNtbHVaMXRkSUh0Y2JpQWdJQ0JqYjI1emRDQmxibU52WkdWeUlEMGdibVYzSUZSbGVIUkZibU52WkdWeUtDazdYRzRnSUNBZ1kyOXVjM1FnY21WemRXeDBPaUJ6ZEhKcGJtZGJYU0E5SUZ0ZE8xeHVJQ0FnSUd4bGRDQnlaVzFoYVc1cGJtY2dQU0JzYVc1bE8xeHVJQ0FnSUd4bGRDQm1hWEp6ZENBOUlIUnlkV1U3WEc1Y2JpQWdJQ0IzYUdsc1pTQW9aVzVqYjJSbGNpNWxibU52WkdVb1ptbHljM1FnUHlCeVpXMWhhVzVwYm1jZ09pQmdJQ1I3Y21WdFlXbHVhVzVuZldBcExteGxibWQwYUNBK0lEYzFLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQndjbVZtYVhnZ1BTQm1hWEp6ZENBL0lGd2lYQ0lnT2lCY0lpQmNJanRjYmlBZ0lDQWdJR3hsZENCamFIVnVheUE5SUZ3aVhDSTdYRzRnSUNBZ0lDQnNaWFFnWTI5dWMzVnRaV1FnUFNBd08xeHVYRzRnSUNBZ0lDQm1iM0lnS0dOdmJuTjBJR05vWVhKaFkzUmxjaUJ2WmlCeVpXMWhhVzVwYm1jcElIdGNiaUFnSUNBZ0lDQWdZMjl1YzNRZ1kyRnVaR2xrWVhSbElEMGdZQ1I3Y0hKbFptbDRmU1I3WTJoMWJtdDlKSHRqYUdGeVlXTjBaWEo5WUR0Y2JseHVJQ0FnSUNBZ0lDQnBaaUFvWlc1amIyUmxjaTVsYm1OdlpHVW9ZMkZ1Wkdsa1lYUmxLUzVzWlc1bmRHZ2dQaUEzTlNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR0p5WldGck8xeHVJQ0FnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJQ0FnWTJoMWJtc2dLejBnWTJoaGNtRmpkR1Z5TzF4dUlDQWdJQ0FnSUNCamIyNXpkVzFsWkNBclBTQmphR0Z5WVdOMFpYSXViR1Z1WjNSb08xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnBaaUFvSVdOb2RXNXJLU0I3WEc0Z0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWhjSWxWdVlXSnNaU0IwYnlCbWIyeGtJR2xEWVd4bGJtUmhjaUJqYjI1MFpXNTBJR3hwYm1VdVhDSXBPMXh1SUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0J5WlhOMWJIUXVjSFZ6YUNoZ0pIdHdjbVZtYVhoOUpIdGphSFZ1YTMxZ0tUdGNiaUFnSUNBZ0lISmxiV0ZwYm1sdVp5QTlJSEpsYldGcGJtbHVaeTV6YkdsalpTaGpiMjV6ZFcxbFpDazdYRzRnSUNBZ0lDQm1hWEp6ZENBOUlHWmhiSE5sTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsYzNWc2RDNXdkWE5vS0dacGNuTjBJRDhnY21WdFlXbHVhVzVuSURvZ1lDQWtlM0psYldGcGJtbHVaMzFnS1R0Y2JseHVJQ0FnSUhKbGRIVnliaUJ5WlhOMWJIUTdYRzRnSUgxY2JseHVJQ0J3Y21sMllYUmxJR1Z6WTJGd1pWUmxlSFFvZG1Gc2RXVTZJSE4wY21sdVp5azZJSE4wY21sdVp5QjdYRzRnSUNBZ2NtVjBkWEp1SUhaaGJIVmxYRzRnSUNBZ0lDQXVjbVZ3YkdGalpTZ3ZYRnhjWEM5bkxDQmNJbHhjWEZ4Y1hGeGNYQ0lwWEc0Z0lDQWdJQ0F1Y21Wd2JHRmpaU2d2WEZ4eVAxeGNiaTluTENCY0lseGNYRnh1WENJcFhHNGdJQ0FnSUNBdWNtVndiR0ZqWlNndk95OW5MQ0JjSWx4Y1hGdzdYQ0lwWEc0Z0lDQWdJQ0F1Y21Wd2JHRmpaU2d2TEM5bkxDQmNJbHhjWEZ3c1hDSXBPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JsYzJOaGNHVlFjbTl3WlhKMGVTaDJZV3gxWlRvZ2MzUnlhVzVuS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0J5WlhSMWNtNGdkbUZzZFdVdWNtVndiR0ZqWlNndlcxeGNjbHhjYmwwdlp5d2dYQ0pjSWlrN1hHNGdJSDFjYmx4dUlDQndjbWwyWVhSbElHVnpZMkZ3WlZCaGNtRnRaWFJsY2loMllXeDFaVG9nYzNSeWFXNW5LVG9nYzNSeWFXNW5JSHRjYmlBZ0lDQnBaaUFvSVM5ZVcwRXRXbUV0ZWpBdE9WOHJMaTh0WFNza0x5NTBaWE4wS0haaGJIVmxLU2tnZTF4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUZaaGJHbGtZWFJwYjI1RmNuSnZjaWhnVlc1ellXWmxJR2xEWVd4bGJtUmhjaUJ3WVhKaGJXVjBaWEk2SUNSN2RtRnNkV1Y5WUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSFpoYkhWbE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQjNaV1ZyWkdGNVZHOUpZM01vWkdGNU9pQnVkVzFpWlhJcE9pQnpkSEpwYm1jZ2UxeHVJQ0FnSUdOdmJuTjBJR1JoZVhNZ1BTQmJYQ0pUVlZ3aUxDQmNJazFQWENJc0lGd2lWRlZjSWl3Z1hDSlhSVndpTENCY0lsUklYQ0lzSUZ3aVJsSmNJaXdnWENKVFFWd2lYVHRjYmlBZ0lDQmpiMjV6ZENCeVpYTjFiSFFnUFNCa1lYbHpXMlJoZVYwN1hHNWNiaUFnSUNCcFppQW9JWEpsYzNWc2RDa2dlMXh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRlpoYkdsa1lYUnBiMjVGY25KdmNpaGdTVzUyWVd4cFpDQjNaV1ZyWkdGNU9pQWtlMlJoZVgxZ0tUdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnY21WemRXeDBPMXh1SUNCOVhHNWNiaUFnY0hKcGRtRjBaU0JqY21WaGRHVlZhV1FvS1RvZ2MzUnlhVzVuSUh0Y2JpQWdJQ0JqYjI1emRDQnlZVzVrYjIwZ1BWeHVJQ0FnSUNBZ1oyeHZZbUZzVkdocGN5NWpjbmx3ZEc4L0xuSmhibVJ2YlZWVlNVUS9MaWdwSUQ4L1hHNGdJQ0FnSUNCZ0pIdEVZWFJsTG01dmR5Z3BmUzBrZTAxaGRHZ3VjbUZ1Wkc5dEtDa3VkRzlUZEhKcGJtY29NVFlwTG5Oc2FXTmxLRElwZldBN1hHNWNiaUFnSUNCeVpYUjFjbTRnWUNSN2NtRnVaRzl0ZlVCallXeGxibVJoY2kxelpYSjJhV05sWUR0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1kzSmxZWFJsUm1sc1pXNWhiV1VvZEdsMGJHVTZJSE4wY21sdVp5azZJSE4wY21sdVp5QjdYRzRnSUNBZ1kyOXVjM1FnYzJGbVpWUnBkR3hsSUQwZ2RHbDBiR1ZjYmlBZ0lDQWdJQzV1YjNKdFlXeHBlbVVvWENKT1JrdEVYQ0lwWEc0Z0lDQWdJQ0F1Y21Wd2JHRmpaU2d2VzE1Y1hIY3VMVjByTDJjc0lGd2lMVndpS1Z4dUlDQWdJQ0FnTG5KbGNHeGhZMlVvTDE0dEszd3RLeVF2Wnl3Z1hDSmNJaWxjYmlBZ0lDQWdJQzUwYjB4dmQyVnlRMkZ6WlNncE8xeHVYRzRnSUNBZ2NtVjBkWEp1SUdBa2UzTmhabVZVYVhSc1pTQjhmQ0JjSW1OaGJHVnVaR0Z5TFhKbGJXbHVaR1Z5WENKOUxtbGpjMkE3WEc0Z0lIMWNibHh1SUNCd2NtbDJZWFJsSUhaaGJHbGtZWFJsVDNCMGFXOXVjeWh2Y0hScGIyNXpPaUJEWVd4bGJtUmhjbEpsYldsdVpHVnlUM0IwYVc5dWN5azZJSFp2YVdRZ2UxeHVJQ0FnSUdsbUlDZ2hiM0IwYVc5dWN5NWpjbTl1UHk1MGNtbHRLQ2twSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCV1lXeHBaR0YwYVc5dVJYSnliM0lvWENKQklHTnliMjRnWlhod2NtVnpjMmx2YmlCcGN5QnlaWEYxYVhKbFpDNWNJaWs3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0NGdmNIUnBiMjV6TG5ScGRHeGxQeTUwY21sdEtDa3BJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJXWVd4cFpHRjBhVzl1UlhKeWIzSW9YQ0pCSUdOaGJHVnVaR0Z5SUhScGRHeGxJR2x6SUhKbGNYVnBjbVZrTGx3aUtUdGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9YRzRnSUNBZ0lDQnZjSFJwYjI1ekxtUjFjbUYwYVc5dVRXbHVkWFJsY3lBaFBUMGdkVzVrWldacGJtVmtJQ1ltWEc0Z0lDQWdJQ0FvSVU1MWJXSmxjaTVwYzBacGJtbDBaU2h2Y0hScGIyNXpMbVIxY21GMGFXOXVUV2x1ZFhSbGN5a2dmSHhjYmlBZ0lDQWdJQ0FnYjNCMGFXOXVjeTVrZFhKaGRHbHZiazFwYm5WMFpYTWdQRDBnTUNsY2JpQWdJQ0FwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCV1lXeHBaR0YwYVc5dVJYSnliM0lvWENKa2RYSmhkR2x2YmsxcGJuVjBaWE1nYlhWemRDQmlaU0JuY21WaGRHVnlJSFJvWVc0Z2VtVnlieTVjSWlrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tGeHVJQ0FnSUNBZ2IzQjBhVzl1Y3k1aGJHRnliVTFwYm5WMFpYTkNaV1p2Y21VZ0lUMDlJSFZ1WkdWbWFXNWxaQ0FtSmx4dUlDQWdJQ0FnS0NGT2RXMWlaWEl1YVhOSmJuUmxaMlZ5S0c5d2RHbHZibk11WVd4aGNtMU5hVzUxZEdWelFtVm1iM0psS1NCOGZGeHVJQ0FnSUNBZ0lDQnZjSFJwYjI1ekxtRnNZWEp0VFdsdWRYUmxjMEpsWm05eVpTQThJREFwWEc0Z0lDQWdLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVm1Gc2FXUmhkR2x2YmtWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JjSW1Gc1lYSnRUV2x1ZFhSbGMwSmxabTl5WlNCdGRYTjBJR0psSUdFZ2JtOXVMVzVsWjJGMGFYWmxJR2x1ZEdWblpYSXVYQ0pjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdhV1lnS0Z4dUlDQWdJQ0FnYjNCMGFXOXVjeTV0WVhoUFkyTjFjbkpsYm1ObGN5QWhQVDBnZFc1a1pXWnBibVZrSUNZbVhHNGdJQ0FnSUNBb0lVNTFiV0psY2k1cGMwbHVkR1ZuWlhJb2IzQjBhVzl1Y3k1dFlYaFBZMk4xY25KbGJtTmxjeWtnZkh3Z2IzQjBhVzl1Y3k1dFlYaFBZMk4xY25KbGJtTmxjeUE4UFNBd0tWeHVJQ0FnSUNrZ2UxeHVJQ0FnSUNBZ2RHaHliM2NnYm1WM0lGWmhiR2xrWVhScGIyNUZjbkp2Y2loY0ltMWhlRTlqWTNWeWNtVnVZMlZ6SUcxMWMzUWdZbVVnWVNCd2IzTnBkR2wyWlNCcGJuUmxaMlZ5TGx3aUtUdGNiaUFnSUNCOVhHNGdJSDFjYm4xY2JpSmRmUT09Il19
|
|
392
|
+
//# sourceMappingURL=CalendarService.js.map
|
|
393
|
+
//# sourceMappingURL=CalendarService.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar/CalendarService.cjs","sourceRoot":"","sources":["calendar/CalendarService.js"],"names":[],"mappings":"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"}
|
|
@@ -44,5 +44,5 @@ exports.CalendarEnvironment = logging_1.LoggedEnvironment.accumulate({
|
|
|
44
44
|
},
|
|
45
45
|
},
|
|
46
46
|
});
|
|
47
|
-
//# sourceMappingURL=
|
|
48
|
-
//# sourceMappingURL=
|
|
47
|
+
//# sourceMappingURL=environment.js.map
|
|
48
|
+
//# sourceMappingURL=environment.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar/environment.cjs","sourceRoot":"","sources":["calendar/environment.js"],"names":[],"mappings":";;;AAAA;;;;;;;;;;GAUG;AACH,+CAAsD;AACtD;;;;;;;;;;;;;;;;;;;GAmBG;AACU,QAAA,mBAAmB,GAAG,2BAAiB,CAAC,UAAU,CAAC;IAC5D,QAAQ,EAAE;QACN,cAAc,EAAE;YACZ,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,SAAS;SACrB;KACJ;CACJ,CAAC,CAAC;AACH,uCAAuC"}
|