@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
|
@@ -499,5 +499,5 @@ function kibanaPluginFiles(targetVersion) {
|
|
|
499
499
|
{ path: "server/plugin.ts", content: SERVER_PLUGIN },
|
|
500
500
|
];
|
|
501
501
|
}
|
|
502
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMva2liYW5hL3RlbXBsYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUNILE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsc0JBQW1CO0FBU3BGLE1BQU0sU0FBUyxHQUFHOzs7O0NBSWpCLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQStCcEIsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHOzs7Ozs7Q0FNcEIsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7O2FBZ0JULGFBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBMEJ6QixDQUFDO0FBRUYsTUFBTSxrQkFBa0IsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTZTMUIsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFHOzs7Ozs7Q0FNcEIsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7c0JBZUEsYUFBYTs7Ozs7Ozt1QkFPWixhQUFhOzs7Ozs7Ozs7OztDQVduQyxDQUFDO0FBRUYsTUFBTSxNQUFNLEdBQUcsS0FBSyxnQkFBZ0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztjQXFCdEIsYUFBYTs7Ozs7Ozs7V0FRaEIscUJBQXFCO0NBQy9CLENBQUM7QUFFRjs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLGFBQXFCO0lBQ3JELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQzdCO1FBQ0UsRUFBRSxFQUFFLGdCQUFnQjtRQUNwQixPQUFPLEVBQUUscUJBQXFCO1FBQzlCLGFBQWEsRUFBRSxhQUFhO1FBQzVCLE1BQU0sRUFBRSxJQUFJO1FBQ1osRUFBRSxFQUFFLElBQUk7UUFDUixlQUFlLEVBQUUsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQztRQUNwRCxlQUFlLEVBQUUsRUFBRTtLQUNwQixFQUNELElBQUksRUFDSixDQUFDLENBQ0YsQ0FBQztJQUVGLE9BQU87UUFDTCxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLEdBQUcsUUFBUSxJQUFJLEVBQUU7UUFDakQsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxHQUFHLFNBQVMsSUFBSSxFQUFFO1FBQ3BELEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFO1FBQ3RDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUU7UUFDbEQsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRTtRQUNsRCxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFO1FBQ3JELEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRTtRQUMvRCxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO1FBQ2xELEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUU7S0FDckQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3BsdWdpbnMva2liYW5hL3RlbXBsYXRlc1xuICogQHN1bW1hcnkgVmVyc2lvbi1wYXJhbWV0ZXJpemVkIHNvdXJjZSB0ZW1wbGF0ZXMgZm9yIHRoZSBLaWJhbmEgZW1iZWQgcGx1Z2luLlxuICogQGRlc2NyaXB0aW9uIEhvbGRzIHRoZSBnZW5lcmF0ZWQgcGx1Z2luIHNvdXJjZSBhcyBzdHJpbmcgdGVtcGxhdGVzLiBUaGVzZVxuICogYXJlIG1hdGVyaWFsaXplZCBvbnRvIGRpc2sgYnkgdGhlIGluc3RhbGxlci4gVGhlIHNvdXJjZSBpcyB0aGUgcmVmZXJlbmNlXG4gKiBtdWx0aS10ZW5hbnQgZW1iZWQgcGx1Z2luIHByZXNlcnZlZCBpbiBERUNBRi00MCDCpzguIFRoZXJlIGlzIG5ldmVyIHNwYWNlXG4gKiBzd2l0Y2hpbmc7IHRoZSBwbHVnaW4gaXMgb3JnLWFnbm9zdGljIGFuZCB0aGUgY3VycmVudCBLaWJhbmEgc3BhY2UgY29tZXNcbiAqIGZyb20gdGhlIHJlcXVlc3Qvc2Vzc2lvbi9wcm94eSBjb250ZXh0LlxuICovXG5pbXBvcnQgeyBLSUJBTkFfQVBQX0lELCBLSUJBTkFfUExVR0lOX0lELCBLSUJBTkFfUExVR0lOX1ZFUlNJT04gfSBmcm9tIFwiLi9tYW5pZmVzdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEtpYmFuYVBsdWdpbkZpbGUge1xuICAvKiogUmVsYXRpdmUgcGF0aCB3aXRoaW4gdGhlIHBsdWdpbiBkaXJlY3RvcnkuICovXG4gIHBhdGg6IHN0cmluZztcbiAgLyoqIEZpbGUgY29udGVudHMuICovXG4gIGNvbnRlbnQ6IHN0cmluZztcbn1cblxuY29uc3QgVFNfQ09ORklHID0gYHtcbiAgXCJleHRlbmRzXCI6IFwiLi4vLi4vdHNjb25maWcuanNvblwiLFxuICBcImluY2x1ZGVcIjogW1wicHVibGljLyoqLypcIiwgXCJzZXJ2ZXIvKiovKlwiXVxufVxuYDtcblxuY29uc3QgUFVCTElDX1RZUEVTID0gYGltcG9ydCB0eXBlIHtcbiAgQXBwTW91bnRQYXJhbWV0ZXJzLFxuICBDb3JlU2V0dXAsXG4gIENvcmVTdGFydCxcbiAgUGx1Z2luXG59IGZyb20gJ0BrYm4vY29yZS9wdWJsaWMnO1xuXG5pbXBvcnQgdHlwZSB7IERhc2hib2FyZFN0YXJ0IH0gZnJvbSAnQGtibi9kYXNoYm9hcmQtcGx1Z2luL3B1YmxpYyc7XG5pbXBvcnQgdHlwZSB7IEVtYmVkZGFibGVTdGFydCB9IGZyb20gJ0BrYm4vZW1iZWRkYWJsZS1wbHVnaW4vcHVibGljJztcbmltcG9ydCB0eXBlIHsgRGF0YVB1YmxpY1BsdWdpblN0YXJ0IH0gZnJvbSAnQGtibi9kYXRhLXBsdWdpbi9wdWJsaWMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9yZ0Rhc2hib2FyZEVtYmVkU2V0dXBEZXBzIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JnRGFzaGJvYXJkRW1iZWRTdGFydERlcHMge1xuICBkYXNoYm9hcmQ6IERhc2hib2FyZFN0YXJ0O1xuICBlbWJlZGRhYmxlOiBFbWJlZGRhYmxlU3RhcnQ7XG4gIGRhdGE6IERhdGFQdWJsaWNQbHVnaW5TdGFydDtcbn1cblxuZXhwb3J0IHR5cGUgT3JnRGFzaGJvYXJkRW1iZWRQbHVnaW4gPSBQbHVnaW48XG4gIHZvaWQsXG4gIHZvaWQsXG4gIE9yZ0Rhc2hib2FyZEVtYmVkU2V0dXBEZXBzLFxuICBPcmdEYXNoYm9hcmRFbWJlZFN0YXJ0RGVwc1xuPjtcblxuZXhwb3J0IGludGVyZmFjZSBNb3VudEFwcEFyZ3Mge1xuICBjb3JlU3RhcnQ6IENvcmVTdGFydDtcbiAgZGVwc1N0YXJ0OiBPcmdEYXNoYm9hcmRFbWJlZFN0YXJ0RGVwcztcbiAgcGFyYW1zOiBBcHBNb3VudFBhcmFtZXRlcnM7XG59XG5gO1xuXG5jb25zdCBQVUJMSUNfSU5ERVggPSBgaW1wb3J0IHR5cGUgeyBPcmdEYXNoYm9hcmRFbWJlZFBsdWdpbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgT3JnRGFzaGJvYXJkRW1iZWRQbHVnaW5JbXBsIH0gZnJvbSAnLi9wbHVnaW4nO1xuXG5leHBvcnQgZnVuY3Rpb24gcGx1Z2luKCk6IE9yZ0Rhc2hib2FyZEVtYmVkUGx1Z2luIHtcbiAgcmV0dXJuIG5ldyBPcmdEYXNoYm9hcmRFbWJlZFBsdWdpbkltcGwoKTtcbn1cbmA7XG5cbmNvbnN0IFBVQkxJQ19QTFVHSU4gPSBgaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nO1xuXG5pbXBvcnQgdHlwZSB7IENvcmVTZXR1cCwgQ29yZVN0YXJ0IH0gZnJvbSAnQGtibi9jb3JlL3B1YmxpYyc7XG5pbXBvcnQgdHlwZSB7XG4gIE9yZ0Rhc2hib2FyZEVtYmVkUGx1Z2luLFxuICBPcmdEYXNoYm9hcmRFbWJlZFNldHVwRGVwcyxcbiAgT3JnRGFzaGJvYXJkRW1iZWRTdGFydERlcHNcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBPcmdEYXNoYm9hcmRFbWJlZFBsdWdpbkltcGwgaW1wbGVtZW50cyBPcmdEYXNoYm9hcmRFbWJlZFBsdWdpbiB7XG4gIHB1YmxpYyBzZXR1cChcbiAgICBjb3JlOiBDb3JlU2V0dXA8T3JnRGFzaGJvYXJkRW1iZWRTdGFydERlcHM+LFxuICAgIGRlcHM6IE9yZ0Rhc2hib2FyZEVtYmVkU2V0dXBEZXBzXG4gICkge1xuICAgIGNvcmUuYXBwbGljYXRpb24ucmVnaXN0ZXIoe1xuICAgICAgaWQ6ICcke0tJQkFOQV9BUFBfSUR9JyxcbiAgICAgIHRpdGxlOiAnRGFzaGJvYXJkIEVtYmVkJyxcbiAgICAgIGNocm9tZWxlc3M6IHRydWUsXG4gICAgICB2aXNpYmxlSW46IFtdLFxuICAgICAgYXN5bmMgbW91bnQocGFyYW1zKSB7XG4gICAgICAgIGNvbnN0IFtjb3JlU3RhcnQsIGRlcHNTdGFydF0gPSBhd2FpdCBjb3JlLmdldFN0YXJ0U2VydmljZXMoKTtcbiAgICAgICAgY29uc3QgeyBPcmdEYXNoYm9hcmRFbWJlZEFwcCB9ID0gYXdhaXQgaW1wb3J0KCcuL2FwcGxpY2F0aW9uJyk7XG5cbiAgICAgICAgUmVhY3RET00ucmVuZGVyKFxuICAgICAgICAgIDxPcmdEYXNoYm9hcmRFbWJlZEFwcFxuICAgICAgICAgICAgY29yZVN0YXJ0PXtjb3JlU3RhcnR9XG4gICAgICAgICAgICBkZXBzU3RhcnQ9e2RlcHNTdGFydH1cbiAgICAgICAgICAgIHBhcmFtcz17cGFyYW1zfVxuICAgICAgICAgIC8+LFxuICAgICAgICAgIHBhcmFtcy5lbGVtZW50XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IFJlYWN0RE9NLnVubW91bnRDb21wb25lbnRBdE5vZGUocGFyYW1zLmVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0KGNvcmU6IENvcmVTdGFydCwgZGVwczogT3JnRGFzaGJvYXJkRW1iZWRTdGFydERlcHMpIHt9XG5cbiAgcHVibGljIHN0b3AoKSB7fVxufVxuYDtcblxuY29uc3QgUFVCTElDX0FQUExJQ0FUSU9OID0gYGltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUgeyBNb3VudEFwcEFyZ3MgfSBmcm9tICcuL3R5cGVzJztcblxudHlwZSBEYXNoYm9hcmRRdWVyeSA9IHtcbiAgbGFuZ3VhZ2U6ICdrdWVyeScgfCAnbHVjZW5lJztcbiAgcXVlcnk6IHN0cmluZztcbn07XG5cbnR5cGUgRGFzaGJvYXJkVGltZVJhbmdlID0ge1xuICBmcm9tOiBzdHJpbmc7XG4gIHRvOiBzdHJpbmc7XG59O1xuXG50eXBlIFN3aXRjaERhc2hib2FyZE1lc3NhZ2UgPSB7XG4gIHR5cGU6ICdPUkdfREFTSEJPQVJEX0VNQkVEX1NXSVRDSF9EQVNIQk9BUkQnO1xuICBkYXNoYm9hcmRJZDogc3RyaW5nO1xuICB0aW1lUmFuZ2U/OiBEYXNoYm9hcmRUaW1lUmFuZ2U7XG4gIHF1ZXJ5PzogRGFzaGJvYXJkUXVlcnk7XG4gIGZpbHRlcnM/OiB1bmtub3duW107XG59O1xuXG50eXBlIFBhcmVudFJlYWR5TWVzc2FnZSA9IHtcbiAgdHlwZTogJ09SR19EQVNIQk9BUkRfRU1CRURfUkVBRFknO1xuICBkYXNoYm9hcmRJZDogc3RyaW5nIHwgbnVsbDtcbn07XG5cbnR5cGUgUGFyZW50UmVuZGVyZWRNZXNzYWdlID0ge1xuICB0eXBlOiAnT1JHX0RBU0hCT0FSRF9FTUJFRF9SRU5ERVJFRCc7XG4gIGRhc2hib2FyZElkOiBzdHJpbmc7XG59O1xuXG50eXBlIFBhcmVudEVycm9yTWVzc2FnZSA9IHtcbiAgdHlwZTogJ09SR19EQVNIQk9BUkRfRU1CRURfRVJST1InO1xuICBkYXNoYm9hcmRJZDogc3RyaW5nIHwgbnVsbDtcbiAgbWVzc2FnZTogc3RyaW5nO1xufTtcblxudHlwZSBQYXJlbnRNZXNzYWdlID1cbiAgfCBQYXJlbnRSZWFkeU1lc3NhZ2VcbiAgfCBQYXJlbnRSZW5kZXJlZE1lc3NhZ2VcbiAgfCBQYXJlbnRFcnJvck1lc3NhZ2U7XG5cbmNvbnN0IERFRkFVTFRfQUxMT1dFRF9QQVJFTlRfT1JJR0lOUzogc3RyaW5nW10gPSBbXG4gIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW5cbl07XG5cbmZ1bmN0aW9uIGdldEluaXRpYWxEYXNoYm9hcmRJZCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgcmV0dXJuIHBhcmFtcy5nZXQoJ2Rhc2hib2FyZElkJyk7XG59XG5cbmZ1bmN0aW9uIGdldEFsbG93ZWRQYXJlbnRPcmlnaW5zKCk6IHN0cmluZ1tdIHtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgY29uc3QgcmF3ID0gcGFyYW1zLmdldCgncGFyZW50T3JpZ2luJyk7XG5cbiAgaWYgKCFyYXcpIHtcbiAgICByZXR1cm4gREVGQVVMVF9BTExPV0VEX1BBUkVOVF9PUklHSU5TO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBkZWNvZGVkID0gZGVjb2RlVVJJQ29tcG9uZW50KHJhdyk7XG4gICAgY29uc3Qgb3JpZ2lucyA9IGRlY29kZWRcbiAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAubWFwKChvcmlnaW4pID0+IG9yaWdpbi50cmltKCkpXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pO1xuXG4gICAgcmV0dXJuIG9yaWdpbnMubGVuZ3RoID4gMCA/IG9yaWdpbnMgOiBERUZBVUxUX0FMTE9XRURfUEFSRU5UX09SSUdJTlM7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBERUZBVUxUX0FMTE9XRURfUEFSRU5UX09SSUdJTlM7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlKGRhdGE6IHVua25vd24pOiBkYXRhIGlzIFN3aXRjaERhc2hib2FyZE1lc3NhZ2Uge1xuICBpZiAoIWRhdGEgfHwgdHlwZW9mIGRhdGEgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgbWVzc2FnZSA9IGRhdGEgYXMgUGFydGlhbDxTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlPjtcblxuICByZXR1cm4gKFxuICAgIG1lc3NhZ2UudHlwZSA9PT0gJ09SR19EQVNIQk9BUkRfRU1CRURfU1dJVENIX0RBU0hCT0FSRCcgJiZcbiAgICB0eXBlb2YgbWVzc2FnZS5kYXNoYm9hcmRJZCA9PT0gJ3N0cmluZycgJiZcbiAgICBtZXNzYWdlLmRhc2hib2FyZElkLmxlbmd0aCA+IDBcbiAgKTtcbn1cblxuZnVuY3Rpb24gcG9zdFRvUGFyZW50KG1lc3NhZ2U6IFBhcmVudE1lc3NhZ2UsIHRhcmdldE9yaWdpbjogc3RyaW5nKSB7XG4gIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UobWVzc2FnZSwgdGFyZ2V0T3JpZ2luKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE9yZ0Rhc2hib2FyZEVtYmVkQXBwKHtcbiAgY29yZVN0YXJ0LFxuICBkZXBzU3RhcnRcbn06IE1vdW50QXBwQXJncykge1xuICBjb25zdCByb290UmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IG1vdW50ZWREYXNoYm9hcmRSZWYgPSB1c2VSZWY8YW55PihudWxsKTtcbiAgY29uc3QgYWxsb3dlZFBhcmVudE9yaWdpbnNSZWYgPSB1c2VSZWY8c3RyaW5nW10+KGdldEFsbG93ZWRQYXJlbnRPcmlnaW5zKCkpO1xuICBjb25zdCBsYXN0UGFyZW50T3JpZ2luUmVmID0gdXNlUmVmPHN0cmluZz4od2luZG93LmxvY2F0aW9uLm9yaWdpbik7XG5cbiAgY29uc3QgW2Rhc2hib2FyZElkLCBzZXREYXNoYm9hcmRJZF0gPSB1c2VTdGF0ZTxzdHJpbmcgfCBudWxsPihcbiAgICBnZXRJbml0aWFsRGFzaGJvYXJkSWQoKVxuICApO1xuXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvcmVTdGFydC5jaHJvbWUuc2V0SXNWaXNpYmxlKGZhbHNlKTtcbiAgfSwgW2NvcmVTdGFydF0pO1xuXG4gIGNvbnN0IGRlc3Ryb3lDdXJyZW50RGFzaGJvYXJkID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChtb3VudGVkRGFzaGJvYXJkUmVmLmN1cnJlbnQ/LmRlc3Ryb3kpIHtcbiAgICAgIG1vdW50ZWREYXNoYm9hcmRSZWYuY3VycmVudC5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgbW91bnRlZERhc2hib2FyZFJlZi5jdXJyZW50ID0gbnVsbDtcblxuICAgIGlmIChyb290UmVmLmN1cnJlbnQpIHtcbiAgICAgIHJvb3RSZWYuY3VycmVudC5pbm5lckhUTUwgPSAnJztcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCBhcHBseVNoYXJlZERhc2hib2FyZFN0YXRlID0gdXNlQ2FsbGJhY2soXG4gICAgKG1lc3NhZ2U6IFN3aXRjaERhc2hib2FyZE1lc3NhZ2UpID0+IHtcbiAgICAgIGlmIChtZXNzYWdlLnRpbWVSYW5nZSkge1xuICAgICAgICBkZXBzU3RhcnQuZGF0YS5xdWVyeS50aW1lZmlsdGVyLnRpbWVmaWx0ZXIuc2V0VGltZShtZXNzYWdlLnRpbWVSYW5nZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtZXNzYWdlLnF1ZXJ5KSB7XG4gICAgICAgIGRlcHNTdGFydC5kYXRhLnF1ZXJ5LnF1ZXJ5U3RyaW5nLnNldFF1ZXJ5KG1lc3NhZ2UucXVlcnkpO1xuICAgICAgfVxuXG4gICAgICBpZiAobWVzc2FnZS5maWx0ZXJzKSB7XG4gICAgICAgIGRlcHNTdGFydC5kYXRhLnF1ZXJ5LmZpbHRlck1hbmFnZXIuc2V0RmlsdGVycyhtZXNzYWdlLmZpbHRlcnMgYXMgYW55KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtkZXBzU3RhcnQuZGF0YV1cbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG9uTWVzc2FnZSA9IChldmVudDogTWVzc2FnZUV2ZW50KSA9PiB7XG4gICAgICBpZiAoIWFsbG93ZWRQYXJlbnRPcmlnaW5zUmVmLmN1cnJlbnQuaW5jbHVkZXMoZXZlbnQub3JpZ2luKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlKGV2ZW50LmRhdGEpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbGFzdFBhcmVudE9yaWdpblJlZi5jdXJyZW50ID0gZXZlbnQub3JpZ2luO1xuXG4gICAgICBhcHBseVNoYXJlZERhc2hib2FyZFN0YXRlKGV2ZW50LmRhdGEpO1xuICAgICAgc2V0RGFzaGJvYXJkSWQoZXZlbnQuZGF0YS5kYXNoYm9hcmRJZCk7XG4gICAgfTtcblxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgb25NZXNzYWdlKTtcblxuICAgIHBvc3RUb1BhcmVudChcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ09SR19EQVNIQk9BUkRfRU1CRURfUkVBRFknLFxuICAgICAgICBkYXNoYm9hcmRJZFxuICAgICAgfSxcbiAgICAgIGxhc3RQYXJlbnRPcmlnaW5SZWYuY3VycmVudFxuICAgICk7XG5cbiAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBvbk1lc3NhZ2UpO1xuICB9LCBbYXBwbHlTaGFyZWREYXNoYm9hcmRTdGF0ZSwgZGFzaGJvYXJkSWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZGFzaGJvYXJkSWQgfHwgIXJvb3RSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjYW5jZWxsZWQgPSBmYWxzZTtcblxuICAgIGFzeW5jIGZ1bmN0aW9uIHJlbmRlckRhc2hib2FyZCgpIHtcbiAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGRlc3Ryb3lDdXJyZW50RGFzaGJvYXJkKCk7XG5cbiAgICAgICAgY29uc3QgZmFjdG9yeSA9XG4gICAgICAgICAgZGVwc1N0YXJ0LmVtYmVkZGFibGUuZ2V0RW1iZWRkYWJsZUZhY3Rvcnk/LignZGFzaGJvYXJkJykgfHxcbiAgICAgICAgICBkZXBzU3RhcnQuZW1iZWRkYWJsZS5nZXRFbWJlZGRhYmxlRmFjdG9yeT8uKCdkYXNoYm9hcmRfY29udGFpbmVyJyk7XG5cbiAgICAgICAgaWYgKCFmYWN0b3J5KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdLaWJhbmEgZGFzaGJvYXJkIGVtYmVkZGFibGUgZmFjdG9yeSB3YXMgbm90IGZvdW5kLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW1iZWRkYWJsZSA9IGF3YWl0IGZhY3RvcnkuY3JlYXRlKHtcbiAgICAgICAgICBpZDogZGFzaGJvYXJkSWQsXG4gICAgICAgICAgc2F2ZWRPYmplY3RJZDogZGFzaGJvYXJkSWQsXG4gICAgICAgICAgdmlld01vZGU6ICd2aWV3JyxcbiAgICAgICAgICBoaWRlUGFuZWxUaXRsZXM6IGZhbHNlLFxuICAgICAgICAgIHVzZU1hcmdpbnM6IHRydWUsXG4gICAgICAgICAgc3luY0NvbG9yczogdHJ1ZSxcbiAgICAgICAgICBzeW5jQ3Vyc29yOiB0cnVlLFxuICAgICAgICAgIHN5bmNUb29sdGlwczogdHJ1ZSxcbiAgICAgICAgICB0aW1lUmFuZ2U6IGRlcHNTdGFydC5kYXRhLnF1ZXJ5LnRpbWVmaWx0ZXIudGltZWZpbHRlci5nZXRUaW1lKCksXG4gICAgICAgICAgcXVlcnk6IGRlcHNTdGFydC5kYXRhLnF1ZXJ5LnF1ZXJ5U3RyaW5nLmdldFF1ZXJ5KCksXG4gICAgICAgICAgZmlsdGVyczogZGVwc1N0YXJ0LmRhdGEucXVlcnkuZmlsdGVyTWFuYWdlci5nZXRGaWx0ZXJzKClcbiAgICAgICAgfSBhcyBhbnkpO1xuXG4gICAgICAgIGlmIChjYW5jZWxsZWQpIHtcbiAgICAgICAgICBlbWJlZGRhYmxlLmRlc3Ryb3k/LigpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGVtYmVkZGFibGUucmVuZGVyKHJvb3RSZWYuY3VycmVudCEpO1xuICAgICAgICBtb3VudGVkRGFzaGJvYXJkUmVmLmN1cnJlbnQgPSBlbWJlZGRhYmxlO1xuXG4gICAgICAgIHBvc3RUb1BhcmVudChcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiAnT1JHX0RBU0hCT0FSRF9FTUJFRF9SRU5ERVJFRCcsXG4gICAgICAgICAgICBkYXNoYm9hcmRJZFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGFzdFBhcmVudE9yaWdpblJlZi5jdXJyZW50XG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zdCBtZXNzYWdlID1cbiAgICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGRhc2hib2FyZCBlcnJvcic7XG5cbiAgICAgICAgaWYgKHJvb3RSZWYuY3VycmVudCkge1xuICAgICAgICAgIHJvb3RSZWYuY3VycmVudC5pbm5lckhUTUwgPSBcXGBcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJcbiAgICAgICAgICAgICAgcGFkZGluZzogMjRweDtcbiAgICAgICAgICAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG4gICAgICAgICAgICAgIGNvbG9yOiAjYmQyNzFlO1xuICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgIEZhaWxlZCB0byByZW5kZXIgZGFzaGJvYXJkOiBcXCR7bWVzc2FnZX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxcYDtcbiAgICAgICAgfVxuXG4gICAgICAgIHBvc3RUb1BhcmVudChcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiAnT1JHX0RBU0hCT0FSRF9FTUJFRF9FUlJPUicsXG4gICAgICAgICAgICBkYXNoYm9hcmRJZCxcbiAgICAgICAgICAgIG1lc3NhZ2VcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxhc3RQYXJlbnRPcmlnaW5SZWYuY3VycmVudFxuICAgICAgICApO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgaWYgKCFjYW5jZWxsZWQpIHtcbiAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJlbmRlckRhc2hib2FyZCgpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGNhbmNlbGxlZCA9IHRydWU7XG4gICAgfTtcbiAgfSwgW2Rhc2hib2FyZElkLCBkZXBzU3RhcnQsIGRlc3Ryb3lDdXJyZW50RGFzaGJvYXJkXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZGVzdHJveUN1cnJlbnREYXNoYm9hcmQoKTtcbiAgICB9O1xuICB9LCBbZGVzdHJveUN1cnJlbnREYXNoYm9hcmRdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgICBpbnNldDogMCxcbiAgICAgICAgd2lkdGg6ICcxMDB2dycsXG4gICAgICAgIGhlaWdodDogJzEwMHZoJyxcbiAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICBiYWNrZ3JvdW5kOiAnI2ZmZidcbiAgICAgIH19XG4gICAgPlxuICAgICAge2xvYWRpbmcgJiYgKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgaW5zZXQ6IDAsXG4gICAgICAgICAgICB6SW5kZXg6IDEwLFxuICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICBmb250RmFtaWx5OiAnc2Fucy1zZXJpZicsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAnI2ZmZidcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgTG9hZGluZyBkYXNoYm9hcmTigKZcbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuXG4gICAgICA8ZGl2XG4gICAgICAgIHJlZj17cm9vdFJlZn1cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICBpbnNldDogMCxcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIGhlaWdodDogJzEwMCUnXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufVxuYDtcblxuY29uc3QgU0VSVkVSX0lOREVYID0gYGltcG9ydCB0eXBlIHsgUGx1Z2luSW5pdGlhbGl6ZXJDb250ZXh0IH0gZnJvbSAnQGtibi9jb3JlL3NlcnZlcic7XG5pbXBvcnQgeyBPcmdEYXNoYm9hcmRFbWJlZFNlcnZlclBsdWdpbiB9IGZyb20gJy4vcGx1Z2luJztcblxuZXhwb3J0IGZ1bmN0aW9uIHBsdWdpbihpbml0aWFsaXplckNvbnRleHQ6IFBsdWdpbkluaXRpYWxpemVyQ29udGV4dCkge1xuICByZXR1cm4gbmV3IE9yZ0Rhc2hib2FyZEVtYmVkU2VydmVyUGx1Z2luKGluaXRpYWxpemVyQ29udGV4dCk7XG59XG5gO1xuXG5jb25zdCBTRVJWRVJfUExVR0lOID0gYGltcG9ydCB0eXBlIHtcbiAgQ29yZVNldHVwLFxuICBDb3JlU3RhcnQsXG4gIFBsdWdpbixcbiAgUGx1Z2luSW5pdGlhbGl6ZXJDb250ZXh0XG59IGZyb20gJ0BrYm4vY29yZS9zZXJ2ZXInO1xuXG5leHBvcnQgY2xhc3MgT3JnRGFzaGJvYXJkRW1iZWRTZXJ2ZXJQbHVnaW4gaW1wbGVtZW50cyBQbHVnaW4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGluaXRpYWxpemVyQ29udGV4dDogUGx1Z2luSW5pdGlhbGl6ZXJDb250ZXh0KSB7fVxuXG4gIHB1YmxpYyBzZXR1cChjb3JlOiBDb3JlU2V0dXApIHtcbiAgICBjb25zdCByb3V0ZXIgPSBjb3JlLmh0dHAuY3JlYXRlUm91dGVyKCk7XG5cbiAgICByb3V0ZXIuZ2V0KFxuICAgICAge1xuICAgICAgICBwYXRoOiAnL2FwaS8ke0tJQkFOQV9BUFBfSUR9L2hlYWx0aCcsXG4gICAgICAgIHZhbGlkYXRlOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIGFzeW5jIChjb250ZXh0LCByZXF1ZXN0LCByZXNwb25zZSkgPT4ge1xuICAgICAgICByZXR1cm4gcmVzcG9uc2Uub2soe1xuICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgIG9rOiB0cnVlLFxuICAgICAgICAgICAgcGx1Z2luOiAnJHtLSUJBTkFfQVBQX0lEfSdcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3RhcnQoY29yZTogQ29yZVN0YXJ0KSB7fVxuXG4gIHB1YmxpYyBzdG9wKCkge31cbn1cbmA7XG5cbmNvbnN0IFJFQURNRSA9IGAjICR7S0lCQU5BX1BMVUdJTl9JRH1cblxuTXVsdGktdGVuYW50LCBvcmctYWdub3N0aWMgS2liYW5hIGRhc2hib2FyZCBlbWJlZCBwbHVnaW4uXG5cblRoZXJlIGlzIG5ldmVyIHNwYWNlIHN3aXRjaGluZy4gRWFjaCBvcmcgYWxyZWFkeSBsYW5kcyBpbiBpdHMgb3duIEtpYmFuYSBzcGFjZVxudGhyb3VnaCB0aGUgYmFja2VuZCBwcm94eS9zZXNzaW9uIFVSTCwgYW5kIHRoZSBwbHVnaW4gb25seSBzd2l0Y2hlcyBkYXNoYm9hcmRzXG53aXRoaW4gdGhlIGN1cnJlbnQgc3BhY2UuXG5cbiMjIEJ1aWxkXG5cbktpYmFuYSBwbHVnaW5zIG11c3QgbWF0Y2ggdGhlIGV4YWN0IEtpYmFuYSB2ZXJzaW9uIGFuZCBtdXN0IGJlIGJ1aWx0IHdpdGhpbiB0aGVcbktpYmFuYSByZXBvIChzZWUga2JuLXBsdWdpbi1nZW5lcmF0b3IpLiBQbGFjZSB0aGlzIGRpcmVjdG9yeSB1bmRlclxuXFxga2liYW5hLWV4dHJhL1xcYCAob3IgXFxgcGx1Z2lucy9cXGApIGFuZCBydW4gdGhlIEtpYmFuYSBwbHVnaW4gYnVpbGQsIGUuZy46XG5cblxcYFxcYFxcYFxueWFybiBidWlsZFxuXFxgXFxgXFxgXG5cbiMjIEVtYmVkIFVSTFxuXG5cXGBcXGBcXGBcbi9raWJhbmEvYXBwLyR7S0lCQU5BX0FQUF9JRH0/ZGFzaGJvYXJkSWQ9PGlkPiZwYXJlbnRPcmlnaW49PG9yaWdpbj5cblxcYFxcYFxcYFxuXG4jIyBNZXNzYWdlIHByb3RvY29sXG5cbi0gUGFyZW50IC0+IHBsdWdpbjogXFxgT1JHX0RBU0hCT0FSRF9FTUJFRF9TV0lUQ0hfREFTSEJPQVJEXFxgXG4tIFBsdWdpbiAtPiBwYXJlbnQ6IFxcYE9SR19EQVNIQk9BUkRfRU1CRURfUkVBRFlcXGAgLyBcXGBPUkdfREFTSEJPQVJEX0VNQkVEX1JFTkRFUkVEXFxgIC8gXFxgT1JHX0RBU0hCT0FSRF9FTUJFRF9FUlJPUlxcYFxuXG5WZXJzaW9uOiAke0tJQkFOQV9QTFVHSU5fVkVSU0lPTn1cbmA7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgZ2VuZXJhdGVkIHBsdWdpbiBmaWxlcyBmb3IgYSB0YXJnZXQgS2liYW5hIHZlcnNpb24uXG4gKlxuICogQHBhcmFtIHRhcmdldFZlcnNpb24gLSBLaWJhbmEgdmVyc2lvbiBiYWtlZCBpbnRvIGBraWJhbmEuanNvbmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBraWJhbmFQbHVnaW5GaWxlcyh0YXJnZXRWZXJzaW9uOiBzdHJpbmcpOiBLaWJhbmFQbHVnaW5GaWxlW10ge1xuICBjb25zdCBtYW5pZmVzdCA9IEpTT04uc3RyaW5naWZ5KFxuICAgIHtcbiAgICAgIGlkOiBLSUJBTkFfUExVR0lOX0lELFxuICAgICAgdmVyc2lvbjogS0lCQU5BX1BMVUdJTl9WRVJTSU9OLFxuICAgICAga2liYW5hVmVyc2lvbjogdGFyZ2V0VmVyc2lvbixcbiAgICAgIHNlcnZlcjogdHJ1ZSxcbiAgICAgIHVpOiB0cnVlLFxuICAgICAgcmVxdWlyZWRQbHVnaW5zOiBbXCJkYXNoYm9hcmRcIiwgXCJlbWJlZGRhYmxlXCIsIFwiZGF0YVwiXSxcbiAgICAgIG9wdGlvbmFsUGx1Z2luczogW10sXG4gICAgfSxcbiAgICBudWxsLFxuICAgIDJcbiAgKTtcblxuICByZXR1cm4gW1xuICAgIHsgcGF0aDogXCJraWJhbmEuanNvblwiLCBjb250ZW50OiBgJHttYW5pZmVzdH1cXG5gIH0sXG4gICAgeyBwYXRoOiBcInRzY29uZmlnLmpzb25cIiwgY29udGVudDogYCR7VFNfQ09ORklHfVxcbmAgfSxcbiAgICB7IHBhdGg6IFwiUkVBRE1FLm1kXCIsIGNvbnRlbnQ6IFJFQURNRSB9LFxuICAgIHsgcGF0aDogXCJwdWJsaWMvdHlwZXMudHNcIiwgY29udGVudDogUFVCTElDX1RZUEVTIH0sXG4gICAgeyBwYXRoOiBcInB1YmxpYy9pbmRleC50c1wiLCBjb250ZW50OiBQVUJMSUNfSU5ERVggfSxcbiAgICB7IHBhdGg6IFwicHVibGljL3BsdWdpbi50c3hcIiwgY29udGVudDogUFVCTElDX1BMVUdJTiB9LFxuICAgIHsgcGF0aDogXCJwdWJsaWMvYXBwbGljYXRpb24udHN4XCIsIGNvbnRlbnQ6IFBVQkxJQ19BUFBMSUNBVElPTiB9LFxuICAgIHsgcGF0aDogXCJzZXJ2ZXIvaW5kZXgudHNcIiwgY29udGVudDogU0VSVkVSX0lOREVYIH0sXG4gICAgeyBwYXRoOiBcInNlcnZlci9wbHVnaW4udHNcIiwgY29udGVudDogU0VSVkVSX1BMVUdJTiB9LFxuICBdO1xufVxuIl19
|
|
503
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidGVtcGxhdGVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBNGRBLDhDQXFCQztBQWpmRDs7Ozs7Ozs7R0FRRztBQUNILCtDQUF1RjtBQUN2RixNQUFNLFNBQVMsR0FBRzs7OztDQUlqQixDQUFDO0FBQ0YsTUFBTSxZQUFZLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0ErQnBCLENBQUM7QUFDRixNQUFNLFlBQVksR0FBRzs7Ozs7O0NBTXBCLENBQUM7QUFDRixNQUFNLGFBQWEsR0FBRzs7Ozs7Ozs7Ozs7Ozs7OzthQWdCVCwyQkFBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0EwQnpCLENBQUM7QUFDRixNQUFNLGtCQUFrQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNlMxQixDQUFDO0FBQ0YsTUFBTSxZQUFZLEdBQUc7Ozs7OztDQU1wQixDQUFDO0FBQ0YsTUFBTSxhQUFhLEdBQUc7Ozs7Ozs7Ozs7Ozs7OztzQkFlQSwyQkFBYTs7Ozs7Ozt1QkFPWiwyQkFBYTs7Ozs7Ozs7Ozs7Q0FXbkMsQ0FBQztBQUNGLE1BQU0sTUFBTSxHQUFHLEtBQUssOEJBQWdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Y0FxQnRCLDJCQUFhOzs7Ozs7OztXQVFoQixtQ0FBcUI7Q0FDL0IsQ0FBQztBQUNGOzs7O0dBSUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxhQUFhO0lBQzNDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDNUIsRUFBRSxFQUFFLDhCQUFnQjtRQUNwQixPQUFPLEVBQUUsbUNBQXFCO1FBQzlCLGFBQWEsRUFBRSxhQUFhO1FBQzVCLE1BQU0sRUFBRSxJQUFJO1FBQ1osRUFBRSxFQUFFLElBQUk7UUFDUixlQUFlLEVBQUUsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQztRQUNwRCxlQUFlLEVBQUUsRUFBRTtLQUN0QixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNaLE9BQU87UUFDSCxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLEdBQUcsUUFBUSxJQUFJLEVBQUU7UUFDakQsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxHQUFHLFNBQVMsSUFBSSxFQUFFO1FBQ3BELEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFO1FBQ3RDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUU7UUFDbEQsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRTtRQUNsRCxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFO1FBQ3JELEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRTtRQUMvRCxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO1FBQ2xELEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUU7S0FDdkQsQ0FBQztBQUNOLENBQUM7QUFDRCxzMm9CQUFzMm9CIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9wbHVnaW5zL2tpYmFuYS90ZW1wbGF0ZXNcbiAqIEBzdW1tYXJ5IFZlcnNpb24tcGFyYW1ldGVyaXplZCBzb3VyY2UgdGVtcGxhdGVzIGZvciB0aGUgS2liYW5hIGVtYmVkIHBsdWdpbi5cbiAqIEBkZXNjcmlwdGlvbiBIb2xkcyB0aGUgZ2VuZXJhdGVkIHBsdWdpbiBzb3VyY2UgYXMgc3RyaW5nIHRlbXBsYXRlcy4gVGhlc2VcbiAqIGFyZSBtYXRlcmlhbGl6ZWQgb250byBkaXNrIGJ5IHRoZSBpbnN0YWxsZXIuIFRoZSBzb3VyY2UgaXMgdGhlIHJlZmVyZW5jZVxuICogbXVsdGktdGVuYW50IGVtYmVkIHBsdWdpbiBwcmVzZXJ2ZWQgaW4gREVDQUYtNDAgwqc4LiBUaGVyZSBpcyBuZXZlciBzcGFjZVxuICogc3dpdGNoaW5nOyB0aGUgcGx1Z2luIGlzIG9yZy1hZ25vc3RpYyBhbmQgdGhlIGN1cnJlbnQgS2liYW5hIHNwYWNlIGNvbWVzXG4gKiBmcm9tIHRoZSByZXF1ZXN0L3Nlc3Npb24vcHJveHkgY29udGV4dC5cbiAqL1xuaW1wb3J0IHsgS0lCQU5BX0FQUF9JRCwgS0lCQU5BX1BMVUdJTl9JRCwgS0lCQU5BX1BMVUdJTl9WRVJTSU9OIH0gZnJvbSBcIi4vbWFuaWZlc3QuanNcIjtcbmNvbnN0IFRTX0NPTkZJRyA9IGB7XG4gIFwiZXh0ZW5kc1wiOiBcIi4uLy4uL3RzY29uZmlnLmpzb25cIixcbiAgXCJpbmNsdWRlXCI6IFtcInB1YmxpYy8qKi8qXCIsIFwic2VydmVyLyoqLypcIl1cbn1cbmA7XG5jb25zdCBQVUJMSUNfVFlQRVMgPSBgaW1wb3J0IHR5cGUge1xuICBBcHBNb3VudFBhcmFtZXRlcnMsXG4gIENvcmVTZXR1cCxcbiAgQ29yZVN0YXJ0LFxuICBQbHVnaW5cbn0gZnJvbSAnQGtibi9jb3JlL3B1YmxpYyc7XG5cbmltcG9ydCB0eXBlIHsgRGFzaGJvYXJkU3RhcnQgfSBmcm9tICdAa2JuL2Rhc2hib2FyZC1wbHVnaW4vcHVibGljJztcbmltcG9ydCB0eXBlIHsgRW1iZWRkYWJsZVN0YXJ0IH0gZnJvbSAnQGtibi9lbWJlZGRhYmxlLXBsdWdpbi9wdWJsaWMnO1xuaW1wb3J0IHR5cGUgeyBEYXRhUHVibGljUGx1Z2luU3RhcnQgfSBmcm9tICdAa2JuL2RhdGEtcGx1Z2luL3B1YmxpYyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JnRGFzaGJvYXJkRW1iZWRTZXR1cERlcHMge31cblxuZXhwb3J0IGludGVyZmFjZSBPcmdEYXNoYm9hcmRFbWJlZFN0YXJ0RGVwcyB7XG4gIGRhc2hib2FyZDogRGFzaGJvYXJkU3RhcnQ7XG4gIGVtYmVkZGFibGU6IEVtYmVkZGFibGVTdGFydDtcbiAgZGF0YTogRGF0YVB1YmxpY1BsdWdpblN0YXJ0O1xufVxuXG5leHBvcnQgdHlwZSBPcmdEYXNoYm9hcmRFbWJlZFBsdWdpbiA9IFBsdWdpbjxcbiAgdm9pZCxcbiAgdm9pZCxcbiAgT3JnRGFzaGJvYXJkRW1iZWRTZXR1cERlcHMsXG4gIE9yZ0Rhc2hib2FyZEVtYmVkU3RhcnREZXBzXG4+O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1vdW50QXBwQXJncyB7XG4gIGNvcmVTdGFydDogQ29yZVN0YXJ0O1xuICBkZXBzU3RhcnQ6IE9yZ0Rhc2hib2FyZEVtYmVkU3RhcnREZXBzO1xuICBwYXJhbXM6IEFwcE1vdW50UGFyYW1ldGVycztcbn1cbmA7XG5jb25zdCBQVUJMSUNfSU5ERVggPSBgaW1wb3J0IHR5cGUgeyBPcmdEYXNoYm9hcmRFbWJlZFBsdWdpbiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgT3JnRGFzaGJvYXJkRW1iZWRQbHVnaW5JbXBsIH0gZnJvbSAnLi9wbHVnaW4nO1xuXG5leHBvcnQgZnVuY3Rpb24gcGx1Z2luKCk6IE9yZ0Rhc2hib2FyZEVtYmVkUGx1Z2luIHtcbiAgcmV0dXJuIG5ldyBPcmdEYXNoYm9hcmRFbWJlZFBsdWdpbkltcGwoKTtcbn1cbmA7XG5jb25zdCBQVUJMSUNfUExVR0lOID0gYGltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcblxuaW1wb3J0IHR5cGUgeyBDb3JlU2V0dXAsIENvcmVTdGFydCB9IGZyb20gJ0BrYm4vY29yZS9wdWJsaWMnO1xuaW1wb3J0IHR5cGUge1xuICBPcmdEYXNoYm9hcmRFbWJlZFBsdWdpbixcbiAgT3JnRGFzaGJvYXJkRW1iZWRTZXR1cERlcHMsXG4gIE9yZ0Rhc2hib2FyZEVtYmVkU3RhcnREZXBzXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgT3JnRGFzaGJvYXJkRW1iZWRQbHVnaW5JbXBsIGltcGxlbWVudHMgT3JnRGFzaGJvYXJkRW1iZWRQbHVnaW4ge1xuICBwdWJsaWMgc2V0dXAoXG4gICAgY29yZTogQ29yZVNldHVwPE9yZ0Rhc2hib2FyZEVtYmVkU3RhcnREZXBzPixcbiAgICBkZXBzOiBPcmdEYXNoYm9hcmRFbWJlZFNldHVwRGVwc1xuICApIHtcbiAgICBjb3JlLmFwcGxpY2F0aW9uLnJlZ2lzdGVyKHtcbiAgICAgIGlkOiAnJHtLSUJBTkFfQVBQX0lEfScsXG4gICAgICB0aXRsZTogJ0Rhc2hib2FyZCBFbWJlZCcsXG4gICAgICBjaHJvbWVsZXNzOiB0cnVlLFxuICAgICAgdmlzaWJsZUluOiBbXSxcbiAgICAgIGFzeW5jIG1vdW50KHBhcmFtcykge1xuICAgICAgICBjb25zdCBbY29yZVN0YXJ0LCBkZXBzU3RhcnRdID0gYXdhaXQgY29yZS5nZXRTdGFydFNlcnZpY2VzKCk7XG4gICAgICAgIGNvbnN0IHsgT3JnRGFzaGJvYXJkRW1iZWRBcHAgfSA9IGF3YWl0IGltcG9ydCgnLi9hcHBsaWNhdGlvbicpO1xuXG4gICAgICAgIFJlYWN0RE9NLnJlbmRlcihcbiAgICAgICAgICA8T3JnRGFzaGJvYXJkRW1iZWRBcHBcbiAgICAgICAgICAgIGNvcmVTdGFydD17Y29yZVN0YXJ0fVxuICAgICAgICAgICAgZGVwc1N0YXJ0PXtkZXBzU3RhcnR9XG4gICAgICAgICAgICBwYXJhbXM9e3BhcmFtc31cbiAgICAgICAgICAvPixcbiAgICAgICAgICBwYXJhbXMuZWxlbWVudFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiBSZWFjdERPTS51bm1vdW50Q29tcG9uZW50QXROb2RlKHBhcmFtcy5lbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGFydChjb3JlOiBDb3JlU3RhcnQsIGRlcHM6IE9yZ0Rhc2hib2FyZEVtYmVkU3RhcnREZXBzKSB7fVxuXG4gIHB1YmxpYyBzdG9wKCkge31cbn1cbmA7XG5jb25zdCBQVUJMSUNfQVBQTElDQVRJT04gPSBgaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7IE1vdW50QXBwQXJncyB9IGZyb20gJy4vdHlwZXMnO1xuXG50eXBlIERhc2hib2FyZFF1ZXJ5ID0ge1xuICBsYW5ndWFnZTogJ2t1ZXJ5JyB8ICdsdWNlbmUnO1xuICBxdWVyeTogc3RyaW5nO1xufTtcblxudHlwZSBEYXNoYm9hcmRUaW1lUmFuZ2UgPSB7XG4gIGZyb206IHN0cmluZztcbiAgdG86IHN0cmluZztcbn07XG5cbnR5cGUgU3dpdGNoRGFzaGJvYXJkTWVzc2FnZSA9IHtcbiAgdHlwZTogJ09SR19EQVNIQk9BUkRfRU1CRURfU1dJVENIX0RBU0hCT0FSRCc7XG4gIGRhc2hib2FyZElkOiBzdHJpbmc7XG4gIHRpbWVSYW5nZT86IERhc2hib2FyZFRpbWVSYW5nZTtcbiAgcXVlcnk/OiBEYXNoYm9hcmRRdWVyeTtcbiAgZmlsdGVycz86IHVua25vd25bXTtcbn07XG5cbnR5cGUgUGFyZW50UmVhZHlNZXNzYWdlID0ge1xuICB0eXBlOiAnT1JHX0RBU0hCT0FSRF9FTUJFRF9SRUFEWSc7XG4gIGRhc2hib2FyZElkOiBzdHJpbmcgfCBudWxsO1xufTtcblxudHlwZSBQYXJlbnRSZW5kZXJlZE1lc3NhZ2UgPSB7XG4gIHR5cGU6ICdPUkdfREFTSEJPQVJEX0VNQkVEX1JFTkRFUkVEJztcbiAgZGFzaGJvYXJkSWQ6IHN0cmluZztcbn07XG5cbnR5cGUgUGFyZW50RXJyb3JNZXNzYWdlID0ge1xuICB0eXBlOiAnT1JHX0RBU0hCT0FSRF9FTUJFRF9FUlJPUic7XG4gIGRhc2hib2FyZElkOiBzdHJpbmcgfCBudWxsO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59O1xuXG50eXBlIFBhcmVudE1lc3NhZ2UgPVxuICB8IFBhcmVudFJlYWR5TWVzc2FnZVxuICB8IFBhcmVudFJlbmRlcmVkTWVzc2FnZVxuICB8IFBhcmVudEVycm9yTWVzc2FnZTtcblxuY29uc3QgREVGQVVMVF9BTExPV0VEX1BBUkVOVF9PUklHSU5TOiBzdHJpbmdbXSA9IFtcbiAgd2luZG93LmxvY2F0aW9uLm9yaWdpblxuXTtcblxuZnVuY3Rpb24gZ2V0SW5pdGlhbERhc2hib2FyZElkKCk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICByZXR1cm4gcGFyYW1zLmdldCgnZGFzaGJvYXJkSWQnKTtcbn1cblxuZnVuY3Rpb24gZ2V0QWxsb3dlZFBhcmVudE9yaWdpbnMoKTogc3RyaW5nW10ge1xuICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICBjb25zdCByYXcgPSBwYXJhbXMuZ2V0KCdwYXJlbnRPcmlnaW4nKTtcblxuICBpZiAoIXJhdykge1xuICAgIHJldHVybiBERUZBVUxUX0FMTE9XRURfUEFSRU5UX09SSUdJTlM7XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IGRlY29kZWQgPSBkZWNvZGVVUklDb21wb25lbnQocmF3KTtcbiAgICBjb25zdCBvcmlnaW5zID0gZGVjb2RlZFxuICAgICAgLnNwbGl0KCcsJylcbiAgICAgIC5tYXAoKG9yaWdpbikgPT4gb3JpZ2luLnRyaW0oKSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICByZXR1cm4gb3JpZ2lucy5sZW5ndGggPiAwID8gb3JpZ2lucyA6IERFRkFVTFRfQUxMT1dFRF9QQVJFTlRfT1JJR0lOUztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIERFRkFVTFRfQUxMT1dFRF9QQVJFTlRfT1JJR0lOUztcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1N3aXRjaERhc2hib2FyZE1lc3NhZ2UoZGF0YTogdW5rbm93bik6IGRhdGEgaXMgU3dpdGNoRGFzaGJvYXJkTWVzc2FnZSB7XG4gIGlmICghZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBtZXNzYWdlID0gZGF0YSBhcyBQYXJ0aWFsPFN3aXRjaERhc2hib2FyZE1lc3NhZ2U+O1xuXG4gIHJldHVybiAoXG4gICAgbWVzc2FnZS50eXBlID09PSAnT1JHX0RBU0hCT0FSRF9FTUJFRF9TV0lUQ0hfREFTSEJPQVJEJyAmJlxuICAgIHR5cGVvZiBtZXNzYWdlLmRhc2hib2FyZElkID09PSAnc3RyaW5nJyAmJlxuICAgIG1lc3NhZ2UuZGFzaGJvYXJkSWQubGVuZ3RoID4gMFxuICApO1xufVxuXG5mdW5jdGlvbiBwb3N0VG9QYXJlbnQobWVzc2FnZTogUGFyZW50TWVzc2FnZSwgdGFyZ2V0T3JpZ2luOiBzdHJpbmcpIHtcbiAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShtZXNzYWdlLCB0YXJnZXRPcmlnaW4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gT3JnRGFzaGJvYXJkRW1iZWRBcHAoe1xuICBjb3JlU3RhcnQsXG4gIGRlcHNTdGFydFxufTogTW91bnRBcHBBcmdzKSB7XG4gIGNvbnN0IHJvb3RSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcbiAgY29uc3QgbW91bnRlZERhc2hib2FyZFJlZiA9IHVzZVJlZjxhbnk+KG51bGwpO1xuICBjb25zdCBhbGxvd2VkUGFyZW50T3JpZ2luc1JlZiA9IHVzZVJlZjxzdHJpbmdbXT4oZ2V0QWxsb3dlZFBhcmVudE9yaWdpbnMoKSk7XG4gIGNvbnN0IGxhc3RQYXJlbnRPcmlnaW5SZWYgPSB1c2VSZWY8c3RyaW5nPih3aW5kb3cubG9jYXRpb24ub3JpZ2luKTtcblxuICBjb25zdCBbZGFzaGJvYXJkSWQsIHNldERhc2hib2FyZElkXSA9IHVzZVN0YXRlPHN0cmluZyB8IG51bGw+KFxuICAgIGdldEluaXRpYWxEYXNoYm9hcmRJZCgpXG4gICk7XG5cbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29yZVN0YXJ0LmNocm9tZS5zZXRJc1Zpc2libGUoZmFsc2UpO1xuICB9LCBbY29yZVN0YXJ0XSk7XG5cbiAgY29uc3QgZGVzdHJveUN1cnJlbnREYXNoYm9hcmQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKG1vdW50ZWREYXNoYm9hcmRSZWYuY3VycmVudD8uZGVzdHJveSkge1xuICAgICAgbW91bnRlZERhc2hib2FyZFJlZi5jdXJyZW50LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBtb3VudGVkRGFzaGJvYXJkUmVmLmN1cnJlbnQgPSBudWxsO1xuXG4gICAgaWYgKHJvb3RSZWYuY3VycmVudCkge1xuICAgICAgcm9vdFJlZi5jdXJyZW50LmlubmVySFRNTCA9ICcnO1xuICAgIH1cbiAgfSwgW10pO1xuXG4gIGNvbnN0IGFwcGx5U2hhcmVkRGFzaGJvYXJkU3RhdGUgPSB1c2VDYWxsYmFjayhcbiAgICAobWVzc2FnZTogU3dpdGNoRGFzaGJvYXJkTWVzc2FnZSkgPT4ge1xuICAgICAgaWYgKG1lc3NhZ2UudGltZVJhbmdlKSB7XG4gICAgICAgIGRlcHNTdGFydC5kYXRhLnF1ZXJ5LnRpbWVmaWx0ZXIudGltZWZpbHRlci5zZXRUaW1lKG1lc3NhZ2UudGltZVJhbmdlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1lc3NhZ2UucXVlcnkpIHtcbiAgICAgICAgZGVwc1N0YXJ0LmRhdGEucXVlcnkucXVlcnlTdHJpbmcuc2V0UXVlcnkobWVzc2FnZS5xdWVyeSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChtZXNzYWdlLmZpbHRlcnMpIHtcbiAgICAgICAgZGVwc1N0YXJ0LmRhdGEucXVlcnkuZmlsdGVyTWFuYWdlci5zZXRGaWx0ZXJzKG1lc3NhZ2UuZmlsdGVycyBhcyBhbnkpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2RlcHNTdGFydC5kYXRhXVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb25NZXNzYWdlID0gKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHtcbiAgICAgIGlmICghYWxsb3dlZFBhcmVudE9yaWdpbnNSZWYuY3VycmVudC5pbmNsdWRlcyhldmVudC5vcmlnaW4pKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpc1N3aXRjaERhc2hib2FyZE1lc3NhZ2UoZXZlbnQuZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBsYXN0UGFyZW50T3JpZ2luUmVmLmN1cnJlbnQgPSBldmVudC5vcmlnaW47XG5cbiAgICAgIGFwcGx5U2hhcmVkRGFzaGJvYXJkU3RhdGUoZXZlbnQuZGF0YSk7XG4gICAgICBzZXREYXNoYm9hcmRJZChldmVudC5kYXRhLmRhc2hib2FyZElkKTtcbiAgICB9O1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBvbk1lc3NhZ2UpO1xuXG4gICAgcG9zdFRvUGFyZW50KFxuICAgICAge1xuICAgICAgICB0eXBlOiAnT1JHX0RBU0hCT0FSRF9FTUJFRF9SRUFEWScsXG4gICAgICAgIGRhc2hib2FyZElkXG4gICAgICB9LFxuICAgICAgbGFzdFBhcmVudE9yaWdpblJlZi5jdXJyZW50XG4gICAgKTtcblxuICAgIHJldHVybiAoKSA9PiB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIG9uTWVzc2FnZSk7XG4gIH0sIFthcHBseVNoYXJlZERhc2hib2FyZFN0YXRlLCBkYXNoYm9hcmRJZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFkYXNoYm9hcmRJZCB8fCAhcm9vdFJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlO1xuXG4gICAgYXN5bmMgZnVuY3Rpb24gcmVuZGVyRGFzaGJvYXJkKCkge1xuICAgICAgc2V0TG9hZGluZyh0cnVlKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgZGVzdHJveUN1cnJlbnREYXNoYm9hcmQoKTtcblxuICAgICAgICBjb25zdCBmYWN0b3J5ID1cbiAgICAgICAgICBkZXBzU3RhcnQuZW1iZWRkYWJsZS5nZXRFbWJlZGRhYmxlRmFjdG9yeT8uKCdkYXNoYm9hcmQnKSB8fFxuICAgICAgICAgIGRlcHNTdGFydC5lbWJlZGRhYmxlLmdldEVtYmVkZGFibGVGYWN0b3J5Py4oJ2Rhc2hib2FyZF9jb250YWluZXInKTtcblxuICAgICAgICBpZiAoIWZhY3RvcnkpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0tpYmFuYSBkYXNoYm9hcmQgZW1iZWRkYWJsZSBmYWN0b3J5IHdhcyBub3QgZm91bmQuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbWJlZGRhYmxlID0gYXdhaXQgZmFjdG9yeS5jcmVhdGUoe1xuICAgICAgICAgIGlkOiBkYXNoYm9hcmRJZCxcbiAgICAgICAgICBzYXZlZE9iamVjdElkOiBkYXNoYm9hcmRJZCxcbiAgICAgICAgICB2aWV3TW9kZTogJ3ZpZXcnLFxuICAgICAgICAgIGhpZGVQYW5lbFRpdGxlczogZmFsc2UsXG4gICAgICAgICAgdXNlTWFyZ2luczogdHJ1ZSxcbiAgICAgICAgICBzeW5jQ29sb3JzOiB0cnVlLFxuICAgICAgICAgIHN5bmNDdXJzb3I6IHRydWUsXG4gICAgICAgICAgc3luY1Rvb2x0aXBzOiB0cnVlLFxuICAgICAgICAgIHRpbWVSYW5nZTogZGVwc1N0YXJ0LmRhdGEucXVlcnkudGltZWZpbHRlci50aW1lZmlsdGVyLmdldFRpbWUoKSxcbiAgICAgICAgICBxdWVyeTogZGVwc1N0YXJ0LmRhdGEucXVlcnkucXVlcnlTdHJpbmcuZ2V0UXVlcnkoKSxcbiAgICAgICAgICBmaWx0ZXJzOiBkZXBzU3RhcnQuZGF0YS5xdWVyeS5maWx0ZXJNYW5hZ2VyLmdldEZpbHRlcnMoKVxuICAgICAgICB9IGFzIGFueSk7XG5cbiAgICAgICAgaWYgKGNhbmNlbGxlZCkge1xuICAgICAgICAgIGVtYmVkZGFibGUuZGVzdHJveT8uKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZW1iZWRkYWJsZS5yZW5kZXIocm9vdFJlZi5jdXJyZW50ISk7XG4gICAgICAgIG1vdW50ZWREYXNoYm9hcmRSZWYuY3VycmVudCA9IGVtYmVkZGFibGU7XG5cbiAgICAgICAgcG9zdFRvUGFyZW50KFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6ICdPUkdfREFTSEJPQVJEX0VNQkVEX1JFTkRFUkVEJyxcbiAgICAgICAgICAgIGRhc2hib2FyZElkXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsYXN0UGFyZW50T3JpZ2luUmVmLmN1cnJlbnRcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPVxuICAgICAgICAgIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZGFzaGJvYXJkIGVycm9yJztcblxuICAgICAgICBpZiAocm9vdFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgcm9vdFJlZi5jdXJyZW50LmlubmVySFRNTCA9IFxcYFxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIlxuICAgICAgICAgICAgICBwYWRkaW5nOiAyNHB4O1xuICAgICAgICAgICAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgICAgICAgICAgICAgY29sb3I6ICNiZDI3MWU7XG4gICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgRmFpbGVkIHRvIHJlbmRlciBkYXNoYm9hcmQ6IFxcJHttZXNzYWdlfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgXFxgO1xuICAgICAgICB9XG5cbiAgICAgICAgcG9zdFRvUGFyZW50KFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6ICdPUkdfREFTSEJPQVJEX0VNQkVEX0VSUk9SJyxcbiAgICAgICAgICAgIGRhc2hib2FyZElkLFxuICAgICAgICAgICAgbWVzc2FnZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGFzdFBhcmVudE9yaWdpblJlZi5jdXJyZW50XG4gICAgICAgICk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAoIWNhbmNlbGxlZCkge1xuICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyRGFzaGJvYXJkKCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICB9O1xuICB9LCBbZGFzaGJvYXJkSWQsIGRlcHNTdGFydCwgZGVzdHJveUN1cnJlbnREYXNoYm9hcmRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkZXN0cm95Q3VycmVudERhc2hib2FyZCgpO1xuICAgIH07XG4gIH0sIFtkZXN0cm95Q3VycmVudERhc2hib2FyZF0pO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAgIGluc2V0OiAwLFxuICAgICAgICB3aWR0aDogJzEwMHZ3JyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgIGJhY2tncm91bmQ6ICcjZmZmJ1xuICAgICAgfX1cbiAgICA+XG4gICAgICB7bG9hZGluZyAmJiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICBpbnNldDogMCxcbiAgICAgICAgICAgIHpJbmRleDogMTAsXG4gICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6ICdzYW5zLXNlcmlmJyxcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICcjZmZmJ1xuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICBMb2FkaW5nIGRhc2hib2FyZOKAplxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG5cbiAgICAgIDxkaXZcbiAgICAgICAgcmVmPXtyb290UmVmfVxuICAgICAgICBzdHlsZT17e1xuICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgIGluc2V0OiAwLFxuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgaGVpZ2h0OiAnMTAwJSdcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG5gO1xuY29uc3QgU0VSVkVSX0lOREVYID0gYGltcG9ydCB0eXBlIHsgUGx1Z2luSW5pdGlhbGl6ZXJDb250ZXh0IH0gZnJvbSAnQGtibi9jb3JlL3NlcnZlcic7XG5pbXBvcnQgeyBPcmdEYXNoYm9hcmRFbWJlZFNlcnZlclBsdWdpbiB9IGZyb20gJy4vcGx1Z2luJztcblxuZXhwb3J0IGZ1bmN0aW9uIHBsdWdpbihpbml0aWFsaXplckNvbnRleHQ6IFBsdWdpbkluaXRpYWxpemVyQ29udGV4dCkge1xuICByZXR1cm4gbmV3IE9yZ0Rhc2hib2FyZEVtYmVkU2VydmVyUGx1Z2luKGluaXRpYWxpemVyQ29udGV4dCk7XG59XG5gO1xuY29uc3QgU0VSVkVSX1BMVUdJTiA9IGBpbXBvcnQgdHlwZSB7XG4gIENvcmVTZXR1cCxcbiAgQ29yZVN0YXJ0LFxuICBQbHVnaW4sXG4gIFBsdWdpbkluaXRpYWxpemVyQ29udGV4dFxufSBmcm9tICdAa2JuL2NvcmUvc2VydmVyJztcblxuZXhwb3J0IGNsYXNzIE9yZ0Rhc2hib2FyZEVtYmVkU2VydmVyUGx1Z2luIGltcGxlbWVudHMgUGx1Z2luIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpbml0aWFsaXplckNvbnRleHQ6IFBsdWdpbkluaXRpYWxpemVyQ29udGV4dCkge31cblxuICBwdWJsaWMgc2V0dXAoY29yZTogQ29yZVNldHVwKSB7XG4gICAgY29uc3Qgcm91dGVyID0gY29yZS5odHRwLmNyZWF0ZVJvdXRlcigpO1xuXG4gICAgcm91dGVyLmdldChcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJy9hcGkvJHtLSUJBTkFfQVBQX0lEfS9oZWFsdGgnLFxuICAgICAgICB2YWxpZGF0ZTogZmFsc2VcbiAgICAgIH0sXG4gICAgICBhc3luYyAoY29udGV4dCwgcmVxdWVzdCwgcmVzcG9uc2UpID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLm9rKHtcbiAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICBvazogdHJ1ZSxcbiAgICAgICAgICAgIHBsdWdpbjogJyR7S0lCQU5BX0FQUF9JRH0nXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0KGNvcmU6IENvcmVTdGFydCkge31cblxuICBwdWJsaWMgc3RvcCgpIHt9XG59XG5gO1xuY29uc3QgUkVBRE1FID0gYCMgJHtLSUJBTkFfUExVR0lOX0lEfVxuXG5NdWx0aS10ZW5hbnQsIG9yZy1hZ25vc3RpYyBLaWJhbmEgZGFzaGJvYXJkIGVtYmVkIHBsdWdpbi5cblxuVGhlcmUgaXMgbmV2ZXIgc3BhY2Ugc3dpdGNoaW5nLiBFYWNoIG9yZyBhbHJlYWR5IGxhbmRzIGluIGl0cyBvd24gS2liYW5hIHNwYWNlXG50aHJvdWdoIHRoZSBiYWNrZW5kIHByb3h5L3Nlc3Npb24gVVJMLCBhbmQgdGhlIHBsdWdpbiBvbmx5IHN3aXRjaGVzIGRhc2hib2FyZHNcbndpdGhpbiB0aGUgY3VycmVudCBzcGFjZS5cblxuIyMgQnVpbGRcblxuS2liYW5hIHBsdWdpbnMgbXVzdCBtYXRjaCB0aGUgZXhhY3QgS2liYW5hIHZlcnNpb24gYW5kIG11c3QgYmUgYnVpbHQgd2l0aGluIHRoZVxuS2liYW5hIHJlcG8gKHNlZSBrYm4tcGx1Z2luLWdlbmVyYXRvcikuIFBsYWNlIHRoaXMgZGlyZWN0b3J5IHVuZGVyXG5cXGBraWJhbmEtZXh0cmEvXFxgIChvciBcXGBwbHVnaW5zL1xcYCkgYW5kIHJ1biB0aGUgS2liYW5hIHBsdWdpbiBidWlsZCwgZS5nLjpcblxuXFxgXFxgXFxgXG55YXJuIGJ1aWxkXG5cXGBcXGBcXGBcblxuIyMgRW1iZWQgVVJMXG5cblxcYFxcYFxcYFxuL2tpYmFuYS9hcHAvJHtLSUJBTkFfQVBQX0lEfT9kYXNoYm9hcmRJZD08aWQ+JnBhcmVudE9yaWdpbj08b3JpZ2luPlxuXFxgXFxgXFxgXG5cbiMjIE1lc3NhZ2UgcHJvdG9jb2xcblxuLSBQYXJlbnQgLT4gcGx1Z2luOiBcXGBPUkdfREFTSEJPQVJEX0VNQkVEX1NXSVRDSF9EQVNIQk9BUkRcXGBcbi0gUGx1Z2luIC0+IHBhcmVudDogXFxgT1JHX0RBU0hCT0FSRF9FTUJFRF9SRUFEWVxcYCAvIFxcYE9SR19EQVNIQk9BUkRfRU1CRURfUkVOREVSRURcXGAgLyBcXGBPUkdfREFTSEJPQVJEX0VNQkVEX0VSUk9SXFxgXG5cblZlcnNpb246ICR7S0lCQU5BX1BMVUdJTl9WRVJTSU9OfVxuYDtcbi8qKlxuICogUmV0dXJucyB0aGUgZnVsbCBzZXQgb2YgZ2VuZXJhdGVkIHBsdWdpbiBmaWxlcyBmb3IgYSB0YXJnZXQgS2liYW5hIHZlcnNpb24uXG4gKlxuICogQHBhcmFtIHRhcmdldFZlcnNpb24gLSBLaWJhbmEgdmVyc2lvbiBiYWtlZCBpbnRvIGBraWJhbmEuanNvbmAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBraWJhbmFQbHVnaW5GaWxlcyh0YXJnZXRWZXJzaW9uKSB7XG4gICAgY29uc3QgbWFuaWZlc3QgPSBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGlkOiBLSUJBTkFfUExVR0lOX0lELFxuICAgICAgICB2ZXJzaW9uOiBLSUJBTkFfUExVR0lOX1ZFUlNJT04sXG4gICAgICAgIGtpYmFuYVZlcnNpb246IHRhcmdldFZlcnNpb24sXG4gICAgICAgIHNlcnZlcjogdHJ1ZSxcbiAgICAgICAgdWk6IHRydWUsXG4gICAgICAgIHJlcXVpcmVkUGx1Z2luczogW1wiZGFzaGJvYXJkXCIsIFwiZW1iZWRkYWJsZVwiLCBcImRhdGFcIl0sXG4gICAgICAgIG9wdGlvbmFsUGx1Z2luczogW10sXG4gICAgfSwgbnVsbCwgMik7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgeyBwYXRoOiBcImtpYmFuYS5qc29uXCIsIGNvbnRlbnQ6IGAke21hbmlmZXN0fVxcbmAgfSxcbiAgICAgICAgeyBwYXRoOiBcInRzY29uZmlnLmpzb25cIiwgY29udGVudDogYCR7VFNfQ09ORklHfVxcbmAgfSxcbiAgICAgICAgeyBwYXRoOiBcIlJFQURNRS5tZFwiLCBjb250ZW50OiBSRUFETUUgfSxcbiAgICAgICAgeyBwYXRoOiBcInB1YmxpYy90eXBlcy50c1wiLCBjb250ZW50OiBQVUJMSUNfVFlQRVMgfSxcbiAgICAgICAgeyBwYXRoOiBcInB1YmxpYy9pbmRleC50c1wiLCBjb250ZW50OiBQVUJMSUNfSU5ERVggfSxcbiAgICAgICAgeyBwYXRoOiBcInB1YmxpYy9wbHVnaW4udHN4XCIsIGNvbnRlbnQ6IFBVQkxJQ19QTFVHSU4gfSxcbiAgICAgICAgeyBwYXRoOiBcInB1YmxpYy9hcHBsaWNhdGlvbi50c3hcIiwgY29udGVudDogUFVCTElDX0FQUExJQ0FUSU9OIH0sXG4gICAgICAgIHsgcGF0aDogXCJzZXJ2ZXIvaW5kZXgudHNcIiwgY29udGVudDogU0VSVkVSX0lOREVYIH0sXG4gICAgICAgIHsgcGF0aDogXCJzZXJ2ZXIvcGx1Z2luLnRzXCIsIGNvbnRlbnQ6IFNFUlZFUl9QTFVHSU4gfSxcbiAgICBdO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pZEdWdGNHeGhkR1Z6TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwzQnNkV2RwYm5NdmEybGlZVzVoTDNSbGJYQnNZWFJsY3k1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRVHM3T3pzN096czdSMEZSUnp0QlFVTklMRTlCUVU4c1JVRkJSU3hoUVVGaExFVkJRVVVzWjBKQlFXZENMRVZCUVVVc2NVSkJRWEZDTEVWQlFVVXNjMEpCUVcxQ08wRkJVM0JHTEUxQlFVMHNVMEZCVXl4SFFVRkhPenM3TzBOQlNXcENMRU5CUVVNN1FVRkZSaXhOUVVGTkxGbEJRVmtzUjBGQlJ6czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenREUVN0Q2NFSXNRMEZCUXp0QlFVVkdMRTFCUVUwc1dVRkJXU3hIUVVGSE96czdPenM3UTBGTmNFSXNRMEZCUXp0QlFVVkdMRTFCUVUwc1lVRkJZU3hIUVVGSE96czdPenM3T3pzN096czdPenM3TzJGQlowSlVMR0ZCUVdFN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3TzBOQk1FSjZRaXhEUVVGRE8wRkJSVVlzVFVGQlRTeHJRa0ZCYTBJc1IwRkJSenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3p0RFFUWlRNVUlzUTBGQlF6dEJRVVZHTEUxQlFVMHNXVUZCV1N4SFFVRkhPenM3T3pzN1EwRk5jRUlzUTBGQlF6dEJRVVZHTEUxQlFVMHNZVUZCWVN4SFFVRkhPenM3T3pzN096czdPenM3T3pzN2MwSkJaVUVzWVVGQllUczdPenM3T3p0MVFrRlBXaXhoUVVGaE96czdPenM3T3pzN096dERRVmR1UXl4RFFVRkRPMEZCUlVZc1RVRkJUU3hOUVVGTkxFZEJRVWNzUzBGQlN5eG5Ra0ZCWjBJN096czdPenM3T3pzN096czdPenM3T3pzN096dGpRWEZDZEVJc1lVRkJZVHM3T3pzN096czdWMEZSYUVJc2NVSkJRWEZDTzBOQlF5OUNMRU5CUVVNN1FVRkZSanM3T3p0SFFVbEhPMEZCUTBnc1RVRkJUU3hWUVVGVkxHbENRVUZwUWl4RFFVRkRMR0ZCUVhGQ08wbEJRM0pFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRemRDTzFGQlEwVXNSVUZCUlN4RlFVRkZMR2RDUVVGblFqdFJRVU53UWl4UFFVRlBMRVZCUVVVc2NVSkJRWEZDTzFGQlF6bENMR0ZCUVdFc1JVRkJSU3hoUVVGaE8xRkJRelZDTEUxQlFVMHNSVUZCUlN4SlFVRkpPMUZCUTFvc1JVRkJSU3hGUVVGRkxFbEJRVWs3VVVGRFVpeGxRVUZsTEVWQlFVVXNRMEZCUXl4WFFVRlhMRVZCUVVVc1dVRkJXU3hGUVVGRkxFMUJRVTBzUTBGQlF6dFJRVU53UkN4bFFVRmxMRVZCUVVVc1JVRkJSVHRMUVVOd1FpeEZRVU5FTEVsQlFVa3NSVUZEU2l4RFFVRkRMRU5CUTBZc1EwRkJRenRKUVVWR0xFOUJRVTg3VVVGRFRDeEZRVUZGTEVsQlFVa3NSVUZCUlN4aFFVRmhMRVZCUVVVc1QwRkJUeXhGUVVGRkxFZEJRVWNzVVVGQlVTeEpRVUZKTEVWQlFVVTdVVUZEYWtRc1JVRkJSU3hKUVVGSkxFVkJRVVVzWlVGQlpTeEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRk5CUVZNc1NVRkJTU3hGUVVGRk8xRkJRM0JFTEVWQlFVVXNTVUZCU1N4RlFVRkZMRmRCUVZjc1JVRkJSU3hQUVVGUExFVkJRVVVzVFVGQlRTeEZRVUZGTzFGQlEzUkRMRVZCUVVVc1NVRkJTU3hGUVVGRkxHbENRVUZwUWl4RlFVRkZMRTlCUVU4c1JVRkJSU3haUVVGWkxFVkJRVVU3VVVGRGJFUXNSVUZCUlN4SlFVRkpMRVZCUVVVc2FVSkJRV2xDTEVWQlFVVXNUMEZCVHl4RlFVRkZMRmxCUVZrc1JVRkJSVHRSUVVOc1JDeEZRVUZGTEVsQlFVa3NSVUZCUlN4dFFrRkJiVUlzUlVGQlJTeFBRVUZQTEVWQlFVVXNZVUZCWVN4RlFVRkZPMUZCUTNKRUxFVkJRVVVzU1VGQlNTeEZRVUZGTEhkQ1FVRjNRaXhGUVVGRkxFOUJRVThzUlVGQlJTeHJRa0ZCYTBJc1JVRkJSVHRSUVVNdlJDeEZRVUZGTEVsQlFVa3NSVUZCUlN4cFFrRkJhVUlzUlVGQlJTeFBRVUZQTEVWQlFVVXNXVUZCV1N4RlFVRkZPMUZCUTJ4RUxFVkJRVVVzU1VGQlNTeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxFOUJRVThzUlVGQlJTeGhRVUZoTEVWQlFVVTdTMEZEY2tRc1EwRkJRenRCUVVOS0xFTkJRVU1pTENKemIzVnlZMlZ6UTI5dWRHVnVkQ0k2V3lJdktpcGNiaUFxSUVCdGIyUjFiR1VnYVc1MFpXZHlZWFJwYjI1ekwzQnNkV2RwYm5NdmEybGlZVzVoTDNSbGJYQnNZWFJsYzF4dUlDb2dRSE4xYlcxaGNua2dWbVZ5YzJsdmJpMXdZWEpoYldWMFpYSnBlbVZrSUhOdmRYSmpaU0IwWlcxd2JHRjBaWE1nWm05eUlIUm9aU0JMYVdKaGJtRWdaVzFpWldRZ2NHeDFaMmx1TGx4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUVodmJHUnpJSFJvWlNCblpXNWxjbUYwWldRZ2NHeDFaMmx1SUhOdmRYSmpaU0JoY3lCemRISnBibWNnZEdWdGNHeGhkR1Z6TGlCVWFHVnpaVnh1SUNvZ1lYSmxJRzFoZEdWeWFXRnNhWHBsWkNCdmJuUnZJR1JwYzJzZ1lua2dkR2hsSUdsdWMzUmhiR3hsY2k0Z1ZHaGxJSE52ZFhKalpTQnBjeUIwYUdVZ2NtVm1aWEpsYm1ObFhHNGdLaUJ0ZFd4MGFTMTBaVzVoYm5RZ1pXMWlaV1FnY0d4MVoybHVJSEJ5WlhObGNuWmxaQ0JwYmlCRVJVTkJSaTAwTUNEQ3B6Z3VJRlJvWlhKbElHbHpJRzVsZG1WeUlITndZV05sWEc0Z0tpQnpkMmwwWTJocGJtYzdJSFJvWlNCd2JIVm5hVzRnYVhNZ2IzSm5MV0ZuYm05emRHbGpJR0Z1WkNCMGFHVWdZM1Z5Y21WdWRDQkxhV0poYm1FZ2MzQmhZMlVnWTI5dFpYTmNiaUFxSUdaeWIyMGdkR2hsSUhKbGNYVmxjM1F2YzJWemMybHZiaTl3Y205NGVTQmpiMjUwWlhoMExseHVJQ292WEc1cGJYQnZjblFnZXlCTFNVSkJUa0ZmUVZCUVgwbEVMQ0JMU1VKQlRrRmZVRXhWUjBsT1gwbEVMQ0JMU1VKQlRrRmZVRXhWUjBsT1gxWkZVbE5KVDA0Z2ZTQm1jbTl0SUZ3aUxpOXRZVzVwWm1WemRGd2lPMXh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUV0cFltRnVZVkJzZFdkcGJrWnBiR1VnZTF4dUlDQXZLaW9nVW1Wc1lYUnBkbVVnY0dGMGFDQjNhWFJvYVc0Z2RHaGxJSEJzZFdkcGJpQmthWEpsWTNSdmNua3VJQ292WEc0Z0lIQmhkR2c2SUhOMGNtbHVaenRjYmlBZ0x5b3FJRVpwYkdVZ1kyOXVkR1Z1ZEhNdUlDb3ZYRzRnSUdOdmJuUmxiblE2SUhOMGNtbHVaenRjYm4xY2JseHVZMjl1YzNRZ1ZGTmZRMDlPUmtsSElEMGdZSHRjYmlBZ1hDSmxlSFJsYm1SelhDSTZJRndpTGk0dkxpNHZkSE5qYjI1bWFXY3Vhbk52Ymx3aUxGeHVJQ0JjSW1sdVkyeDFaR1ZjSWpvZ1cxd2ljSFZpYkdsakx5b3FMeXBjSWl3Z1hDSnpaWEoyWlhJdktpb3ZLbHdpWFZ4dWZWeHVZRHRjYmx4dVkyOXVjM1FnVUZWQ1RFbERYMVJaVUVWVElEMGdZR2x0Y0c5eWRDQjBlWEJsSUh0Y2JpQWdRWEJ3VFc5MWJuUlFZWEpoYldWMFpYSnpMRnh1SUNCRGIzSmxVMlYwZFhBc1hHNGdJRU52Y21WVGRHRnlkQ3hjYmlBZ1VHeDFaMmx1WEc1OUlHWnliMjBnSjBCclltNHZZMjl5WlM5d2RXSnNhV01uTzF4dVhHNXBiWEJ2Y25RZ2RIbHdaU0I3SUVSaGMyaGliMkZ5WkZOMFlYSjBJSDBnWm5KdmJTQW5RR3RpYmk5a1lYTm9ZbTloY21RdGNHeDFaMmx1TDNCMVlteHBZeWM3WEc1cGJYQnZjblFnZEhsd1pTQjdJRVZ0WW1Wa1pHRmliR1ZUZEdGeWRDQjlJR1p5YjIwZ0owQnJZbTR2WlcxaVpXUmtZV0pzWlMxd2JIVm5hVzR2Y0hWaWJHbGpKenRjYm1sdGNHOXlkQ0IwZVhCbElIc2dSR0YwWVZCMVlteHBZMUJzZFdkcGJsTjBZWEowSUgwZ1puSnZiU0FuUUd0aWJpOWtZWFJoTFhCc2RXZHBiaTl3ZFdKc2FXTW5PMXh1WEc1bGVIQnZjblFnYVc1MFpYSm1ZV05sSUU5eVowUmhjMmhpYjJGeVpFVnRZbVZrVTJWMGRYQkVaWEJ6SUh0OVhHNWNibVY0Y0c5eWRDQnBiblJsY21aaFkyVWdUM0puUkdGemFHSnZZWEprUlcxaVpXUlRkR0Z5ZEVSbGNITWdlMXh1SUNCa1lYTm9ZbTloY21RNklFUmhjMmhpYjJGeVpGTjBZWEowTzF4dUlDQmxiV0psWkdSaFlteGxPaUJGYldKbFpHUmhZbXhsVTNSaGNuUTdYRzRnSUdSaGRHRTZJRVJoZEdGUWRXSnNhV05RYkhWbmFXNVRkR0Z5ZER0Y2JuMWNibHh1Wlhod2IzSjBJSFI1Y0dVZ1QzSm5SR0Z6YUdKdllYSmtSVzFpWldSUWJIVm5hVzRnUFNCUWJIVm5hVzQ4WEc0Z0lIWnZhV1FzWEc0Z0lIWnZhV1FzWEc0Z0lFOXlaMFJoYzJoaWIyRnlaRVZ0WW1Wa1UyVjBkWEJFWlhCekxGeHVJQ0JQY21kRVlYTm9ZbTloY21SRmJXSmxaRk4wWVhKMFJHVndjMXh1UGp0Y2JseHVaWGh3YjNKMElHbHVkR1Z5Wm1GalpTQk5iM1Z1ZEVGd2NFRnlaM01nZTF4dUlDQmpiM0psVTNSaGNuUTZJRU52Y21WVGRHRnlkRHRjYmlBZ1pHVndjMU4wWVhKME9pQlBjbWRFWVhOb1ltOWhjbVJGYldKbFpGTjBZWEowUkdWd2N6dGNiaUFnY0dGeVlXMXpPaUJCY0hCTmIzVnVkRkJoY21GdFpYUmxjbk03WEc1OVhHNWdPMXh1WEc1amIyNXpkQ0JRVlVKTVNVTmZTVTVFUlZnZ1BTQmdhVzF3YjNKMElIUjVjR1VnZXlCUGNtZEVZWE5vWW05aGNtUkZiV0psWkZCc2RXZHBiaUI5SUdaeWIyMGdKeTR2ZEhsd1pYTW5PMXh1YVcxd2IzSjBJSHNnVDNKblJHRnphR0p2WVhKa1JXMWlaV1JRYkhWbmFXNUpiWEJzSUgwZ1puSnZiU0FuTGk5d2JIVm5hVzRuTzF4dVhHNWxlSEJ2Y25RZ1puVnVZM1JwYjI0Z2NHeDFaMmx1S0NrNklFOXlaMFJoYzJoaWIyRnlaRVZ0WW1Wa1VHeDFaMmx1SUh0Y2JpQWdjbVYwZFhKdUlHNWxkeUJQY21kRVlYTm9ZbTloY21SRmJXSmxaRkJzZFdkcGJrbHRjR3dvS1R0Y2JuMWNibUE3WEc1Y2JtTnZibk4wSUZCVlFreEpRMTlRVEZWSFNVNGdQU0JnYVcxd2IzSjBJRkpsWVdOMElHWnliMjBnSjNKbFlXTjBKenRjYm1sdGNHOXlkQ0JTWldGamRFUlBUU0JtY205dElDZHlaV0ZqZEMxa2IyMG5PMXh1WEc1cGJYQnZjblFnZEhsd1pTQjdJRU52Y21WVFpYUjFjQ3dnUTI5eVpWTjBZWEowSUgwZ1puSnZiU0FuUUd0aWJpOWpiM0psTDNCMVlteHBZeWM3WEc1cGJYQnZjblFnZEhsd1pTQjdYRzRnSUU5eVowUmhjMmhpYjJGeVpFVnRZbVZrVUd4MVoybHVMRnh1SUNCUGNtZEVZWE5vWW05aGNtUkZiV0psWkZObGRIVndSR1Z3Y3l4Y2JpQWdUM0puUkdGemFHSnZZWEprUlcxaVpXUlRkR0Z5ZEVSbGNITmNibjBnWm5KdmJTQW5MaTkwZVhCbGN5YzdYRzVjYm1WNGNHOXlkQ0JqYkdGemN5QlBjbWRFWVhOb1ltOWhjbVJGYldKbFpGQnNkV2RwYmtsdGNHd2dhVzF3YkdWdFpXNTBjeUJQY21kRVlYTm9ZbTloY21SRmJXSmxaRkJzZFdkcGJpQjdYRzRnSUhCMVlteHBZeUJ6WlhSMWNDaGNiaUFnSUNCamIzSmxPaUJEYjNKbFUyVjBkWEE4VDNKblJHRnphR0p2WVhKa1JXMWlaV1JUZEdGeWRFUmxjSE0rTEZ4dUlDQWdJR1JsY0hNNklFOXlaMFJoYzJoaWIyRnlaRVZ0WW1Wa1UyVjBkWEJFWlhCelhHNGdJQ2tnZTF4dUlDQWdJR052Y21VdVlYQndiR2xqWVhScGIyNHVjbVZuYVhOMFpYSW9lMXh1SUNBZ0lDQWdhV1E2SUNja2UwdEpRa0ZPUVY5QlVGQmZTVVI5Snl4Y2JpQWdJQ0FnSUhScGRHeGxPaUFuUkdGemFHSnZZWEprSUVWdFltVmtKeXhjYmlBZ0lDQWdJR05vY205dFpXeGxjM002SUhSeWRXVXNYRzRnSUNBZ0lDQjJhWE5wWW14bFNXNDZJRnRkTEZ4dUlDQWdJQ0FnWVhONWJtTWdiVzkxYm5Rb2NHRnlZVzF6S1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUZ0amIzSmxVM1JoY25Rc0lHUmxjSE5UZEdGeWRGMGdQU0JoZDJGcGRDQmpiM0psTG1kbGRGTjBZWEowVTJWeWRtbGpaWE1vS1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnZXlCUGNtZEVZWE5vWW05aGNtUkZiV0psWkVGd2NDQjlJRDBnWVhkaGFYUWdhVzF3YjNKMEtDY3VMMkZ3Y0d4cFkyRjBhVzl1SnlrN1hHNWNiaUFnSUNBZ0lDQWdVbVZoWTNSRVQwMHVjbVZ1WkdWeUtGeHVJQ0FnSUNBZ0lDQWdJRHhQY21kRVlYTm9ZbTloY21SRmJXSmxaRUZ3Y0Z4dUlDQWdJQ0FnSUNBZ0lDQWdZMjl5WlZOMFlYSjBQWHRqYjNKbFUzUmhjblI5WEc0Z0lDQWdJQ0FnSUNBZ0lDQmtaWEJ6VTNSaGNuUTllMlJsY0hOVGRHRnlkSDFjYmlBZ0lDQWdJQ0FnSUNBZ0lIQmhjbUZ0Y3oxN2NHRnlZVzF6ZlZ4dUlDQWdJQ0FnSUNBZ0lDOCtMRnh1SUNBZ0lDQWdJQ0FnSUhCaGNtRnRjeTVsYkdWdFpXNTBYRzRnSUNBZ0lDQWdJQ2s3WEc1Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUNncElEMCtJRkpsWVdOMFJFOU5MblZ1Ylc5MWJuUkRiMjF3YjI1bGJuUkJkRTV2WkdVb2NHRnlZVzF6TG1Wc1pXMWxiblFwTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBwTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUhOMFlYSjBLR052Y21VNklFTnZjbVZUZEdGeWRDd2daR1Z3Y3pvZ1QzSm5SR0Z6YUdKdllYSmtSVzFpWldSVGRHRnlkRVJsY0hNcElIdDlYRzVjYmlBZ2NIVmliR2xqSUhOMGIzQW9LU0I3ZlZ4dWZWeHVZRHRjYmx4dVkyOXVjM1FnVUZWQ1RFbERYMEZRVUV4SlEwRlVTVTlPSUQwZ1lHbHRjRzl5ZENCU1pXRmpkQ3dnZXlCMWMyVkRZV3hzWW1GamF5d2dkWE5sUldabVpXTjBMQ0IxYzJWU1pXWXNJSFZ6WlZOMFlYUmxJSDBnWm5KdmJTQW5jbVZoWTNRbk8xeHVhVzF3YjNKMElIUjVjR1VnZXlCTmIzVnVkRUZ3Y0VGeVozTWdmU0JtY205dElDY3VMM1I1Y0dWekp6dGNibHh1ZEhsd1pTQkVZWE5vWW05aGNtUlJkV1Z5ZVNBOUlIdGNiaUFnYkdGdVozVmhaMlU2SUNkcmRXVnllU2NnZkNBbmJIVmpaVzVsSnp0Y2JpQWdjWFZsY25rNklITjBjbWx1Wnp0Y2JuMDdYRzVjYm5SNWNHVWdSR0Z6YUdKdllYSmtWR2x0WlZKaGJtZGxJRDBnZTF4dUlDQm1jbTl0T2lCemRISnBibWM3WEc0Z0lIUnZPaUJ6ZEhKcGJtYzdYRzU5TzF4dVhHNTBlWEJsSUZOM2FYUmphRVJoYzJoaWIyRnlaRTFsYzNOaFoyVWdQU0I3WEc0Z0lIUjVjR1U2SUNkUFVrZGZSRUZUU0VKUFFWSkVYMFZOUWtWRVgxTlhTVlJEU0Y5RVFWTklRazlCVWtRbk8xeHVJQ0JrWVhOb1ltOWhjbVJKWkRvZ2MzUnlhVzVuTzF4dUlDQjBhVzFsVW1GdVoyVS9PaUJFWVhOb1ltOWhjbVJVYVcxbFVtRnVaMlU3WEc0Z0lIRjFaWEo1UHpvZ1JHRnphR0p2WVhKa1VYVmxjbms3WEc0Z0lHWnBiSFJsY25NL09pQjFibXR1YjNkdVcxMDdYRzU5TzF4dVhHNTBlWEJsSUZCaGNtVnVkRkpsWVdSNVRXVnpjMkZuWlNBOUlIdGNiaUFnZEhsd1pUb2dKMDlTUjE5RVFWTklRazlCVWtSZlJVMUNSVVJmVWtWQlJGa25PMXh1SUNCa1lYTm9ZbTloY21SSlpEb2djM1J5YVc1bklId2diblZzYkR0Y2JuMDdYRzVjYm5SNWNHVWdVR0Z5Wlc1MFVtVnVaR1Z5WldSTlpYTnpZV2RsSUQwZ2UxeHVJQ0IwZVhCbE9pQW5UMUpIWDBSQlUwaENUMEZTUkY5RlRVSkZSRjlTUlU1RVJWSkZSQ2M3WEc0Z0lHUmhjMmhpYjJGeVpFbGtPaUJ6ZEhKcGJtYzdYRzU5TzF4dVhHNTBlWEJsSUZCaGNtVnVkRVZ5Y205eVRXVnpjMkZuWlNBOUlIdGNiaUFnZEhsd1pUb2dKMDlTUjE5RVFWTklRazlCVWtSZlJVMUNSVVJmUlZKU1QxSW5PMXh1SUNCa1lYTm9ZbTloY21SSlpEb2djM1J5YVc1bklId2diblZzYkR0Y2JpQWdiV1Z6YzJGblpUb2djM1J5YVc1bk8xeHVmVHRjYmx4dWRIbHdaU0JRWVhKbGJuUk5aWE56WVdkbElEMWNiaUFnZkNCUVlYSmxiblJTWldGa2VVMWxjM05oWjJWY2JpQWdmQ0JRWVhKbGJuUlNaVzVrWlhKbFpFMWxjM05oWjJWY2JpQWdmQ0JRWVhKbGJuUkZjbkp2Y2sxbGMzTmhaMlU3WEc1Y2JtTnZibk4wSUVSRlJrRlZURlJmUVV4TVQxZEZSRjlRUVZKRlRsUmZUMUpKUjBsT1V6b2djM1J5YVc1blcxMGdQU0JiWEc0Z0lIZHBibVJ2ZHk1c2IyTmhkR2x2Ymk1dmNtbG5hVzVjYmwwN1hHNWNibVoxYm1OMGFXOXVJR2RsZEVsdWFYUnBZV3hFWVhOb1ltOWhjbVJKWkNncE9pQnpkSEpwYm1jZ2ZDQnVkV3hzSUh0Y2JpQWdZMjl1YzNRZ2NHRnlZVzF6SUQwZ2JtVjNJRlZTVEZObFlYSmphRkJoY21GdGN5aDNhVzVrYjNjdWJHOWpZWFJwYjI0dWMyVmhjbU5vS1R0Y2JpQWdjbVYwZFhKdUlIQmhjbUZ0Y3k1blpYUW9KMlJoYzJoaWIyRnlaRWxrSnlrN1hHNTlYRzVjYm1aMWJtTjBhVzl1SUdkbGRFRnNiRzkzWldSUVlYSmxiblJQY21sbmFXNXpLQ2s2SUhOMGNtbHVaMXRkSUh0Y2JpQWdZMjl1YzNRZ2NHRnlZVzF6SUQwZ2JtVjNJRlZTVEZObFlYSmphRkJoY21GdGN5aDNhVzVrYjNjdWJHOWpZWFJwYjI0dWMyVmhjbU5vS1R0Y2JpQWdZMjl1YzNRZ2NtRjNJRDBnY0dGeVlXMXpMbWRsZENnbmNHRnlaVzUwVDNKcFoybHVKeWs3WEc1Y2JpQWdhV1lnS0NGeVlYY3BJSHRjYmlBZ0lDQnlaWFIxY200Z1JFVkdRVlZNVkY5QlRFeFBWMFZFWDFCQlVrVk9WRjlQVWtsSFNVNVRPMXh1SUNCOVhHNWNiaUFnZEhKNUlIdGNiaUFnSUNCamIyNXpkQ0JrWldOdlpHVmtJRDBnWkdWamIyUmxWVkpKUTI5dGNHOXVaVzUwS0hKaGR5azdYRzRnSUNBZ1kyOXVjM1FnYjNKcFoybHVjeUE5SUdSbFkyOWtaV1JjYmlBZ0lDQWdJQzV6Y0d4cGRDZ25MQ2NwWEc0Z0lDQWdJQ0F1YldGd0tDaHZjbWxuYVc0cElEMCtJRzl5YVdkcGJpNTBjbWx0S0NrcFhHNGdJQ0FnSUNBdVptbHNkR1Z5S0VKdmIyeGxZVzRwTzF4dVhHNGdJQ0FnY21WMGRYSnVJRzl5YVdkcGJuTXViR1Z1WjNSb0lENGdNQ0EvSUc5eWFXZHBibk1nT2lCRVJVWkJWVXhVWDBGTVRFOVhSVVJmVUVGU1JVNVVYMDlTU1VkSlRsTTdYRzRnSUgwZ1kyRjBZMmdnZTF4dUlDQWdJSEpsZEhWeWJpQkVSVVpCVlV4VVgwRk1URTlYUlVSZlVFRlNSVTVVWDA5U1NVZEpUbE03WEc0Z0lIMWNibjFjYmx4dVpuVnVZM1JwYjI0Z2FYTlRkMmwwWTJoRVlYTm9ZbTloY21STlpYTnpZV2RsS0dSaGRHRTZJSFZ1YTI1dmQyNHBPaUJrWVhSaElHbHpJRk4zYVhSamFFUmhjMmhpYjJGeVpFMWxjM05oWjJVZ2UxeHVJQ0JwWmlBb0lXUmhkR0VnZkh3Z2RIbHdaVzltSUdSaGRHRWdJVDA5SUNkdlltcGxZM1FuS1NCN1hHNGdJQ0FnY21WMGRYSnVJR1poYkhObE8xeHVJQ0I5WEc1Y2JpQWdZMjl1YzNRZ2JXVnpjMkZuWlNBOUlHUmhkR0VnWVhNZ1VHRnlkR2xoYkR4VGQybDBZMmhFWVhOb1ltOWhjbVJOWlhOellXZGxQanRjYmx4dUlDQnlaWFIxY200Z0tGeHVJQ0FnSUcxbGMzTmhaMlV1ZEhsd1pTQTlQVDBnSjA5U1IxOUVRVk5JUWs5QlVrUmZSVTFDUlVSZlUxZEpWRU5JWDBSQlUwaENUMEZTUkNjZ0ppWmNiaUFnSUNCMGVYQmxiMllnYldWemMyRm5aUzVrWVhOb1ltOWhjbVJKWkNBOVBUMGdKM04wY21sdVp5Y2dKaVpjYmlBZ0lDQnRaWE56WVdkbExtUmhjMmhpYjJGeVpFbGtMbXhsYm1kMGFDQStJREJjYmlBZ0tUdGNibjFjYmx4dVpuVnVZM1JwYjI0Z2NHOXpkRlJ2VUdGeVpXNTBLRzFsYzNOaFoyVTZJRkJoY21WdWRFMWxjM05oWjJVc0lIUmhjbWRsZEU5eWFXZHBiam9nYzNSeWFXNW5LU0I3WEc0Z0lIZHBibVJ2ZHk1d1lYSmxiblF1Y0c5emRFMWxjM05oWjJVb2JXVnpjMkZuWlN3Z2RHRnlaMlYwVDNKcFoybHVLVHRjYm4xY2JseHVaWGh3YjNKMElHWjFibU4wYVc5dUlFOXlaMFJoYzJoaWIyRnlaRVZ0WW1Wa1FYQndLSHRjYmlBZ1kyOXlaVk4wWVhKMExGeHVJQ0JrWlhCelUzUmhjblJjYm4wNklFMXZkVzUwUVhCd1FYSm5jeWtnZTF4dUlDQmpiMjV6ZENCeWIyOTBVbVZtSUQwZ2RYTmxVbVZtUEVoVVRVeEVhWFpGYkdWdFpXNTBJSHdnYm5Wc2JENG9iblZzYkNrN1hHNGdJR052Ym5OMElHMXZkVzUwWldSRVlYTm9ZbTloY21SU1pXWWdQU0IxYzJWU1pXWThZVzU1UGlodWRXeHNLVHRjYmlBZ1kyOXVjM1FnWVd4c2IzZGxaRkJoY21WdWRFOXlhV2RwYm5OU1pXWWdQU0IxYzJWU1pXWThjM1J5YVc1blcxMCtLR2RsZEVGc2JHOTNaV1JRWVhKbGJuUlBjbWxuYVc1ektDa3BPMXh1SUNCamIyNXpkQ0JzWVhOMFVHRnlaVzUwVDNKcFoybHVVbVZtSUQwZ2RYTmxVbVZtUEhOMGNtbHVaejRvZDJsdVpHOTNMbXh2WTJGMGFXOXVMbTl5YVdkcGJpazdYRzVjYmlBZ1kyOXVjM1FnVzJSaGMyaGliMkZ5WkVsa0xDQnpaWFJFWVhOb1ltOWhjbVJKWkYwZ1BTQjFjMlZUZEdGMFpUeHpkSEpwYm1jZ2ZDQnVkV3hzUGloY2JpQWdJQ0JuWlhSSmJtbDBhV0ZzUkdGemFHSnZZWEprU1dRb0tWeHVJQ0FwTzF4dVhHNGdJR052Ym5OMElGdHNiMkZrYVc1bkxDQnpaWFJNYjJGa2FXNW5YU0E5SUhWelpWTjBZWFJsS0daaGJITmxLVHRjYmx4dUlDQjFjMlZGWm1abFkzUW9LQ2tnUFQ0Z2UxeHVJQ0FnSUdOdmNtVlRkR0Z5ZEM1amFISnZiV1V1YzJWMFNYTldhWE5wWW14bEtHWmhiSE5sS1R0Y2JpQWdmU3dnVzJOdmNtVlRkR0Z5ZEYwcE8xeHVYRzRnSUdOdmJuTjBJR1JsYzNSeWIzbERkWEp5Wlc1MFJHRnphR0p2WVhKa0lEMGdkWE5sUTJGc2JHSmhZMnNvS0NrZ1BUNGdlMXh1SUNBZ0lHbG1JQ2h0YjNWdWRHVmtSR0Z6YUdKdllYSmtVbVZtTG1OMWNuSmxiblEvTG1SbGMzUnliM2twSUh0Y2JpQWdJQ0FnSUcxdmRXNTBaV1JFWVhOb1ltOWhjbVJTWldZdVkzVnljbVZ1ZEM1a1pYTjBjbTk1S0NrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYlc5MWJuUmxaRVJoYzJoaWIyRnlaRkpsWmk1amRYSnlaVzUwSUQwZ2JuVnNiRHRjYmx4dUlDQWdJR2xtSUNoeWIyOTBVbVZtTG1OMWNuSmxiblFwSUh0Y2JpQWdJQ0FnSUhKdmIzUlNaV1l1WTNWeWNtVnVkQzVwYm01bGNraFVUVXdnUFNBbkp6dGNiaUFnSUNCOVhHNGdJSDBzSUZ0ZEtUdGNibHh1SUNCamIyNXpkQ0JoY0hCc2VWTm9ZWEpsWkVSaGMyaGliMkZ5WkZOMFlYUmxJRDBnZFhObFEyRnNiR0poWTJzb1hHNGdJQ0FnS0cxbGMzTmhaMlU2SUZOM2FYUmphRVJoYzJoaWIyRnlaRTFsYzNOaFoyVXBJRDArSUh0Y2JpQWdJQ0FnSUdsbUlDaHRaWE56WVdkbExuUnBiV1ZTWVc1blpTa2dlMXh1SUNBZ0lDQWdJQ0JrWlhCelUzUmhjblF1WkdGMFlTNXhkV1Z5ZVM1MGFXMWxabWxzZEdWeUxuUnBiV1ZtYVd4MFpYSXVjMlYwVkdsdFpTaHRaWE56WVdkbExuUnBiV1ZTWVc1blpTazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR2xtSUNodFpYTnpZV2RsTG5GMVpYSjVLU0I3WEc0Z0lDQWdJQ0FnSUdSbGNITlRkR0Z5ZEM1a1lYUmhMbkYxWlhKNUxuRjFaWEo1VTNSeWFXNW5Mbk5sZEZGMVpYSjVLRzFsYzNOaFoyVXVjWFZsY25rcE8xeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQnBaaUFvYldWemMyRm5aUzVtYVd4MFpYSnpLU0I3WEc0Z0lDQWdJQ0FnSUdSbGNITlRkR0Z5ZEM1a1lYUmhMbkYxWlhKNUxtWnBiSFJsY2sxaGJtRm5aWEl1YzJWMFJtbHNkR1Z5Y3lodFpYTnpZV2RsTG1acGJIUmxjbk1nWVhNZ1lXNTVLVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlMRnh1SUNBZ0lGdGtaWEJ6VTNSaGNuUXVaR0YwWVYxY2JpQWdLVHRjYmx4dUlDQjFjMlZGWm1abFkzUW9LQ2tnUFQ0Z2UxeHVJQ0FnSUdOdmJuTjBJRzl1VFdWemMyRm5aU0E5SUNobGRtVnVkRG9nVFdWemMyRm5aVVYyWlc1MEtTQTlQaUI3WEc0Z0lDQWdJQ0JwWmlBb0lXRnNiRzkzWldSUVlYSmxiblJQY21sbmFXNXpVbVZtTG1OMWNuSmxiblF1YVc1amJIVmtaWE1vWlhabGJuUXViM0pwWjJsdUtTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNDdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQWdJR2xtSUNnaGFYTlRkMmwwWTJoRVlYTm9ZbTloY21STlpYTnpZV2RsS0dWMlpXNTBMbVJoZEdFcEtTQjdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNBZ0lIMWNibHh1SUNBZ0lDQWdiR0Z6ZEZCaGNtVnVkRTl5YVdkcGJsSmxaaTVqZFhKeVpXNTBJRDBnWlhabGJuUXViM0pwWjJsdU8xeHVYRzRnSUNBZ0lDQmhjSEJzZVZOb1lYSmxaRVJoYzJoaWIyRnlaRk4wWVhSbEtHVjJaVzUwTG1SaGRHRXBPMXh1SUNBZ0lDQWdjMlYwUkdGemFHSnZZWEprU1dRb1pYWmxiblF1WkdGMFlTNWtZWE5vWW05aGNtUkpaQ2s3WEc0Z0lDQWdmVHRjYmx4dUlDQWdJSGRwYm1SdmR5NWhaR1JGZG1WdWRFeHBjM1JsYm1WeUtDZHRaWE56WVdkbEp5d2diMjVOWlhOellXZGxLVHRjYmx4dUlDQWdJSEJ2YzNSVWIxQmhjbVZ1ZENoY2JpQWdJQ0FnSUh0Y2JpQWdJQ0FnSUNBZ2RIbHdaVG9nSjA5U1IxOUVRVk5JUWs5QlVrUmZSVTFDUlVSZlVrVkJSRmtuTEZ4dUlDQWdJQ0FnSUNCa1lYTm9ZbTloY21SSlpGeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lHeGhjM1JRWVhKbGJuUlBjbWxuYVc1U1pXWXVZM1Z5Y21WdWRGeHVJQ0FnSUNrN1hHNWNiaUFnSUNCeVpYUjFjbTRnS0NrZ1BUNGdkMmx1Wkc5M0xuSmxiVzkyWlVWMlpXNTBUR2x6ZEdWdVpYSW9KMjFsYzNOaFoyVW5MQ0J2YmsxbGMzTmhaMlVwTzF4dUlDQjlMQ0JiWVhCd2JIbFRhR0Z5WldSRVlYTm9ZbTloY21SVGRHRjBaU3dnWkdGemFHSnZZWEprU1dSZEtUdGNibHh1SUNCMWMyVkZabVpsWTNRb0tDa2dQVDRnZTF4dUlDQWdJR2xtSUNnaFpHRnphR0p2WVhKa1NXUWdmSHdnSVhKdmIzUlNaV1l1WTNWeWNtVnVkQ2tnZTF4dUlDQWdJQ0FnY21WMGRYSnVPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHeGxkQ0JqWVc1alpXeHNaV1FnUFNCbVlXeHpaVHRjYmx4dUlDQWdJR0Z6ZVc1aklHWjFibU4wYVc5dUlISmxibVJsY2tSaGMyaGliMkZ5WkNncElIdGNiaUFnSUNBZ0lITmxkRXh2WVdScGJtY29kSEoxWlNrN1hHNWNiaUFnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUdSbGMzUnliM2xEZFhKeVpXNTBSR0Z6YUdKdllYSmtLQ2s3WEc1Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWm1GamRHOXllU0E5WEc0Z0lDQWdJQ0FnSUNBZ1pHVndjMU4wWVhKMExtVnRZbVZrWkdGaWJHVXVaMlYwUlcxaVpXUmtZV0pzWlVaaFkzUnZjbmsvTGlnblpHRnphR0p2WVhKa0p5a2dmSHhjYmlBZ0lDQWdJQ0FnSUNCa1pYQnpVM1JoY25RdVpXMWlaV1JrWVdKc1pTNW5aWFJGYldKbFpHUmhZbXhsUm1GamRHOXllVDh1S0Nka1lYTm9ZbTloY21SZlkyOXVkR0ZwYm1WeUp5azdYRzVjYmlBZ0lDQWdJQ0FnYVdZZ0tDRm1ZV04wYjNKNUtTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLQ2RMYVdKaGJtRWdaR0Z6YUdKdllYSmtJR1Z0WW1Wa1pHRmliR1VnWm1GamRHOXllU0IzWVhNZ2JtOTBJR1p2ZFc1a0xpY3BPMXh1SUNBZ0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWlcxaVpXUmtZV0pzWlNBOUlHRjNZV2wwSUdaaFkzUnZjbmt1WTNKbFlYUmxLSHRjYmlBZ0lDQWdJQ0FnSUNCcFpEb2daR0Z6YUdKdllYSmtTV1FzWEc0Z0lDQWdJQ0FnSUNBZ2MyRjJaV1JQWW1wbFkzUkpaRG9nWkdGemFHSnZZWEprU1dRc1hHNGdJQ0FnSUNBZ0lDQWdkbWxsZDAxdlpHVTZJQ2QyYVdWM0p5eGNiaUFnSUNBZ0lDQWdJQ0JvYVdSbFVHRnVaV3hVYVhSc1pYTTZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQWdJSFZ6WlUxaGNtZHBibk02SUhSeWRXVXNYRzRnSUNBZ0lDQWdJQ0FnYzNsdVkwTnZiRzl5Y3pvZ2RISjFaU3hjYmlBZ0lDQWdJQ0FnSUNCemVXNWpRM1Z5YzI5eU9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lITjVibU5VYjI5c2RHbHdjem9nZEhKMVpTeGNiaUFnSUNBZ0lDQWdJQ0IwYVcxbFVtRnVaMlU2SUdSbGNITlRkR0Z5ZEM1a1lYUmhMbkYxWlhKNUxuUnBiV1ZtYVd4MFpYSXVkR2x0WldacGJIUmxjaTVuWlhSVWFXMWxLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ2NYVmxjbms2SUdSbGNITlRkR0Z5ZEM1a1lYUmhMbkYxWlhKNUxuRjFaWEo1VTNSeWFXNW5MbWRsZEZGMVpYSjVLQ2tzWEc0Z0lDQWdJQ0FnSUNBZ1ptbHNkR1Z5Y3pvZ1pHVndjMU4wWVhKMExtUmhkR0V1Y1hWbGNua3VabWxzZEdWeVRXRnVZV2RsY2k1blpYUkdhV3gwWlhKektDbGNiaUFnSUNBZ0lDQWdmU0JoY3lCaGJua3BPMXh1WEc0Z0lDQWdJQ0FnSUdsbUlDaGpZVzVqWld4c1pXUXBJSHRjYmlBZ0lDQWdJQ0FnSUNCbGJXSmxaR1JoWW14bExtUmxjM1J5YjNrL0xpZ3BPMXh1SUNBZ0lDQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lHVnRZbVZrWkdGaWJHVXVjbVZ1WkdWeUtISnZiM1JTWldZdVkzVnljbVZ1ZENFcE8xeHVJQ0FnSUNBZ0lDQnRiM1Z1ZEdWa1JHRnphR0p2WVhKa1VtVm1MbU4xY25KbGJuUWdQU0JsYldKbFpHUmhZbXhsTzF4dVhHNGdJQ0FnSUNBZ0lIQnZjM1JVYjFCaGNtVnVkQ2hjYmlBZ0lDQWdJQ0FnSUNCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwZVhCbE9pQW5UMUpIWDBSQlUwaENUMEZTUkY5RlRVSkZSRjlTUlU1RVJWSkZSQ2NzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmtZWE5vWW05aGNtUkpaRnh1SUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdiR0Z6ZEZCaGNtVnVkRTl5YVdkcGJsSmxaaTVqZFhKeVpXNTBYRzRnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0I5SUdOaGRHTm9JQ2hsY25KdmNpa2dlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQnRaWE56WVdkbElEMWNiaUFnSUNBZ0lDQWdJQ0JsY25KdmNpQnBibk4wWVc1alpXOW1JRVZ5Y205eUlEOGdaWEp5YjNJdWJXVnpjMkZuWlNBNklDZFZibXR1YjNkdUlHUmhjMmhpYjJGeVpDQmxjbkp2Y2ljN1hHNWNiaUFnSUNBZ0lDQWdhV1lnS0hKdmIzUlNaV1l1WTNWeWNtVnVkQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lISnZiM1JTWldZdVkzVnljbVZ1ZEM1cGJtNWxja2hVVFV3Z1BTQmNYR0JjYmlBZ0lDQWdJQ0FnSUNBZ0lEeGthWFlnYzNSNWJHVTlYQ0pjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdjR0ZrWkdsdVp6b2dNalJ3ZUR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnWm05dWRDMW1ZVzFwYkhrNklITmhibk10YzJWeWFXWTdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZiRzl5T2lBalltUXlOekZsTzF4dUlDQWdJQ0FnSUNBZ0lDQWdYQ0krWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJRVpoYVd4bFpDQjBieUJ5Wlc1a1pYSWdaR0Z6YUdKdllYSmtPaUJjWENSN2JXVnpjMkZuWlgxY2JpQWdJQ0FnSUNBZ0lDQWdJRHd2WkdsMlBseHVJQ0FnSUNBZ0lDQWdJRnhjWUR0Y2JpQWdJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQWdJSEJ2YzNSVWIxQmhjbVZ1ZENoY2JpQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCMGVYQmxPaUFuVDFKSFgwUkJVMGhDVDBGU1JGOUZUVUpGUkY5RlVsSlBVaWNzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmtZWE5vWW05aGNtUkpaQ3hjYmlBZ0lDQWdJQ0FnSUNBZ0lHMWxjM05oWjJWY2JpQWdJQ0FnSUNBZ0lDQjlMRnh1SUNBZ0lDQWdJQ0FnSUd4aGMzUlFZWEpsYm5SUGNtbG5hVzVTWldZdVkzVnljbVZ1ZEZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2ZTQm1hVzVoYkd4NUlIdGNiaUFnSUNBZ0lDQWdhV1lnS0NGallXNWpaV3hzWldRcElIdGNiaUFnSUNBZ0lDQWdJQ0J6WlhSTWIyRmthVzVuS0daaGJITmxLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJSDFjYmx4dUlDQWdJSEpsYm1SbGNrUmhjMmhpYjJGeVpDZ3BPMXh1WEc0Z0lDQWdjbVYwZFhKdUlDZ3BJRDArSUh0Y2JpQWdJQ0FnSUdOaGJtTmxiR3hsWkNBOUlIUnlkV1U3WEc0Z0lDQWdmVHRjYmlBZ2ZTd2dXMlJoYzJoaWIyRnlaRWxrTENCa1pYQnpVM1JoY25Rc0lHUmxjM1J5YjNsRGRYSnlaVzUwUkdGemFHSnZZWEprWFNrN1hHNWNiaUFnZFhObFJXWm1aV04wS0NncElEMCtJSHRjYmlBZ0lDQnlaWFIxY200Z0tDa2dQVDRnZTF4dUlDQWdJQ0FnWkdWemRISnZlVU4xY25KbGJuUkVZWE5vWW05aGNtUW9LVHRjYmlBZ0lDQjlPMXh1SUNCOUxDQmJaR1Z6ZEhKdmVVTjFjbkpsYm5SRVlYTm9ZbTloY21SZEtUdGNibHh1SUNCeVpYUjFjbTRnS0Z4dUlDQWdJRHhrYVhaY2JpQWdJQ0FnSUhOMGVXeGxQWHQ3WEc0Z0lDQWdJQ0FnSUhCdmMybDBhVzl1T2lBblptbDRaV1FuTEZ4dUlDQWdJQ0FnSUNCcGJuTmxkRG9nTUN4Y2JpQWdJQ0FnSUNBZ2QybGtkR2c2SUNjeE1EQjJkeWNzWEc0Z0lDQWdJQ0FnSUdobGFXZG9kRG9nSnpFd01IWm9KeXhjYmlBZ0lDQWdJQ0FnYjNabGNtWnNiM2M2SUNkb2FXUmtaVzRuTEZ4dUlDQWdJQ0FnSUNCaVlXTnJaM0p2ZFc1a09pQW5JMlptWmlkY2JpQWdJQ0FnSUgxOVhHNGdJQ0FnUGx4dUlDQWdJQ0FnZTJ4dllXUnBibWNnSmlZZ0tGeHVJQ0FnSUNBZ0lDQThaR2wyWEc0Z0lDQWdJQ0FnSUNBZ2MzUjViR1U5ZTN0Y2JpQWdJQ0FnSUNBZ0lDQWdJSEJ2YzJsMGFXOXVPaUFuWVdKemIyeDFkR1VuTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdhVzV6WlhRNklEQXNYRzRnSUNBZ0lDQWdJQ0FnSUNCNlNXNWtaWGc2SURFd0xGeHVJQ0FnSUNBZ0lDQWdJQ0FnWkdsemNHeGhlVG9nSjJac1pYZ25MRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lXeHBaMjVKZEdWdGN6b2dKMk5sYm5SbGNpY3NYRzRnSUNBZ0lDQWdJQ0FnSUNCcWRYTjBhV1o1UTI5dWRHVnVkRG9nSjJObGJuUmxjaWNzWEc0Z0lDQWdJQ0FnSUNBZ0lDQm1iMjUwUm1GdGFXeDVPaUFuYzJGdWN5MXpaWEpwWmljc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JpWVdOclozSnZkVzVrT2lBbkkyWm1aaWRjYmlBZ0lDQWdJQ0FnSUNCOWZWeHVJQ0FnSUNBZ0lDQStYRzRnSUNBZ0lDQWdJQ0FnVEc5aFpHbHVaeUJrWVhOb1ltOWhjbVRpZ0taY2JpQWdJQ0FnSUNBZ1BDOWthWFkrWEc0Z0lDQWdJQ0FwZlZ4dVhHNGdJQ0FnSUNBOFpHbDJYRzRnSUNBZ0lDQWdJSEpsWmoxN2NtOXZkRkpsWm4xY2JpQWdJQ0FnSUNBZ2MzUjViR1U5ZTN0Y2JpQWdJQ0FnSUNBZ0lDQndiM05wZEdsdmJqb2dKMkZpYzI5c2RYUmxKeXhjYmlBZ0lDQWdJQ0FnSUNCcGJuTmxkRG9nTUN4Y2JpQWdJQ0FnSUNBZ0lDQjNhV1IwYURvZ0p6RXdNQ1VuTEZ4dUlDQWdJQ0FnSUNBZ0lHaGxhV2RvZERvZ0p6RXdNQ1VuWEc0Z0lDQWdJQ0FnSUgxOVhHNGdJQ0FnSUNBdlBseHVJQ0FnSUR3dlpHbDJQbHh1SUNBcE8xeHVmVnh1WUR0Y2JseHVZMjl1YzNRZ1UwVlNWa1ZTWDBsT1JFVllJRDBnWUdsdGNHOXlkQ0IwZVhCbElIc2dVR3gxWjJsdVNXNXBkR2xoYkdsNlpYSkRiMjUwWlhoMElIMGdabkp2YlNBblFHdGliaTlqYjNKbEwzTmxjblpsY2ljN1hHNXBiWEJ2Y25RZ2V5QlBjbWRFWVhOb1ltOWhjbVJGYldKbFpGTmxjblpsY2xCc2RXZHBiaUI5SUdaeWIyMGdKeTR2Y0d4MVoybHVKenRjYmx4dVpYaHdiM0owSUdaMWJtTjBhVzl1SUhCc2RXZHBiaWhwYm1sMGFXRnNhWHBsY2tOdmJuUmxlSFE2SUZCc2RXZHBia2x1YVhScFlXeHBlbVZ5UTI5dWRHVjRkQ2tnZTF4dUlDQnlaWFIxY200Z2JtVjNJRTl5WjBSaGMyaGliMkZ5WkVWdFltVmtVMlZ5ZG1WeVVHeDFaMmx1S0dsdWFYUnBZV3hwZW1WeVEyOXVkR1Y0ZENrN1hHNTlYRzVnTzF4dVhHNWpiMjV6ZENCVFJWSldSVkpmVUV4VlIwbE9JRDBnWUdsdGNHOXlkQ0IwZVhCbElIdGNiaUFnUTI5eVpWTmxkSFZ3TEZ4dUlDQkRiM0psVTNSaGNuUXNYRzRnSUZCc2RXZHBiaXhjYmlBZ1VHeDFaMmx1U1c1cGRHbGhiR2w2WlhKRGIyNTBaWGgwWEc1OUlHWnliMjBnSjBCclltNHZZMjl5WlM5elpYSjJaWEluTzF4dVhHNWxlSEJ2Y25RZ1kyeGhjM01nVDNKblJHRnphR0p2WVhKa1JXMWlaV1JUWlhKMlpYSlFiSFZuYVc0Z2FXMXdiR1Z0Wlc1MGN5QlFiSFZuYVc0Z2UxeHVJQ0JqYjI1emRISjFZM1J2Y2lod2NtbDJZWFJsSUhKbFlXUnZibXg1SUdsdWFYUnBZV3hwZW1WeVEyOXVkR1Y0ZERvZ1VHeDFaMmx1U1c1cGRHbGhiR2w2WlhKRGIyNTBaWGgwS1NCN2ZWeHVYRzRnSUhCMVlteHBZeUJ6WlhSMWNDaGpiM0psT2lCRGIzSmxVMlYwZFhBcElIdGNiaUFnSUNCamIyNXpkQ0J5YjNWMFpYSWdQU0JqYjNKbExtaDBkSEF1WTNKbFlYUmxVbTkxZEdWeUtDazdYRzVjYmlBZ0lDQnliM1YwWlhJdVoyVjBLRnh1SUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0J3WVhSb09pQW5MMkZ3YVM4a2UwdEpRa0ZPUVY5QlVGQmZTVVI5TDJobFlXeDBhQ2NzWEc0Z0lDQWdJQ0FnSUhaaGJHbGtZWFJsT2lCbVlXeHpaVnh1SUNBZ0lDQWdmU3hjYmlBZ0lDQWdJR0Z6ZVc1aklDaGpiMjUwWlhoMExDQnlaWEYxWlhOMExDQnlaWE53YjI1elpTa2dQVDRnZTF4dUlDQWdJQ0FnSUNCeVpYUjFjbTRnY21WemNHOXVjMlV1YjJzb2UxeHVJQ0FnSUNBZ0lDQWdJR0p2WkhrNklIdGNiaUFnSUNBZ0lDQWdJQ0FnSUc5ck9pQjBjblZsTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjR3gxWjJsdU9pQW5KSHRMU1VKQlRrRmZRVkJRWDBsRWZTZGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgwcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNrN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2MzUmhjblFvWTI5eVpUb2dRMjl5WlZOMFlYSjBLU0I3ZlZ4dVhHNGdJSEIxWW14cFl5QnpkRzl3S0NrZ2UzMWNibjFjYm1BN1hHNWNibU52Ym5OMElGSkZRVVJOUlNBOUlHQWpJQ1I3UzBsQ1FVNUJYMUJNVlVkSlRsOUpSSDFjYmx4dVRYVnNkR2t0ZEdWdVlXNTBMQ0J2Y21jdFlXZHViM04wYVdNZ1MybGlZVzVoSUdSaGMyaGliMkZ5WkNCbGJXSmxaQ0J3YkhWbmFXNHVYRzVjYmxSb1pYSmxJR2x6SUc1bGRtVnlJSE53WVdObElITjNhWFJqYUdsdVp5NGdSV0ZqYUNCdmNtY2dZV3h5WldGa2VTQnNZVzVrY3lCcGJpQnBkSE1nYjNkdUlFdHBZbUZ1WVNCemNHRmpaVnh1ZEdoeWIzVm5hQ0IwYUdVZ1ltRmphMlZ1WkNCd2NtOTRlUzl6WlhOemFXOXVJRlZTVEN3Z1lXNWtJSFJvWlNCd2JIVm5hVzRnYjI1c2VTQnpkMmwwWTJobGN5QmtZWE5vWW05aGNtUnpYRzUzYVhSb2FXNGdkR2hsSUdOMWNuSmxiblFnYzNCaFkyVXVYRzVjYmlNaklFSjFhV3hrWEc1Y2JrdHBZbUZ1WVNCd2JIVm5hVzV6SUcxMWMzUWdiV0YwWTJnZ2RHaGxJR1Y0WVdOMElFdHBZbUZ1WVNCMlpYSnphVzl1SUdGdVpDQnRkWE4wSUdKbElHSjFhV3gwSUhkcGRHaHBiaUIwYUdWY2JrdHBZbUZ1WVNCeVpYQnZJQ2h6WldVZ2EySnVMWEJzZFdkcGJpMW5aVzVsY21GMGIzSXBMaUJRYkdGalpTQjBhR2x6SUdScGNtVmpkRzl5ZVNCMWJtUmxjbHh1WEZ4Z2EybGlZVzVoTFdWNGRISmhMMXhjWUNBb2IzSWdYRnhnY0d4MVoybHVjeTljWEdBcElHRnVaQ0J5ZFc0Z2RHaGxJRXRwWW1GdVlTQndiSFZuYVc0Z1luVnBiR1FzSUdVdVp5NDZYRzVjYmx4Y1lGeGNZRnhjWUZ4dWVXRnliaUJpZFdsc1pGeHVYRnhnWEZ4Z1hGeGdYRzVjYmlNaklFVnRZbVZrSUZWU1RGeHVYRzVjWEdCY1hHQmNYR0JjYmk5cmFXSmhibUV2WVhCd0x5UjdTMGxDUVU1QlgwRlFVRjlKUkgwL1pHRnphR0p2WVhKa1NXUTlQR2xrUGlad1lYSmxiblJQY21sbmFXNDlQRzl5YVdkcGJqNWNibHhjWUZ4Y1lGeGNZRnh1WEc0akl5Qk5aWE56WVdkbElIQnliM1J2WTI5c1hHNWNiaTBnVUdGeVpXNTBJQzArSUhCc2RXZHBiam9nWEZ4Z1QxSkhYMFJCVTBoQ1QwRlNSRjlGVFVKRlJGOVRWMGxVUTBoZlJFRlRTRUpQUVZKRVhGeGdYRzR0SUZCc2RXZHBiaUF0UGlCd1lYSmxiblE2SUZ4Y1lFOVNSMTlFUVZOSVFrOUJVa1JmUlUxQ1JVUmZVa1ZCUkZsY1hHQWdMeUJjWEdCUFVrZGZSRUZUU0VKUFFWSkVYMFZOUWtWRVgxSkZUa1JGVWtWRVhGeGdJQzhnWEZ4Z1QxSkhYMFJCVTBoQ1QwRlNSRjlGVFVKRlJGOUZVbEpQVWx4Y1lGeHVYRzVXWlhKemFXOXVPaUFrZTB0SlFrRk9RVjlRVEZWSFNVNWZWa1ZTVTBsUFRuMWNibUE3WEc1Y2JpOHFLbHh1SUNvZ1VtVjBkWEp1Y3lCMGFHVWdablZzYkNCelpYUWdiMllnWjJWdVpYSmhkR1ZrSUhCc2RXZHBiaUJtYVd4bGN5Qm1iM0lnWVNCMFlYSm5aWFFnUzJsaVlXNWhJSFpsY25OcGIyNHVYRzRnS2x4dUlDb2dRSEJoY21GdElIUmhjbWRsZEZabGNuTnBiMjRnTFNCTGFXSmhibUVnZG1WeWMybHZiaUJpWVd0bFpDQnBiblJ2SUdCcmFXSmhibUV1YW5OdmJtQXVYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCcmFXSmhibUZRYkhWbmFXNUdhV3hsY3loMFlYSm5aWFJXWlhKemFXOXVPaUJ6ZEhKcGJtY3BPaUJMYVdKaGJtRlFiSFZuYVc1R2FXeGxXMTBnZTF4dUlDQmpiMjV6ZENCdFlXNXBabVZ6ZENBOUlFcFRUMDR1YzNSeWFXNW5hV1o1S0Z4dUlDQWdJSHRjYmlBZ0lDQWdJR2xrT2lCTFNVSkJUa0ZmVUV4VlIwbE9YMGxFTEZ4dUlDQWdJQ0FnZG1WeWMybHZiam9nUzBsQ1FVNUJYMUJNVlVkSlRsOVdSVkpUU1U5T0xGeHVJQ0FnSUNBZ2EybGlZVzVoVm1WeWMybHZiam9nZEdGeVoyVjBWbVZ5YzJsdmJpeGNiaUFnSUNBZ0lITmxjblpsY2pvZ2RISjFaU3hjYmlBZ0lDQWdJSFZwT2lCMGNuVmxMRnh1SUNBZ0lDQWdjbVZ4ZFdseVpXUlFiSFZuYVc1ek9pQmJYQ0prWVhOb1ltOWhjbVJjSWl3Z1hDSmxiV0psWkdSaFlteGxYQ0lzSUZ3aVpHRjBZVndpWFN4Y2JpQWdJQ0FnSUc5d2RHbHZibUZzVUd4MVoybHVjem9nVzEwc1hHNGdJQ0FnZlN4Y2JpQWdJQ0J1ZFd4c0xGeHVJQ0FnSURKY2JpQWdLVHRjYmx4dUlDQnlaWFIxY200Z1cxeHVJQ0FnSUhzZ2NHRjBhRG9nWENKcmFXSmhibUV1YW5OdmJsd2lMQ0JqYjI1MFpXNTBPaUJnSkh0dFlXNXBabVZ6ZEgxY1hHNWdJSDBzWEc0Z0lDQWdleUJ3WVhSb09pQmNJblJ6WTI5dVptbG5MbXB6YjI1Y0lpd2dZMjl1ZEdWdWREb2dZQ1I3VkZOZlEwOU9Sa2xIZlZ4Y2JtQWdmU3hjYmlBZ0lDQjdJSEJoZEdnNklGd2lVa1ZCUkUxRkxtMWtYQ0lzSUdOdmJuUmxiblE2SUZKRlFVUk5SU0I5TEZ4dUlDQWdJSHNnY0dGMGFEb2dYQ0p3ZFdKc2FXTXZkSGx3WlhNdWRITmNJaXdnWTI5dWRHVnVkRG9nVUZWQ1RFbERYMVJaVUVWVElIMHNYRzRnSUNBZ2V5QndZWFJvT2lCY0luQjFZbXhwWXk5cGJtUmxlQzUwYzF3aUxDQmpiMjUwWlc1ME9pQlFWVUpNU1VOZlNVNUVSVmdnZlN4Y2JpQWdJQ0I3SUhCaGRHZzZJRndpY0hWaWJHbGpMM0JzZFdkcGJpNTBjM2hjSWl3Z1kyOXVkR1Z1ZERvZ1VGVkNURWxEWDFCTVZVZEpUaUI5TEZ4dUlDQWdJSHNnY0dGMGFEb2dYQ0p3ZFdKc2FXTXZZWEJ3YkdsallYUnBiMjR1ZEhONFhDSXNJR052Ym5SbGJuUTZJRkJWUWt4SlExOUJVRkJNU1VOQlZFbFBUaUI5TEZ4dUlDQWdJSHNnY0dGMGFEb2dYQ0p6WlhKMlpYSXZhVzVrWlhndWRITmNJaXdnWTI5dWRHVnVkRG9nVTBWU1ZrVlNYMGxPUkVWWUlIMHNYRzRnSUNBZ2V5QndZWFJvT2lCY0luTmxjblpsY2k5d2JIVm5hVzR1ZEhOY0lpd2dZMjl1ZEdWdWREb2dVMFZTVmtWU1gxQk1WVWRKVGlCOUxGeHVJQ0JkTzF4dWZWeHVJbDE5Il19
|
|
502
|
+
//# sourceMappingURL=templates.js.map
|
|
503
|
+
//# sourceMappingURL=templates.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins/kibana/templates.cjs","sourceRoot":"","sources":["plugins/kibana/templates.js"],"names":[],"mappings":";;AA4dA,8CAqBC;AAjfD;;;;;;;;GAQG;AACH,+CAAuF;AACvF,MAAM,SAAS,GAAG;;;;CAIjB,CAAC;AACF,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BpB,CAAC;AACF,MAAM,YAAY,GAAG;;;;;;CAMpB,CAAC;AACF,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;aAgBT,2BAAa;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BzB,CAAC;AACF,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6S1B,CAAC;AACF,MAAM,YAAY,GAAG;;;;;;CAMpB,CAAC;AACF,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;sBAeA,2BAAa;;;;;;;uBAOZ,2BAAa;;;;;;;;;;;CAWnC,CAAC;AACF,MAAM,MAAM,GAAG,KAAK,8BAAgB;;;;;;;;;;;;;;;;;;;;;cAqBtB,2BAAa;;;;;;;;WAQhB,mCAAqB;CAC/B,CAAC;AACF;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,aAAa;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5B,EAAE,EAAE,8BAAgB;QACpB,OAAO,EAAE,mCAAqB;QAC9B,aAAa,EAAE,aAAa;QAC5B,MAAM,EAAE,IAAI;QACZ,EAAE,EAAE,IAAI;QACR,eAAe,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC;QACpD,eAAe,EAAE,EAAE;KACtB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACZ,OAAO;QACH,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,QAAQ,IAAI,EAAE;QACjD,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,SAAS,IAAI,EAAE;QACpD,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE;QACtC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE;QAClD,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE;QAClD,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,aAAa,EAAE;QACrD,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,kBAAkB,EAAE;QAC/D,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE;QAClD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,aAAa,EAAE;KACvD,CAAC;AACN,CAAC;AACD,qCAAqC"}
|
|
@@ -29,5 +29,5 @@ Object.defineProperty(exports, "KIBANA_PLUGIN_VERSION", { enumerable: true, get:
|
|
|
29
29
|
Object.defineProperty(exports, "buildKibanaManifest", { enumerable: true, get: function () { return manifest_js_1.buildKibanaManifest; } });
|
|
30
30
|
var templates_js_1 = require("./templates.cjs");
|
|
31
31
|
Object.defineProperty(exports, "kibanaPluginFiles", { enumerable: true, get: function () { return templates_js_1.kibanaPluginFiles; } });
|
|
32
|
-
//# sourceMappingURL=
|
|
33
|
-
//# sourceMappingURL=
|
|
32
|
+
//# sourceMappingURL=types.js.map
|
|
33
|
+
//# sourceMappingURL=types.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins/kibana/types.cjs","sourceRoot":"","sources":["plugins/kibana/types.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;;GAKG;AACH,mDAAiC;AACjC,6CAA6G;AAApG,+GAAA,gBAAgB,OAAA;AAAE,4GAAA,aAAa,OAAA;AAAE,oHAAA,qBAAqB,OAAA;AAAE,kHAAA,mBAAmB,OAAA;AACpF,+CAAmD;AAA1C,iHAAA,iBAAiB,OAAA;AAC1B,iCAAiC"}
|
|
@@ -22,5 +22,5 @@ Object.defineProperty(exports, "buildSupersetEmbedUrl", { enumerable: true, get:
|
|
|
22
22
|
function sendSupersetSwitchDashboardMessage(target, payload, targetOrigin) {
|
|
23
23
|
(0, contract_js_1.sendSwitchDashboardMessage)(target, payload, targetOrigin);
|
|
24
24
|
}
|
|
25
|
-
//# sourceMappingURL=
|
|
26
|
-
//# sourceMappingURL=
|
|
25
|
+
//# sourceMappingURL=host.js.map
|
|
26
|
+
//# sourceMappingURL=host.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins/superset/host.cjs","sourceRoot":"","sources":["plugins/superset/host.js"],"names":[],"mappings":";;;AAiBA,gFAEC;AAnBD;;;;;;GAMG;AACH,kDAA6E;AAC7E,iDAAuD;AAC9C,sGADA,oCAAqB,OACA;AAC9B;;;;;;GAMG;AACH,SAAgB,kCAAkC,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY;IAC5E,IAAA,wCAAU,EAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AAC9C,CAAC;AACD,gCAAgC"}
|
|
@@ -36,5 +36,5 @@ Object.defineProperty(exports, "buildSupersetEmbedUrl", { enumerable: true, get:
|
|
|
36
36
|
Object.defineProperty(exports, "SUPERSET_DEFAULT_BASE_PATH", { enumerable: true, get: function () { return installer_js_1.SUPERSET_DEFAULT_BASE_PATH; } });
|
|
37
37
|
var host_js_1 = require("./host.cjs");
|
|
38
38
|
Object.defineProperty(exports, "sendSupersetSwitchDashboardMessage", { enumerable: true, get: function () { return host_js_1.sendSupersetSwitchDashboardMessage; } });
|
|
39
|
-
//# sourceMappingURL=
|
|
40
|
-
//# sourceMappingURL=
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
40
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins/superset/index.cjs","sourceRoot":"","sources":["plugins/superset/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;;;;;GAQG;AACH,mDAAiC;AACjC,6CAA2B;AAC3B,gDAA8B;AAC9B,iDAA+B;AAC/B,+CAAoL;AAA3K,4HAAA,4BAA4B,OAAA;AAAE,4HAAA,4BAA4B,OAAA;AAAE,kIAAA,kCAAkC,OAAA;AAAE,qHAAA,qBAAqB,OAAA;AAAE,0HAAA,0BAA0B,OAAA;AAC1J,qCAAgE;AAAvD,6HAAA,kCAAkC,OAAA;AAC3C,iCAAiC"}
|
|
@@ -228,5 +228,5 @@ exports.supersetDashboardEmbedPlugin = new SupersetDashboardEmbedPlugin();
|
|
|
228
228
|
function createSupersetDashboardEmbedPlugin(targetVersion) {
|
|
229
229
|
return new SupersetDashboardEmbedPlugin(targetVersion);
|
|
230
230
|
}
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BsdWdpbnMvc3VwZXJzZXQvaW5zdGFsbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDOUIsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsMEJBQTBCLElBQUksVUFBVSxHQVN6Qyx5QkFBb0I7QUFDckIsT0FBTyxFQUNMLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixHQUN0QixzQkFBbUI7QUFDcEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHVCQUFvQjtBQUVqRCx3REFBd0Q7QUFDeEQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsVUFBVSxDQUFDO0FBZ0JyRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQUMsT0FBd0I7SUFDNUQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSwwQkFBMEIsQ0FBQztJQUNoRSxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3JDLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMs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Q0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELE9BQU8sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVEOztPQUVHO0lBQ08sVUFBVSxDQUNsQixHQUFXLEVBQ1gsSUFBYyxFQUNkLEdBQVc7UUFFWCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLFFBQVEsQ0FDTixHQUFHLEVBQ0gsSUFBSSxFQUNKLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFDeEIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUN4QixNQUFNLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN2RCxJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNWLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQzNDLE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUVELGtDQUFrQztBQUNsQyxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLDRCQUE0QixFQUFFLENBQUM7QUFFL0UsbURBQW1EO0FBQ25ELE1BQU0sVUFBVSxrQ0FBa0MsQ0FDaEQsYUFBcUI7SUFFckIsT0FBTyxJQUFJLDRCQUE0QixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGUgaW50ZWdyYXRpb25zL3BsdWdpbnMvc3VwZXJzZXQvaW5zdGFsbGVyXG4gKiBAc3VtbWFyeSBTdXBlcnNldCBkYXNoYm9hcmQgZW1iZWQgcGx1Z2luIGluc3RhbGxlci5cbiAqIEBkZXNjcmlwdGlvbiBJbXBsZW1lbnRzIGBEYXNoYm9hcmRFbWJlZFBsdWdpbmAgZm9yIFN1cGVyc2V0IHVzaW5nIGFcbiAqIHBhdGNoLWFuZC1idWlsZCBzdHJhdGVneS4gRGVjYWYgaG9sZHMgcGF0Y2ggc2NyaXB0cyB0aGF0IG1vZGlmeSBTdXBlcnNldCdzXG4gKiBpbnRlcm5hbCBlbWJlZGRlZCBmcm9udGVuZCBhbmQgU0RLIHNvdXJjZSBmaWxlcyB0byBhZGQgYSBgc3dpdGNoRGFzaGJvYXJkYFxuICogbWV0aG9kLiBgaW5zdGFsbGAgbWF0ZXJpYWxpemVzIHRoZSBzY3JpcHRzLCBjbG9uZXMvdXNlcyBTdXBlcnNldCBzb3VyY2UsXG4gKiBhcHBsaWVzIHBhdGNoZXMsIGFuZCBidWlsZHMgKFNESyArIGZyb250ZW5kICsgb3B0aW9uYWxseSBEb2NrZXIgaW1hZ2UpLlxuICpcbiAqIFRoZSBzYW1lIGBEYXNoYm9hcmRFbWJlZFBsdWdpbmAgQVBJIGFzIEtpYmFuYSBpcyBleHBvc2VkLiBgc2VuZFN3aXRjaERhc2hib2FyZE1lc3NhZ2VgXG4gKiBkZWxlZ2F0ZXMgdG8gYHRhcmdldC5zd2l0Y2hEYXNoYm9hcmQoZGFzaGJvYXJkSWQsIGd1ZXN0VG9rZW4pYCAodGhlIFN1cGVyc2V0XG4gKiBTREsgaGFuZGxlKSBpbnN0ZWFkIG9mIGBwb3N0TWVzc2FnZWAuXG4gKi9cbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IFVuc3VwcG9ydGVkRXJyb3IsIE1heWJlQ29udGV4dHVhbEFyZyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgZXhlY0ZpbGUgfSBmcm9tIFwibm9kZTpjaGlsZF9wcm9jZXNzXCI7XG5cbmltcG9ydCB7XG4gIGNyZWF0ZVN3aXRjaERhc2hib2FyZE1lc3NhZ2UsXG4gIHNlbmRTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlIGFzIHNlbmRTaGFyZWQsXG4gIHR5cGUgRGFzaGJvYXJkRW1iZWRQbHVnaW4sXG4gIHR5cGUgRGFzaGJvYXJkRW1iZWRQbHVnaW5EZXNjcmlwdG9yLFxuICB0eXBlIEVtYmVkTWVzc2FnZVRhcmdldCxcbiAgdHlwZSBFbWJlZFVybE9wdGlvbnMsXG4gIHR5cGUgUGx1Z2luSW5zdGFsbE9wdGlvbnMsXG4gIHR5cGUgUGx1Z2luSW5zdGFsbFJlc3VsdCxcbiAgdHlwZSBTd2l0Y2hEYXNoYm9hcmRQYXlsb2FkLFxuICB0eXBlIFN3aXRjaERhc2hib2FyZE1lc3NhZ2UsXG59IGZyb20gXCIuLi9jb250cmFjdFwiO1xuaW1wb3J0IHtcbiAgU1VQRVJTRVRfQVBQX0lELFxuICBTVVBFUlNFVF9QTFVHSU5fSUQsXG4gIFNVUEVSU0VUX1BMVUdJTl9WRVJTSU9OLFxuICBidWlsZFN1cGVyc2V0TWFuaWZlc3QsXG59IGZyb20gXCIuL21hbmlmZXN0XCI7XG5pbXBvcnQgeyBzdXBlcnNldFBhdGNoRmlsZXMgfSBmcm9tIFwiLi90ZW1wbGF0ZXNcIjtcblxuLyoqIERlZmF1bHQgU3VwZXJzZXQgYmFzZSBwYXRoIHdoZW4gbm9uZSBpcyBwcm92aWRlZC4gKi9cbmV4cG9ydCBjb25zdCBTVVBFUlNFVF9ERUZBVUxUX0JBU0VfUEFUSCA9IFwic3VwZXJzZXRcIjtcblxuLyoqXG4gKiBFeHRlbnNpb24gb2YgYFBsdWdpbkluc3RhbGxPcHRpb25zYCBmb3IgU3VwZXJzZXQtc3BlY2lmaWMgYnVpbGQgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdXBlcnNldEluc3RhbGxPcHRpb25zIGV4dGVuZHMgUGx1Z2luSW5zdGFsbE9wdGlvbnMge1xuICAvKiogUGF0aCB0byBhbiBleGlzdGluZyBTdXBlcnNldCBzb3VyY2UgY2hlY2tvdXQuIElmIGFic2VudCwgdGhlIGluc3RhbGxlciBjbG9uZXMgdmlhIGdpdC4gKi9cbiAgc3VwZXJzZXRTb3VyY2VQYXRoPzogc3RyaW5nO1xuICAvKiogR2l0IFVSTCB0byBjbG9uZSBTdXBlcnNldCBmcm9tICh1c2VkIHdoZW4gYHN1cGVyc2V0U291cmNlUGF0aGAgaXMgYWJzZW50KS4gKi9cbiAgc3VwZXJzZXRHaXRVcmw/OiBzdHJpbmc7XG4gIC8qKiBHaXQgcmVmL2JyYW5jaC90YWcgdG8gY2hlY2tvdXQgYWZ0ZXIgY2xvbmluZy4gKi9cbiAgc3VwZXJzZXRHaXRSZWY/OiBzdHJpbmc7XG4gIC8qKiBEb2NrZXIgaW1hZ2UgdGFnIHRvIGJ1aWxkICh3aGVuIHByb3ZpZGVkLCBidWlsZHMgYSBEb2NrZXIgaW1hZ2UgaW5zdGVhZCBvZiBqdXN0IFNESytmcm9udGVuZCkuICovXG4gIGRvY2tlckltYWdlVGFnPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEJ1aWxkIHRoZSBTdXBlcnNldCBlbWJlZGRlZCBVUkwuXG4gKlxuICogRm9yIFN1cGVyc2V0LCB0aGUgYGRhc2hib2FyZElkYCBmaWVsZCBpbiBgRW1iZWRVcmxPcHRpb25zYCBpcyB0aGVcbiAqIGVtYmVkZGVkLWNvbmZpZ3VyYXRpb24gVVVJRCB1c2VkIGluIGAvZW1iZWRkZWQvOnV1aWRgLlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIGJ1aWxkU3VwZXJzZXRFbWJlZFVybCh7IGhvc3Q6IFwic3VwZXJzZXQuZXhhbXBsZS5jb21cIiwgZGFzaGJvYXJkSWQ6IFwiYWJjLXV1aWRcIiwgcGFyZW50T3JpZ2luOiBcImh0dHBzOi8vYXBwLmV4YW1wbGUuY29tXCIgfSlcbiAqICAgLy8gPT4gXCIvL3N1cGVyc2V0LmV4YW1wbGUuY29tL3N1cGVyc2V0L2VtYmVkZGVkL2FiYy11dWlkP3BhcmVudE9yaWdpbj1odHRwcyUzQSUyRiUyRmFwcC5leGFtcGxlLmNvbVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFN1cGVyc2V0RW1iZWRVcmwob3B0aW9uczogRW1iZWRVcmxPcHRpb25zKTogc3RyaW5nIHtcbiAgY29uc3QgYmFzZVBhdGggPSBvcHRpb25zLmJhc2VQYXRoID8/IFNVUEVSU0VUX0RFRkFVTFRfQkFTRV9QQVRIO1xuICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gIHBhcmFtcy5zZXQoXCJwYXJlbnRPcmlnaW5cIiwgb3B0aW9ucy5wYXJlbnRPcmlnaW4pO1xuICBpZiAob3B0aW9ucy52aWV3Py50aW1lUmFuZ2UpIHtcbiAgICBwYXJhbXMuc2V0KFwidGltZVJhbmdlXCIsIEpTT04uc3RyaW5naWZ5KG9wdGlvbnMudmlldy50aW1lUmFuZ2UpKTtcbiAgfVxuICByZXR1cm4gYC8vJHtvcHRpb25zLmhvc3R9LyR7YmFzZVBhdGh9L2VtYmVkZGVkLyR7b3B0aW9ucy5kYXNoYm9hcmRJZH0/JHtwYXJhbXMudG9TdHJpbmcoKX1gO1xufVxuXG4vKipcbiAqIEBjbGFzcyBTdXBlcnNldERhc2hib2FyZEVtYmVkUGx1Z2luXG4gKiBAc3VtbWFyeSBTdXBlcnNldCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYERhc2hib2FyZEVtYmVkUGx1Z2luYCBjb250cmFjdC5cbiAqIEBkZXNjcmlwdGlvbiBPcmctYWdub3N0aWMgbXVsdGktdGVuYW50IGRhc2hib2FyZCBlbWJlZCBwbHVnaW4gZm9yIFN1cGVyc2V0XG4gKiB1c2luZyBhIHBhdGNoLWFuZC1idWlsZCBzdHJhdGVneS4gU2FtZSBBUEkgYXMgYEtpYmFuYURhc2hib2FyZEVtYmVkUGx1Z2luYC5cbiAqL1xuZXhwb3J0IGNsYXNzIFN1cGVyc2V0RGFzaGJvYXJkRW1iZWRQbHVnaW4gaW1wbGVtZW50cyBEYXNoYm9hcmRFbWJlZFBsdWdpbiB7XG4gIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdG9yOiBEYXNoYm9hcmRFbWJlZFBsdWdpbkRlc2NyaXB0b3I7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHRhcmdldFZlcnNpb246IHN0cmluZyA9IFwic3VwZXJzZXRcIikge1xuICAgIHRoaXMuZGVzY3JpcHRvciA9IHtcbiAgICAgIGlkOiBTVVBFUlNFVF9QTFVHSU5fSUQsXG4gICAgICBhcHBJZDogU1VQRVJTRVRfQVBQX0lELFxuICAgICAgdmVyc2lvbjogU1VQRVJTRVRfUExVR0lOX1ZFUlNJT04sXG4gICAgICB0YXJnZXRWZXJzaW9uLFxuICAgICAgdG9vbDogXCJzdXBlcnNldFwiLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgbWFuaWZlc3QodGFyZ2V0VmVyc2lvbjogc3RyaW5nID0gdGhpcy5kZXNjcmlwdG9yLnRhcmdldFZlcnNpb24pOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgcmV0dXJuIGJ1aWxkU3VwZXJzZXRNYW5pZmVzdCh0YXJnZXRWZXJzaW9uKSBhcyB1bmtub3duIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB9XG5cbiAgcHVibGljIGJ1aWxkRW1iZWRVcmwob3B0aW9uczogRW1iZWRVcmxPcHRpb25zKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYnVpbGRTdXBlcnNldEVtYmVkVXJsKG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZVN3aXRjaERhc2hib2FyZE1lc3NhZ2UoXG4gICAgcGF5bG9hZDogU3dpdGNoRGFzaGJvYXJkUGF5bG9hZFxuICApOiBTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlIHtcbiAgICByZXR1cm4gY3JlYXRlU3dpdGNoRGFzaGJvYXJkTWVzc2FnZShwYXlsb2FkKTtcbiAgfVxuXG4gIHB1YmxpYyBzZW5kU3dpdGNoRGFzaGJvYXJkTWVzc2FnZShcbiAgICB0YXJnZXQ6IEVtYmVkTWVzc2FnZVRhcmdldCxcbiAgICBwYXlsb2FkOiBTd2l0Y2hEYXNoYm9hcmRQYXlsb2FkLFxuICAgIHRhcmdldE9yaWdpbjogc3RyaW5nXG4gICk6IHZvaWQge1xuICAgIHNlbmRTaGFyZWQodGFyZ2V0LCBwYXlsb2FkLCB0YXJnZXRPcmlnaW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGVyaWFsaXplIHRoZSBwYXRjaCBhbmQgYnVpbGQgc2NyaXB0cyBpbnRvIGB0YXJnZXRQYXRoL2AsIGFuZCB3aGVuXG4gICAqIGBidWlsZGAgaXMgdHJ1ZSwgY2xvbmUvdXNlIFN1cGVyc2V0IHNvdXJjZSwgYXBwbHkgcGF0Y2hlcywgYW5kIGJ1aWxkXG4gICAqIChTREsgKyBmcm9udGVuZCArIG9wdGlvbmFsbHkgRG9ja2VyIGltYWdlKS5cbiAgICpcbiAgICogVW5saWtlIEtpYmFuYSAod2hpY2ggZ2VuZXJhdGVzIHBsdWdpbiBzb3VyY2UpLCBTdXBlcnNldCdzIFwicGx1Z2luXCIgaXMgYVxuICAgKiBwYXRjaC1hbmQtYnVpbGQgc3RyYXRlZ3k6IERlY2FmIGhvbGRzIHNjcmlwdHMgdGhhdCBtb2RpZnkgU3VwZXJzZXQnc1xuICAgKiBleGlzdGluZyBpbnRlcm5hbCBzb3VyY2UgZmlsZXMuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaW5zdGFsbChcbiAgICBvcHRpb25zOiBTdXBlcnNldEluc3RhbGxPcHRpb25zXG4gICk6IFByb21pc2U8UGx1Z2luSW5zdGFsbFJlc3VsdD4ge1xuICAgIGNvbnN0IGN0eCA9IG9wdGlvbnMuY29udGV4dCBhcyBNYXliZUNvbnRleHR1YWxBcmc8YW55PiB8IHVuZGVmaW5lZDtcbiAgICBpZiAoY3R4KSB7XG4gICAgICB2b2lkIGN0eDtcbiAgICB9XG4gICAgaWYgKCFvcHRpb25zLnRhcmdldFBhdGggfHwgb3B0aW9ucy50YXJnZXRQYXRoLnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFwiaW5zdGFsbCB0YXJnZXRQYXRoIGlzIHJlcXVpcmVkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldFZlcnNpb24gPSBvcHRpb25zLnRhcmdldFZlcnNpb24gPz8gdGhpcy5kZXNjcmlwdG9yLnRhcmdldFZlcnNpb247XG4gICAgY29uc3QgcGx1Z2luRGlyID0gcGF0aC5yZXNvbHZlKFxuICAgICAgb3B0aW9ucy50YXJnZXRQYXRoLFxuICAgICAgU1VQRVJTRVRfQVBQX0lEXG4gICAgKTtcblxuICAgIGlmIChmcy5leGlzdHNTeW5jKHBsdWdpbkRpcikpIHtcbiAgICAgIGlmICghb3B0aW9ucy5vdmVyd3JpdGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgYFBsdWdpbiBkaXJlY3RvcnkgYWxyZWFkeSBleGlzdHM6ICR7cGx1Z2luRGlyfSAodXNlIG92ZXJ3cml0ZTogdHJ1ZSlgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBmcy5ybVN5bmMocGx1Z2luRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZXMgPSBzdXBlcnNldFBhdGNoRmlsZXMoKTtcbiAgICBjb25zdCB3cml0dGVuOiBzdHJpbmdbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgY29uc3QgZnVsbFBhdGggPSBwYXRoLmpvaW4ocGx1Z2luRGlyLCBmaWxlLnBhdGgpO1xuICAgICAgZnMubWtkaXJTeW5jKHBhdGguZGlybmFtZShmdWxsUGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhmdWxsUGF0aCwgZmlsZS5jb250ZW50LCBcInV0ZjhcIik7XG4gICAgICBpZiAoZmlsZS5leGVjdXRhYmxlKSB7XG4gICAgICAgIGZzLmNobW9kU3luYyhmdWxsUGF0aCwgMG83NTUpO1xuICAgICAgfVxuICAgICAgd3JpdHRlbi5wdXNoKGZpbGUucGF0aCk7XG4gICAgfVxuXG4gICAgbGV0IGJ1aWx0ID0gZmFsc2U7XG4gICAgbGV0IGJ1aWxkT3V0cHV0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBpZiAob3B0aW9ucy5idWlsZCkge1xuICAgICAgY29uc3Qgc3VwZXJzZXRSb290ID0gYXdhaXQgdGhpcy5yZXNvbHZlU3VwZXJzZXRSb290KHBsdWdpbkRpciwgb3B0aW9ucyk7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnJ1blBhdGNoQW5kQnVpbGQoXG4gICAgICAgIHBsdWdpbkRpcixcbiAgICAgICAgc3VwZXJzZXRSb290LFxuICAgICAgICBvcHRpb25zXG4gICAgICApLmNhdGNoKChlcnI6IEVycm9yKSA9PiAoe1xuICAgICAgICBvazogZmFsc2UgYXMgY29uc3QsXG4gICAgICAgIG91dHB1dDogZXJyLm1lc3NhZ2UsXG4gICAgICB9KSk7XG4gICAgICBidWlsdCA9IHJlc3VsdC5vaztcbiAgICAgIGJ1aWxkT3V0cHV0ID0gcmVzdWx0Lm91dHB1dDtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGx1Z2luUGF0aDogcGx1Z2luRGlyLFxuICAgICAgZGVzY3JpcHRvcjogeyAuLi50aGlzLmRlc2NyaXB0b3IsIHRhcmdldFZlcnNpb24gfSxcbiAgICAgIGZpbGVzOiB3cml0dGVuLFxuICAgICAgYnVpbHQsXG4gICAgICBidWlsZE91dHB1dCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgdGhlIFN1cGVyc2V0IHNvdXJjZSByb290OiB1c2UgYW4gZXhpc3RpbmcgY2hlY2tvdXQgb3IgY2xvbmUgdmlhIGdpdC5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyByZXNvbHZlU3VwZXJzZXRSb290KFxuICAgIHBsdWdpbkRpcjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IFN1cGVyc2V0SW5zdGFsbE9wdGlvbnNcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAob3B0aW9ucy5zdXBlcnNldFNvdXJjZVBhdGgpIHtcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gcGF0aC5yZXNvbHZlKG9wdGlvbnMuc3VwZXJzZXRTb3VyY2VQYXRoKTtcbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhwYXRoLmpvaW4ocmVzb2x2ZWQsIFwic3VwZXJzZXQtZnJvbnRlbmRcIiwgXCJzcmNcIiwgXCJlbWJlZGRlZFwiLCBcImluZGV4LnRzeFwiKSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgYFN1cGVyc2V0IHNvdXJjZSBub3QgZm91bmQgYXQ6ICR7cmVzb2x2ZWR9IChtaXNzaW5nIHN1cGVyc2V0LWZyb250ZW5kL3NyYy9lbWJlZGRlZC9pbmRleC50c3gpYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmVkO1xuICAgIH1cblxuICAgIGNvbnN0IGdpdFVybCA9IG9wdGlvbnMuc3VwZXJzZXRHaXRVcmwgPz8gXCJodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL3N1cGVyc2V0LmdpdFwiO1xuICAgIGNvbnN0IGdpdFJlZiA9IG9wdGlvbnMuc3VwZXJzZXRHaXRSZWYgPz8gb3B0aW9ucy50YXJnZXRWZXJzaW9uID8/IFwiNi4xLjBcIjtcbiAgICBjb25zdCBjbG9uZURpciA9IHBhdGguam9pbihwbHVnaW5EaXIsIFwiLnN1cGVyc2V0LXNvdXJjZVwiKTtcblxuICAgIGlmIChmcy5leGlzdHNTeW5jKGNsb25lRGlyKSkge1xuICAgICAgZnMucm1TeW5jKGNsb25lRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5ydW5Db21tYW5kKFwiZ2l0XCIsIFtcImNsb25lXCIsIFwiLS1kZXB0aFwiLCBcIjFcIiwgXCItLWJyYW5jaFwiLCBnaXRSZWYsIGdpdFVybCwgY2xvbmVEaXJdLCBwbHVnaW5EaXIpO1xuICAgIHJldHVybiBjbG9uZURpcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBseSBwYXRjaGVzLCB2ZXJpZnksIGFuZCBidWlsZCAoU0RLICsgZnJvbnRlbmQgKyBvcHRpb25hbGx5IERvY2tlcikuXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgcnVuUGF0Y2hBbmRCdWlsZChcbiAgICBwbHVnaW5EaXI6IHN0cmluZyxcbiAgICBzdXBlcnNldFJvb3Q6IHN0cmluZyxcbiAgICBvcHRpb25zOiBTdXBlcnNldEluc3RhbGxPcHRpb25zXG4gICk6IFByb21pc2U8eyBvazogYm9vbGVhbjsgb3V0cHV0OiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IG91dHB1dHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyAxLiBBcHBseSBwYXRjaFxuICAgIGNvbnN0IHBhdGNoUmVzdWx0ID0gYXdhaXQgdGhpcy5ydW5Db21tYW5kKFxuICAgICAgXCJweXRob24zXCIsXG4gICAgICBbcGF0aC5qb2luKHBsdWdpbkRpciwgXCJwYXRjaGVzXCIsIFwiYXBwbHlfc3VwZXJzZXRfNl8xX3BhdGNoLnB5XCIpLCBzdXBlcnNldFJvb3RdLFxuICAgICAgcGx1Z2luRGlyXG4gICAgKTtcbiAgICBvdXRwdXRzLnB1c2gocGF0Y2hSZXN1bHQpO1xuXG4gICAgLy8gMi4gVmVyaWZ5IHBhdGNoXG4gICAgY29uc3QgdmVyaWZ5UmVzdWx0ID0gYXdhaXQgdGhpcy5ydW5Db21tYW5kKFxuICAgICAgcGF0aC5qb2luKHBsdWdpbkRpciwgXCJwYXRjaGVzXCIsIFwidmVyaWZ5X3BhdGNoLnNoXCIpLFxuICAgICAgW3N1cGVyc2V0Um9vdF0sXG4gICAgICBwbHVnaW5EaXJcbiAgICApO1xuICAgIG91dHB1dHMucHVzaCh2ZXJpZnlSZXN1bHQpO1xuXG4gICAgLy8gMy4gQnVpbGQgKERvY2tlciBpbWFnZSBvciBTREsgKyBmcm9udGVuZClcbiAgICBpZiAob3B0aW9ucy5kb2NrZXJJbWFnZVRhZykge1xuICAgICAgY29uc3QgZG9ja2VyUmVzdWx0ID0gYXdhaXQgdGhpcy5ydW5Db21tYW5kKFxuICAgICAgICBwYXRoLmpvaW4ocGx1Z2luRGlyLCBcImJ1aWxkXCIsIFwiYnVpbGQtZG9ja2VyLWltYWdlLnNoXCIpLFxuICAgICAgICBbc3VwZXJzZXRSb290LCBvcHRpb25zLmRvY2tlckltYWdlVGFnXSxcbiAgICAgICAgcGx1Z2luRGlyXG4gICAgICApO1xuICAgICAgb3V0cHV0cy5wdXNoKGRvY2tlclJlc3VsdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNka1Jlc3VsdCA9IGF3YWl0IHRoaXMucnVuQ29tbWFuZChcbiAgICAgICAgcGF0aC5qb2luKHBsdWdpbkRpciwgXCJidWlsZFwiLCBcImJ1aWxkLXNkay5zaFwiKSxcbiAgICAgICAgW3N1cGVyc2V0Um9vdF0sXG4gICAgICAgIHBsdWdpbkRpclxuICAgICAgKTtcbiAgICAgIG91dHB1dHMucHVzaChzZGtSZXN1bHQpO1xuXG4gICAgICBjb25zdCBmcm9udGVuZFJlc3VsdCA9IGF3YWl0IHRoaXMucnVuQ29tbWFuZChcbiAgICAgICAgcGF0aC5qb2luKHBsdWdpbkRpciwgXCJidWlsZFwiLCBcImJ1aWxkLXN1cGVyc2V0LWZyb250ZW5kLnNoXCIpLFxuICAgICAgICBbc3VwZXJzZXRSb290XSxcbiAgICAgICAgcGx1Z2luRGlyXG4gICAgICApO1xuICAgICAgb3V0cHV0cy5wdXNoKGZyb250ZW5kUmVzdWx0KTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBvazogdHJ1ZSwgb3V0cHV0OiBvdXRwdXRzLmpvaW4oXCJcXG5cIikgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gYSBjb21tYW5kIGFuZCBjYXB0dXJlIHN0ZG91dCtzdGRlcnIuXG4gICAqL1xuICBwcm90ZWN0ZWQgcnVuQ29tbWFuZChcbiAgICBjbWQ6IHN0cmluZyxcbiAgICBhcmdzOiBzdHJpbmdbXSxcbiAgICBjd2Q6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBleGVjRmlsZShcbiAgICAgICAgY21kLFxuICAgICAgICBhcmdzLFxuICAgICAgICB7IGN3ZCwgdGltZW91dDogNjAwMDAwIH0sXG4gICAgICAgIChlcnJvciwgc3Rkb3V0LCBzdGRlcnIpID0+IHtcbiAgICAgICAgICBjb25zdCBvdXRwdXQgPSBgJHtzdGRvdXQgPz8gXCJcIn0ke3N0ZGVyciA/PyBcIlwifWAudHJpbSgpO1xuICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihvdXRwdXQgfHwgZXJyb3IubWVzc2FnZSkpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKG91dHB1dCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqIERlZmF1bHQgc2luZ2xldG9uIGluc3RhbmNlLiAqL1xuZXhwb3J0IGNvbnN0IHN1cGVyc2V0RGFzaGJvYXJkRW1iZWRQbHVnaW4gPSBuZXcgU3VwZXJzZXREYXNoYm9hcmRFbWJlZFBsdWdpbigpO1xuXG4vKiogRmFjdG9yeSBhY2NlcHRpbmcgYSB0YXJnZXQgU3VwZXJzZXQgdmVyc2lvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdXBlcnNldERhc2hib2FyZEVtYmVkUGx1Z2luKFxuICB0YXJnZXRWZXJzaW9uOiBzdHJpbmdcbik6IFN1cGVyc2V0RGFzaGJvYXJkRW1iZWRQbHVnaW4ge1xuICByZXR1cm4gbmV3IFN1cGVyc2V0RGFzaGJvYXJkRW1iZWRQbHVnaW4odGFyZ2V0VmVyc2lvbik7XG59XG4iXX0=
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW5zdGFsbGVyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlDQSxzREFRQztBQW1KRCxnRkFFQztBQTlMRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCwyREFBd0Q7QUFDeEQseUNBQWtEO0FBQ2xELDRDQUE4QjtBQUM5QixnREFBa0M7QUFDbEMsMkRBQThDO0FBQzlDLGtEQUEyRztBQUMzRywrQ0FBcUg7QUFDckgsaURBQW9EO0FBQ3BELHdEQUF3RDtBQUMzQyxRQUFBLDBCQUEwQixHQUFHLFVBQVUsQ0FBQztBQUNyRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxPQUFPO0lBQ3pDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksa0NBQTBCLENBQUM7SUFDaEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUNyQyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzFCLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFDRCxPQUFPLEtBQUssT0FBTyxDQUFDLElBQUksSUFBSSxRQUFRLGFBQWEsT0FBTyxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztBQUNoRyxDQUFDO0FBQ0Q7Ozs7O0dBS0c7QUFDSCxNQUFhLDRCQUE0QjtJQUNyQyxZQUFZLGFBQWEsR0FBRyxVQUFVO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDZCxFQUFFLEVBQUUsZ0NBQWtCO1lB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R0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNwRSxNQUFNLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN2RCxJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNSLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQzNDLE9BQU87Z0JBQ1gsQ0FBQztnQkFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSjtBQXhJRCxvRUF3SUM7QUFDRCxrQ0FBa0M7QUFDckIsUUFBQSw0QkFBNEIsR0FBRyxJQUFJLDRCQUE0QixFQUFFLENBQUM7QUFDL0UsbURBQW1EO0FBQ25ELFNBQWdCLGtDQUFrQyxDQUFDLGFBQWE7SUFDNUQsT0FBTyxJQUFJLDRCQUE0QixDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFDRCxreXJCQUFreXJCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbW9kdWxlIGludGVncmF0aW9ucy9wbHVnaW5zL3N1cGVyc2V0L2luc3RhbGxlclxuICogQHN1bW1hcnkgU3VwZXJzZXQgZGFzaGJvYXJkIGVtYmVkIHBsdWdpbiBpbnN0YWxsZXIuXG4gKiBAZGVzY3JpcHRpb24gSW1wbGVtZW50cyBgRGFzaGJvYXJkRW1iZWRQbHVnaW5gIGZvciBTdXBlcnNldCB1c2luZyBhXG4gKiBwYXRjaC1hbmQtYnVpbGQgc3RyYXRlZ3kuIERlY2FmIGhvbGRzIHBhdGNoIHNjcmlwdHMgdGhhdCBtb2RpZnkgU3VwZXJzZXQnc1xuICogaW50ZXJuYWwgZW1iZWRkZWQgZnJvbnRlbmQgYW5kIFNESyBzb3VyY2UgZmlsZXMgdG8gYWRkIGEgYHN3aXRjaERhc2hib2FyZGBcbiAqIG1ldGhvZC4gYGluc3RhbGxgIG1hdGVyaWFsaXplcyB0aGUgc2NyaXB0cywgY2xvbmVzL3VzZXMgU3VwZXJzZXQgc291cmNlLFxuICogYXBwbGllcyBwYXRjaGVzLCBhbmQgYnVpbGRzIChTREsgKyBmcm9udGVuZCArIG9wdGlvbmFsbHkgRG9ja2VyIGltYWdlKS5cbiAqXG4gKiBUaGUgc2FtZSBgRGFzaGJvYXJkRW1iZWRQbHVnaW5gIEFQSSBhcyBLaWJhbmEgaXMgZXhwb3NlZC4gYHNlbmRTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlYFxuICogZGVsZWdhdGVzIHRvIGB0YXJnZXQuc3dpdGNoRGFzaGJvYXJkKGRhc2hib2FyZElkLCBndWVzdFRva2VuKWAgKHRoZSBTdXBlcnNldFxuICogU0RLIGhhbmRsZSkgaW5zdGVhZCBvZiBgcG9zdE1lc3NhZ2VgLlxuICovXG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBVbnN1cHBvcnRlZEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBleGVjRmlsZSB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB7IGNyZWF0ZVN3aXRjaERhc2hib2FyZE1lc3NhZ2UsIHNlbmRTd2l0Y2hEYXNoYm9hcmRNZXNzYWdlIGFzIHNlbmRTaGFyZWQsIH0gZnJvbSBcIi4vLi4vY29udHJhY3QuanNcIjtcbmltcG9ydCB7IFNVUEVSU0VUX0FQUF9JRCwgU1VQRVJTRVRfUExVR0lOX0lELCBTVVBFUlNFVF9QTFVHSU5fVkVSU0lPTiwgYnVpbGRTdXBlcnNldE1hbmlmZXN0LCB9IGZyb20gXCIuL21hbmlmZXN0LmpzXCI7XG5pbXBvcnQgeyBzdXBlcnNldFBhdGNoRmlsZXMgfSBmcm9tIFwiLi90ZW1wbGF0ZXMuanNcIjtcbi8qKiBEZWZhdWx0IFN1cGVyc2V0IGJhc2UgcGF0aCB3aGVuIG5vbmUgaXMgcHJvdmlkZWQuICovXG5leHBvcnQgY29uc3QgU1VQRVJTRVRfREVGQVVMVF9CQVNFX1BBVEggPSBcInN1cGVyc2V0XCI7XG4vKipcbiAqIEJ1aWxkIHRoZSBTdXBlcnNldCBlbWJlZGRlZCBVUkwuXG4gKlxuICogRm9yIFN1cGVyc2V0LCB0aGUgYGRhc2hib2FyZElkYCBmaWVsZCBpbiBgRW1iZWRVcmxPcHRpb25zYCBpcyB0aGVcbiAqIGVtYmVkZGVkLWNvbmZpZ3VyYXRpb24gVVVJRCB1c2VkIGluIGAvZW1iZWRkZWQvOnV1aWRgLlxuICpcbiAqIEBleGFtcGxlXG4gKiAgIGJ1aWxkU3VwZXJzZXRFbWJlZFVybCh7IGhvc3Q6IFwic3VwZXJzZXQuZXhhbXBsZS5jb21cIiwgZGFzaGJvYXJkSWQ6IFwiYWJjLXV1aWRcIiwgcGFyZW50T3JpZ2luOiBcImh0dHBzOi8vYXBwLmV4YW1wbGUuY29tXCIgfSlcbiAqICAgLy8gPT4gXCIvL3N1cGVyc2V0LmV4YW1wbGUuY29tL3N1cGVyc2V0L2VtYmVkZGVkL2FiYy11dWlkP3BhcmVudE9yaWdpbj1odHRwcyUzQSUyRiUyRmFwcC5leGFtcGxlLmNvbVwiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFN1cGVyc2V0RW1iZWRVcmwob3B0aW9ucykge1xuICAgIGNvbnN0IGJhc2VQYXRoID0gb3B0aW9ucy5iYXNlUGF0aCA/PyBTVVBFUlNFVF9ERUZBVUxUX0JBU0VfUEFUSDtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgcGFyYW1zLnNldChcInBhcmVudE9yaWdpblwiLCBvcHRpb25zLnBhcmVudE9yaWdpbik7XG4gICAgaWYgKG9wdGlvbnMudmlldz8udGltZVJhbmdlKSB7XG4gICAgICAgIHBhcmFtcy5zZXQoXCJ0aW1lUmFuZ2VcIiwgSlNPTi5zdHJpbmdpZnkob3B0aW9ucy52aWV3LnRpbWVSYW5nZSkpO1xuICAgIH1cbiAgICByZXR1cm4gYC8vJHtvcHRpb25zLmhvc3R9LyR7YmFzZVBhdGh9L2VtYmVkZGVkLyR7b3B0aW9ucy5kYXNoYm9hcmRJZH0/JHtwYXJhbXMudG9TdHJpbmcoKX1gO1xufVxuLyoqXG4gKiBAY2xhc3MgU3VwZXJzZXREYXNoYm9hcmRFbWJlZFBsdWdpblxuICogQHN1bW1hcnkgU3VwZXJzZXQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGBEYXNoYm9hcmRFbWJlZFBsdWdpbmAgY29udHJhY3QuXG4gKiBAZGVzY3JpcHRpb24gT3JnLWFnbm9zdGljIG11bHRpLXRlbmFudCBkYXNoYm9hcmQgZW1iZWQgcGx1Z2luIGZvciBTdXBlcnNldFxuICogdXNpbmcgYSBwYXRjaC1hbmQtYnVpbGQgc3RyYXRlZ3kuIFNhbWUgQVBJIGFzIGBLaWJhbmFEYXNoYm9hcmRFbWJlZFBsdWdpbmAuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdXBlcnNldERhc2hib2FyZEVtYmVkUGx1Z2luIHtcbiAgICBjb25zdHJ1Y3Rvcih0YXJnZXRWZXJzaW9uID0gXCJzdXBlcnNldFwiKSB7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvciA9IHtcbiAgICAgICAgICAgIGlkOiBTVVBFUlNFVF9QTFVHSU5fSUQsXG4gICAgICAgICAgICBhcHBJZDogU1VQRVJTRVRfQVBQX0lELFxuICAgICAgICAgICAgdmVyc2lvbjogU1VQRVJTRVRfUExVR0lOX1ZFUlNJT04sXG4gICAgICAgICAgICB0YXJnZXRWZXJzaW9uLFxuICAgICAgICAgICAgdG9vbDogXCJzdXBlcnNldFwiLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBtYW5pZmVzdCh0YXJnZXRWZXJzaW9uID0gdGhpcy5kZXNjcmlwdG9yLnRhcmdldFZlcnNpb24pIHtcbiAgICAgICAgcmV0dXJuIGJ1aWxkU3VwZXJzZXRNYW5pZmVzdCh0YXJnZXRWZXJzaW9uKTtcbiAgICB9XG4gICAgYnVpbGRFbWJlZFVybChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiBidWlsZFN1cGVyc2V0RW1iZWRVcmwob3B0aW9ucyk7XG4gICAgfVxuICAgIGNyZWF0ZVN3aXRjaERhc2hib2FyZE1lc3NhZ2UocGF5bG9hZCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlU3dpdGNoRGFzaGJvYXJkTWVzc2FnZShwYXlsb2FkKTtcbiAgICB9XG4gICAgc2VuZFN3aXRjaERhc2hib2FyZE1lc3NhZ2UodGFyZ2V0LCBwYXlsb2FkLCB0YXJnZXRPcmlnaW4pIHtcbiAgICAgICAgc2VuZFNoYXJlZCh0YXJnZXQsIHBheWxvYWQsIHRhcmdldE9yaWdpbik7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1hdGVyaWFsaXplIHRoZSBwYXRjaCBhbmQgYnVpbGQgc2NyaXB0cyBpbnRvIGB0YXJnZXRQYXRoL2AsIGFuZCB3aGVuXG4gICAgICogYGJ1aWxkYCBpcyB0cnVlLCBjbG9uZS91c2UgU3VwZXJzZXQgc291cmNlLCBhcHBseSBwYXRjaGVzLCBhbmQgYnVpbGRcbiAgICAgKiAoU0RLICsgZnJvbnRlbmQgKyBvcHRpb25hbGx5IERvY2tlciBpbWFnZSkuXG4gICAgICpcbiAgICAgKiBVbmxpa2UgS2liYW5hICh3aGljaCBnZW5lcmF0ZXMgcGx1Z2luIHNvdXJjZSksIFN1cGVyc2V0J3MgXCJwbHVnaW5cIiBpcyBhXG4gICAgICogcGF0Y2gtYW5kLWJ1aWxkIHN0cmF0ZWd5OiBEZWNhZiBob2xkcyBzY3JpcHRzIHRoYXQgbW9kaWZ5IFN1cGVyc2V0J3NcbiAgICAgKiBleGlzdGluZyBpbnRlcm5hbCBzb3VyY2UgZmlsZXMuXG4gICAgICovXG4gICAgYXN5bmMgaW5zdGFsbChvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGN0eCA9IG9wdGlvbnMuY29udGV4dDtcbiAgICAgICAgaWYgKGN0eCkge1xuICAgICAgICAgICAgdm9pZCBjdHg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFvcHRpb25zLnRhcmdldFBhdGggfHwgb3B0aW9ucy50YXJnZXRQYXRoLnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZEVycm9yKFwiaW5zdGFsbCB0YXJnZXRQYXRoIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRhcmdldFZlcnNpb24gPSBvcHRpb25zLnRhcmdldFZlcnNpb24gPz8gdGhpcy5kZXNjcmlwdG9yLnRhcmdldFZlcnNpb247XG4gICAgICAgIGNvbnN0IHBsdWdpbkRpciA9IHBhdGgucmVzb2x2ZShvcHRpb25zLnRhcmdldFBhdGgsIFNVUEVSU0VUX0FQUF9JRCk7XG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKHBsdWdpbkRpcikpIHtcbiAgICAgICAgICAgIGlmICghb3B0aW9ucy5vdmVyd3JpdGUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgUGx1Z2luIGRpcmVjdG9yeSBhbHJlYWR5IGV4aXN0czogJHtwbHVnaW5EaXJ9ICh1c2Ugb3ZlcndyaXRlOiB0cnVlKWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZnMucm1TeW5jKHBsdWdpbkRpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZpbGVzID0gc3VwZXJzZXRQYXRjaEZpbGVzKCk7XG4gICAgICAgIGNvbnN0IHdyaXR0ZW4gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgICAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGguam9pbihwbHVnaW5EaXIsIGZpbGUucGF0aCk7XG4gICAgICAgICAgICBmcy5ta2RpclN5bmMocGF0aC5kaXJuYW1lKGZ1bGxQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGZ1bGxQYXRoLCBmaWxlLmNvbnRlbnQsIFwidXRmOFwiKTtcbiAgICAgICAgICAgIGlmIChmaWxlLmV4ZWN1dGFibGUpIHtcbiAgICAgICAgICAgICAgICBmcy5jaG1vZFN5bmMoZnVsbFBhdGgsIDBvNzU1KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdyaXR0ZW4ucHVzaChmaWxlLnBhdGgpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBidWlsdCA9IGZhbHNlO1xuICAgICAgICBsZXQgYnVpbGRPdXRwdXQ7XG4gICAgICAgIGlmIChvcHRpb25zLmJ1aWxkKSB7XG4gICAgICAgICAgICBjb25zdCBzdXBlcnNldFJvb3QgPSBhd2FpdCB0aGlzLnJlc29sdmVTdXBlcnNldFJvb3QocGx1Z2luRGlyLCBvcHRpb25zKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucnVuUGF0Y2hBbmRCdWlsZChwbHVnaW5EaXIsIHN1cGVyc2V0Um9vdCwgb3B0aW9ucykuY2F0Y2goKGVycikgPT4gKHtcbiAgICAgICAgICAgICAgICBvazogZmFsc2UsXG4gICAgICAgICAgICAgICAgb3V0cHV0OiBlcnIubWVzc2FnZSxcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIGJ1aWx0ID0gcmVzdWx0Lm9rO1xuICAgICAgICAgICAgYnVpbGRPdXRwdXQgPSByZXN1bHQub3V0cHV0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwbHVnaW5QYXRoOiBwbHVnaW5EaXIsXG4gICAgICAgICAgICBkZXNjcmlwdG9yOiB7IC4uLnRoaXMuZGVzY3JpcHRvciwgdGFyZ2V0VmVyc2lvbiB9LFxuICAgICAgICAgICAgZmlsZXM6IHdyaXR0ZW4sXG4gICAgICAgICAgICBidWlsdCxcbiAgICAgICAgICAgIGJ1aWxkT3V0cHV0LFxuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXNvbHZlIHRoZSBTdXBlcnNldCBzb3VyY2Ugcm9vdDogdXNlIGFuIGV4aXN0aW5nIGNoZWNrb3V0IG9yIGNsb25lIHZpYSBnaXQuXG4gICAgICovXG4gICAgYXN5bmMgcmVzb2x2ZVN1cGVyc2V0Um9vdChwbHVnaW5EaXIsIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuc3VwZXJzZXRTb3VyY2VQYXRoKSB7XG4gICAgICAgICAgICBjb25zdCByZXNvbHZlZCA9IHBhdGgucmVzb2x2ZShvcHRpb25zLnN1cGVyc2V0U291cmNlUGF0aCk7XG4gICAgICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMocGF0aC5qb2luKHJlc29sdmVkLCBcInN1cGVyc2V0LWZyb250ZW5kXCIsIFwic3JjXCIsIFwiZW1iZWRkZWRcIiwgXCJpbmRleC50c3hcIikpKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYFN1cGVyc2V0IHNvdXJjZSBub3QgZm91bmQgYXQ6ICR7cmVzb2x2ZWR9IChtaXNzaW5nIHN1cGVyc2V0LWZyb250ZW5kL3NyYy9lbWJlZGRlZC9pbmRleC50c3gpYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZ2l0VXJsID0gb3B0aW9ucy5zdXBlcnNldEdpdFVybCA/PyBcImh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvc3VwZXJzZXQuZ2l0XCI7XG4gICAgICAgIGNvbnN0IGdpdFJlZiA9IG9wdGlvbnMuc3VwZXJzZXRHaXRSZWYgPz8gb3B0aW9ucy50YXJnZXRWZXJzaW9uID8/IFwiNi4xLjBcIjtcbiAgICAgICAgY29uc3QgY2xvbmVEaXIgPSBwYXRoLmpvaW4ocGx1Z2luRGlyLCBcIi5zdXBlcnNldC1zb3VyY2VcIik7XG4gICAgICAgIGlmIChmcy5leGlzdHNTeW5jKGNsb25lRGlyKSkge1xuICAgICAgICAgICAgZnMucm1TeW5jKGNsb25lRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5ydW5Db21tYW5kKFwiZ2l0XCIsIFtcImNsb25lXCIsIFwiLS1kZXB0aFwiLCBcIjFcIiwgXCItLWJyYW5jaFwiLCBnaXRSZWYsIGdpdFVybCwgY2xvbmVEaXJdLCBwbHVnaW5EaXIpO1xuICAgICAgICByZXR1cm4gY2xvbmVEaXI7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFwcGx5IHBhdGNoZXMsIHZlcmlmeSwgYW5kIGJ1aWxkIChTREsgKyBmcm9udGVuZCArIG9wdGlvbmFsbHkgRG9ja2VyKS5cbiAgICAgKi9cbiAgICBhc3luYyBydW5QYXRjaEFuZEJ1aWxkKHBsdWdpbkRpciwgc3VwZXJzZXRSb290LCBvcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IG91dHB1dHMgPSBbXTtcbiAgICAgICAgLy8gMS4gQXBwbHkgcGF0Y2hcbiAgICAgICAgY29uc3QgcGF0Y2hSZXN1bHQgPSBhd2FpdCB0aGlzLnJ1bkNvbW1hbmQoXCJweXRob24zXCIsIFtwYXRoLmpvaW4ocGx1Z2luRGlyLCBcInBhdGNoZXNcIiwgXCJhcHBseV9zdXBlcnNldF82XzFfcGF0Y2gucHlcIiksIHN1cGVyc2V0Um9vdF0sIHBsdWdpbkRpcik7XG4gICAgICAgIG91dHB1dHMucHVzaChwYXRjaFJlc3VsdCk7XG4gICAgICAgIC8vIDIuIFZlcmlmeSBwYXRjaFxuICAgICAgICBjb25zdCB2ZXJpZnlSZXN1bHQgPSBhd2FpdCB0aGlzLnJ1bkNvbW1hbmQocGF0aC5qb2luKHBsdWdpbkRpciwgXCJwYXRjaGVzXCIsIFwidmVyaWZ5X3BhdGNoLnNoXCIpLCBbc3VwZXJzZXRSb290XSwgcGx1Z2luRGlyKTtcbiAgICAgICAgb3V0cHV0cy5wdXNoKHZlcmlmeVJlc3VsdCk7XG4gICAgICAgIC8vIDMuIEJ1aWxkIChEb2NrZXIgaW1hZ2Ugb3IgU0RLICsgZnJvbnRlbmQpXG4gICAgICAgIGlmIChvcHRpb25zLmRvY2tlckltYWdlVGFnKSB7XG4gICAgICAgICAgICBjb25zdCBkb2NrZXJSZXN1bHQgPSBhd2FpdCB0aGlzLnJ1bkNvbW1hbmQocGF0aC5qb2luKHBsdWdpbkRpciwgXCJidWlsZFwiLCBcImJ1aWxkLWRvY2tlci1pbWFnZS5zaFwiKSwgW3N1cGVyc2V0Um9vdCwgb3B0aW9ucy5kb2NrZXJJbWFnZVRhZ10sIHBsdWdpbkRpcik7XG4gICAgICAgICAgICBvdXRwdXRzLnB1c2goZG9ja2VyUmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHNka1Jlc3VsdCA9IGF3YWl0IHRoaXMucnVuQ29tbWFuZChwYXRoLmpvaW4ocGx1Z2luRGlyLCBcImJ1aWxkXCIsIFwiYnVpbGQtc2RrLnNoXCIpLCBbc3VwZXJzZXRSb290XSwgcGx1Z2luRGlyKTtcbiAgICAgICAgICAgIG91dHB1dHMucHVzaChzZGtSZXN1bHQpO1xuICAgICAgICAgICAgY29uc3QgZnJvbnRlbmRSZXN1bHQgPSBhd2FpdCB0aGlzLnJ1bkNvbW1hbmQocGF0aC5qb2luKHBsdWdpbkRpciwgXCJidWlsZFwiLCBcImJ1aWxkLXN1cGVyc2V0LWZyb250ZW5kLnNoXCIpLCBbc3VwZXJzZXRSb290XSwgcGx1Z2luRGlyKTtcbiAgICAgICAgICAgIG91dHB1dHMucHVzaChmcm9udGVuZFJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgb2s6IHRydWUsIG91dHB1dDogb3V0cHV0cy5qb2luKFwiXFxuXCIpIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJ1biBhIGNvbW1hbmQgYW5kIGNhcHR1cmUgc3Rkb3V0K3N0ZGVyci5cbiAgICAgKi9cbiAgICBydW5Db21tYW5kKGNtZCwgYXJncywgY3dkKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBleGVjRmlsZShjbWQsIGFyZ3MsIHsgY3dkLCB0aW1lb3V0OiA2MDAwMDAgfSwgKGVycm9yLCBzdGRvdXQsIHN0ZGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IGAke3N0ZG91dCA/PyBcIlwifSR7c3RkZXJyID8/IFwiXCJ9YC50cmltKCk7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3Iob3V0cHV0IHx8IGVycm9yLm1lc3NhZ2UpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXNvbHZlKG91dHB1dCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuLyoqIERlZmF1bHQgc2luZ2xldG9uIGluc3RhbmNlLiAqL1xuZXhwb3J0IGNvbnN0IHN1cGVyc2V0RGFzaGJvYXJkRW1iZWRQbHVnaW4gPSBuZXcgU3VwZXJzZXREYXNoYm9hcmRFbWJlZFBsdWdpbigpO1xuLyoqIEZhY3RvcnkgYWNjZXB0aW5nIGEgdGFyZ2V0IFN1cGVyc2V0IHZlcnNpb24uICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3VwZXJzZXREYXNoYm9hcmRFbWJlZFBsdWdpbih0YXJnZXRWZXJzaW9uKSB7XG4gICAgcmV0dXJuIG5ldyBTdXBlcnNldERhc2hib2FyZEVtYmVkUGx1Z2luKHRhcmdldFZlcnNpb24pO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1emRHRnNiR1Z5TG1weklpd2ljMjkxY21ObFVtOXZkQ0k2SWlJc0luTnZkWEpqWlhNaU9sc2lMaTR2TGk0dkxpNHZMaTR2YzNKakwzQnNkV2RwYm5NdmMzVndaWEp6WlhRdmFXNXpkR0ZzYkdWeUxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCT3pzN096czdPenM3T3pzN1IwRlpSenRCUVVOSUxFOUJRVThzUlVGQlJTeGhRVUZoTEVWQlFVVXNUVUZCVFN4NVFrRkJlVUlzUTBGQlF6dEJRVU40UkN4UFFVRlBMRVZCUVVVc1owSkJRV2RDTEVWQlFYTkNMRTFCUVUwc1owSkJRV2RDTEVOQlFVTTdRVUZEZEVVc1QwRkJUeXhMUVVGTExFVkJRVVVzVFVGQlRTeFRRVUZUTEVOQlFVTTdRVUZET1VJc1QwRkJUeXhMUVVGTExFbEJRVWtzVFVGQlRTeFhRVUZYTEVOQlFVTTdRVUZEYkVNc1QwRkJUeXhGUVVGRkxGRkJRVkVzUlVGQlJTeE5RVUZOTEc5Q1FVRnZRaXhEUVVGRE8wRkJSVGxETEU5QlFVOHNSVUZEVEN3MFFrRkJORUlzUlVGRE5VSXNNRUpCUVRCQ0xFbEJRVWtzVlVGQlZTeEhRVk42UXl4NVFrRkJiMEk3UVVGRGNrSXNUMEZCVHl4RlFVTk1MR1ZCUVdVc1JVRkRaaXhyUWtGQmEwSXNSVUZEYkVJc2RVSkJRWFZDTEVWQlEzWkNMSEZDUVVGeFFpeEhRVU4wUWl4elFrRkJiVUk3UVVGRGNFSXNUMEZCVHl4RlFVRkZMR3RDUVVGclFpeEZRVUZGTEhWQ1FVRnZRanRCUVVWcVJDeDNSRUZCZDBRN1FVRkRlRVFzVFVGQlRTeERRVUZETEUxQlFVMHNNRUpCUVRCQ0xFZEJRVWNzVlVGQlZTeERRVUZETzBGQlowSnlSRHM3T3pzN096czdPMGRCVTBjN1FVRkRTQ3hOUVVGTkxGVkJRVlVzY1VKQlFYRkNMRU5CUVVNc1QwRkJkMEk3U1VGRE5VUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1QwRkJUeXhEUVVGRExGRkJRVkVzU1VGQlNTd3dRa0ZCTUVJc1EwRkJRenRKUVVOb1JTeE5RVUZOTEUxQlFVMHNSMEZCUnl4SlFVRkpMR1ZCUVdVc1JVRkJSU3hEUVVGRE8wbEJRM0pETEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1kwRkJZeXhGUVVGRkxFOUJRVThzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0SlFVTnFSQ3hKUVVGSkxFOUJRVThzUTBGQlF5eEpRVUZKTEVWQlFVVXNVMEZCVXl4RlFVRkZMRU5CUVVNN1VVRkROVUlzVFVGQlRTeERRVUZETEVkQlFVY3NRMEZCUXl4WFFVRlhMRVZCUVVVc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGJFVXNRMEZCUXp0SlFVTkVMRTlCUVU4c1MwRkJTeXhQUVVGUExFTkJRVU1zU1VGQlNTeEpRVUZKTEZGQlFWRXNZVUZCWVN4UFFVRlBMRU5CUVVNc1YwRkJWeXhKUVVGSkxFMUJRVTBzUTBGQlF5eFJRVUZSTEVWQlFVVXNSVUZCUlN4RFFVRkRPMEZCUXpsR0xFTkJRVU03UVVGRlJEczdPenM3UjBGTFJ6dEJRVU5JTEUxQlFVMHNUMEZCVHl3MFFrRkJORUk3U1VGSGRrTXNXVUZCYlVJc1owSkJRWGRDTEZWQlFWVTdVVUZEYmtRc1NVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ6dFpRVU5vUWl4RlFVRkZMRVZCUVVVc2EwSkJRV3RDTzFsQlEzUkNMRXRCUVVzc1JVRkJSU3hsUVVGbE8xbEJRM1JDTEU5QlFVOHNSVUZCUlN4MVFrRkJkVUk3V1VGRGFFTXNZVUZCWVR0WlFVTmlMRWxCUVVrc1JVRkJSU3hWUVVGVk8xTkJRMnBDTEVOQlFVTTdTVUZEU2l4RFFVRkRPMGxCUlUwc1VVRkJVU3hEUVVGRExHZENRVUYzUWl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExHRkJRV0U3VVVGRGJrVXNUMEZCVHl4eFFrRkJjVUlzUTBGQlF5eGhRVUZoTEVOQlFYVkRMRU5CUVVNN1NVRkRjRVlzUTBGQlF6dEpRVVZOTEdGQlFXRXNRMEZCUXl4UFFVRjNRanRSUVVNelF5eFBRVUZQTEhGQ1FVRnhRaXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzaERMRU5CUVVNN1NVRkZUU3cwUWtGQk5FSXNRMEZEYWtNc1QwRkJLMEk3VVVGRkwwSXNUMEZCVHl3MFFrRkJORUlzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0SlFVTXZReXhEUVVGRE8wbEJSVTBzTUVKQlFUQkNMRU5CUXk5Q0xFMUJRVEJDTEVWQlF6RkNMRTlCUVN0Q0xFVkJReTlDTEZsQlFXOUNPMUZCUlhCQ0xGVkJRVlVzUTBGQlF5eE5RVUZOTEVWQlFVVXNUMEZCVHl4RlFVRkZMRmxCUVZrc1EwRkJReXhEUVVGRE8wbEJRelZETEVOQlFVTTdTVUZGUkRzN096czdPenM3VDBGUlJ6dEpRVU5KTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUTJ4Q0xFOUJRU3RDTzFGQlJTOUNMRTFCUVUwc1IwRkJSeXhIUVVGSExFOUJRVThzUTBGQlF5eFBRVUU0UXl4RFFVRkRPMUZCUTI1RkxFbEJRVWtzUjBGQlJ5eEZRVUZGTEVOQlFVTTdXVUZEVWl4TFFVRkxMRWRCUVVjc1EwRkJRenRSUVVOWUxFTkJRVU03VVVGRFJDeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1NVRkJTU3hQUVVGUExFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NSVUZCUlN4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU5zUlN4TlFVRk5MRWxCUVVrc1owSkJRV2RDTEVOQlFVTXNaME5CUVdkRExFTkJRVU1zUTBGQlF6dFJRVU12UkN4RFFVRkRPMUZCUlVRc1RVRkJUU3hoUVVGaExFZEJRVWNzVDBGQlR5eERRVUZETEdGQlFXRXNTVUZCU1N4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExHRkJRV0VzUTBGQlF6dFJRVU0zUlN4TlFVRk5MRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVU0xUWl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hGUVVOc1FpeGxRVUZsTEVOQlEyaENMRU5CUVVNN1VVRkZSaXhKUVVGSkxFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNVMEZCVXl4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVNM1FpeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8yZENRVU4yUWl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVOeVFpeHZRMEZCYjBNc1UwRkJVeXgzUWtGQmQwSXNRMEZEZEVVc1EwRkJRenRaUVVOS0xFTkJRVU03V1VGRFJDeEZRVUZGTEVOQlFVTXNUVUZCVFN4RFFVRkRMRk5CUVZNc1JVRkJSU3hGUVVGRkxGTkJRVk1zUlVGQlJTeEpRVUZKTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWxCUVVrc1JVRkJSU3hEUVVGRExFTkJRVU03VVVGRGVrUXNRMEZCUXp0UlFVVkVMRTFCUVUwc1MwRkJTeXhIUVVGSExHdENRVUZyUWl4RlFVRkZMRU5CUVVNN1VVRkRia01zVFVGQlRTeFBRVUZQTEVkQlFXRXNSVUZCUlN4RFFVRkRPMUZCUXpkQ0xFdEJRVXNzVFVGQlRTeEpRVUZKTEVsQlFVa3NTMEZCU3l4RlFVRkZMRU5CUVVNN1dVRkRla0lzVFVGQlRTeFJRVUZSTEVkQlFVY3NTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFVkJRVVVzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMWxCUTJwRUxFVkJRVVVzUTBGQlF5eFRRVUZUTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhSUVVGUkxFTkJRVU1zUlVGQlJTeEZRVUZGTEZOQlFWTXNSVUZCUlN4SlFVRkpMRVZCUVVVc1EwRkJReXhEUVVGRE8xbEJRekZFTEVWQlFVVXNRMEZCUXl4aFFVRmhMRU5CUVVNc1VVRkJVU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRha1FzU1VGQlNTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNN1owSkJRM0JDTEVWQlFVVXNRMEZCUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzFsQlEyaERMRU5CUVVNN1dVRkRSQ3hQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRSUVVNeFFpeERRVUZETzFGQlJVUXNTVUZCU1N4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE8xRkJRMnhDTEVsQlFVa3NWMEZCSzBJc1EwRkJRenRSUVVWd1F5eEpRVUZKTEU5QlFVOHNRMEZCUXl4TFFVRkxMRVZCUVVVc1EwRkJRenRaUVVOc1FpeE5RVUZOTEZsQlFWa3NSMEZCUnl4TlFVRk5MRWxCUVVrc1EwRkJReXh0UWtGQmJVSXNRMEZCUXl4VFFVRlRMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03V1VGRGVFVXNUVUZCVFN4TlFVRk5MRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zWjBKQlFXZENMRU5CUTNoRExGTkJRVk1zUlVGRFZDeFpRVUZaTEVWQlExb3NUMEZCVHl4RFFVTlNMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU1zUjBGQlZTeEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRPMmRDUVVOMlFpeEZRVUZGTEVWQlFVVXNTMEZCWXp0blFrRkRiRUlzVFVGQlRTeEZRVUZGTEVkQlFVY3NRMEZCUXl4UFFVRlBPMkZCUTNCQ0xFTkJRVU1zUTBGQlF5eERRVUZETzFsQlEwb3NTMEZCU3l4SFFVRkhMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU03V1VGRGJFSXNWMEZCVnl4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU03VVVGRE9VSXNRMEZCUXp0UlFVVkVMRTlCUVU4N1dVRkRUQ3hWUVVGVkxFVkJRVVVzVTBGQlV6dFpRVU55UWl4VlFVRlZMRVZCUVVVc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eFZRVUZWTEVWQlFVVXNZVUZCWVN4RlFVRkZPMWxCUTJwRUxFdEJRVXNzUlVGQlJTeFBRVUZQTzFsQlEyUXNTMEZCU3p0WlFVTk1MRmRCUVZjN1UwRkRXaXhEUVVGRE8wbEJRMG9zUTBGQlF6dEpRVVZFT3p0UFFVVkhPMGxCUTA4c1MwRkJTeXhEUVVGRExHMUNRVUZ0UWl4RFFVTnFReXhUUVVGcFFpeEZRVU5xUWl4UFFVRXJRanRSUVVVdlFpeEpRVUZKTEU5QlFVOHNRMEZCUXl4clFrRkJhMElzUlVGQlJTeERRVUZETzFsQlF5OUNMRTFCUVUwc1VVRkJVU3hIUVVGSExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMR3RDUVVGclFpeERRVUZETEVOQlFVTTdXVUZETVVRc1NVRkJTU3hEUVVGRExFVkJRVVVzUTBGQlF5eFZRVUZWTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhSUVVGUkxFVkJRVVVzYlVKQlFXMUNMRVZCUVVVc1MwRkJTeXhGUVVGRkxGVkJRVlVzUlVGQlJTeFhRVUZYTEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNN1owSkJRemRHTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUTNKQ0xHbERRVUZwUXl4UlFVRlJMSEZFUVVGeFJDeERRVU12Uml4RFFVRkRPMWxCUTBvc1EwRkJRenRaUVVORUxFOUJRVThzVVVGQlVTeERRVUZETzFGQlEyeENMRU5CUVVNN1VVRkZSQ3hOUVVGTkxFMUJRVTBzUjBGQlJ5eFBRVUZQTEVOQlFVTXNZMEZCWXl4SlFVRkpMSGREUVVGM1F5eERRVUZETzFGQlEyeEdMRTFCUVUwc1RVRkJUU3hIUVVGSExFOUJRVThzUTBGQlF5eGpRVUZqTEVsQlFVa3NUMEZCVHl4RFFVRkRMR0ZCUVdFc1NVRkJTU3hQUVVGUExFTkJRVU03VVVGRE1VVXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVXNhMEpCUVd0Q0xFTkJRVU1zUTBGQlF6dFJRVVV4UkN4SlFVRkpMRVZCUVVVc1EwRkJReXhWUVVGVkxFTkJRVU1zVVVGQlVTeERRVUZETEVWQlFVVXNRMEZCUXp0WlFVTTFRaXhGUVVGRkxFTkJRVU1zVFVGQlRTeERRVUZETEZGQlFWRXNSVUZCUlN4RlFVRkZMRk5CUVZNc1JVRkJSU3hKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRlRVFzUTBGQlF6dFJRVVZFTEUxQlFVMHNTVUZCU1N4RFFVRkRMRlZCUVZVc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF5eFBRVUZQTEVWQlFVVXNVMEZCVXl4RlFVRkZMRWRCUVVjc1JVRkJSU3hWUVVGVkxFVkJRVVVzVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4UlFVRlJMRU5CUVVNc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU42Unl4UFFVRlBMRkZCUVZFc1EwRkJRenRKUVVOc1FpeERRVUZETzBsQlJVUTdPMDlCUlVjN1NVRkRUeXhMUVVGTExFTkJRVU1zWjBKQlFXZENMRU5CUXpsQ0xGTkJRV2xDTEVWQlEycENMRmxCUVc5Q0xFVkJRM0JDTEU5QlFTdENPMUZCUlM5Q0xFMUJRVTBzVDBGQlR5eEhRVUZoTEVWQlFVVXNRMEZCUXp0UlFVVTNRaXhwUWtGQmFVSTdVVUZEYWtJc1RVRkJUU3hYUVVGWExFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVTjJReXhUUVVGVExFVkJRMVFzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1JVRkJSU3hUUVVGVExFVkJRVVVzTmtKQlFUWkNMRU5CUVVNc1JVRkJSU3haUVVGWkxFTkJRVU1zUlVGRE9VVXNVMEZCVXl4RFFVTldMRU5CUVVNN1VVRkRSaXhQUVVGUExFTkJRVU1zU1VGQlNTeERRVUZETEZkQlFWY3NRMEZCUXl4RFFVRkRPMUZCUlRGQ0xHdENRVUZyUWp0UlFVTnNRaXhOUVVGTkxGbEJRVmtzUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUTNoRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRk5CUVZNc1JVRkJSU3hwUWtGQmFVSXNRMEZCUXl4RlFVTnNSQ3hEUVVGRExGbEJRVmtzUTBGQlF5eEZRVU5rTEZOQlFWTXNRMEZEVml4RFFVRkRPMUZCUTBZc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0UlFVVXpRaXcwUTBGQk5FTTdVVUZETlVNc1NVRkJTU3hQUVVGUExFTkJRVU1zWTBGQll5eEZRVUZGTEVOQlFVTTdXVUZETTBJc1RVRkJUU3haUVVGWkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVTjRReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNSVUZCUlN4UFFVRlBMRVZCUVVVc2RVSkJRWFZDTEVOQlFVTXNSVUZEZEVRc1EwRkJReXhaUVVGWkxFVkJRVVVzVDBGQlR5eERRVUZETEdOQlFXTXNRMEZCUXl4RlFVTjBReXhUUVVGVExFTkJRMVlzUTBGQlF6dFpRVU5HTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExFTkJRVU03VVVGRE4wSXNRMEZCUXp0aFFVRk5MRU5CUVVNN1dVRkRUaXhOUVVGTkxGTkJRVk1zUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4VlFVRlZMRU5CUTNKRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRTlCUVU4c1JVRkJSU3hqUVVGakxFTkJRVU1zUlVGRE4wTXNRMEZCUXl4WlFVRlpMRU5CUVVNc1JVRkRaQ3hUUVVGVExFTkJRMVlzUTBGQlF6dFpRVU5HTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03V1VGRmVFSXNUVUZCVFN4alFVRmpMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVlVGQlZTeERRVU14UXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUlVGQlJTeFBRVUZQTEVWQlFVVXNORUpCUVRSQ0xFTkJRVU1zUlVGRE0wUXNRMEZCUXl4WlFVRlpMRU5CUVVNc1JVRkRaQ3hUUVVGVExFTkJRMVlzUTBGQlF6dFpRVU5HTEU5QlFVOHNRMEZCUXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExFTkJRVU03VVVGREwwSXNRMEZCUXp0UlFVVkVMRTlCUVU4c1JVRkJSU3hGUVVGRkxFVkJRVVVzU1VGQlNTeEZRVUZGTEUxQlFVMHNSVUZCUlN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eEZRVUZGTEVOQlFVTTdTVUZEYkVRc1EwRkJRenRKUVVWRU96dFBRVVZITzBsQlEwOHNWVUZCVlN4RFFVTnNRaXhIUVVGWExFVkJRMWdzU1VGQll5eEZRVU5rTEVkQlFWYzdVVUZGV0N4UFFVRlBMRWxCUVVrc1QwRkJUeXhEUVVGRExFTkJRVU1zVDBGQlR5eEZRVUZGTEUxQlFVMHNSVUZCUlN4RlFVRkZPMWxCUTNKRExGRkJRVkVzUTBGRFRpeEhRVUZITEVWQlEwZ3NTVUZCU1N4RlFVTktMRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUlVGQlJTeE5RVUZOTEVWQlFVVXNSVUZEZUVJc1EwRkJReXhMUVVGTExFVkJRVVVzVFVGQlRTeEZRVUZGTEUxQlFVMHNSVUZCUlN4RlFVRkZPMmRDUVVONFFpeE5RVUZOTEUxQlFVMHNSMEZCUnl4SFFVRkhMRTFCUVUwc1NVRkJTU3hGUVVGRkxFZEJRVWNzVFVGQlRTeEpRVUZKTEVWQlFVVXNSVUZCUlN4RFFVRkRMRWxCUVVrc1JVRkJSU3hEUVVGRE8yZENRVU4yUkN4SlFVRkpMRXRCUVVzc1JVRkJSU3hEUVVGRE8yOUNRVU5XTEUxQlFVMHNRMEZCUXl4SlFVRkpMRXRCUVVzc1EwRkJReXhOUVVGTkxFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRek5ETEU5QlFVODdaMEpCUTFRc1EwRkJRenRuUWtGRFJDeFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRiRUlzUTBGQlF5eERRVU5HTEVOQlFVTTdVVUZEU2l4RFFVRkRMRU5CUVVNc1EwRkJRenRKUVVOTUxFTkJRVU03UTBGRFJqdEJRVVZFTEd0RFFVRnJRenRCUVVOc1F5eE5RVUZOTEVOQlFVTXNUVUZCVFN3MFFrRkJORUlzUjBGQlJ5eEpRVUZKTERSQ1FVRTBRaXhGUVVGRkxFTkJRVU03UVVGRkwwVXNiVVJCUVcxRU8wRkJRMjVFTEUxQlFVMHNWVUZCVlN4clEwRkJhME1zUTBGRGFFUXNZVUZCY1VJN1NVRkZja0lzVDBGQlR5eEpRVUZKTERSQ1FVRTBRaXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzBGQlEzcEVMRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SXZLaXBjYmlBcUlFQnRiMlIxYkdVZ2FXNTBaV2R5WVhScGIyNXpMM0JzZFdkcGJuTXZjM1Z3WlhKelpYUXZhVzV6ZEdGc2JHVnlYRzRnS2lCQWMzVnRiV0Z5ZVNCVGRYQmxjbk5sZENCa1lYTm9ZbTloY21RZ1pXMWlaV1FnY0d4MVoybHVJR2x1YzNSaGJHeGxjaTVjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJKYlhCc1pXMWxiblJ6SUdCRVlYTm9ZbTloY21SRmJXSmxaRkJzZFdkcGJtQWdabTl5SUZOMWNHVnljMlYwSUhWemFXNW5JR0ZjYmlBcUlIQmhkR05vTFdGdVpDMWlkV2xzWkNCemRISmhkR1ZuZVM0Z1JHVmpZV1lnYUc5c1pITWdjR0YwWTJnZ2MyTnlhWEIwY3lCMGFHRjBJRzF2WkdsbWVTQlRkWEJsY25ObGRDZHpYRzRnS2lCcGJuUmxjbTVoYkNCbGJXSmxaR1JsWkNCbWNtOXVkR1Z1WkNCaGJtUWdVMFJMSUhOdmRYSmpaU0JtYVd4bGN5QjBieUJoWkdRZ1lTQmdjM2RwZEdOb1JHRnphR0p2WVhKa1lGeHVJQ29nYldWMGFHOWtMaUJnYVc1emRHRnNiR0FnYldGMFpYSnBZV3hwZW1WeklIUm9aU0J6WTNKcGNIUnpMQ0JqYkc5dVpYTXZkWE5sY3lCVGRYQmxjbk5sZENCemIzVnlZMlVzWEc0Z0tpQmhjSEJzYVdWeklIQmhkR05vWlhNc0lHRnVaQ0JpZFdsc1pITWdLRk5FU3lBcklHWnliMjUwWlc1a0lDc2diM0IwYVc5dVlXeHNlU0JFYjJOclpYSWdhVzFoWjJVcExseHVJQ3BjYmlBcUlGUm9aU0J6WVcxbElHQkVZWE5vWW05aGNtUkZiV0psWkZCc2RXZHBibUFnUVZCSklHRnpJRXRwWW1GdVlTQnBjeUJsZUhCdmMyVmtMaUJnYzJWdVpGTjNhWFJqYUVSaGMyaGliMkZ5WkUxbGMzTmhaMlZnWEc0Z0tpQmtaV3hsWjJGMFpYTWdkRzhnWUhSaGNtZGxkQzV6ZDJsMFkyaEVZWE5vWW05aGNtUW9aR0Z6YUdKdllYSmtTV1FzSUdkMVpYTjBWRzlyWlc0cFlDQW9kR2hsSUZOMWNHVnljMlYwWEc0Z0tpQlRSRXNnYUdGdVpHeGxLU0JwYm5OMFpXRmtJRzltSUdCd2IzTjBUV1Z6YzJGblpXQXVYRzRnS2k5Y2JtbHRjRzl5ZENCN0lFbHVkR1Z5Ym1Gc1JYSnliM0lnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSaUxXUmxZMjl5WVhSdmNuTmNJanRjYm1sdGNHOXlkQ0I3SUZWdWMzVndjRzl5ZEdWa1JYSnliM0lzSUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5WnlCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUNvZ1lYTWdabk1nWm5KdmJTQmNJbTV2WkdVNlpuTmNJanRjYm1sdGNHOXlkQ0FxSUdGeklIQmhkR2dnWm5KdmJTQmNJbTV2WkdVNmNHRjBhRndpTzF4dWFXMXdiM0owSUhzZ1pYaGxZMFpwYkdVZ2ZTQm1jbTl0SUZ3aWJtOWtaVHBqYUdsc1pGOXdjbTlqWlhOelhDSTdYRzVjYm1sdGNHOXlkQ0I3WEc0Z0lHTnlaV0YwWlZOM2FYUmphRVJoYzJoaWIyRnlaRTFsYzNOaFoyVXNYRzRnSUhObGJtUlRkMmwwWTJoRVlYTm9ZbTloY21STlpYTnpZV2RsSUdGeklITmxibVJUYUdGeVpXUXNYRzRnSUhSNWNHVWdSR0Z6YUdKdllYSmtSVzFpWldSUWJIVm5hVzRzWEc0Z0lIUjVjR1VnUkdGemFHSnZZWEprUlcxaVpXUlFiSFZuYVc1RVpYTmpjbWx3ZEc5eUxGeHVJQ0IwZVhCbElFVnRZbVZrVFdWemMyRm5aVlJoY21kbGRDeGNiaUFnZEhsd1pTQkZiV0psWkZWeWJFOXdkR2x2Ym5Nc1hHNGdJSFI1Y0dVZ1VHeDFaMmx1U1c1emRHRnNiRTl3ZEdsdmJuTXNYRzRnSUhSNWNHVWdVR3gxWjJsdVNXNXpkR0ZzYkZKbGMzVnNkQ3hjYmlBZ2RIbHdaU0JUZDJsMFkyaEVZWE5vWW05aGNtUlFZWGxzYjJGa0xGeHVJQ0IwZVhCbElGTjNhWFJqYUVSaGMyaGliMkZ5WkUxbGMzTmhaMlVzWEc1OUlHWnliMjBnWENJdUxpOWpiMjUwY21GamRGd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1UxVlFSVkpUUlZSZlFWQlFYMGxFTEZ4dUlDQlRWVkJGVWxORlZGOVFURlZIU1U1ZlNVUXNYRzRnSUZOVlVFVlNVMFZVWDFCTVZVZEpUbDlXUlZKVFNVOU9MRnh1SUNCaWRXbHNaRk4xY0dWeWMyVjBUV0Z1YVdabGMzUXNYRzU5SUdaeWIyMGdYQ0l1TDIxaGJtbG1aWE4wWENJN1hHNXBiWEJ2Y25RZ2V5QnpkWEJsY25ObGRGQmhkR05vUm1sc1pYTWdmU0JtY205dElGd2lMaTkwWlcxd2JHRjBaWE5jSWp0Y2JseHVMeW9xSUVSbFptRjFiSFFnVTNWd1pYSnpaWFFnWW1GelpTQndZWFJvSUhkb1pXNGdibTl1WlNCcGN5QndjbTkyYVdSbFpDNGdLaTljYm1WNGNHOXlkQ0JqYjI1emRDQlRWVkJGVWxORlZGOUVSVVpCVlV4VVgwSkJVMFZmVUVGVVNDQTlJRndpYzNWd1pYSnpaWFJjSWp0Y2JseHVMeW9xWEc0Z0tpQkZlSFJsYm5OcGIyNGdiMllnWUZCc2RXZHBia2x1YzNSaGJHeFBjSFJwYjI1ellDQm1iM0lnVTNWd1pYSnpaWFF0YzNCbFkybG1hV01nWW5WcGJHUWdZMjl1Wm1sbmRYSmhkR2x2Ymk1Y2JpQXFMMXh1Wlhod2IzSjBJR2x1ZEdWeVptRmpaU0JUZFhCbGNuTmxkRWx1YzNSaGJHeFBjSFJwYjI1eklHVjRkR1Z1WkhNZ1VHeDFaMmx1U1c1emRHRnNiRTl3ZEdsdmJuTWdlMXh1SUNBdktpb2dVR0YwYUNCMGJ5QmhiaUJsZUdsemRHbHVaeUJUZFhCbGNuTmxkQ0J6YjNWeVkyVWdZMmhsWTJ0dmRYUXVJRWxtSUdGaWMyVnVkQ3dnZEdobElHbHVjM1JoYkd4bGNpQmpiRzl1WlhNZ2RtbGhJR2RwZEM0Z0tpOWNiaUFnYzNWd1pYSnpaWFJUYjNWeVkyVlFZWFJvUHpvZ2MzUnlhVzVuTzF4dUlDQXZLaW9nUjJsMElGVlNUQ0IwYnlCamJHOXVaU0JUZFhCbGNuTmxkQ0JtY205dElDaDFjMlZrSUhkb1pXNGdZSE4xY0dWeWMyVjBVMjkxY21ObFVHRjBhR0FnYVhNZ1lXSnpaVzUwS1M0Z0tpOWNiaUFnYzNWd1pYSnpaWFJIYVhSVmNtdy9PaUJ6ZEhKcGJtYzdYRzRnSUM4cUtpQkhhWFFnY21WbUwySnlZVzVqYUM5MFlXY2dkRzhnWTJobFkydHZkWFFnWVdaMFpYSWdZMnh2Ym1sdVp5NGdLaTljYmlBZ2MzVndaWEp6WlhSSGFYUlNaV1kvT2lCemRISnBibWM3WEc0Z0lDOHFLaUJFYjJOclpYSWdhVzFoWjJVZ2RHRm5JSFJ2SUdKMWFXeGtJQ2gzYUdWdUlIQnliM1pwWkdWa0xDQmlkV2xzWkhNZ1lTQkViMk5yWlhJZ2FXMWhaMlVnYVc1emRHVmhaQ0J2WmlCcWRYTjBJRk5FU3l0bWNtOXVkR1Z1WkNrdUlDb3ZYRzRnSUdSdlkydGxja2x0WVdkbFZHRm5Qem9nYzNSeWFXNW5PMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFSjFhV3hrSUhSb1pTQlRkWEJsY25ObGRDQmxiV0psWkdSbFpDQlZVa3d1WEc0Z0tseHVJQ29nUm05eUlGTjFjR1Z5YzJWMExDQjBhR1VnWUdSaGMyaGliMkZ5WkVsa1lDQm1hV1ZzWkNCcGJpQmdSVzFpWldSVmNteFBjSFJwYjI1ellDQnBjeUIwYUdWY2JpQXFJR1Z0WW1Wa1pHVmtMV052Ym1acFozVnlZWFJwYjI0Z1ZWVkpSQ0IxYzJWa0lHbHVJR0F2WlcxaVpXUmtaV1F2T25WMWFXUmdMbHh1SUNwY2JpQXFJRUJsZUdGdGNHeGxYRzRnS2lBZ0lHSjFhV3hrVTNWd1pYSnpaWFJGYldKbFpGVnliQ2g3SUdodmMzUTZJRndpYzNWd1pYSnpaWFF1WlhoaGJYQnNaUzVqYjIxY0lpd2daR0Z6YUdKdllYSmtTV1E2SUZ3aVlXSmpMWFYxYVdSY0lpd2djR0Z5Wlc1MFQzSnBaMmx1T2lCY0ltaDBkSEJ6T2k4dllYQndMbVY0WVcxd2JHVXVZMjl0WENJZ2ZTbGNiaUFxSUNBZ0x5OGdQVDRnWENJdkwzTjFjR1Z5YzJWMExtVjRZVzF3YkdVdVkyOXRMM04xY0dWeWMyVjBMMlZ0WW1Wa1pHVmtMMkZpWXkxMWRXbGtQM0JoY21WdWRFOXlhV2RwYmoxb2RIUndjeVV6UVNVeVJpVXlSbUZ3Y0M1bGVHRnRjR3hsTG1OdmJWd2lYRzRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCaWRXbHNaRk4xY0dWeWMyVjBSVzFpWldSVmNtd29iM0IwYVc5dWN6b2dSVzFpWldSVmNteFBjSFJwYjI1ektUb2djM1J5YVc1bklIdGNiaUFnWTI5dWMzUWdZbUZ6WlZCaGRHZ2dQU0J2Y0hScGIyNXpMbUpoYzJWUVlYUm9JRDgvSUZOVlVFVlNVMFZVWDBSRlJrRlZURlJmUWtGVFJWOVFRVlJJTzF4dUlDQmpiMjV6ZENCd1lYSmhiWE1nUFNCdVpYY2dWVkpNVTJWaGNtTm9VR0Z5WVcxektDazdYRzRnSUhCaGNtRnRjeTV6WlhRb1hDSndZWEpsYm5SUGNtbG5hVzVjSWl3Z2IzQjBhVzl1Y3k1d1lYSmxiblJQY21sbmFXNHBPMXh1SUNCcFppQW9iM0IwYVc5dWN5NTJhV1YzUHk1MGFXMWxVbUZ1WjJVcElIdGNiaUFnSUNCd1lYSmhiWE11YzJWMEtGd2lkR2x0WlZKaGJtZGxYQ0lzSUVwVFQwNHVjM1J5YVc1bmFXWjVLRzl3ZEdsdmJuTXVkbWxsZHk1MGFXMWxVbUZ1WjJVcEtUdGNiaUFnZlZ4dUlDQnlaWFIxY200Z1lDOHZKSHR2Y0hScGIyNXpMbWh2YzNSOUx5UjdZbUZ6WlZCaGRHaDlMMlZ0WW1Wa1pHVmtMeVI3YjNCMGFXOXVjeTVrWVhOb1ltOWhjbVJKWkgwL0pIdHdZWEpoYlhNdWRHOVRkSEpwYm1jb0tYMWdPMXh1ZlZ4dVhHNHZLaXBjYmlBcUlFQmpiR0Z6Y3lCVGRYQmxjbk5sZEVSaGMyaGliMkZ5WkVWdFltVmtVR3gxWjJsdVhHNGdLaUJBYzNWdGJXRnllU0JUZFhCbGNuTmxkQ0JwYlhCc1pXMWxiblJoZEdsdmJpQnZaaUIwYUdVZ1lFUmhjMmhpYjJGeVpFVnRZbVZrVUd4MVoybHVZQ0JqYjI1MGNtRmpkQzVjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJQY21jdFlXZHViM04wYVdNZ2JYVnNkR2t0ZEdWdVlXNTBJR1JoYzJoaWIyRnlaQ0JsYldKbFpDQndiSFZuYVc0Z1ptOXlJRk4xY0dWeWMyVjBYRzRnS2lCMWMybHVaeUJoSUhCaGRHTm9MV0Z1WkMxaWRXbHNaQ0J6ZEhKaGRHVm5lUzRnVTJGdFpTQkJVRWtnWVhNZ1lFdHBZbUZ1WVVSaGMyaGliMkZ5WkVWdFltVmtVR3gxWjJsdVlDNWNiaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRk4xY0dWeWMyVjBSR0Z6YUdKdllYSmtSVzFpWldSUWJIVm5hVzRnYVcxd2JHVnRaVzUwY3lCRVlYTm9ZbTloY21SRmJXSmxaRkJzZFdkcGJpQjdYRzRnSUhCMVlteHBZeUJ5WldGa2IyNXNlU0JrWlhOamNtbHdkRzl5T2lCRVlYTm9ZbTloY21SRmJXSmxaRkJzZFdkcGJrUmxjMk55YVhCMGIzSTdYRzVjYmlBZ2NIVmliR2xqSUdOdmJuTjBjblZqZEc5eUtIUmhjbWRsZEZabGNuTnBiMjQ2SUhOMGNtbHVaeUE5SUZ3aWMzVndaWEp6WlhSY0lpa2dlMXh1SUNBZ0lIUm9hWE11WkdWelkzSnBjSFJ2Y2lBOUlIdGNiaUFnSUNBZ0lHbGtPaUJUVlZCRlVsTkZWRjlRVEZWSFNVNWZTVVFzWEc0Z0lDQWdJQ0JoY0hCSlpEb2dVMVZRUlZKVFJWUmZRVkJRWDBsRUxGeHVJQ0FnSUNBZ2RtVnljMmx2YmpvZ1UxVlFSVkpUUlZSZlVFeFZSMGxPWDFaRlVsTkpUMDRzWEc0Z0lDQWdJQ0IwWVhKblpYUldaWEp6YVc5dUxGeHVJQ0FnSUNBZ2RHOXZiRG9nWENKemRYQmxjbk5sZEZ3aUxGeHVJQ0FnSUgwN1hHNGdJSDFjYmx4dUlDQndkV0pzYVdNZ2JXRnVhV1psYzNRb2RHRnlaMlYwVm1WeWMybHZiam9nYzNSeWFXNW5JRDBnZEdocGN5NWtaWE5qY21sd2RHOXlMblJoY21kbGRGWmxjbk5wYjI0cE9pQlNaV052Y21ROGMzUnlhVzVuTENCMWJtdHViM2R1UGlCN1hHNGdJQ0FnY21WMGRYSnVJR0oxYVd4a1UzVndaWEp6WlhSTllXNXBabVZ6ZENoMFlYSm5aWFJXWlhKemFXOXVLU0JoY3lCMWJtdHViM2R1SUdGeklGSmxZMjl5WkR4emRISnBibWNzSUhWdWEyNXZkMjQrTzF4dUlDQjlYRzVjYmlBZ2NIVmliR2xqSUdKMWFXeGtSVzFpWldSVmNtd29iM0IwYVc5dWN6b2dSVzFpWldSVmNteFBjSFJwYjI1ektUb2djM1J5YVc1bklIdGNiaUFnSUNCeVpYUjFjbTRnWW5WcGJHUlRkWEJsY25ObGRFVnRZbVZrVlhKc0tHOXdkR2x2Ym5NcE8xeHVJQ0I5WEc1Y2JpQWdjSFZpYkdsaklHTnlaV0YwWlZOM2FYUmphRVJoYzJoaWIyRnlaRTFsYzNOaFoyVW9YRzRnSUNBZ2NHRjViRzloWkRvZ1UzZHBkR05vUkdGemFHSnZZWEprVUdGNWJHOWhaRnh1SUNBcE9pQlRkMmwwWTJoRVlYTm9ZbTloY21STlpYTnpZV2RsSUh0Y2JpQWdJQ0J5WlhSMWNtNGdZM0psWVhSbFUzZHBkR05vUkdGemFHSnZZWEprVFdWemMyRm5aU2h3WVhsc2IyRmtLVHRjYmlBZ2ZWeHVYRzRnSUhCMVlteHBZeUJ6Wlc1a1UzZHBkR05vUkdGemFHSnZZWEprVFdWemMyRm5aU2hjYmlBZ0lDQjBZWEpuWlhRNklFVnRZbVZrVFdWemMyRm5aVlJoY21kbGRDeGNiaUFnSUNCd1lYbHNiMkZrT2lCVGQybDBZMmhFWVhOb1ltOWhjbVJRWVhsc2IyRmtMRnh1SUNBZ0lIUmhjbWRsZEU5eWFXZHBiam9nYzNSeWFXNW5YRzRnSUNrNklIWnZhV1FnZTF4dUlDQWdJSE5sYm1SVGFHRnlaV1FvZEdGeVoyVjBMQ0J3WVhsc2IyRmtMQ0IwWVhKblpYUlBjbWxuYVc0cE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRTFoZEdWeWFXRnNhWHBsSUhSb1pTQndZWFJqYUNCaGJtUWdZblZwYkdRZ2MyTnlhWEIwY3lCcGJuUnZJR0IwWVhKblpYUlFZWFJvTDJBc0lHRnVaQ0IzYUdWdVhHNGdJQ0FxSUdCaWRXbHNaR0FnYVhNZ2RISjFaU3dnWTJ4dmJtVXZkWE5sSUZOMWNHVnljMlYwSUhOdmRYSmpaU3dnWVhCd2JIa2djR0YwWTJobGN5d2dZVzVrSUdKMWFXeGtYRzRnSUNBcUlDaFRSRXNnS3lCbWNtOXVkR1Z1WkNBcklHOXdkR2x2Ym1Gc2JIa2dSRzlqYTJWeUlHbHRZV2RsS1M1Y2JpQWdJQ3BjYmlBZ0lDb2dWVzVzYVd0bElFdHBZbUZ1WVNBb2QyaHBZMmdnWjJWdVpYSmhkR1Z6SUhCc2RXZHBiaUJ6YjNWeVkyVXBMQ0JUZFhCbGNuTmxkQ2R6SUZ3aWNHeDFaMmx1WENJZ2FYTWdZVnh1SUNBZ0tpQndZWFJqYUMxaGJtUXRZblZwYkdRZ2MzUnlZWFJsWjNrNklFUmxZMkZtSUdodmJHUnpJSE5qY21sd2RITWdkR2hoZENCdGIyUnBabmtnVTNWd1pYSnpaWFFuYzF4dUlDQWdLaUJsZUdsemRHbHVaeUJwYm5SbGNtNWhiQ0J6YjNWeVkyVWdabWxzWlhNdVhHNGdJQ0FxTDF4dUlDQndkV0pzYVdNZ1lYTjVibU1nYVc1emRHRnNiQ2hjYmlBZ0lDQnZjSFJwYjI1ek9pQlRkWEJsY25ObGRFbHVjM1JoYkd4UGNIUnBiMjV6WEc0Z0lDazZJRkJ5YjIxcGMyVThVR3gxWjJsdVNXNXpkR0ZzYkZKbGMzVnNkRDRnZTF4dUlDQWdJR052Ym5OMElHTjBlQ0E5SUc5d2RHbHZibk11WTI5dWRHVjRkQ0JoY3lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFlXNTVQaUI4SUhWdVpHVm1hVzVsWkR0Y2JpQWdJQ0JwWmlBb1kzUjRLU0I3WEc0Z0lDQWdJQ0IyYjJsa0lHTjBlRHRjYmlBZ0lDQjlYRzRnSUNBZ2FXWWdLQ0Z2Y0hScGIyNXpMblJoY21kbGRGQmhkR2dnZkh3Z2IzQjBhVzl1Y3k1MFlYSm5aWFJRWVhSb0xuUnlhVzBvS1M1c1pXNW5kR2dnUFQwOUlEQXBJSHRjYmlBZ0lDQWdJSFJvY205M0lHNWxkeUJWYm5OMWNIQnZjblJsWkVWeWNtOXlLRndpYVc1emRHRnNiQ0IwWVhKblpYUlFZWFJvSUdseklISmxjWFZwY21Wa1hDSXBPMXh1SUNBZ0lIMWNibHh1SUNBZ0lHTnZibk4wSUhSaGNtZGxkRlpsY25OcGIyNGdQU0J2Y0hScGIyNXpMblJoY21kbGRGWmxjbk5wYjI0Z1B6OGdkR2hwY3k1a1pYTmpjbWx3ZEc5eUxuUmhjbWRsZEZabGNuTnBiMjQ3WEc0Z0lDQWdZMjl1YzNRZ2NHeDFaMmx1UkdseUlEMGdjR0YwYUM1eVpYTnZiSFpsS0Z4dUlDQWdJQ0FnYjNCMGFXOXVjeTUwWVhKblpYUlFZWFJvTEZ4dUlDQWdJQ0FnVTFWUVJWSlRSVlJmUVZCUVgwbEVYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHbG1JQ2htY3k1bGVHbHpkSE5UZVc1aktIQnNkV2RwYmtScGNpa3BJSHRjYmlBZ0lDQWdJR2xtSUNnaGIzQjBhVzl1Y3k1dmRtVnlkM0pwZEdVcElIdGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdZRkJzZFdkcGJpQmthWEpsWTNSdmNua2dZV3h5WldGa2VTQmxlR2x6ZEhNNklDUjdjR3gxWjJsdVJHbHlmU0FvZFhObElHOTJaWEozY21sMFpUb2dkSEoxWlNsZ1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ0lDQm1jeTV5YlZONWJtTW9jR3gxWjJsdVJHbHlMQ0I3SUhKbFkzVnljMmwyWlRvZ2RISjFaU3dnWm05eVkyVTZJSFJ5ZFdVZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnWm1sc1pYTWdQU0J6ZFhCbGNuTmxkRkJoZEdOb1JtbHNaWE1vS1R0Y2JpQWdJQ0JqYjI1emRDQjNjbWwwZEdWdU9pQnpkSEpwYm1kYlhTQTlJRnRkTzF4dUlDQWdJR1p2Y2lBb1kyOXVjM1FnWm1sc1pTQnZaaUJtYVd4bGN5a2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ1puVnNiRkJoZEdnZ1BTQndZWFJvTG1wdmFXNG9jR3gxWjJsdVJHbHlMQ0JtYVd4bExuQmhkR2dwTzF4dUlDQWdJQ0FnWm5NdWJXdGthWEpUZVc1aktIQmhkR2d1WkdseWJtRnRaU2htZFd4c1VHRjBhQ2tzSUhzZ2NtVmpkWEp6YVhabE9pQjBjblZsSUgwcE8xeHVJQ0FnSUNBZ1puTXVkM0pwZEdWR2FXeGxVM2x1WXlobWRXeHNVR0YwYUN3Z1ptbHNaUzVqYjI1MFpXNTBMQ0JjSW5WMFpqaGNJaWs3WEc0Z0lDQWdJQ0JwWmlBb1ptbHNaUzVsZUdWamRYUmhZbXhsS1NCN1hHNGdJQ0FnSUNBZ0lHWnpMbU5vYlc5a1UzbHVZeWhtZFd4c1VHRjBhQ3dnTUc4M05UVXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdkM0pwZEhSbGJpNXdkWE5vS0dacGJHVXVjR0YwYUNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYkdWMElHSjFhV3gwSUQwZ1ptRnNjMlU3WEc0Z0lDQWdiR1YwSUdKMWFXeGtUM1YwY0hWME9pQnpkSEpwYm1jZ2ZDQjFibVJsWm1sdVpXUTdYRzVjYmlBZ0lDQnBaaUFvYjNCMGFXOXVjeTVpZFdsc1pDa2dlMXh1SUNBZ0lDQWdZMjl1YzNRZ2MzVndaWEp6WlhSU2IyOTBJRDBnWVhkaGFYUWdkR2hwY3k1eVpYTnZiSFpsVTNWd1pYSnpaWFJTYjI5MEtIQnNkV2RwYmtScGNpd2diM0IwYVc5dWN5azdYRzRnSUNBZ0lDQmpiMjV6ZENCeVpYTjFiSFFnUFNCaGQyRnBkQ0IwYUdsekxuSjFibEJoZEdOb1FXNWtRblZwYkdRb1hHNGdJQ0FnSUNBZ0lIQnNkV2RwYmtScGNpeGNiaUFnSUNBZ0lDQWdjM1Z3WlhKelpYUlNiMjkwTEZ4dUlDQWdJQ0FnSUNCdmNIUnBiMjV6WEc0Z0lDQWdJQ0FwTG1OaGRHTm9LQ2hsY25JNklFVnljbTl5S1NBOVBpQW9lMXh1SUNBZ0lDQWdJQ0J2YXpvZ1ptRnNjMlVnWVhNZ1kyOXVjM1FzWEc0Z0lDQWdJQ0FnSUc5MWRIQjFkRG9nWlhKeUxtMWxjM05oWjJVc1hHNGdJQ0FnSUNCOUtTazdYRzRnSUNBZ0lDQmlkV2xzZENBOUlISmxjM1ZzZEM1dmF6dGNiaUFnSUNBZ0lHSjFhV3hrVDNWMGNIVjBJRDBnY21WemRXeDBMbTkxZEhCMWREdGNiaUFnSUNCOVhHNWNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnY0d4MVoybHVVR0YwYURvZ2NHeDFaMmx1UkdseUxGeHVJQ0FnSUNBZ1pHVnpZM0pwY0hSdmNqb2dleUF1TGk1MGFHbHpMbVJsYzJOeWFYQjBiM0lzSUhSaGNtZGxkRlpsY25OcGIyNGdmU3hjYmlBZ0lDQWdJR1pwYkdWek9pQjNjbWwwZEdWdUxGeHVJQ0FnSUNBZ1luVnBiSFFzWEc0Z0lDQWdJQ0JpZFdsc1pFOTFkSEIxZEN4Y2JpQWdJQ0I5TzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlGSmxjMjlzZG1VZ2RHaGxJRk4xY0dWeWMyVjBJSE52ZFhKalpTQnliMjkwT2lCMWMyVWdZVzRnWlhocGMzUnBibWNnWTJobFkydHZkWFFnYjNJZ1kyeHZibVVnZG1saElHZHBkQzVjYmlBZ0lDb3ZYRzRnSUhCeWIzUmxZM1JsWkNCaGMzbHVZeUJ5WlhOdmJIWmxVM1Z3WlhKelpYUlNiMjkwS0Z4dUlDQWdJSEJzZFdkcGJrUnBjam9nYzNSeWFXNW5MRnh1SUNBZ0lHOXdkR2x2Ym5NNklGTjFjR1Z5YzJWMFNXNXpkR0ZzYkU5d2RHbHZibk5jYmlBZ0tUb2dVSEp2YldselpUeHpkSEpwYm1jK0lIdGNiaUFnSUNCcFppQW9iM0IwYVc5dWN5NXpkWEJsY25ObGRGTnZkWEpqWlZCaGRHZ3BJSHRjYmlBZ0lDQWdJR052Ym5OMElISmxjMjlzZG1Wa0lEMGdjR0YwYUM1eVpYTnZiSFpsS0c5d2RHbHZibk11YzNWd1pYSnpaWFJUYjNWeVkyVlFZWFJvS1R0Y2JpQWdJQ0FnSUdsbUlDZ2habk11WlhocGMzUnpVM2x1WXlod1lYUm9MbXB2YVc0b2NtVnpiMngyWldRc0lGd2ljM1Z3WlhKelpYUXRabkp2Ym5SbGJtUmNJaXdnWENKemNtTmNJaXdnWENKbGJXSmxaR1JsWkZ3aUxDQmNJbWx1WkdWNExuUnplRndpS1NrcElIdGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRWx1ZEdWeWJtRnNSWEp5YjNJb1hHNGdJQ0FnSUNBZ0lDQWdZRk4xY0dWeWMyVjBJSE52ZFhKalpTQnViM1FnWm05MWJtUWdZWFE2SUNSN2NtVnpiMngyWldSOUlDaHRhWE56YVc1bklITjFjR1Z5YzJWMExXWnliMjUwWlc1a0wzTnlZeTlsYldKbFpHUmxaQzlwYm1SbGVDNTBjM2dwWUZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2NtVjBkWEp1SUhKbGMyOXNkbVZrTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHZHBkRlZ5YkNBOUlHOXdkR2x2Ym5NdWMzVndaWEp6WlhSSGFYUlZjbXdnUHo4Z1hDSm9kSFJ3Y3pvdkwyZHBkR2gxWWk1amIyMHZZWEJoWTJobEwzTjFjR1Z5YzJWMExtZHBkRndpTzF4dUlDQWdJR052Ym5OMElHZHBkRkpsWmlBOUlHOXdkR2x2Ym5NdWMzVndaWEp6WlhSSGFYUlNaV1lnUHo4Z2IzQjBhVzl1Y3k1MFlYSm5aWFJXWlhKemFXOXVJRDgvSUZ3aU5pNHhMakJjSWp0Y2JpQWdJQ0JqYjI1emRDQmpiRzl1WlVScGNpQTlJSEJoZEdndWFtOXBiaWh3YkhWbmFXNUVhWElzSUZ3aUxuTjFjR1Z5YzJWMExYTnZkWEpqWlZ3aUtUdGNibHh1SUNBZ0lHbG1JQ2htY3k1bGVHbHpkSE5UZVc1aktHTnNiMjVsUkdseUtTa2dlMXh1SUNBZ0lDQWdabk11Y20xVGVXNWpLR05zYjI1bFJHbHlMQ0I3SUhKbFkzVnljMmwyWlRvZ2RISjFaU3dnWm05eVkyVTZJSFJ5ZFdVZ2ZTazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NXlkVzVEYjIxdFlXNWtLRndpWjJsMFhDSXNJRnRjSW1Oc2IyNWxYQ0lzSUZ3aUxTMWtaWEIwYUZ3aUxDQmNJakZjSWl3Z1hDSXRMV0p5WVc1amFGd2lMQ0JuYVhSU1pXWXNJR2RwZEZWeWJDd2dZMnh2Ym1WRWFYSmRMQ0J3YkhWbmFXNUVhWElwTzF4dUlDQWdJSEpsZEhWeWJpQmpiRzl1WlVScGNqdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJCY0hCc2VTQndZWFJqYUdWekxDQjJaWEpwWm5rc0lHRnVaQ0JpZFdsc1pDQW9VMFJMSUNzZ1puSnZiblJsYm1RZ0t5QnZjSFJwYjI1aGJHeDVJRVJ2WTJ0bGNpa3VYRzRnSUNBcUwxeHVJQ0J3Y205MFpXTjBaV1FnWVhONWJtTWdjblZ1VUdGMFkyaEJibVJDZFdsc1pDaGNiaUFnSUNCd2JIVm5hVzVFYVhJNklITjBjbWx1Wnl4Y2JpQWdJQ0J6ZFhCbGNuTmxkRkp2YjNRNklITjBjbWx1Wnl4Y2JpQWdJQ0J2Y0hScGIyNXpPaUJUZFhCbGNuTmxkRWx1YzNSaGJHeFBjSFJwYjI1elhHNGdJQ2s2SUZCeWIyMXBjMlU4ZXlCdmF6b2dZbTl2YkdWaGJqc2diM1YwY0hWME9pQnpkSEpwYm1jZ2ZUNGdlMXh1SUNBZ0lHTnZibk4wSUc5MWRIQjFkSE02SUhOMGNtbHVaMXRkSUQwZ1cxMDdYRzVjYmlBZ0lDQXZMeUF4TGlCQmNIQnNlU0J3WVhSamFGeHVJQ0FnSUdOdmJuTjBJSEJoZEdOb1VtVnpkV3gwSUQwZ1lYZGhhWFFnZEdocGN5NXlkVzVEYjIxdFlXNWtLRnh1SUNBZ0lDQWdYQ0p3ZVhSb2IyNHpYQ0lzWEc0Z0lDQWdJQ0JiY0dGMGFDNXFiMmx1S0hCc2RXZHBia1JwY2l3Z1hDSndZWFJqYUdWelhDSXNJRndpWVhCd2JIbGZjM1Z3WlhKelpYUmZObDh4WDNCaGRHTm9MbkI1WENJcExDQnpkWEJsY25ObGRGSnZiM1JkTEZ4dUlDQWdJQ0FnY0d4MVoybHVSR2x5WEc0Z0lDQWdLVHRjYmlBZ0lDQnZkWFJ3ZFhSekxuQjFjMmdvY0dGMFkyaFNaWE4xYkhRcE8xeHVYRzRnSUNBZ0x5OGdNaTRnVm1WeWFXWjVJSEJoZEdOb1hHNGdJQ0FnWTI5dWMzUWdkbVZ5YVdaNVVtVnpkV3gwSUQwZ1lYZGhhWFFnZEdocGN5NXlkVzVEYjIxdFlXNWtLRnh1SUNBZ0lDQWdjR0YwYUM1cWIybHVLSEJzZFdkcGJrUnBjaXdnWENKd1lYUmphR1Z6WENJc0lGd2lkbVZ5YVdaNVgzQmhkR05vTG5Ob1hDSXBMRnh1SUNBZ0lDQWdXM04xY0dWeWMyVjBVbTl2ZEYwc1hHNGdJQ0FnSUNCd2JIVm5hVzVFYVhKY2JpQWdJQ0FwTzF4dUlDQWdJRzkxZEhCMWRITXVjSFZ6YUNoMlpYSnBabmxTWlhOMWJIUXBPMXh1WEc0Z0lDQWdMeThnTXk0Z1FuVnBiR1FnS0VSdlkydGxjaUJwYldGblpTQnZjaUJUUkVzZ0t5Qm1jbTl1ZEdWdVpDbGNiaUFnSUNCcFppQW9iM0IwYVc5dWN5NWtiMk5yWlhKSmJXRm5aVlJoWnlrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnWkc5amEyVnlVbVZ6ZFd4MElEMGdZWGRoYVhRZ2RHaHBjeTV5ZFc1RGIyMXRZVzVrS0Z4dUlDQWdJQ0FnSUNCd1lYUm9MbXB2YVc0b2NHeDFaMmx1UkdseUxDQmNJbUoxYVd4a1hDSXNJRndpWW5WcGJHUXRaRzlqYTJWeUxXbHRZV2RsTG5Ob1hDSXBMRnh1SUNBZ0lDQWdJQ0JiYzNWd1pYSnpaWFJTYjI5MExDQnZjSFJwYjI1ekxtUnZZMnRsY2tsdFlXZGxWR0ZuWFN4Y2JpQWdJQ0FnSUNBZ2NHeDFaMmx1UkdseVhHNGdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ2IzVjBjSFYwY3k1d2RYTm9LR1J2WTJ0bGNsSmxjM1ZzZENrN1hHNGdJQ0FnZlNCbGJITmxJSHRjYmlBZ0lDQWdJR052Ym5OMElITmthMUpsYzNWc2RDQTlJR0YzWVdsMElIUm9hWE11Y25WdVEyOXRiV0Z1WkNoY2JpQWdJQ0FnSUNBZ2NHRjBhQzVxYjJsdUtIQnNkV2RwYmtScGNpd2dYQ0ppZFdsc1pGd2lMQ0JjSW1KMWFXeGtMWE5rYXk1emFGd2lLU3hjYmlBZ0lDQWdJQ0FnVzNOMWNHVnljMlYwVW05dmRGMHNYRzRnSUNBZ0lDQWdJSEJzZFdkcGJrUnBjbHh1SUNBZ0lDQWdLVHRjYmlBZ0lDQWdJRzkxZEhCMWRITXVjSFZ6YUNoelpHdFNaWE4xYkhRcE8xeHVYRzRnSUNBZ0lDQmpiMjV6ZENCbWNtOXVkR1Z1WkZKbGMzVnNkQ0E5SUdGM1lXbDBJSFJvYVhNdWNuVnVRMjl0YldGdVpDaGNiaUFnSUNBZ0lDQWdjR0YwYUM1cWIybHVLSEJzZFdkcGJrUnBjaXdnWENKaWRXbHNaRndpTENCY0ltSjFhV3hrTFhOMWNHVnljMlYwTFdaeWIyNTBaVzVrTG5Ob1hDSXBMRnh1SUNBZ0lDQWdJQ0JiYzNWd1pYSnpaWFJTYjI5MFhTeGNiaUFnSUNBZ0lDQWdjR3gxWjJsdVJHbHlYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdiM1YwY0hWMGN5NXdkWE5vS0daeWIyNTBaVzVrVW1WemRXeDBLVHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQnlaWFIxY200Z2V5QnZhem9nZEhKMVpTd2diM1YwY0hWME9pQnZkWFJ3ZFhSekxtcHZhVzRvWENKY1hHNWNJaWtnZlR0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQlNkVzRnWVNCamIyMXRZVzVrSUdGdVpDQmpZWEIwZFhKbElITjBaRzkxZEN0emRHUmxjbkl1WEc0Z0lDQXFMMXh1SUNCd2NtOTBaV04wWldRZ2NuVnVRMjl0YldGdVpDaGNiaUFnSUNCamJXUTZJSE4wY21sdVp5eGNiaUFnSUNCaGNtZHpPaUJ6ZEhKcGJtZGJYU3hjYmlBZ0lDQmpkMlE2SUhOMGNtbHVaMXh1SUNBcE9pQlFjbTl0YVhObFBITjBjbWx1Wno0Z2UxeHVJQ0FnSUhKbGRIVnliaUJ1WlhjZ1VISnZiV2x6WlNnb2NtVnpiMngyWlN3Z2NtVnFaV04wS1NBOVBpQjdYRzRnSUNBZ0lDQmxlR1ZqUm1sc1pTaGNiaUFnSUNBZ0lDQWdZMjFrTEZ4dUlDQWdJQ0FnSUNCaGNtZHpMRnh1SUNBZ0lDQWdJQ0I3SUdOM1pDd2dkR2x0Wlc5MWREb2dOakF3TURBd0lIMHNYRzRnSUNBZ0lDQWdJQ2hsY25KdmNpd2djM1JrYjNWMExDQnpkR1JsY25JcElEMCtJSHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J2ZFhSd2RYUWdQU0JnSkh0emRHUnZkWFFnUHo4Z1hDSmNJbjBrZTNOMFpHVnljaUEvUHlCY0lsd2lmV0F1ZEhKcGJTZ3BPMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaGxjbkp2Y2lrZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnY21WcVpXTjBLRzVsZHlCRmNuSnZjaWh2ZFhSd2RYUWdmSHdnWlhKeWIzSXViV1Z6YzJGblpTa3BPMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdJQ0J5WlhOdmJIWmxLRzkxZEhCMWRDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ2s3WEc0Z0lDQWdmU2s3WEc0Z0lIMWNibjFjYmx4dUx5b3FJRVJsWm1GMWJIUWdjMmx1WjJ4bGRHOXVJR2x1YzNSaGJtTmxMaUFxTDF4dVpYaHdiM0owSUdOdmJuTjBJSE4xY0dWeWMyVjBSR0Z6YUdKdllYSmtSVzFpWldSUWJIVm5hVzRnUFNCdVpYY2dVM1Z3WlhKelpYUkVZWE5vWW05aGNtUkZiV0psWkZCc2RXZHBiaWdwTzF4dVhHNHZLaW9nUm1GamRHOXllU0JoWTJObGNIUnBibWNnWVNCMFlYSm5aWFFnVTNWd1pYSnpaWFFnZG1WeWMybHZiaTRnS2k5Y2JtVjRjRzl5ZENCbWRXNWpkR2x2YmlCamNtVmhkR1ZUZFhCbGNuTmxkRVJoYzJoaWIyRnlaRVZ0WW1Wa1VHeDFaMmx1S0Z4dUlDQjBZWEpuWlhSV1pYSnphVzl1T2lCemRISnBibWRjYmlrNklGTjFjR1Z5YzJWMFJHRnphR0p2WVhKa1JXMWlaV1JRYkhWbmFXNGdlMXh1SUNCeVpYUjFjbTRnYm1WM0lGTjFjR1Z5YzJWMFJHRnphR0p2WVhKa1JXMWlaV1JRYkhWbmFXNG9kR0Z5WjJWMFZtVnljMmx2YmlrN1hHNTlYRzRpWFgwPSJdfQ==
|
|
231
|
+
//# sourceMappingURL=installer.js.map
|
|
232
|
+
//# sourceMappingURL=installer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins/superset/installer.cjs","sourceRoot":"","sources":["plugins/superset/installer.js"],"names":[],"mappings":"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"}
|
|
@@ -31,5 +31,5 @@ function buildSupersetManifest(targetVersion = "superset") {
|
|
|
31
31
|
optionalPlugins: [],
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=
|
|
35
|
-
//# sourceMappingURL=
|
|
34
|
+
//# sourceMappingURL=manifest.js.map
|
|
35
|
+
//# sourceMappingURL=manifest.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins/superset/manifest.cjs","sourceRoot":"","sources":["plugins/superset/manifest.js"],"names":[],"mappings":";;;AAcA,sDAaC;AA3BD;;;;;;GAMG;AACH,kDAAsD;AAqB7C,mGArBA,gCAAkB,OAqBA;AApBd,QAAA,kBAAkB,GAAG,2BAA2B,CAAC;AACjD,QAAA,eAAe,GAAG,8BAA8B,CAAC;AACjD,QAAA,uBAAuB,GAAG,OAAO,CAAC;AAC/C;;GAEG;AACH,SAAgB,qBAAqB,CAAC,aAAa,GAAG,UAAU;IAC5D,OAAO;QACH,EAAE,EAAE,0BAAkB;QACtB,OAAO,EAAE,+BAAuB;QAChC,aAAa;QACb,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,IAAI;QACZ,EAAE,EAAE,IAAI;QACR,aAAa,EAAE,QAAQ;QACvB,MAAM,EAAE,MAAM;QACd,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,EAAE;KACtB,CAAC;AACN,CAAC;AAED,oCAAoC"}
|