@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
298 lines • 33.8 kB
JavaScript
import { A11yModule } from '@angular/cdk/a11y';
import { NgModule } from '@angular/core';
import { ReactiveFormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { CoreModule, FormsModule, gettext, hookNavigator, hookRoute, hookTab, hookWizard, ViewContext } from '@c8y/ngx-components';
import { ArchivedConfirmModule } from '@c8y/ngx-components/ecosystem/archived-confirm';
import { LicenseConfirmModule } from '@c8y/ngx-components/ecosystem/license-confirm';
import { EcosystemWizards, SharedEcosystemModule } from '@c8y/ngx-components/ecosystem/shared';
import { IconSelectorModule } from '@c8y/ngx-components/icon-selector';
import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
import { PopoverModule } from 'ngx-bootstrap/popover';
import { TooltipModule } from 'ngx-bootstrap/tooltip';
import { ActivityLogComponent } from './activity-log/activity-log.component';
import { ApplicationPluginsModule } from './application-plugins';
import { ApplicationPropertiesComponent } from './application-properties/application-properties.component';
import { ApplicationPropertiesGuard } from './application-properties/application-properties.guard';
import { SubscriptionModalComponent } from './application-properties/subscription-modal/subscription-modal.component';
import { UpdateApplicationModalComponent } from './application-properties/update-application-modal/update-application-modal.component';
import { AddExternalApplicationComponent } from './applications/add-external-applicaiton/add-external-application.component';
import { AddWebApplicationComponent } from './applications/add-web-application/add-web-application.component';
import { ApplicationListComponent } from './applications/application-list/application-list.component';
import { InstallFromPackageComponent } from './applications/install-from-package/install-from-package.component';
import { EcosystemNavigationFactory } from './ecosystem-navigation.factory';
import { EcosystemTabs } from './ecosystem-tabs.factory';
import { FeatureListComponent } from './features/feature-list.component';
import { AddMicroserviceComponent } from './microservices/add-microservice.component';
import { MicroserviceListComponent } from './microservices/microservice-list.component';
import { AddPackageComponent } from './packages/add-package.component';
import { DeployApplicationComponent } from './packages/deploy-application/deploy-application.component';
import { PackageDetailsComponent } from './packages/package-details/package-details.component';
import { PackagesListComponent } from './packages/package-list/packages-list.component';
import { PackageVersionsGuard } from './packages/package-versions.guard';
import { PackageVersionsAppsComponent } from './packages/package-versions/package-contents/contents-apps/contents-apps.component';
import { PackageVersionsPluginsComponent } from './packages/package-versions/package-contents/contents-plugins/contents-plugins.component';
import { PackageContentsComponent } from './packages/package-versions/package-contents/packages-contents.component';
import { PackageVersionsListComponent } from './packages/package-versions/package-versions-list/package-versions-list.component';
import { PackageVersionsComponent } from './packages/package-versions/packages-versions.component';
import { PackageGuard } from './packages/package.guard';
import * as i0 from "@angular/core";
import * as i1 from "@angular/router";
const ecosystemMainRoutes = [
{
path: 'ecosystem/application',
redirectTo: 'ecosystem/application/applications',
pathMatch: 'full'
},
{
// keeps legacy links functional
path: 'ecosystem/applications',
redirectTo: 'ecosystem/application/applications',
pathMatch: 'full'
},
{
path: 'ecosystem/application/applications',
component: ApplicationListComponent
},
{
path: 'ecosystem/extension/extensions',
component: PackagesListComponent
},
{
path: 'ecosystem/application/features',
component: FeatureListComponent
},
{
path: 'ecosystem/microservice/microservices',
component: MicroserviceListComponent
}
];
const applicationDetailsRoutes = [
{
path: 'properties',
component: ApplicationPropertiesComponent,
icon: 'list',
label: gettext('Properties'),
context: ViewContext.Application,
priority: 5,
canActivate: [ApplicationPropertiesGuard]
},
{
path: 'application-versions',
component: PackageVersionsComponent,
icon: 'c8y-modules',
label: gettext('Versions'),
context: ViewContext.Application,
priority: 1,
canActivate: [PackageVersionsGuard]
},
{
path: 'properties',
component: ApplicationPropertiesComponent,
icon: 'list',
label: gettext('Properties'),
context: ViewContext.Feature,
priority: 5,
canActivate: [ApplicationPropertiesGuard]
},
{
path: 'package-details',
component: PackageDetailsComponent,
icon: 'big-parcel',
label: gettext('Extension package'),
context: ViewContext.Extension,
priority: 10,
canActivate: [PackageGuard]
},
{
path: 'package-versions',
component: PackageVersionsComponent,
icon: 'c8y-modules',
label: gettext('Versions'),
context: ViewContext.Extension,
priority: 1,
canActivate: [PackageGuard, PackageVersionsGuard]
},
{
path: 'properties',
component: ApplicationPropertiesComponent,
icon: 'list',
label: gettext('Properties'),
context: ViewContext.Microservice,
priority: 5,
canActivate: [ApplicationPropertiesGuard]
}
];
export class EcosystemModule {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EcosystemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: EcosystemModule, declarations: [ApplicationListComponent,
MicroserviceListComponent,
ApplicationPropertiesComponent,
AddMicroserviceComponent,
ActivityLogComponent,
AddWebApplicationComponent,
AddExternalApplicationComponent,
InstallFromPackageComponent,
PackagesListComponent,
PackageDetailsComponent,
DeployApplicationComponent,
AddPackageComponent,
FeatureListComponent,
PackageVersionsComponent,
PackageVersionsPluginsComponent,
PackageVersionsAppsComponent,
PackageContentsComponent,
PackageVersionsListComponent,
SubscriptionModalComponent,
UpdateApplicationModalComponent], imports: [CoreModule,
BsDropdownModule,
TooltipModule,
FormsModule,
ReactiveFormsModule, i1.RouterModule, PopoverModule,
ApplicationPluginsModule,
SharedEcosystemModule,
LicenseConfirmModule,
IconSelectorModule,
A11yModule,
ArchivedConfirmModule], exports: [ApplicationPropertiesComponent, UpdateApplicationModalComponent] }); }
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EcosystemModule, providers: [
hookTab(EcosystemTabs),
hookNavigator(EcosystemNavigationFactory),
hookRoute(applicationDetailsRoutes),
PackageGuard,
PackageVersionsGuard,
ApplicationPropertiesGuard,
hookWizard({
wizardId: EcosystemWizards.APPLICATION_UPLOAD,
component: AddWebApplicationComponent,
name: gettext('Upload web application'),
c8yIcon: 'upload'
}),
hookWizard({
name: undefined,
wizardId: EcosystemWizards.PACKAGE_UPLOAD,
component: AddPackageComponent
}),
hookWizard({
wizardId: EcosystemWizards.APPLICATION_UPLOAD,
component: AddExternalApplicationComponent,
name: gettext('External application'),
c8yIcon: 'cloud-link'
}),
hookWizard({
wizardId: EcosystemWizards.BLUEPRINT_DEPLOYMENT,
component: DeployApplicationComponent,
name: gettext('Deploy package'),
c8yIcon: 'big-parcel'
}),
hookWizard({
wizardId: EcosystemWizards.APPLICATION_UPLOAD,
component: InstallFromPackageComponent,
name: gettext('Install from available extension packages'),
c8yIcon: 'big-parcel'
}),
hookWizard({
name: undefined,
wizardId: EcosystemWizards.MICROSERVICE_UPLOAD,
component: AddMicroserviceComponent
})
], imports: [CoreModule,
BsDropdownModule,
TooltipModule,
FormsModule,
ReactiveFormsModule,
RouterModule.forChild(ecosystemMainRoutes),
PopoverModule,
ApplicationPluginsModule,
SharedEcosystemModule,
LicenseConfirmModule,
IconSelectorModule,
A11yModule,
ArchivedConfirmModule] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EcosystemModule, decorators: [{
type: NgModule,
args: [{
declarations: [
ApplicationListComponent,
MicroserviceListComponent,
ApplicationPropertiesComponent,
AddMicroserviceComponent,
ActivityLogComponent,
AddWebApplicationComponent,
AddExternalApplicationComponent,
InstallFromPackageComponent,
PackagesListComponent,
PackageDetailsComponent,
DeployApplicationComponent,
AddPackageComponent,
FeatureListComponent,
PackageVersionsComponent,
PackageVersionsPluginsComponent,
PackageVersionsAppsComponent,
PackageContentsComponent,
PackageVersionsListComponent,
SubscriptionModalComponent,
UpdateApplicationModalComponent
],
imports: [
CoreModule,
BsDropdownModule,
TooltipModule,
FormsModule,
ReactiveFormsModule,
RouterModule.forChild(ecosystemMainRoutes),
PopoverModule,
ApplicationPluginsModule,
SharedEcosystemModule,
LicenseConfirmModule,
IconSelectorModule,
A11yModule,
ArchivedConfirmModule
],
exports: [ApplicationPropertiesComponent, UpdateApplicationModalComponent],
providers: [
hookTab(EcosystemTabs),
hookNavigator(EcosystemNavigationFactory),
hookRoute(applicationDetailsRoutes),
PackageGuard,
PackageVersionsGuard,
ApplicationPropertiesGuard,
hookWizard({
wizardId: EcosystemWizards.APPLICATION_UPLOAD,
component: AddWebApplicationComponent,
name: gettext('Upload web application'),
c8yIcon: 'upload'
}),
hookWizard({
name: undefined,
wizardId: EcosystemWizards.PACKAGE_UPLOAD,
component: AddPackageComponent
}),
hookWizard({
wizardId: EcosystemWizards.APPLICATION_UPLOAD,
component: AddExternalApplicationComponent,
name: gettext('External application'),
c8yIcon: 'cloud-link'
}),
hookWizard({
wizardId: EcosystemWizards.BLUEPRINT_DEPLOYMENT,
component: DeployApplicationComponent,
name: gettext('Deploy package'),
c8yIcon: 'big-parcel'
}),
hookWizard({
wizardId: EcosystemWizards.APPLICATION_UPLOAD,
component: InstallFromPackageComponent,
name: gettext('Install from available extension packages'),
c8yIcon: 'big-parcel'
}),
hookWizard({
name: undefined,
wizardId: EcosystemWizards.MICROSERVICE_UPLOAD,
component: AddMicroserviceComponent
})
]
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNvc3lzdGVtLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2Vjb3N5c3RlbS9lY29zeXN0ZW0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsVUFBVSxFQUNWLFdBQVcsRUFDWCxPQUFPLEVBQ1AsYUFBYSxFQUNiLFNBQVMsRUFDVCxPQUFPLEVBQ1AsVUFBVSxFQUVWLFdBQVcsRUFDWixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFDM0csT0FBTyxFQUFFLDBCQUEwQixF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QUFFLGdCQUFnQixDQUFDLG9CQUFvQjs0QkFDL0MsU0FBUyxFQUFFLDBCQUEwQjs0QkFDckMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQzs0QkFDL0IsT0FBTyxFQUFFLFlBQVk7eUJBQ3RCLENBQUM7d0JBQ0YsVUFBVSxDQUFDOzRCQUNULFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxrQkFBa0I7NEJBQzdDLFNBQVMsRUFBRSwyQkFBMkI7NEJBQ3RDLElBQUksRUFBRSxPQUFPLENBQUMsMkNBQTJDLENBQUM7NEJBQzFELE9BQU8sRUFBRSxZQUFZO3lCQUN0QixDQUFDO3dCQUNGLFVBQVUsQ0FBQzs0QkFDVCxJQUFJLEVBQUUsU0FBUzs0QkFDZixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsbUJBQW1COzRCQUM5QyxTQUFTLEVBQUUsd0JBQXdCO3lCQUNwQyxDQUFDO3FCQUNIO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIENvcmVNb2R1bGUsXG4gIEZvcm1zTW9kdWxlLFxuICBnZXR0ZXh0LFxuICBob29rTmF2aWdhdG9yLFxuICBob29rUm91dGUsXG4gIGhvb2tUYWIsXG4gIGhvb2tXaXphcmQsXG4gIFJvdXRlLFxuICBWaWV3Q29udGV4dFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEFyY2hpdmVkQ29uZmlybU1vZHVsZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZWNvc3lzdGVtL2FyY2hpdmVkLWNvbmZpcm0nO1xuaW1wb3J0IHsgTGljZW5zZUNvbmZpcm1Nb2R1bGUgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2Vjb3N5c3RlbS9saWNlbnNlLWNvbmZpcm0nO1xuaW1wb3J0IHsgRWNvc3lzdGVtV2l6YXJkcywgU2hhcmVkRWNvc3lzdGVtTW9kdWxlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9lY29zeXN0ZW0vc2hhcmVkJztcbmltcG9ydCB7IEljb25TZWxlY3Rvck1vZHVsZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvaWNvbi1zZWxlY3Rvcic7XG5pbXBvcnQgeyBCc0Ryb3Bkb3duTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kcm9wZG93bic7XG5pbXBvcnQgeyBQb3BvdmVyTW9kdWxlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wb3BvdmVyJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQWN0aXZpdHlMb2dDb21wb25lbnQgfSBmcm9tICcuL2FjdGl2aXR5LWxvZy9hY3Rpdml0eS1sb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUGx1Z2luc01vZHVsZSB9IGZyb20gJy4vYXBwbGljYXRpb24tcGx1Z2lucyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblByb3BlcnRpZXNDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLXByb3BlcnRpZXMvYXBwbGljYXRpb24tcHJvcGVydGllcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Qcm9wZXJ0aWVzR3VhcmQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLXByb3BlcnRpZXMvYXBwbGljYXRpb24tcHJvcGVydGllcy5ndWFyZCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tcHJvcGVydGllcy9zdWJzY3JpcHRpb24tbW9kYWwvc3Vic2NyaXB0aW9uLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVcGRhdGVBcHBsaWNhdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzL3VwZGF0ZS1hcHBsaWNhdGlvbi1tb2RhbC91cGRhdGUtYXBwbGljYXRpb24tbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IEFkZEV4dGVybmFsQXBwbGljYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9ucy9hZGQtZXh0ZXJuYWwtYXBwbGljYWl0b24vYWRkLWV4dGVybmFsLWFwcGxpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZGRXZWJBcHBsaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb25zL2FkZC13ZWItYXBwbGljYXRpb24vYWRkLXdlYi1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbnMvYXBwbGljYXRpb24tbGlzdC9hcHBsaWNhdGlvbi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnN0YWxsRnJvbVBhY2thZ2VDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9ucy9pbnN0YWxsLWZyb20tcGFja2FnZS9pbnN0YWxsLWZyb20tcGFja2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWNvc3lzdGVtTmF2aWdhdGlvbkZhY3RvcnkgfSBmcm9tICcuL2Vjb3N5c3RlbS1uYXZpZ2F0aW9uLmZhY3RvcnknO1xuaW1wb3J0IHsgRWNvc3lzdGVtVGFicyB9IGZyb20gJy4vZWNvc3lzdGVtLXRhYnMuZmFjdG9yeSc7XG5pbXBvcnQgeyBGZWF0dXJlTGlzdENvbXBvbmVudCB9IGZyb20gJy4vZmVhdHVyZXMvZmVhdHVyZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZGRNaWNyb3NlcnZpY2VDb21wb25lbnQgfSBmcm9tICcuL21pY3Jvc2VydmljZXMvYWRkLW1pY3Jvc2VydmljZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWljcm9zZXJ2aWNlTGlzdENvbXBvbmVudCB9IGZyb20gJy4vbWljcm9zZXJ2aWNlcy9taWNyb3NlcnZpY2UtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWRkUGFja2FnZUNvbXBvbmVudCB9IGZyb20gJy4vcGFja2FnZXMvYWRkLXBhY2thZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IERlcGxveUFwcGxpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wYWNrYWdlcy9kZXBsb3ktYXBwbGljYXRpb24vZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWNrYWdlRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4vcGFja2FnZXMvcGFja2FnZS1kZXRhaWxzL3BhY2thZ2UtZGV0YWlscy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFja2FnZXNMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9wYWNrYWdlcy9wYWNrYWdlLWxpc3QvcGFja2FnZXMtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFja2FnZVZlcnNpb25zR3VhcmQgfSBmcm9tICcuL3BhY2thZ2VzL3BhY2thZ2UtdmVyc2lvbnMuZ3VhcmQnO1xuaW1wb3J0IHsgUGFja2FnZVZlcnNpb25zQXBwc0NvbXBvbmVudCB9IGZyb20gJy4vcGFja2FnZXMvcGFja2FnZS12ZXJzaW9ucy9wYWNrYWdlLWNvbnRlbnRzL2NvbnRlbnRzLWFwcHMvY29udGVudHMtYXBwcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFja2FnZVZlcnNpb25zUGx1Z2luc0NvbXBvbmVudCB9IGZyb20gJy4vcGFja2FnZXMvcGFja2FnZS12ZXJzaW9ucy9wYWNrYWdlLWNvbnRlbnRzL2NvbnRlbnRzLXBsdWdpbnMvY29udGVudHMtcGx1Z2lucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFja2FnZUNvbnRlbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9wYWNrYWdlcy9wYWNrYWdlLXZlcnNpb25zL3BhY2thZ2UtY29udGVudHMvcGFja2FnZXMtY29udGVudHMuY29tcG9uZW50JztcbmltcG9ydCB7IFBhY2thZ2VWZXJzaW9uc0xpc3RDb21wb25lbnQgfSBmcm9tICcuL3BhY2thZ2VzL3BhY2thZ2UtdmVyc2lvbnMvcGFja2FnZS12ZXJzaW9ucy1saXN0L3BhY2thZ2UtdmVyc2lvbnMtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFja2FnZVZlcnNpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9wYWNrYWdlcy9wYWNrYWdlLXZlcnNpb25zL3BhY2thZ2VzLXZlcnNpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWNrYWdlR3VhcmQgfSBmcm9tICcuL3BhY2thZ2VzL3BhY2thZ2UuZ3VhcmQnO1xuXG5jb25zdCBlY29zeXN0ZW1NYWluUm91dGVzOiBSb3V0ZVtdID0gW1xuICB7XG4gICAgcGF0aDogJ2Vjb3N5c3RlbS9hcHBsaWNhdGlvbicsXG4gICAgcmVkaXJlY3RUbzogJ2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi9hcHBsaWNhdGlvbnMnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnXG4gIH0sXG4gIHtcbiAgICAvLyBrZWVwcyBsZWdhY3kgbGlua3MgZnVuY3Rpb25hbFxuICAgIHBhdGg6ICdlY29zeXN0ZW0vYXBwbGljYXRpb25zJyxcbiAgICByZWRpcmVjdFRvOiAnZWNvc3lzdGVtL2FwcGxpY2F0aW9uL2FwcGxpY2F0aW9ucycsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCdcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdlY29zeXN0ZW0vYXBwbGljYXRpb24vYXBwbGljYXRpb25zJyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uTGlzdENvbXBvbmVudFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2Vjb3N5c3RlbS9leHRlbnNpb24vZXh0ZW5zaW9ucycsXG4gICAgY29tcG9uZW50OiBQYWNrYWdlc0xpc3RDb21wb25lbnRcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdlY29zeXN0ZW0vYXBwbGljYXRpb24vZmVhdHVyZXMnLFxuICAgIGNvbXBvbmVudDogRmVhdHVyZUxpc3RDb21wb25lbnRcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdlY29zeXN0ZW0vbWljcm9zZXJ2aWNlL21pY3Jvc2VydmljZXMnLFxuICAgIGNvbXBvbmVudDogTWljcm9zZXJ2aWNlTGlzdENvbXBvbmVudFxuICB9XG5dO1xuXG5jb25zdCBhcHBsaWNhdGlvbkRldGFpbHNSb3V0ZXM6IFJvdXRlW10gPSBbXG4gIHtcbiAgICBwYXRoOiAncHJvcGVydGllcycsXG4gICAgY29tcG9uZW50OiBBcHBsaWNhdGlvblByb3BlcnRpZXNDb21wb25lbnQsXG4gICAgaWNvbjogJ2xpc3QnLFxuICAgIGxhYmVsOiBnZXR0ZXh0KCdQcm9wZXJ0aWVzJyksXG4gICAgY29udGV4dDogVmlld0NvbnRleHQuQXBwbGljYXRpb24sXG4gICAgcHJpb3JpdHk6IDUsXG4gICAgY2FuQWN0aXZhdGU6IFtBcHBsaWNhdGlvblByb3BlcnRpZXNHdWFyZF1cbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvbi12ZXJzaW9ucycsXG4gICAgY29tcG9uZW50OiBQYWNrYWdlVmVyc2lvbnNDb21wb25lbnQsXG4gICAgaWNvbjogJ2M4eS1tb2R1bGVzJyxcbiAgICBsYWJlbDogZ2V0dGV4dCgnVmVyc2lvbnMnKSxcbiAgICBjb250ZXh0OiBWaWV3Q29udGV4dC5BcHBsaWNhdGlvbixcbiAgICBwcmlvcml0eTogMSxcbiAgICBjYW5BY3RpdmF0ZTogW1BhY2thZ2VWZXJzaW9uc0d1YXJkXVxuICB9LFxuICB7XG4gICAgcGF0aDogJ3Byb3BlcnRpZXMnLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25Qcm9wZXJ0aWVzQ29tcG9uZW50LFxuICAgIGljb246ICdsaXN0JyxcbiAgICBsYWJlbDogZ2V0dGV4dCgnUHJvcGVydGllcycpLFxuICAgIGNvbnRleHQ6IFZpZXdDb250ZXh0LkZlYXR1cmUsXG4gICAgcHJpb3JpdHk6IDUsXG4gICAgY2FuQWN0aXZhdGU6IFtBcHBsaWNhdGlvblByb3BlcnRpZXNHdWFyZF1cbiAgfSxcbiAge1xuICAgIHBhdGg6ICdwYWNrYWdlLWRldGFpbHMnLFxuICAgIGNvbXBvbmVudDogUGFja2FnZURldGFpbHNDb21wb25lbnQsXG4gICAgaWNvbjogJ2JpZy1wYXJjZWwnLFxuICAgIGxhYmVsOiBnZXR0ZXh0KCdFeHRlbnNpb24gcGFja2FnZScpLFxuICAgIGNvbnRleHQ6IFZpZXdDb250ZXh0LkV4dGVuc2lvbixcbiAgICBwcmlvcml0eTogMTAsXG4gICAgY2FuQWN0aXZhdGU6IFtQYWNrYWdlR3VhcmRdXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAncGFja2FnZS12ZXJzaW9ucycsXG4gICAgY29tcG9uZW50OiBQYWNrYWdlVmVyc2lvbnNDb21wb25lbnQsXG4gICAgaWNvbjogJ2M4eS1tb2R1bGVzJyxcbiAgICBsYWJlbDogZ2V0dGV4dCgnVmVyc2lvbnMnKSxcbiAgICBjb250ZXh0OiBWaWV3Q29udGV4dC5FeHRlbnNpb24sXG4gICAgcHJpb3JpdHk6IDEsXG4gICAgY2FuQWN0aXZhdGU6IFtQYWNrYWdlR3VhcmQsIFBhY2thZ2VWZXJzaW9uc0d1YXJkXVxuICB9LFxuICB7XG4gICAgcGF0aDogJ3Byb3BlcnRpZXMnLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25Qcm9wZXJ0aWVzQ29tcG9uZW50LFxuICAgIGljb246ICdsaXN0JyxcbiAgICBsYWJlbDogZ2V0dGV4dCgnUHJvcGVydGllcycpLFxuICAgIGNvbnRleHQ6IFZpZXdDb250ZXh0Lk1pY3Jvc2VydmljZSxcbiAgICBwcmlvcml0eTogNSxcbiAgICBjYW5BY3RpdmF0ZTogW0FwcGxpY2F0aW9uUHJvcGVydGllc0d1YXJkXVxuICB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBcHBsaWNhdGlvbkxpc3RDb21wb25lbnQsXG4gICAgTWljcm9zZXJ2aWNlTGlzdENvbXBvbmVudCxcbiAgICBBcHBsaWNhdGlvblByb3BlcnRpZXNDb21wb25lbnQsXG4gICAgQWRkTWljcm9zZXJ2aWNlQ29tcG9uZW50LFxuICAgIEFjdGl2aXR5TG9nQ29tcG9uZW50LFxuICAgIEFkZFdlYkFwcGxpY2F0aW9uQ29tcG9uZW50LFxuICAgIEFkZEV4dGVybmFsQXBwbGljYXRpb25Db21wb25lbnQsXG4gICAgSW5zdGFsbEZyb21QYWNrYWdlQ29tcG9uZW50LFxuICAgIFBhY2thZ2VzTGlzdENvbXBvbmVudCxcbiAgICBQYWNrYWdlRGV0YWlsc0NvbXBvbmVudCxcbiAgICBEZXBsb3lBcHBsaWNhdGlvbkNvbXBvbmVudCxcbiAgICBBZGRQYWNrYWdlQ29tcG9uZW50LFxuICAgIEZlYXR1cmVMaXN0Q29tcG9uZW50LFxuICAgIFBhY2thZ2VWZXJzaW9uc0NvbXBvbmVudCxcbiAgICBQYWNrYWdlVmVyc2lvbnNQbHVnaW5zQ29tcG9uZW50LFxuICAgIFBhY2thZ2VWZXJzaW9uc0FwcHNDb21wb25lbnQsXG4gICAgUGFja2FnZUNvbnRlbnRzQ29tcG9uZW50LFxuICAgIFBhY2thZ2VWZXJzaW9uc0xpc3RDb21wb25lbnQsXG4gICAgU3Vic2NyaXB0aW9uTW9kYWxDb21wb25lbnQsXG4gICAgVXBkYXRlQXBwbGljYXRpb25Nb2RhbENvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29yZU1vZHVsZSxcbiAgICBCc0Ryb3Bkb3duTW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoZWNvc3lzdGVtTWFpblJvdXRlcyksXG4gICAgUG9wb3Zlck1vZHVsZSxcbiAgICBBcHBsaWNhdGlvblBsdWdpbnNNb2R1bGUsXG4gICAgU2hhcmVkRWNvc3lzdGVtTW9kdWxlLFxuICAgIExpY2Vuc2VDb25maXJtTW9kdWxlLFxuICAgIEljb25TZWxlY3Rvck1vZHVsZSxcbiAgICBBMTF5TW9kdWxlLFxuICAgIEFyY2hpdmVkQ29uZmlybU1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbQXBwbGljYXRpb25Qcm9wZXJ0aWVzQ29tcG9uZW50LCBVcGRhdGVBcHBsaWNhdGlvbk1vZGFsQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgaG9va1RhYihFY29zeXN0ZW1UYWJzKSxcbiAgICBob29rTmF2aWdhdG9yKEVjb3N5c3RlbU5hdmlnYXRpb25GYWN0b3J5KSxcbiAgICBob29rUm91dGUoYXBwbGljYXRpb25EZXRhaWxzUm91dGVzKSxcbiAgICBQYWNrYWdlR3VhcmQsXG4gICAgUGFja2FnZVZlcnNpb25zR3VhcmQsXG4gICAgQXBwbGljYXRpb25Qcm9wZXJ0aWVzR3VhcmQsXG4gICAgaG9va1dpemFyZCh7XG4gICAgICB3aXphcmRJZDogRWNvc3lzdGVtV2l6YXJkcy5BUFBMSUNBVElPTl9VUExPQUQsXG4gICAgICBjb21wb25lbnQ6IEFkZFdlYkFwcGxpY2F0aW9uQ29tcG9uZW50LFxuICAgICAgbmFtZTogZ2V0dGV4dCgnVXBsb2FkIHdlYiBhcHBsaWNhdGlvbicpLFxuICAgICAgYzh5SWNvbjogJ3VwbG9hZCdcbiAgICB9KSxcbiAgICBob29rV2l6YXJkKHtcbiAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgIHdpemFyZElkOiBFY29zeXN0ZW1XaXphcmRzLlBBQ0tBR0VfVVBMT0FELFxuICAgICAgY29tcG9uZW50OiBBZGRQYWNrYWdlQ29tcG9uZW50XG4gICAgfSksXG4gICAgaG9va1dpemFyZCh7XG4gICAgICB3aXphcmRJZDogRWNvc3lzdGVtV2l6YXJkcy5BUFBMSUNBVElPTl9VUExPQUQsXG4gICAgICBjb21wb25lbnQ6IEFkZEV4dGVybmFsQXBwbGljYXRpb25Db21wb25lbnQsXG4gICAgICBuYW1lOiBnZXR0ZXh0KCdFeHRlcm5hbCBhcHBsaWNhdGlvbicpLFxuICAgICAgYzh5SWNvbjogJ2Nsb3VkLWxpbmsnXG4gICAgfSksXG4gICAgaG9va1dpemFyZCh7XG4gICAgICB3aXphcmRJZDogRWNvc3lzdGVtV2l6YXJkcy5CTFVFUFJJTlRfREVQTE9ZTUVOVCxcbiAgICAgIGNvbXBvbmVudDogRGVwbG95QXBwbGljYXRpb25Db21wb25lbnQsXG4gICAgICBuYW1lOiBnZXR0ZXh0KCdEZXBsb3kgcGFja2FnZScpLFxuICAgICAgYzh5SWNvbjogJ2JpZy1wYXJjZWwnXG4gICAgfSksXG4gICAgaG9va1dpemFyZCh7XG4gICAgICB3aXphcmRJZDogRWNvc3lzdGVtV2l6YXJkcy5BUFBMSUNBVElPTl9VUExPQUQsXG4gICAgICBjb21wb25lbnQ6IEluc3RhbGxGcm9tUGFja2FnZUNvbXBvbmVudCxcbiAgICAgIG5hbWU6IGdldHRleHQoJ0luc3RhbGwgZnJvbSBhdmFpbGFibGUgZXh0ZW5zaW9uIHBhY2thZ2VzJyksXG4gICAgICBjOHlJY29uOiAnYmlnLXBhcmNlbCdcbiAgICB9KSxcbiAgICBob29rV2l6YXJkKHtcbiAgICAgIG5hbWU6IHVuZGVmaW5lZCxcbiAgICAgIHdpemFyZElkOiBFY29zeXN0ZW1XaXphcmRzLk1JQ1JPU0VSVklDRV9VUExPQUQsXG4gICAgICBjb21wb25lbnQ6IEFkZE1pY3Jvc2VydmljZUNvbXBvbmVudFxuICAgIH0pXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRWNvc3lzdGVtTW9kdWxlIHt9XG4iXX0=