runlify 0.0.714 → 0.0.715
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/build/cli.js +20 -52
- package/build/commands/availableEnvironments.js +16 -51
- package/build/commands/generate.js +10 -46
- package/build/commands/init.js +73 -140
- package/build/commands/login.js +6 -42
- package/build/commands/logout.js +5 -41
- package/build/commands/pullEnvs.js +23 -70
- package/build/commands/readEnv.js +16 -45
- package/build/commands/regen.js +17 -48
- package/build/commands/runlify.js +6 -37
- package/build/commands/showToken.js +14 -45
- package/build/commands/start.js +57 -84
- package/build/commands/tryGetMeta.js +7 -43
- package/build/documentation/algoritmToDoc.js +4 -4
- package/build/documentation/algoritmToDoc.spec.js +5 -5
- package/build/documentation/curlExampleToText.js +15 -16
- package/build/documentation/curlExampleToText.spec.js +32 -16
- package/build/documentation/doc.js +1 -2
- package/build/documentation/docToFlatDoc.js +13 -17
- package/build/documentation/docToFlatDoc.spec.js +9 -9
- package/build/documentation/flatDoc.js +1 -2
- package/build/documentation/flatDocToText.js +4 -6
- package/build/documentation/flatDocToText.spec.js +20 -8
- package/build/documentation/templateDoc.js +1 -2
- package/build/documentation/templateDocToDoc.js +2 -2
- package/build/extensions/auth.js +64 -124
- package/build/extensions/cli-extension.js +3 -3
- package/build/extensions/cloudEnv.js +76 -120
- package/build/extensions/cloudMeta.js +35 -73
- package/build/extensions/globalConfig.js +37 -80
- package/build/extensions/localConfig.js +15 -46
- package/build/extensions/preventRunningIfUpdateAvailable.js +18 -52
- package/build/log.js +6 -6
- package/build/projectsGeneration/args.js +33 -53
- package/build/projectsGeneration/builders/AdditionalServiceBuilder.js +62 -96
- package/build/projectsGeneration/builders/BaseBuilder.js +30 -34
- package/build/projectsGeneration/builders/BaseSavableEntityBuilder.js +272 -312
- package/build/projectsGeneration/builders/CatalogBuilder.js +17 -46
- package/build/projectsGeneration/builders/ConfigVarBuilder.js +25 -36
- package/build/projectsGeneration/builders/DeploymentBuilder.js +18 -47
- package/build/projectsGeneration/builders/DocumentBuilder.js +26 -56
- package/build/projectsGeneration/builders/InfoRegistryBuilder.js +106 -140
- package/build/projectsGeneration/builders/PageBuilder.js +22 -51
- package/build/projectsGeneration/builders/PermissionBuilder.js +12 -41
- package/build/projectsGeneration/builders/ReportBuilder.js +23 -52
- package/build/projectsGeneration/builders/RestApiBuilder.js +20 -50
- package/build/projectsGeneration/builders/RestApiMethodBuilder.js +25 -54
- package/build/projectsGeneration/builders/RoleBuilder.js +12 -41
- package/build/projectsGeneration/builders/SumRegistryBuilder.js +100 -133
- package/build/projectsGeneration/builders/SystemMetaBuilder.js +281 -324
- package/build/projectsGeneration/builders/TelegramBotBuilder.js +18 -47
- package/build/projectsGeneration/builders/docs/DocumentationOfDocumentBuilder.js +8 -9
- package/build/projectsGeneration/builders/fields/BaseFieldBuilder.js +89 -105
- package/build/projectsGeneration/builders/fields/IdFieldBuilder.js +24 -54
- package/build/projectsGeneration/builders/fields/LinkFieldBuilder.js +33 -62
- package/build/projectsGeneration/builders/fields/ModelFieldBuilder.js +18 -47
- package/build/projectsGeneration/builders/fields/ScalarFieldBuilder.js +11 -42
- package/build/projectsGeneration/builders/fields/ViewLinkFieldBuilder.js +26 -55
- package/build/projectsGeneration/builders/integrationClients/IntegrationClientArgsModelBuilder.js +6 -23
- package/build/projectsGeneration/builders/integrationClients/IntegrationClientBaseModelBuilder.js +28 -57
- package/build/projectsGeneration/builders/integrationClients/IntegrationClientBuilder.js +25 -54
- package/build/projectsGeneration/builders/integrationClients/IntegrationClientQueryMethodsBuilder.js +18 -47
- package/build/projectsGeneration/builders/integrationClients/IntegrationClientReturnModelBuilder.js +12 -41
- package/build/projectsGeneration/builders/materialUiIcons.js +2 -2
- package/build/projectsGeneration/builders/mehods/ArgsModelBuilder.js +6 -23
- package/build/projectsGeneration/builders/mehods/BaseModelBuilder.js +30 -59
- package/build/projectsGeneration/builders/mehods/MethodBuilder.js +36 -66
- package/build/projectsGeneration/builders/mehods/ReturnModelBuilder.js +12 -41
- package/build/projectsGeneration/builders/menu/BaseMenuItemBuilder.js +24 -54
- package/build/projectsGeneration/builders/menu/ExternalEnvMenuItemBuilder.js +11 -40
- package/build/projectsGeneration/builders/menu/ExternalMenuItemBuilder.js +11 -40
- package/build/projectsGeneration/builders/menu/GroupMenuItemBuilder.js +31 -66
- package/build/projectsGeneration/builders/menu/InternalMenuItemBuilder.js +16 -45
- package/build/projectsGeneration/builders/tsFilterFields.js +11 -12
- package/build/projectsGeneration/builders/tsFilterFields.spec.js +29 -11
- package/build/projectsGeneration/builders/ui/FormsBuilder.js +9 -10
- package/build/projectsGeneration/builders/ui/ListFormBuilder.js +9 -10
- package/build/projectsGeneration/builders/ui/ListFormFilterBuilder.js +14 -16
- package/build/projectsGeneration/builders/ui/ListFormFilterFieldBuilder.js +8 -9
- package/build/projectsGeneration/builders/utils/accessFunctions.js +4 -4
- package/build/projectsGeneration/builders/validation/baseValudationToYupAssertions.js +4 -4
- package/build/projectsGeneration/builders/validation/bigintValudationToYupAssertions.js +5 -5
- package/build/projectsGeneration/builders/validation/bigintValudationToYupAssertions.spec.js +7 -7
- package/build/projectsGeneration/builders/validation/floatValudationToYupAssertions.js +4 -4
- package/build/projectsGeneration/builders/validation/floatValudationToYupAssertions.spec.js +6 -6
- package/build/projectsGeneration/builders/validation/intValudationToYupAssertions.js +9 -9
- package/build/projectsGeneration/builders/validation/intValudationToYupAssertions.spec.js +9 -9
- package/build/projectsGeneration/builders/validation/numberValudationToYupAssertions.js +10 -10
- package/build/projectsGeneration/builders/validation/stringValudationToYupAssertions.js +6 -6
- package/build/projectsGeneration/builders/validation/stringValudationToYupAssertions.spec.js +6 -6
- package/build/projectsGeneration/commonEntities/addAggregateTrackings.js +3 -3
- package/build/projectsGeneration/commonEntities/addAuditLogs.js +6 -6
- package/build/projectsGeneration/commonEntities/addAutogeneration.js +4 -4
- package/build/projectsGeneration/commonEntities/addCommonCommands.js +2 -2
- package/build/projectsGeneration/commonEntities/addCommonEntities.js +14 -14
- package/build/projectsGeneration/commonEntities/addConfigurationVariables.js +4 -4
- package/build/projectsGeneration/commonEntities/addLanguages.js +3 -3
- package/build/projectsGeneration/commonEntities/addManagers.js +6 -6
- package/build/projectsGeneration/commonEntities/addRefreshTokens.js +4 -4
- package/build/projectsGeneration/commonEntities/addRoles.js +8 -8
- package/build/projectsGeneration/commonEntities/addTenants.js +3 -3
- package/build/projectsGeneration/commonEntities/addUserSettings.js +7 -7
- package/build/projectsGeneration/commonEntities/addUsers.js +4 -4
- package/build/projectsGeneration/defaultCatalogs/addElasticSearch.js +12 -13
- package/build/projectsGeneration/defaultCatalogs/files.js +6 -6
- package/build/projectsGeneration/fileCleaners/back/graphServices/cleanGraphServices.js +24 -59
- package/build/projectsGeneration/fileCleaners/back/services/cleanServices.js +32 -67
- package/build/projectsGeneration/fileCleaners/cleanFiles.js +7 -38
- package/build/projectsGeneration/fileCleaners/ui/cleanUi.js +7 -39
- package/build/projectsGeneration/fileCleaners/ui/pages/cleanPages.js +24 -59
- package/build/projectsGeneration/fileCleaners/ui/widgets/cleanWidgets.js +10 -40
- package/build/projectsGeneration/fileCleaners/ui/widgets/cleanWidgetsByType.js +29 -62
- package/build/projectsGeneration/genGraphSchemesByLocalGenerator.js +26 -68
- package/build/projectsGeneration/generateAdditionalService.js +41 -98
- package/build/projectsGeneration/generateEntity.js +215 -346
- package/build/projectsGeneration/generateEnvironment.js +157 -265
- package/build/projectsGeneration/generateProject.js +422 -724
- package/build/projectsGeneration/generators/fieldTypeToTsType.js +4 -4
- package/build/projectsGeneration/generators/fileTemplates/back/Entities.js +16 -14
- package/build/projectsGeneration/generators/fileTemplates/back/devEnum.js +17 -13
- package/build/projectsGeneration/generators/fileTemplates/back/elastic/elastic.js +8 -44
- package/build/projectsGeneration/generators/fileTemplates/back/elastic/jobs.js +36 -26
- package/build/projectsGeneration/generators/fileTemplates/back/enum.js +17 -13
- package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/Chart.js +12 -8
- package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/templates/back.js +128 -12
- package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/templates/ingress.js +54 -8
- package/build/projectsGeneration/generators/fileTemplates/back/environment/chart/values.js +149 -13
- package/build/projectsGeneration/generators/fileTemplates/back/environment/ciNotify.js +19 -8
- package/build/projectsGeneration/generators/fileTemplates/back/environment/defaultEnv.js +5 -9
- package/build/projectsGeneration/generators/fileTemplates/back/environment/dockerfileTmplBack.js +38 -8
- package/build/projectsGeneration/generators/fileTemplates/back/environment/dockerfileTmplUI.js +42 -8
- package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocSpec.js +3 -6
- package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsConfiguration.js +27 -19
- package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsEntity.js +7 -5
- package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsIntegrationClient.js +44 -29
- package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/backDocsRestApi.js +45 -18
- package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/spec/findLinksToEntities.js +2 -4
- package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/spec/getAllSavableEntities.js +7 -11
- package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/spec/getProjectSpec.js +206 -216
- package/build/projectsGeneration/generators/fileTemplates/back/environment/docs/spec/titleMd.js +5 -5
- package/build/projectsGeneration/generators/fileTemplates/back/environment/gitlabCi.js +272 -37
- package/build/projectsGeneration/generators/fileTemplates/back/environment/src/clients/getPrisma.js +78 -9
- package/build/projectsGeneration/generators/fileTemplates/back/environment/src/clients/queue/getQueue.js +42 -9
- package/build/projectsGeneration/generators/fileTemplates/back/environment/src/index.js +36 -9
- package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/IntegrationClient.js +56 -5
- package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/IntegrationClients.js +12 -9
- package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/fieldsToTsTypeFields.js +4 -6
- package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/integrationClientConstrictors.js +13 -9
- package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/tsModelTmpl.js +6 -4
- package/build/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/types.js +15 -7
- package/build/projectsGeneration/generators/fileTemplates/back/graph/additionalResolvers.js +9 -2
- package/build/projectsGeneration/generators/fileTemplates/back/graph/additionalService/permissionToGraphql.js +16 -9
- package/build/projectsGeneration/generators/fileTemplates/back/graph/additionalService/resolvers.js +32 -12
- package/build/projectsGeneration/generators/fileTemplates/back/graph/additionalService/typeDefs.js +18 -11
- package/build/projectsGeneration/generators/fileTemplates/back/graph/additionalTypes.js +7 -2
- package/build/projectsGeneration/generators/fileTemplates/back/graph/entityAdditionalPermissionToGraphqlTmpl.js +20 -9
- package/build/projectsGeneration/generators/fileTemplates/back/graph/entityBasePermissionToGraphql.js +22 -10
- package/build/projectsGeneration/generators/fileTemplates/back/graph/entityPermissionToGraphqlTmpl.js +18 -9
- package/build/projectsGeneration/generators/fileTemplates/back/graph/help/baseResolvers.js +17 -2
- package/build/projectsGeneration/generators/fileTemplates/back/graph/help/baseTypeDefs.js +15 -5
- package/build/projectsGeneration/generators/fileTemplates/back/graph/help/permissionsToGraphql.js +11 -2
- package/build/projectsGeneration/generators/fileTemplates/back/graph/meta/resolvers.js +26 -2
- package/build/projectsGeneration/generators/fileTemplates/back/graph/meta/typeDefs.js +17 -2
- package/build/projectsGeneration/generators/fileTemplates/back/graph/permissionsToGraphql.js +52 -13
- package/build/projectsGeneration/generators/fileTemplates/back/graph/resolvers.js +52 -13
- package/build/projectsGeneration/generators/fileTemplates/back/graph/types.js +18 -11
- package/build/projectsGeneration/generators/fileTemplates/back/initCommon.js +30 -16
- package/build/projectsGeneration/generators/fileTemplates/back/initDev.js +27 -15
- package/build/projectsGeneration/generators/fileTemplates/back/initEntities.js +24 -10
- package/build/projectsGeneration/generators/fileTemplates/back/root/config/config.js +30 -16
- package/build/projectsGeneration/generators/fileTemplates/back/root/restRouter.js +21 -2
- package/build/projectsGeneration/generators/fileTemplates/back/services/AdditionalServices.js +7 -2
- package/build/projectsGeneration/generators/fileTemplates/back/services/BaseServices.js +18 -22
- package/build/projectsGeneration/generators/fileTemplates/back/services/HelpService/HelpService.js +30 -7
- package/build/projectsGeneration/generators/fileTemplates/back/services/additionalService/types.js +18 -13
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/additionalClass.js +7 -5
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/class.js +126 -49
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/config.js +59 -40
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/additionalOperationsOnCreate.js +13 -5
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/additionalOperationsOnDelete.js +14 -6
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/additionalOperationsOnUpdate.js +14 -6
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/afterCreate.js +15 -6
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/afterDelete.js +15 -6
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/afterUpdate.js +15 -6
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/beforeCreate.js +15 -6
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/beforeDelete.js +15 -6
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/beforeUpdate.js +14 -6
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/beforeUpsert.js +30 -7
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/changeListFilter.js +14 -6
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/hooks/tenantIdRequiredHooks.js +81 -8
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/initBuiltInHooks.js +22 -10
- package/build/projectsGeneration/generators/fileTemplates/back/services/entity/initUserHooks.js +31 -6
- package/build/projectsGeneration/generators/fileTemplates/back/services/serviceConstrictors.js +26 -14
- package/build/projectsGeneration/generators/fileTemplates/ui/Dashboard.js +14 -2
- package/build/projectsGeneration/generators/fileTemplates/ui/MetaPage.js +120 -3
- package/build/projectsGeneration/generators/fileTemplates/ui/ResourcesPage.js +45 -10
- package/build/projectsGeneration/generators/fileTemplates/ui/additionalRoutes.js +5 -2
- package/build/projectsGeneration/generators/fileTemplates/ui/entityMapping.js +14 -12
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/Chart.js +12 -8
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/front.js +118 -13
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/ingress.js +51 -8
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/chart/values.js +79 -8
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/ciNotify.js +19 -8
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/docs/adminAppDocsConfiguration.js +27 -21
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/gitlabCi.js +179 -26
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/App.js +107 -10
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/contexts/SpacesContext.js +67 -9
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/dataProvider/getAdditionalMethods.js +55 -18
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/dataProvider/index.js +93 -13
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/i18nProvider/index.js +51 -19
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/layout/AppBar.js +60 -9
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/layout/Menu.js +52 -9
- package/build/projectsGeneration/generators/fileTemplates/ui/environment/src/routes.js +38 -9
- package/build/projectsGeneration/generators/fileTemplates/ui/functions/Functions.js +60 -7
- package/build/projectsGeneration/generators/fileTemplates/ui/getAdditionalMenu.js +11 -2
- package/build/projectsGeneration/generators/fileTemplates/ui/getDefaultMenu.js +136 -23
- package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiLangCatalogsTmpl.js +3 -5
- package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiLangDocsTmpl.js +3 -5
- package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiLangInfoRegistriesTmpl.js +3 -5
- package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiLangReportsTmpl.js +3 -3
- package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiLangSumRegistriesTmpl.js +3 -5
- package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiTranslationsForServicesOfSavablesTmpl.js +33 -21
- package/build/projectsGeneration/generators/fileTemplates/ui/i18n/lang/uiTranslationsLangTmpl.js +23 -15
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityCreate/DefaultEntityCreate.js +101 -62
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityCreate/index.js +15 -5
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityEdit/DefaultEntityEdit.js +176 -77
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityEdit/index.js +15 -5
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityList/DefaultEntityFilter.js +68 -50
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityList/DefaultEntityList.js +83 -47
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityList/EntityFilter.js +12 -5
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityList/index.js +15 -5
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/DefaultActions.js +54 -19
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/DefaultEntityShow.js +53 -30
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/DefaultMainTab.js +45 -32
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/DependencyTab.js +57 -41
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/MainTab.js +3 -2
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/additionalTabs.js +7 -3
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/EntityShow/index.js +15 -5
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/Icon.js +8 -8
- package/build/projectsGeneration/generators/fileTemplates/ui/pages/getEntityValidation.js +45 -30
- package/build/projectsGeneration/generators/fileTemplates/ui/resources.js +46 -12
- package/build/projectsGeneration/generators/fileTemplates/ui/widgets/count/CountWidget.js +50 -9
- package/build/projectsGeneration/generators/fileTemplates/ui/widgets/list/ListWidget.js +109 -14
- package/build/projectsGeneration/generators/graph/fieldTypeToGraphScalar.js +8 -9
- package/build/projectsGeneration/generators/graph/fieldTypeToGraphScalarStringified.js +4 -6
- package/build/projectsGeneration/generators/graph/fields/genGraphField.js +8 -9
- package/build/projectsGeneration/generators/graph/fields/genGraphIdField.js +7 -8
- package/build/projectsGeneration/generators/graph/fields/genGraphIdFieldType.js +6 -6
- package/build/projectsGeneration/generators/graph/fields/genGraphLinkField.js +10 -11
- package/build/projectsGeneration/generators/graph/fields/genGraphModelField.js +10 -11
- package/build/projectsGeneration/generators/graph/fields/genGraphScalarField.js +10 -11
- package/build/projectsGeneration/generators/graph/filters/genGraphField.js +7 -7
- package/build/projectsGeneration/generators/graph/filters/genGraphIdFilter.js +12 -14
- package/build/projectsGeneration/generators/graph/filters/genGraphLinkFilter.js +12 -24
- package/build/projectsGeneration/generators/graph/filters/genGraphScalarFilter.js +25 -37
- package/build/projectsGeneration/generators/graph/genGraphAdditionalServiceSchema.js +35 -35
- package/build/projectsGeneration/generators/graph/genGraphAdditionalServiceSchema.spec.js +148 -65
- package/build/projectsGeneration/generators/graph/genGraphCrudSchema.js +38 -50
- package/build/projectsGeneration/generators/graph/genGraphCrudSchema.spec.js +393 -34
- package/build/projectsGeneration/generators/graph/genGraphFilterType.js +11 -22
- package/build/projectsGeneration/generators/graph/genGraphFilterType.spec.js +75 -13
- package/build/projectsGeneration/generators/graph/genGraphModelType.js +15 -27
- package/build/projectsGeneration/generators/graph/genGraphType.js +7 -18
- package/build/projectsGeneration/generators/graph/genGraphType.spec.js +27 -12
- package/build/projectsGeneration/generators/graph/printGraphType.js +5 -7
- package/build/projectsGeneration/generators/graph/printGraphType.spec.js +11 -6
- package/build/projectsGeneration/generators/graph/utils/mapUtils.js +11 -30
- package/build/projectsGeneration/generators/graph/utils/models/getModelInitOrder.js +14 -28
- package/build/projectsGeneration/generators/graph/utils/models/getModelInitOrder.spec.js +18 -18
- package/build/projectsGeneration/generators/graph/utils/models/getUniqModels.js +3 -3
- package/build/projectsGeneration/generators/graph/utils/models/getUniqModels.spec.js +17 -28
- package/build/projectsGeneration/generators/graph/utils/models/getUsedModels.js +14 -19
- package/build/projectsGeneration/generators/graph/utils/models/getUsedModels.spec.js +40 -51
- package/build/projectsGeneration/generators/graph/utils/serviceModels/augmentInputModelsByUsedAsInputGeneralModelsAndPostfixThemByInput.js +17 -26
- package/build/projectsGeneration/generators/graph/utils/serviceModels/augmentInputModelsByUsedAsInputGeneralModelsAndPostfixThemByInput.spec.js +68 -68
- package/build/projectsGeneration/generators/graph/utils/serviceModels/getGraphTypesFromInputOutputModels.js +21 -42
- package/build/projectsGeneration/generators/graph/utils/serviceModels/getGraphTypesFromInputOutputModels.spec.js +85 -62
- package/build/projectsGeneration/generators/graph/utils/serviceModels/getPreparedModelsForGraph.js +20 -31
- package/build/projectsGeneration/generators/graph/utils/serviceModels/getPreparedModelsForGraph.spec.js +48 -49
- package/build/projectsGeneration/generators/graph/utils/serviceModels/getServiceModels.js +7 -7
- package/build/projectsGeneration/generators/graph/utils/serviceModels/getUsedGraphModelsForService.js +6 -6
- package/build/projectsGeneration/generators/graph/utils/serviceModels/getUsedGraphModelsForService.spec.js +13 -13
- package/build/projectsGeneration/generators/graph/utils/serviceModels/getUsedModelsForService.js +18 -21
- package/build/projectsGeneration/generators/graph/utils/serviceModels/getUsedModelsForService.spec.js +153 -153
- package/build/projectsGeneration/generators/graph/utils/serviceModels/prefixServiceModelsWithServiceName.js +25 -26
- package/build/projectsGeneration/generators/graph/utils/serviceModels/prefixServiceModelsWithServiceName.spec.js +69 -69
- package/build/projectsGeneration/generators/graph/utils/serviceModels/removeDublicatesFromServiceModels.js +4 -4
- package/build/projectsGeneration/generators/graph/utils/serviceModels/removeUnusedInOutputGeneralModels.js +6 -17
- package/build/projectsGeneration/generators/graph/utils/serviceModels/removeVoidsInServiceModels.js +5 -5
- package/build/projectsGeneration/generators/prisma/fieldIdTypeToPrismaType.js +3 -3
- package/build/projectsGeneration/generators/prisma/fieldTypeToPrismaType.js +3 -3
- package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaDefault.js +3 -3
- package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaDefault.spec.js +20 -20
- package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaField.js +7 -8
- package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaFieldFromExternalEntity.js +6 -7
- package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaFieldFromExternalEntity.spec.js +7 -19
- package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaIdField.js +10 -11
- package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaIdField.spec.js +13 -13
- package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaLinkFields.js +15 -18
- package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaLinkFields.spec.js +27 -28
- package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaScalarField.js +12 -14
- package/build/projectsGeneration/generators/prisma/scheme/fields/genPrismaScalarField.spec.js +29 -30
- package/build/projectsGeneration/generators/prisma/scheme/genPrismaEntity.js +23 -32
- package/build/projectsGeneration/generators/prisma/scheme/genPrismaEntity.spec.js +104 -47
- package/build/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntities.js +5 -7
- package/build/projectsGeneration/generators/prisma/scheme/genPrismaSchemaForEntitiesWithClientAdnDb.js +19 -10
- package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNameToEditScalar.js +3 -3
- package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNamesToEditField.js +7 -7
- package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNamesToEditIdField.js +3 -3
- package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNamesToEditLinkField.js +5 -5
- package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNamesToEditLinkField.spec.js +10 -10
- package/build/projectsGeneration/generators/ui/componentNames/edit/getCompNamesToEditScalarField.js +3 -3
- package/build/projectsGeneration/generators/ui/componentNames/show/getCompNameToShowScalar.js +3 -3
- package/build/projectsGeneration/generators/ui/componentNames/show/getCompNamesToShowField.js +7 -7
- package/build/projectsGeneration/generators/ui/componentNames/show/getCompNamesToShowIdField.js +3 -3
- package/build/projectsGeneration/generators/ui/componentNames/show/getCompNamesToShowLinkField.js +2 -14
- package/build/projectsGeneration/generators/ui/componentNames/show/getCompNamesToShowLinkField.spec.js +17 -17
- package/build/projectsGeneration/generators/ui/componentNames/show/getCompNamesToShowScalarField.js +3 -3
- package/build/projectsGeneration/generators/ui/getLinkShowComponent.spec.js +18 -18
- package/build/projectsGeneration/generators/ui/getScalarShowComponent.spec.js +11 -11
- package/build/projectsGeneration/generators/ui/getShowComponent.js +19 -20
- package/build/projectsGeneration/links/getLinksFromExternalEntities.js +2 -4
- package/build/projectsGeneration/links/getLinksFromExternalEntities.spec.js +11 -22
- package/build/projectsGeneration/links/getLinksOfEntities.js +6 -8
- package/build/projectsGeneration/links/getLinksOfEntities.spec.js +20 -31
- package/build/projectsGeneration/links/getLinksToExternalEntities.js +2 -4
- package/build/projectsGeneration/links/getLinksToExternalEntities.spec.js +11 -22
- package/build/projectsGeneration/metaUtils.js +17 -23
- package/build/projectsGeneration/modelsGeneration.serialization.spec.js +8 -8
- package/build/projectsGeneration/modules/addEmailModuleEntities.js +11 -11
- package/build/projectsGeneration/types.js +6 -6
- package/build/projectsGeneration/utils.js +24 -61
- package/build/refs/yup.spec.js +7 -7
- package/build/types/projectsGeneration/builders/InfoRegistryBuilder.d.ts +0 -4
- package/build/types/projectsGeneration/builders/SumRegistryBuilder.d.ts +0 -3
- package/build/types/projectsGeneration/fileCleaners/cleanFiles.d.ts +1 -1
- package/build/types/projectsGeneration/generateProject.d.ts +0 -5
- package/build/types/projectsGeneration/generators/fileTemplates/back/environment/chart/templates/back.d.ts +1 -1
- package/build/types/projectsGeneration/generators/fileTemplates/back/environment/chart/templates/ingress.d.ts +1 -1
- package/build/types/projectsGeneration/generators/fileTemplates/back/environment/dockerfileTmplBack.d.ts +1 -1
- package/build/types/projectsGeneration/generators/fileTemplates/back/environment/dockerfileTmplUI.d.ts +1 -1
- package/build/types/projectsGeneration/generators/fileTemplates/back/environment/src/integrationClients/IntegrationClient.d.ts +1 -1
- package/build/types/projectsGeneration/generators/fileTemplates/back/services/entity/config.d.ts +1 -1
- package/build/types/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/front.d.ts +1 -1
- package/build/types/projectsGeneration/generators/fileTemplates/ui/environment/chart/templates/ingress.d.ts +1 -1
- package/build/types/projectsGeneration/generators/fileTemplates/ui/environment/src/App.d.ts +1 -1
- package/build/utils/TermSignals.js +35 -43
- package/build/utils/cases.js +12 -18
- package/build/utils/getPkgManager.js +4 -4
- package/package.json +12 -24
- package/build/projectsGeneration/fileCleaners/back/cleanBack.js +0 -50
- package/build/types/projectsGeneration/fileCleaners/back/cleanBack.d.ts +0 -3
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
3
|
if (k2 === undefined) k2 = k;
|
|
15
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -33,43 +22,34 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
33
22
|
__setModuleDefault(result, mod);
|
|
34
23
|
return result;
|
|
35
24
|
};
|
|
36
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
37
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
38
|
-
if (ar || !(i in from)) {
|
|
39
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
40
|
-
ar[i] = from[i];
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
44
|
-
};
|
|
45
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
46
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
47
27
|
};
|
|
48
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
29
|
exports.defaultConfigVar = void 0;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
30
|
+
const types_1 = require("../types");
|
|
31
|
+
const CatalogBuilder_1 = __importDefault(require("./CatalogBuilder"));
|
|
32
|
+
const DocumentBuilder_1 = __importDefault(require("./DocumentBuilder"));
|
|
33
|
+
const InfoRegistryBuilder_1 = require("./InfoRegistryBuilder");
|
|
34
|
+
const SumRegistryBuilder_1 = __importDefault(require("./SumRegistryBuilder"));
|
|
35
|
+
const defaultCatalogs_1 = require("../defaultCatalogs");
|
|
36
|
+
const R = __importStar(require("ramda"));
|
|
37
|
+
const ReportBuilder_1 = __importDefault(require("./ReportBuilder"));
|
|
38
|
+
const RestApiBuilder_1 = __importDefault(require("./RestApiBuilder"));
|
|
39
|
+
const DeploymentBuilder_1 = __importDefault(require("./DeploymentBuilder"));
|
|
40
|
+
const RoleBuilder_1 = __importDefault(require("./RoleBuilder"));
|
|
41
|
+
const TelegramBotBuilder_1 = __importDefault(require("./TelegramBotBuilder"));
|
|
42
|
+
const ConfigVarBuilder_1 = require("./ConfigVarBuilder");
|
|
43
|
+
const log_1 = __importDefault(require("../../log"));
|
|
44
|
+
const IntegrationClientBuilder_1 = __importDefault(require("./integrationClients/IntegrationClientBuilder"));
|
|
45
|
+
const ExternalMenuItemBuilder_1 = __importDefault(require("./menu/ExternalMenuItemBuilder"));
|
|
46
|
+
const ExternalEnvMenuItemBuilder_1 = __importDefault(require("./menu/ExternalEnvMenuItemBuilder"));
|
|
47
|
+
const InternalMenuItemBuilder_1 = __importDefault(require("./menu/InternalMenuItemBuilder"));
|
|
48
|
+
const GroupMenuItemBuilder_1 = __importDefault(require("./menu/GroupMenuItemBuilder"));
|
|
49
|
+
const PageBuilder_1 = __importDefault(require("./PageBuilder"));
|
|
50
|
+
const AdditionalServiceBuilder_1 = __importDefault(require("./AdditionalServiceBuilder"));
|
|
51
|
+
const BaseModelBuilder_1 = __importDefault(require("./mehods/BaseModelBuilder"));
|
|
52
|
+
const MethodBuilder_1 = __importDefault(require("./mehods/MethodBuilder"));
|
|
73
53
|
exports.defaultConfigVar = {
|
|
74
54
|
needFor: '',
|
|
75
55
|
default: '',
|
|
@@ -78,13 +58,11 @@ exports.defaultConfigVar = {
|
|
|
78
58
|
hidden: false,
|
|
79
59
|
editable: true,
|
|
80
60
|
};
|
|
81
|
-
|
|
61
|
+
class SystemMetaBuilder {
|
|
82
62
|
// requests: MemoryAndCpu = { memory: '128Mi', cpu: '0.15' }
|
|
83
63
|
// limits: MemoryAndCpu = { memory: '256Mi', cpu: '1' }
|
|
84
64
|
// space = '';
|
|
85
|
-
|
|
86
|
-
if (defOpts === void 0) { defOpts = types_1.defaultBootstrapEntityOptions; }
|
|
87
|
-
if (defaultLanguage === void 0) { defaultLanguage = 'ru'; }
|
|
65
|
+
constructor(prefix, defOpts = types_1.defaultBootstrapEntityOptions, defaultLanguage = 'ru') {
|
|
88
66
|
this.catalogs = [];
|
|
89
67
|
this.reports = [];
|
|
90
68
|
this.documents = [];
|
|
@@ -242,18 +220,18 @@ var SystemMetaBuilder = /** @class */ (function () {
|
|
|
242
220
|
// .addWorker('emails', 'Отправка почты')
|
|
243
221
|
// .setNeedFor('Для отправки почты');
|
|
244
222
|
}
|
|
245
|
-
|
|
223
|
+
setName(name) {
|
|
246
224
|
this.name = name;
|
|
247
225
|
return this;
|
|
248
|
-
}
|
|
249
|
-
|
|
226
|
+
}
|
|
227
|
+
setNeedFor(needFor) {
|
|
250
228
|
this.needFor = needFor;
|
|
251
229
|
return this;
|
|
252
|
-
}
|
|
253
|
-
|
|
230
|
+
}
|
|
231
|
+
setPrefix(prefix) {
|
|
254
232
|
this.prefix = prefix;
|
|
255
233
|
return this;
|
|
256
|
-
}
|
|
234
|
+
}
|
|
257
235
|
// | 'string'
|
|
258
236
|
// | 'int'
|
|
259
237
|
// | 'bigint'
|
|
@@ -261,354 +239,351 @@ var SystemMetaBuilder = /** @class */ (function () {
|
|
|
261
239
|
// | 'bool'
|
|
262
240
|
// | 'datetime'
|
|
263
241
|
// | 'date'
|
|
264
|
-
|
|
265
|
-
if (
|
|
266
|
-
|
|
267
|
-
if (editable === void 0) { editable = true; }
|
|
268
|
-
if (this.configVars.some(function (v) { return v.name === name; })) {
|
|
269
|
-
throw new Error("\"".concat(name, "\" config var already exists"));
|
|
242
|
+
addConfigVar(name, type, required, def, needFor, scopes = ['back', 'worker', 'telegramBot'], hidden = false, editable = true) {
|
|
243
|
+
if (this.configVars.some((v) => v.name === name)) {
|
|
244
|
+
throw new Error(`"${name}" config var already exists`);
|
|
270
245
|
}
|
|
271
|
-
|
|
246
|
+
const configVar = new ConfigVarBuilder_1.ConfigVarBuilder(name, type, required, def, needFor, scopes, hidden, editable);
|
|
272
247
|
this.configVars.push(configVar);
|
|
273
248
|
return configVar;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
if (!this.configVars.some(
|
|
277
|
-
throw new Error(
|
|
249
|
+
}
|
|
250
|
+
delConfigVar(name) {
|
|
251
|
+
if (!this.configVars.some((v) => v.name === name)) {
|
|
252
|
+
throw new Error(`There is no "${name}" config var`);
|
|
278
253
|
}
|
|
279
|
-
this.configVars = this.configVars.filter(
|
|
254
|
+
this.configVars = this.configVars.filter(v => v.name !== name);
|
|
280
255
|
return this;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
return this.configVars.find(
|
|
284
|
-
}
|
|
285
|
-
|
|
286
|
-
|
|
256
|
+
}
|
|
257
|
+
getConfigVar(name) {
|
|
258
|
+
return this.configVars.find(el => el.name === name);
|
|
259
|
+
}
|
|
260
|
+
getConfigVarRequired(name) {
|
|
261
|
+
const configVars = this.configVars.find(el => el.name === name);
|
|
287
262
|
if (!configVars) {
|
|
288
|
-
throw new Error(
|
|
263
|
+
throw new Error(`There is no "${name}" config var`);
|
|
289
264
|
}
|
|
290
265
|
return configVars;
|
|
291
|
-
}
|
|
292
|
-
|
|
266
|
+
}
|
|
267
|
+
setConfigVarDefaultValue(name, def) {
|
|
293
268
|
log_1.default.warn('setConfigVarDefaultValue is legacy, legacy, use system.getConfigVarRequired(name).setDefValue(def) instead');
|
|
294
|
-
|
|
269
|
+
const configVars = this.getConfigVarRequired(name);
|
|
295
270
|
configVars.setDefValue(def);
|
|
296
271
|
return this;
|
|
297
|
-
}
|
|
298
|
-
|
|
272
|
+
}
|
|
273
|
+
setDefaultValueForConfigVar(name, def) {
|
|
299
274
|
log_1.default.warn('setDefaultValueForConfigVar is legacy, legacy, use system.getConfigVarRequired(name).setDefValue(def) instead');
|
|
300
275
|
return this.setConfigVarDefaultValue(name, def);
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
if (!this.languages.map(
|
|
304
|
-
|
|
305
|
-
return id;
|
|
306
|
-
}).includes(id)) {
|
|
307
|
-
this.languages.push({ id: id, title: title !== null && title !== void 0 ? title : id });
|
|
276
|
+
}
|
|
277
|
+
addLanguage(id, title) {
|
|
278
|
+
if (!this.languages.map(({ id }) => id).includes(id)) {
|
|
279
|
+
this.languages.push({ id, title: title !== null && title !== void 0 ? title : id });
|
|
308
280
|
}
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
this.languages = this.languages.filter(
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
if (!this.languages.map(
|
|
315
|
-
|
|
316
|
-
return id;
|
|
317
|
-
}).includes(id)) {
|
|
318
|
-
throw new Error("There is no \"".concat(id, "\" langiage"));
|
|
281
|
+
}
|
|
282
|
+
deleteLanguage(id) {
|
|
283
|
+
this.languages = this.languages.filter(lang => lang.id !== id);
|
|
284
|
+
}
|
|
285
|
+
setDefailtLanguage(id) {
|
|
286
|
+
if (!this.languages.map(({ id }) => id).includes(id)) {
|
|
287
|
+
throw new Error(`There is no "${id}" langiage`);
|
|
319
288
|
}
|
|
320
289
|
this.defaultLanguage = id;
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
if (this.deployEnvironments.some(
|
|
324
|
-
throw new Error(
|
|
290
|
+
}
|
|
291
|
+
addDeployEnvironment(deployEnvironment) {
|
|
292
|
+
if (this.deployEnvironments.some((f) => f.name === deployEnvironment.name)) {
|
|
293
|
+
throw new Error(`There is already deployEnvironment with name "${deployEnvironment.name}"`);
|
|
325
294
|
}
|
|
326
295
|
this.deployEnvironments.push(deployEnvironment);
|
|
327
296
|
// if (this.deployEnvironments.filter((f) => f.main)?.length > 1) {
|
|
328
297
|
// throw new Error(`Main deployEnvironment shuold be only one"`)
|
|
329
298
|
// }
|
|
330
299
|
return this;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
if (!this.deployEnvironments.some(
|
|
334
|
-
throw new Error(
|
|
300
|
+
}
|
|
301
|
+
editDeployEnvironment(name, deployEnvironment) {
|
|
302
|
+
if (!this.deployEnvironments.some((f) => f.name === name)) {
|
|
303
|
+
throw new Error(`There is no "${name}" deploy environment (you may use ${this.deployEnvironments.map(e => e.name).join(', ')})`);
|
|
335
304
|
}
|
|
336
|
-
this.deployEnvironments = this.deployEnvironments.map(
|
|
305
|
+
this.deployEnvironments = this.deployEnvironments.map(env => env.name === name ? Object.assign(Object.assign(Object.assign({}, env), deployEnvironment), { name }) : env);
|
|
337
306
|
// if (this.deployEnvironments.filter((f) => f.main)?.length > 1) {
|
|
338
307
|
// throw new Error(`Main deployEnvironment shuold be only one"`)
|
|
339
308
|
// }
|
|
340
309
|
return this;
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
if (!this.deployEnvironments.some(
|
|
344
|
-
throw new Error(
|
|
310
|
+
}
|
|
311
|
+
delDeployEnvironment(name) {
|
|
312
|
+
if (!this.deployEnvironments.some((f) => f.name === name)) {
|
|
313
|
+
throw new Error(`There is no "${name}" deploy environment (you may use ${this.deployEnvironments.map(e => e.name).join(', ')})`);
|
|
345
314
|
}
|
|
346
|
-
this.deployEnvironments = this.deployEnvironments.filter(
|
|
315
|
+
this.deployEnvironments = this.deployEnvironments.filter(v => v.name !== name);
|
|
347
316
|
return this;
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
if (this.telegramBots.some(
|
|
351
|
-
throw new Error(
|
|
317
|
+
}
|
|
318
|
+
addTelegramBot(name, title) {
|
|
319
|
+
if (this.telegramBots.some((f) => f.name === name)) {
|
|
320
|
+
throw new Error(`There is already telegramBot with name "${name}"`);
|
|
352
321
|
}
|
|
353
|
-
|
|
322
|
+
const telegramBot = new TelegramBotBuilder_1.default(name, this.defaultLanguage, title);
|
|
354
323
|
this.telegramBots.push(telegramBot);
|
|
355
324
|
return telegramBot;
|
|
356
|
-
}
|
|
325
|
+
}
|
|
357
326
|
// catalogs
|
|
358
|
-
|
|
327
|
+
getCatalogs() {
|
|
359
328
|
return this.catalogs;
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
if (options === void 0) { options = this ? this.defOpts : {}; }
|
|
329
|
+
}
|
|
330
|
+
addCatalog(name, title, options = this ? this.defOpts : {}) {
|
|
363
331
|
this.assureNoNamedEntityAlreadyDefined(name);
|
|
364
|
-
|
|
365
|
-
this.catalogs.push({ entity: catalog, options
|
|
332
|
+
const catalog = new CatalogBuilder_1.default(name, this.defaultLanguage, title);
|
|
333
|
+
this.catalogs.push({ entity: catalog, options });
|
|
366
334
|
return catalog;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
|
|
335
|
+
}
|
|
336
|
+
getCatalogByName(name) {
|
|
337
|
+
const catalog = this.catalogs.find((c) => c.entity.name === name);
|
|
370
338
|
if (!catalog) {
|
|
371
|
-
throw new Error(
|
|
339
|
+
throw new Error(`There is no "${name}" catalog`);
|
|
372
340
|
}
|
|
373
341
|
return catalog.entity;
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
|
|
342
|
+
}
|
|
343
|
+
getInfoRegistryByName(name) {
|
|
344
|
+
const infoRegistry = this.infoRegistries.find((c) => c.entity.name === name);
|
|
377
345
|
if (!infoRegistry) {
|
|
378
|
-
throw new Error(
|
|
346
|
+
throw new Error(`There is no "${name}" infoRegistry`);
|
|
379
347
|
}
|
|
380
348
|
return infoRegistry.entity;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
if (
|
|
384
|
-
|
|
385
|
-
throw new Error("There is already rest api with name \"".concat(name, "\""));
|
|
349
|
+
}
|
|
350
|
+
addRestApi(name, path, title, auth = true) {
|
|
351
|
+
if (this.restApis.some((f) => f.name === name)) {
|
|
352
|
+
throw new Error(`There is already rest api with name "${name}"`);
|
|
386
353
|
}
|
|
387
|
-
if (this.restApis.some(
|
|
388
|
-
throw new Error(
|
|
354
|
+
if (this.restApis.some((f) => f.path === path)) {
|
|
355
|
+
throw new Error(`There is already rest api with path "${path}"`);
|
|
389
356
|
}
|
|
390
|
-
|
|
357
|
+
const restApi = new RestApiBuilder_1.default(name, path, this.defaultLanguage, title, auth);
|
|
391
358
|
this.restApis.push(restApi);
|
|
392
359
|
return restApi;
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
if (this.integrationClients.some(
|
|
396
|
-
throw new Error(
|
|
360
|
+
}
|
|
361
|
+
addIntegrationClient(name, title) {
|
|
362
|
+
if (this.integrationClients.some((f) => f.name === name)) {
|
|
363
|
+
throw new Error(`There is already integration client with name "${name}". Entity ${this.name}`);
|
|
397
364
|
}
|
|
398
|
-
|
|
365
|
+
const integrationClient = new IntegrationClientBuilder_1.default(name, this.defaultLanguage, title);
|
|
399
366
|
this.integrationClients.push(integrationClient);
|
|
400
367
|
return integrationClient;
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
if (this.additionalServices.some(
|
|
404
|
-
throw new Error(
|
|
368
|
+
}
|
|
369
|
+
addAdditionalService(name, title) {
|
|
370
|
+
if (this.additionalServices.some((f) => f.name === name)) {
|
|
371
|
+
throw new Error(`There is already additional service with name "${name}". Entity ${this.name}`);
|
|
405
372
|
}
|
|
406
|
-
|
|
373
|
+
const additionalService = new AdditionalServiceBuilder_1.default(name, this.defaultLanguage, title);
|
|
407
374
|
this.additionalServices.push(additionalService);
|
|
408
375
|
return additionalService;
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
if (this.workers.some(
|
|
412
|
-
throw new Error(
|
|
376
|
+
}
|
|
377
|
+
addWorker(name, title) {
|
|
378
|
+
if (this.workers.some((f) => f.name === name)) {
|
|
379
|
+
throw new Error(`There is already rest api with name "${name}"`);
|
|
413
380
|
}
|
|
414
|
-
|
|
381
|
+
const worker = new DeploymentBuilder_1.default(name, this.defaultLanguage, title);
|
|
415
382
|
this.workers.push(worker);
|
|
416
383
|
return worker;
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
if (options === void 0) { options = this ? this.defOpts : {}; }
|
|
384
|
+
}
|
|
385
|
+
addManyToManyRelation(name, title, options = this ? this.defOpts : {}) {
|
|
420
386
|
this.assureNoNamedEntityAlreadyDefined(name);
|
|
421
|
-
|
|
422
|
-
this.catalogs.push({ entity: catalog, options
|
|
387
|
+
const catalog = new CatalogBuilder_1.default(name, this.defaultLanguage, title);
|
|
388
|
+
this.catalogs.push({ entity: catalog, options });
|
|
423
389
|
return catalog;
|
|
424
|
-
}
|
|
425
|
-
|
|
390
|
+
}
|
|
391
|
+
addRole(name, title) {
|
|
426
392
|
this.assureNoNamedEntityAlreadyDefined(name);
|
|
427
|
-
|
|
393
|
+
const role = new RoleBuilder_1.default(name, this.defaultLanguage, title);
|
|
428
394
|
this.roles.push(role);
|
|
429
395
|
return role;
|
|
430
|
-
}
|
|
396
|
+
}
|
|
431
397
|
// constructor(assurePageExists: (pageId: string) => void, name: string, defaultLanguage: string, title?: string, level?: number) {
|
|
432
398
|
// super(name, defaultLanguage, title, level);
|
|
433
399
|
// this.assurePageExists = assurePageExists;
|
|
434
400
|
// }
|
|
435
|
-
|
|
436
|
-
return
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
401
|
+
getAllPages() {
|
|
402
|
+
return [
|
|
403
|
+
...this.pages,
|
|
404
|
+
...this.reports.map(e => e.entity.getPage()),
|
|
405
|
+
...this.getSavableEntities().map(e => e.entity.pages),
|
|
406
|
+
].flat();
|
|
407
|
+
}
|
|
408
|
+
assurePageExists(pageName) {
|
|
409
|
+
if (!this.getAllPages().some(p => p.name === pageName)) {
|
|
410
|
+
throw new Error(`There is no "${pageName}" page`);
|
|
441
411
|
}
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
if (this.getAllPages().some(
|
|
445
|
-
throw new Error(
|
|
412
|
+
}
|
|
413
|
+
addPage(name, link, label, title) {
|
|
414
|
+
if (this.getAllPages().some(p => p.name === name)) {
|
|
415
|
+
throw new Error(`There is already "${name}" page`);
|
|
446
416
|
}
|
|
447
|
-
|
|
417
|
+
const page = new PageBuilder_1.default(name, link, label, this.defaultLanguage, title);
|
|
448
418
|
this.pages.push(page);
|
|
449
419
|
return page;
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
|
|
420
|
+
}
|
|
421
|
+
getPageByName(pageName) {
|
|
422
|
+
const found = this.getAllPages().find(p => p.name === pageName);
|
|
453
423
|
if (!found) {
|
|
454
|
-
throw new Error(
|
|
424
|
+
throw new Error(`Page "${pageName}" not found`);
|
|
455
425
|
}
|
|
456
426
|
return found;
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
return
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
427
|
+
}
|
|
428
|
+
getAllLabels() {
|
|
429
|
+
return [
|
|
430
|
+
...this.labels,
|
|
431
|
+
...this.reports.map(r => r.entity.getLabels()),
|
|
432
|
+
...this.getSavableEntities().map(e => e.entity.labels),
|
|
433
|
+
].flat();
|
|
434
|
+
}
|
|
435
|
+
assureLabelExists(label) {
|
|
436
|
+
if (!this.getAllLabels().some(l => l === label)) {
|
|
437
|
+
throw new Error(`There is no "${label}" page`);
|
|
464
438
|
}
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
|
|
439
|
+
}
|
|
440
|
+
addGroupMenuItem(label) {
|
|
441
|
+
const menuItem = new GroupMenuItemBuilder_1.default(this, label, this.defaultLanguage, 1);
|
|
468
442
|
this.menuItems.push(menuItem);
|
|
469
443
|
return menuItem;
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
|
|
444
|
+
}
|
|
445
|
+
addInternalMenuItem(pageName) {
|
|
446
|
+
const menuItem = new InternalMenuItemBuilder_1.default(this, pageName, this.defaultLanguage, 1);
|
|
473
447
|
this.menuItems.push(menuItem);
|
|
474
448
|
return menuItem;
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
|
|
449
|
+
}
|
|
450
|
+
addExternalMenuItem(label, url) {
|
|
451
|
+
const menuItem = new ExternalMenuItemBuilder_1.default(this, label, url, this.defaultLanguage, 1);
|
|
478
452
|
this.menuItems.push(menuItem);
|
|
479
453
|
return menuItem;
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
|
|
454
|
+
}
|
|
455
|
+
addExternalEnvMenuItem(label, env) {
|
|
456
|
+
const menuItem = new ExternalEnvMenuItemBuilder_1.default(this, label, env, this.defaultLanguage, 1);
|
|
483
457
|
this.menuItems.push(menuItem);
|
|
484
458
|
return menuItem;
|
|
485
|
-
}
|
|
486
|
-
|
|
459
|
+
}
|
|
460
|
+
getBack() {
|
|
487
461
|
return this.back;
|
|
488
|
-
}
|
|
462
|
+
}
|
|
489
463
|
// documents
|
|
490
|
-
|
|
464
|
+
getDocuments() {
|
|
491
465
|
return this.documents;
|
|
492
|
-
}
|
|
493
|
-
|
|
494
|
-
if (options === void 0) { options = this ? this.defOpts : {}; }
|
|
466
|
+
}
|
|
467
|
+
addDocument(name, title, options = this ? this.defOpts : {}) {
|
|
495
468
|
this.assureNoNamedEntityAlreadyDefined(name);
|
|
496
|
-
|
|
497
|
-
this.documents.push({ entity: document, options
|
|
469
|
+
const document = new DocumentBuilder_1.default(name, this.defaultLanguage, title);
|
|
470
|
+
this.documents.push({ entity: document, options });
|
|
498
471
|
return document;
|
|
499
|
-
}
|
|
500
|
-
|
|
501
|
-
if (
|
|
502
|
-
|
|
503
|
-
throw new Error("There is already report with name \"".concat(name, "\". Entity ").concat(this.name));
|
|
472
|
+
}
|
|
473
|
+
addReport(name, title, options = this ? this.defOpts : {}) {
|
|
474
|
+
if (this.reports.some((f) => f.entity.name === name)) {
|
|
475
|
+
throw new Error(`There is already report with name "${name}". Entity ${this.name}`);
|
|
504
476
|
}
|
|
505
|
-
|
|
506
|
-
this.reports.push({ entity: report, options
|
|
477
|
+
const report = new ReportBuilder_1.default(name, this.defaultLanguage, title);
|
|
478
|
+
this.reports.push({ entity: report, options });
|
|
507
479
|
return report;
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
if (this.getSavableEntities().some(
|
|
511
|
-
throw new Error(
|
|
480
|
+
}
|
|
481
|
+
assureNoNamedEntityAlreadyDefined(name) {
|
|
482
|
+
if (this.getSavableEntities().some((f) => f.entity.name === name)) {
|
|
483
|
+
throw new Error(`There is already entity with name "${name}". Entity ${this.name}`);
|
|
512
484
|
}
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
if (options === void 0) { options = this ? this.defOpts : {}; }
|
|
485
|
+
}
|
|
486
|
+
addInfoRegistry(name, registrarDepended, title, options = this ? this.defOpts : {}) {
|
|
516
487
|
this.assureNoNamedEntityAlreadyDefined(name);
|
|
517
|
-
|
|
518
|
-
this.infoRegistries.push({ entity: infoRegistry, options
|
|
488
|
+
const infoRegistry = new InfoRegistryBuilder_1.InfoRegistryBuilder(name, registrarDepended, this.defaultLanguage, title);
|
|
489
|
+
this.infoRegistries.push({ entity: infoRegistry, options });
|
|
519
490
|
return infoRegistry;
|
|
520
|
-
}
|
|
521
|
-
|
|
491
|
+
}
|
|
492
|
+
addSumRegistry(name, registrarDepended, title, options) {
|
|
522
493
|
this.assureNoNamedEntityAlreadyDefined(name);
|
|
523
|
-
|
|
494
|
+
const sumRegistry = new SumRegistryBuilder_1.default(name, registrarDepended, this.defaultLanguage, title, options);
|
|
524
495
|
this.sumRegistries.push({ entity: sumRegistry, options: this.defOpts });
|
|
525
496
|
return sumRegistry;
|
|
526
|
-
}
|
|
527
|
-
|
|
528
|
-
if (this.glossary.some(
|
|
529
|
-
throw new Error(
|
|
497
|
+
}
|
|
498
|
+
addGlossaryTerm(term, definition) {
|
|
499
|
+
if (this.glossary.some((g) => g.term === term)) {
|
|
500
|
+
throw new Error(`There is already term "${term}" in glossary`);
|
|
530
501
|
}
|
|
531
|
-
this.glossary.push({ term
|
|
502
|
+
this.glossary.push({ term, definition });
|
|
532
503
|
return this;
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
if (this.commands.some(
|
|
536
|
-
throw new Error(
|
|
504
|
+
}
|
|
505
|
+
addCommnad(projectCategory, name, command, needFor) {
|
|
506
|
+
if (this.commands.some((g) => g.name === name)) {
|
|
507
|
+
throw new Error(`There is already "${name}" command`);
|
|
537
508
|
}
|
|
538
509
|
this.commands.push({
|
|
539
|
-
projectCategory
|
|
540
|
-
name
|
|
541
|
-
command
|
|
542
|
-
needFor
|
|
510
|
+
projectCategory,
|
|
511
|
+
name,
|
|
512
|
+
command,
|
|
513
|
+
needFor,
|
|
543
514
|
});
|
|
544
515
|
return this;
|
|
545
|
-
}
|
|
546
|
-
|
|
516
|
+
}
|
|
517
|
+
getSavableEntities() {
|
|
547
518
|
return [
|
|
548
519
|
this.catalogs,
|
|
549
520
|
this.documents,
|
|
550
521
|
this.infoRegistries,
|
|
551
522
|
this.sumRegistries,
|
|
552
523
|
].flat();
|
|
553
|
-
}
|
|
554
|
-
|
|
524
|
+
}
|
|
525
|
+
getExternalSearchEntities() {
|
|
555
526
|
return this.getSavableEntities()
|
|
556
|
-
.map(
|
|
557
|
-
.filter(
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
if (this.methods.some(
|
|
561
|
-
throw new Error(
|
|
527
|
+
.map(e => e.entity)
|
|
528
|
+
.filter((e) => e.externalSearch);
|
|
529
|
+
}
|
|
530
|
+
addMethod(name, methodType, title) {
|
|
531
|
+
if (this.methods.some((f) => f.name === name)) {
|
|
532
|
+
throw new Error(`There is already field with name "${name}" in args model`);
|
|
562
533
|
}
|
|
563
|
-
|
|
534
|
+
const field = new MethodBuilder_1.default(this, name, methodType, this.defaultLanguage, title);
|
|
564
535
|
this.methods.push(field);
|
|
565
536
|
return field;
|
|
566
|
-
}
|
|
567
|
-
|
|
568
|
-
if (this.labels.some(
|
|
569
|
-
throw new Error(
|
|
537
|
+
}
|
|
538
|
+
addLabel(label) {
|
|
539
|
+
if (this.labels.some(m => m === label)) {
|
|
540
|
+
throw new Error(`There is already system label "${label}"`);
|
|
570
541
|
}
|
|
571
542
|
this.labels.push(label);
|
|
572
|
-
}
|
|
573
|
-
|
|
543
|
+
}
|
|
544
|
+
getMethods() {
|
|
574
545
|
return this.methods;
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
if (this.getAllModels().some(
|
|
578
|
-
throw new Error(
|
|
546
|
+
}
|
|
547
|
+
addGeneralModel(name, title) {
|
|
548
|
+
if (this.getAllModels().some((f) => f.name === name)) {
|
|
549
|
+
throw new Error(`There is already field with name "${name}" in args model`);
|
|
579
550
|
}
|
|
580
|
-
|
|
551
|
+
const model = new BaseModelBuilder_1.default(this, name, title !== null && title !== void 0 ? title : name, this.defaultLanguage);
|
|
581
552
|
this.generalModels.push(model);
|
|
582
553
|
return model;
|
|
583
|
-
}
|
|
584
|
-
|
|
585
|
-
if (this.getAllModels().some(
|
|
586
|
-
throw new Error(
|
|
554
|
+
}
|
|
555
|
+
addInputModel(name, title) {
|
|
556
|
+
if (this.getAllModels().some((f) => f.name === name)) {
|
|
557
|
+
throw new Error(`There is already field with name "${name}" in args model`);
|
|
587
558
|
}
|
|
588
|
-
|
|
559
|
+
const model = new BaseModelBuilder_1.default(this, name, title !== null && title !== void 0 ? title : name, this.defaultLanguage);
|
|
589
560
|
this.inputModels.push(model);
|
|
590
561
|
return model;
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
if (this.getAllModels().some(
|
|
594
|
-
throw new Error(
|
|
562
|
+
}
|
|
563
|
+
addOutputModel(name, title) {
|
|
564
|
+
if (this.getAllModels().some((f) => f.name === name)) {
|
|
565
|
+
throw new Error(`There is already field with name "${name}" in args model`);
|
|
595
566
|
}
|
|
596
|
-
|
|
567
|
+
const model = new BaseModelBuilder_1.default(this, name, title !== null && title !== void 0 ? title : name, this.defaultLanguage);
|
|
597
568
|
this.outputModels.push(model);
|
|
598
569
|
return model;
|
|
599
|
-
}
|
|
600
|
-
|
|
601
|
-
return
|
|
602
|
-
|
|
603
|
-
|
|
570
|
+
}
|
|
571
|
+
getAllModels() {
|
|
572
|
+
return [
|
|
573
|
+
...this.inputModels,
|
|
574
|
+
...this.outputModels,
|
|
575
|
+
...this.generalModels,
|
|
576
|
+
];
|
|
577
|
+
}
|
|
578
|
+
getGeneralModels() {
|
|
604
579
|
return this.generalModels;
|
|
605
|
-
}
|
|
606
|
-
|
|
580
|
+
}
|
|
581
|
+
getInputModels() {
|
|
607
582
|
return this.inputModels;
|
|
608
|
-
}
|
|
609
|
-
|
|
583
|
+
}
|
|
584
|
+
getOutputModels() {
|
|
610
585
|
return this.outputModels;
|
|
611
|
-
}
|
|
586
|
+
}
|
|
612
587
|
// setMemory(request: string, limit?: string) {
|
|
613
588
|
// this.requests.memory = request
|
|
614
589
|
// if (limit) {
|
|
@@ -627,10 +602,8 @@ var SystemMetaBuilder = /** @class */ (function () {
|
|
|
627
602
|
// }
|
|
628
603
|
// return this
|
|
629
604
|
// }
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
return R.sortBy(R.compose(R.prop('name'), R.prop('entity')), entries);
|
|
633
|
-
};
|
|
605
|
+
_build() {
|
|
606
|
+
const sortByName = (entries) => R.sortBy(R.compose(R.prop('name'), R.prop('entity')), entries);
|
|
634
607
|
return {
|
|
635
608
|
name: this.name,
|
|
636
609
|
prefix: this.prefix,
|
|
@@ -638,57 +611,41 @@ var SystemMetaBuilder = /** @class */ (function () {
|
|
|
638
611
|
deployEnvironments: this.deployEnvironments,
|
|
639
612
|
glossary: R.sortBy(R.prop('term'), this.glossary),
|
|
640
613
|
commands: R.sortBy(R.prop('command'), this.commands),
|
|
641
|
-
telegramBots: R.sortBy(R.prop('name'), this.telegramBots).map(
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
infoRegistries: sortByName(this.infoRegistries).map(function (el) {
|
|
648
|
-
return el.entity.build();
|
|
649
|
-
}),
|
|
650
|
-
sumRegistries: sortByName(this.sumRegistries).map(function (el) {
|
|
651
|
-
return el.entity.build();
|
|
652
|
-
}),
|
|
614
|
+
telegramBots: R.sortBy(R.prop('name'), this.telegramBots).map((el) => el.build()),
|
|
615
|
+
configVars: R.sortBy(R.prop('name'), this.configVars.map((cv) => cv.build())),
|
|
616
|
+
catalogs: sortByName(this.catalogs).map((el) => el.entity.build()),
|
|
617
|
+
documents: sortByName(this.documents).map((el) => el.entity.build()),
|
|
618
|
+
infoRegistries: sortByName(this.infoRegistries).map((el) => el.entity.build()),
|
|
619
|
+
sumRegistries: sortByName(this.sumRegistries).map((el) => el.entity.build()),
|
|
653
620
|
languages: this.languages.sort(),
|
|
654
621
|
defaultLanguage: this.defaultLanguage,
|
|
655
|
-
reports: sortByName(this.reports).map(
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
integrationClients: R.sortBy(R.prop('name'), this.integrationClients).map(function (c) {
|
|
663
|
-
return c.build();
|
|
664
|
-
}),
|
|
665
|
-
workers: R.sortBy(R.prop('name'), this.workers).map(function (worker) {
|
|
666
|
-
return worker.build();
|
|
667
|
-
}),
|
|
668
|
-
roles: R.sortBy(R.prop('name'), this.roles).map(function (role) { return role.build(); }),
|
|
669
|
-
menuItems: this.menuItems.map(function (item) { return item.build(); }),
|
|
670
|
-
pages: this.pages.map(function (p) { return p.build(); }),
|
|
622
|
+
reports: sortByName(this.reports).map(({ entity }) => entity.build()),
|
|
623
|
+
restApis: R.sortBy(R.prop('name'), this.restApis).map(api => api.build()),
|
|
624
|
+
integrationClients: R.sortBy(R.prop('name'), this.integrationClients).map(c => c.build()),
|
|
625
|
+
workers: R.sortBy(R.prop('name'), this.workers).map((worker) => worker.build()),
|
|
626
|
+
roles: R.sortBy(R.prop('name'), this.roles).map((role) => role.build()),
|
|
627
|
+
menuItems: this.menuItems.map((item) => item.build()),
|
|
628
|
+
pages: this.pages.map(p => p.build()),
|
|
671
629
|
back: this.back.build(),
|
|
672
|
-
generalModels: this.generalModels.map(
|
|
673
|
-
inputModels: this.inputModels.map(
|
|
674
|
-
outputModels: this.outputModels.map(
|
|
675
|
-
methods: this.methods.map(
|
|
630
|
+
generalModels: this.generalModels.map(m => m.build()),
|
|
631
|
+
inputModels: this.inputModels.map(m => m.build()),
|
|
632
|
+
outputModels: this.outputModels.map(m => m.build()),
|
|
633
|
+
methods: this.methods.map(m => m.build()),
|
|
676
634
|
labels: this.labels,
|
|
677
|
-
additionalServices: this.additionalServices.map(
|
|
635
|
+
additionalServices: this.additionalServices.map(p => p.build()),
|
|
678
636
|
};
|
|
679
|
-
}
|
|
680
|
-
|
|
637
|
+
}
|
|
638
|
+
validate() {
|
|
681
639
|
return this._build();
|
|
682
|
-
}
|
|
683
|
-
|
|
640
|
+
}
|
|
641
|
+
build() {
|
|
684
642
|
this.validate();
|
|
685
643
|
return this._build();
|
|
686
|
-
}
|
|
687
|
-
|
|
644
|
+
}
|
|
645
|
+
initDefaultCatalogs() {
|
|
688
646
|
(0, defaultCatalogs_1.addFilesCatalog)(this);
|
|
689
647
|
return this.catalogs;
|
|
690
|
-
}
|
|
691
|
-
|
|
692
|
-
}());
|
|
648
|
+
}
|
|
649
|
+
}
|
|
693
650
|
exports.default = SystemMetaBuilder;
|
|
694
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3lzdGVtTWV0YUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2J1aWxkZXJzL1N5c3RlbU1ldGFCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrQ0FJaUI7QUFDakIsb0VBQTZDO0FBQzdDLHNFQUErQztBQUMvQyw2REFBMkQ7QUFDM0QsNEVBQTBFO0FBYzFFLHNEQUFvRDtBQUNwRCx1Q0FBMEI7QUFDMUIsa0VBQTJDO0FBQzNDLG9FQUE2QztBQUM3QywwRUFBbUQ7QUFDbkQsOERBQXVDO0FBQ3ZDLDRFQUFxRDtBQUNyRCx1REFBb0Q7QUFDcEQsa0RBQTRCO0FBQzVCLDJHQUFvRjtBQUNwRiwyRkFBb0U7QUFDcEUsaUdBQTBFO0FBQzFFLDJGQUFvRTtBQUNwRSxxRkFBOEQ7QUFDOUQsOERBQXVDO0FBQ3ZDLHdGQUFpRTtBQUNqRSwrRUFBd0Q7QUFDeEQseUVBQTJFO0FBRTlELFFBQUEsZ0JBQWdCLEdBQXFDO0lBQ2hFLE9BQU8sRUFBRSxFQUFFO0lBQ1gsT0FBTyxFQUFFLEVBQUU7SUFDWCxRQUFRLEVBQUUsSUFBSTtJQUNkLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxLQUFLO0lBQ2IsUUFBUSxFQUFFLElBQUk7Q0FDZixDQUFBO0FBRUQ7SUFpQ0UsNERBQTREO0lBQzVELHVEQUF1RDtJQUV2RCxjQUFjO0lBQ2QsMkJBQ0UsTUFBYyxFQUNkLE9BQStELEVBQy9ELGVBQXNCO1FBRHRCLHdCQUFBLEVBQUEsVUFBa0MscUNBQTZCO1FBQy9ELGdDQUFBLEVBQUEsc0JBQXNCO1FBdkN4QixhQUFRLEdBQStDLEVBQUUsQ0FBQTtRQUN6RCxZQUFPLEdBQThDLEVBQUUsQ0FBQTtRQUN2RCxjQUFTLEdBQWdELEVB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
|
|
651
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3lzdGVtTWV0YUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcHJvamVjdHNHZW5lcmF0aW9uL2J1aWxkZXJzL1N5c3RlbU1ldGFCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0NBSWlCO0FBQ2pCLHNFQUE2QztBQUM3Qyx3RUFBK0M7QUFDL0MsK0RBQTJEO0FBQzNELDhFQUEwRTtBQWMxRSx3REFBb0Q7QUFDcEQseUNBQTBCO0FBQzFCLG9FQUEyQztBQUMzQyxzRUFBNkM7QUFDN0MsNEVBQW1EO0FBQ25ELGdFQUF1QztBQUN2Qyw4RUFBcUQ7QUFDckQseURBQW9EO0FBQ3BELG9EQUE0QjtBQUM1Qiw2R0FBb0Y7QUFDcEYsNkZBQW9FO0FBQ3BFLG1HQUEwRTtBQUMxRSw2RkFBb0U7QUFDcEUsdUZBQThEO0FBQzlELGdFQUF1QztBQUN2QywwRkFBaUU7QUFDakUsaUZBQXdEO0FBQ3hELDJFQUEyRTtBQUU5RCxRQUFBLGdCQUFnQixHQUFxQztJQUNoRSxPQUFPLEVBQUUsRUFBRTtJQUNYLE9BQU8sRUFBRSxFQUFFO0lBQ1gsUUFBUSxFQUFFLElBQUk7SUFDZCxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQztJQUN6QyxNQUFNLEVBQUUsS0FBSztJQUNiLFFBQVEsRUFBRSxJQUFJO0NBQ2YsQ0FBQTtBQUVELE1BQU0saUJBQWlCO0lBaUNyQiw0REFBNEQ7SUFDNUQsdURBQXVEO0lBRXZELGNBQWM7SUFDZCxZQUNFLE1BQWMsRUFDZCxVQUFrQyxxQ0FBNkIsRUFDL0QsZUFBZSxHQUFHLElBQUk7UUF2Q3hCLGFBQVEsR0FBK0MsRUFBRSxDQUFBO1FBQ3pELFlBQU8sR0FBOEMsRUFBRSxDQUFBO1FBQ3ZELGNBQVMsR0FBZ0QsRUFBRSxDQUFBO1FBQzNELG1CQUFjLEdBQW9ELEVBQUUsQ0FBQTtRQUNwRSxrQkFBYSxHQUFtRCxFQUFFLENBQUE7UUFDbEUsZUFBVSxHQUE0QixFQUFFLENBQUE7UUFDeEMsYUFBUSxHQUFlLEVBQUUsQ0FBQTtRQUN6QixhQUFRLEdBQWMsRUFBRSxDQUFBO1FBQ3hCLHVCQUFrQixHQUF3QixFQUFFLENBQUE7UUFDNUMsaUJBQVksR0FBeUIsRUFBRSxDQUFBO1FBQ3ZDLGNBQVMsR0FBZSxFQUFFLENBQUE7UUFDMUIsYUFBUSxHQUFxQixFQUFFLENBQUE7UUFDL0IsdUJBQWtCLEdBQStCLEVBQUUsQ0FBQTtRQUNuRCxZQUFPLEdBQXdCLEVBQUUsQ0FBQTtRQUNqQyxVQUFLLEdBQWtCLEVBQUUsQ0FBQTtRQUd6QixjQUFTLEdBQThHLEVBQUUsQ0FBQztRQUMxSCxVQUFLLEdBQWtCLEVBQUUsQ0FBQztRQUNoQixZQUFPLEdBQW9CLEVBQUUsQ0FBQTtRQUM3QixrQkFBYSxHQUF1QixFQUFFLENBQUMsQ0FBQyw2Q0FBNkM7UUFDckYsZ0JBQVcsR0FBdUIsRUFBRSxDQUFDLENBQUMsd0NBQXdDO1FBQzlFLGlCQUFZLEdBQXVCLEVBQUUsQ0FBQyxDQUFDLHlDQUF5QztRQUMxRixXQUFNLEdBQWEsRUFBRSxDQUFDO1FBQ3RCLHVCQUFrQixHQUErQixFQUFFLENBQUM7UUFpQmxELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUE7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksMkJBQWlCLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxZQUFZLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xHLElBQUksQ0FBQyxZQUFZLENBQUMseUJBQXlCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3RHLElBQUksQ0FBQyxZQUFZLENBQUMseUJBQXlCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXRHLElBQUksQ0FBQyxZQUFZLENBQ2YsVUFBVSxFQUNWLFFBQVEsRUFDUixJQUFJLEVBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQzFCLGlDQUFpQyxDQUNsQyxDQUFBO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FDZixXQUFXLEVBQ1gsUUFBUSxFQUNSLEtBQUssRUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFDeEIsc0NBQXNDLENBQ3ZDLENBQUE7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUNmLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsSUFBSSxFQUNKLEtBQUssRUFDTCxvQkFBb0IsQ0FDckIsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQ2YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLDZEQUE2RCxDQUM5RCxDQUFBO1FBRUQsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQ2YseUJBQXlCLEVBQ3pCLFFBQVEsRUFDUixJQUFJLEVBQ0osK0NBQStDLEVBQy9DLHNEQUFzRCxDQUN2RCxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FDZiw0QkFBNEIsRUFDNUIsUUFBUSxFQUNSLEtBQUssRUFDTCwrQ0FBK0MsRUFDL0Msc0RBQXNELENBQ3ZELENBQUMsU0FBUyxFQUFFLENBQUE7UUFDYixJQUFJLENBQUMsWUFBWSxDQUNmLGdDQUFnQyxFQUNoQyxNQUFNLEVBQ04sSUFBSSxFQUNKLEtBQUssRUFDTCxzRUFBc0UsQ0FDdkUsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQ2YsNkJBQTZCLEVBQzdCLFFBQVEsRUFDUixJQUFJLEVBQ0osK0NBQStDLEVBQy9DLHFJQUFxSSxDQUN0SSxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBRWIsSUFBSSxDQUFDLFlBQVksQ0FDZixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLEtBQUssRUFDTCxXQUFXLEVBQ1gsbURBQW1ELENBQ3BELENBQUMsU0FBUyxFQUFFLENBQUE7UUFDYixJQUFJLENBQUMsWUFBWSxDQUNmLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsS0FBSyxFQUNMLFdBQVcsRUFDWCx5REFBeUQsQ0FDMUQsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUViLElBQUksQ0FBQyxZQUFZLENBQ2YsYUFBYSxFQUNiLFFBQVEsRUFDUixJQUFJLEVBQ0osK0JBQStCLEVBQy9CLHdDQUF3QyxDQUN6QyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FDZixvQkFBb0IsRUFDcEIsUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1Qsc0NBQXNDLENBQ3ZDLENBQUMsU0FBUyxFQUFFLENBQUE7UUFDYixxQkFBcUI7UUFDckIseUJBQXlCO1FBQ3pCLGNBQWM7UUFDZCxVQUFVO1FBQ1YscUNBQXFDO1FBQ3JDLHFFQUFxRTtRQUNyRSxJQUFJO1FBQ0osSUFBSSxDQUFDLFlBQVksQ0FDZixXQUFXLEVBQ1gsUUFBUSxFQUNSLElBQUksRUFDSixjQUFjLEVBQ2QsNENBQTRDLENBQzdDLENBQUE7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUNmLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsSUFBSSxFQUNKLEVBQUUsRUFDRiw0Q0FBNEMsQ0FDN0MsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQ2Ysb0JBQW9CLEVBQ3BCLFFBQVEsRUFDUixJQUFJLEVBQ0osRUFBRSxFQUNGLHFDQUFxQyxDQUN0QyxDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FDZixzQkFBc0IsRUFDdEIsUUFBUSxFQUNSLElBQUksRUFDSixFQUFFLEVBQ0YsdURBQXVELENBQ3hELENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUNmLDhCQUE4QixFQUM5QixRQUFRLEVBQ1IsSUFBSSxFQUNKLEVBQUUsRUFDRixtRkFBbUYsQ0FDcEYsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLENBQ2YsY0FBYyxFQUNkLFFBQVEsRUFDUixLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLHdEQUF3RCxDQUN6RCxDQUFBO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FDZiwyQkFBMkIsRUFDM0IsUUFBUSxFQUNSLEtBQUssRUFDTCxFQUFFLEVBQ0YsNENBQTRDLENBQzdDLENBQUMsU0FBUyxFQUFFLENBQUE7UUFDYixJQUFJLENBQUMsWUFBWSxDQUNmLCtCQUErQixFQUMvQixPQUFPLEVBQ1AsS0FBSyxFQUNMLEdBQUcsRUFDSCwwQ0FBMEMsQ0FDM0MsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQ2YsVUFBVSxFQUNWLFFBQVEsRUFDUixLQUFLLEVBQ0wsRUFBRSxFQUNGLGdCQUFnQixFQUNoQixDQUFDLFdBQVcsQ0FBQyxDQUNkLENBQUE7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUNmLDJCQUEyQixFQUMzQixRQUFRLEVBQ1IsS0FBSyxFQUNMLEVBQUUsRUFDRiw0Q0FBNEMsRUFDNUMsQ0FBQyxXQUFXLENBQUMsQ0FDZCxDQUFBO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FDZiw4QkFBOEIsRUFDOUIsUUFBUSxFQUNSLEtBQUssRUFDTCxFQUFFLEVBQ0YsaURBQWlELENBQ2xELENBQUMsU0FBUyxFQUFFLENBQUE7UUFDYixJQUFJLENBQUMsWUFBWSxDQUNmLGtDQUFrQyxFQUNsQyxRQUFRLEVBQ1IsS0FBSyxFQUNMLEtBQUssRUFDTCwwQ0FBMEMsQ0FDM0MsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQ2YsOEJBQThCLEVBQzlCLFFBQVEsRUFDUixLQUFLLEVBQ0wsRUFBRSxFQUNGLGlEQUFpRCxFQUNqRCxDQUFDLGFBQWEsQ0FBQyxDQUNoQixDQUFBO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FDZixVQUFVLEVBQ1YsUUFBUSxFQUNSLEtBQUssRUFDTCxFQUFFLEVBQ0YsK0RBQStELENBQ2hFLENBQUE7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUNmLGFBQWEsRUFDYixRQUFRLEVBQ1IsS0FBSyxFQUNMLE9BQU8sRUFDUCw2QkFBNkIsQ0FDOUIsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQ2YsNEJBQTRCLEVBQzVCLE1BQU0sRUFDTixLQUFLLEVBQ0wsSUFBSSxFQUNKLDZDQUE2QyxDQUM5QyxDQUFBO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxzQ0FBc0MsQ0FBQyxDQUFDO1FBQ3JHLElBQUksQ0FBQyxZQUFZLENBQUMscUNBQXFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsMENBQTBDLENBQUMsQ0FBQztRQUUzSCxRQUFRO1FBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGlDQUFpQyxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFDaEgsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsd0JBQXdCLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMvRixJQUFJLENBQUMsWUFBWSxDQUFDLDZCQUE2QixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLCtEQUErRCxDQUFDLENBQUM7UUFDcEksSUFBSSxDQUFDLFlBQVksQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxvSEFBb0gsQ0FBQyxDQUFDO1FBQzdMLElBQUksQ0FBQyxZQUFZLENBQUMsa0NBQWtDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsMkhBQTJILENBQUMsQ0FBQztRQUN4TSxJQUFJLENBQUMsWUFBWSxDQUFDLHVCQUF1QixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLGtEQUFrRCxDQUFDLENBQUM7UUFDaEgsSUFBSSxDQUFDLFlBQVksQ0FBQyw4QkFBOEIsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDO1FBQzdHLHdNQUF3TTtRQUN4TSxpTUFBaU07UUFDak0sSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSwySUFBMkksQ0FBQyxDQUFDO1FBQ3BNLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLFlBQVksQ0FBQyw4QkFBOEIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDO1FBRS9HLEtBQUs7UUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLHlEQUF5RCxDQUFDLENBQUM7UUFDaEgsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsK0RBQStELENBQUMsQ0FBQztRQUN2SCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSx5REFBeUQsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzdILElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLFlBQVksQ0FBQywyQkFBMkIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxxQ0FBcUMsQ0FBQyxDQUFDO1FBRTVHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRW5FLE9BQU87UUFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLGlDQUFpQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLHFDQUFxQyxDQUFDLENBQUM7UUFDbEgsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUM5RyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDakgsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxnREFBZ0QsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDOUgsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSx5QkFBeUIsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ25ILElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzFHLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsd0NBQXdDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzVILElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLHVDQUF1QyxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDaEksSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSx3Q0FBd0MsRUFBRSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ25JLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsd0RBQXdELEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBRTlJLElBQUksQ0FBQyxZQUFZLENBQUMseUJBQXlCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsMkNBQTJDLENBQUMsQ0FBQztRQUMxSCxJQUFJLENBQUMsWUFBWSxDQUFDLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLDJDQUEyQyxDQUFDLENBQUM7UUFDdEgsSUFBSSxDQUFDLFlBQVksQ0FBQyx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSwyREFBMkQsQ0FBQyxDQUFDO1FBQzFJLElBQUksQ0FBQyxZQUFZLENBQUMseUJBQXlCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsMkRBQTJELENBQUMsQ0FBQztRQUV0SSxjQUFjO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSx5Q0FBeUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRTlILGNBQWM7UUFFZCxJQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDeEIsSUFBSSxFQUFFLEtBQUs7WUFDWCxZQUFZLEVBQUUsS0FBSztZQUNuQixJQUFJLEVBQUUsS0FBSztZQUNYLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLGlCQUFpQixFQUFFLFdBQVc7WUFDOUIsVUFBVSxFQUFFLFFBQVE7WUFDcEIsY0FBYyxFQUFFLElBQUk7WUFDcEIsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixTQUFTLEVBQUUsS0FBSztZQUNoQixlQUFlLEVBQUUsS0FBSztTQUN2QixDQUFDLENBQUE7UUFDRiw4QkFBOEI7UUFDOUIsbUJBQW1CO1FBQ25CLHlCQUF5QjtRQUN6Qiw0QkFBNEI7UUFDNUIseUJBQXlCO1FBQ3pCLEtBQUs7UUFDTCxJQUFJLENBQUMsb0JBQW9CLENBQUM7WUFDeEIsSUFBSSxFQUFFLE1BQU07WUFDWixZQUFZLEVBQUUsSUFBSTtZQUNsQixJQUFJLEVBQUUsSUFBSTtZQUNWLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLGlCQUFpQixFQUFFLFdBQVc7WUFDOUIsVUFBVSxFQUFFLFNBQVM7WUFDckIsY0FBYyxFQUFFLElBQUk7WUFDcEIsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixTQUFTLEVBQUUsTUFBTTtZQUNqQixlQUFlLEVBQUUsTUFBTTtTQUN4QixDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQTtRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQTtRQUNqQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUE7U0FDbEM7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQTtRQUV0QyxnQ0FBZ0M7UUFFaEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFFMUIsT0FBTztRQUNQLHFEQUFxRDtRQUNyRCw0REFBNEQ7UUFFNUQsT0FBTztRQUNQLDJDQUEyQztRQUMzQyx1Q0FBdUM7SUFDekMsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO1FBRWhCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFlO1FBQ3hCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBRXRCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFjO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBRXBCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUdELGFBQWE7SUFDYixVQUFVO0lBQ1YsYUFBYTtJQUNiLFlBQVk7SUFDWixXQUFXO0lBQ1gsZUFBZTtJQUNmLFdBQVc7SUFFWCxZQUFZLENBQ1YsSUFBWSxFQUNaLElBQU8sRUFDUCxRQUFpQixFQUNqQixHQUErQixFQUMvQixPQUFlLEVBQ2YsU0FBMkIsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxFQUM1RCxNQUFNLEdBQUcsS0FBSyxFQUNkLFFBQVEsR0FBRyxJQUFJO1FBRWYsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNoRCxNQUFNLElBQUksS0FBSyxDQUFDLElBQUksSUFBSSw2QkFBNkIsQ0FBQyxDQUFBO1NBQ3ZEO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxtQ0FBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFFcEcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFL0IsT0FBTyxTQUFTLENBQUE7SUFDbEIsQ0FBQztJQUVELFlBQVksQ0FDVixJQUFZO1FBRVosSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLElBQUksY0FBYyxDQUFDLENBQUE7U0FDcEQ7UUFFRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQTtRQUU5RCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBWTtRQUN2QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBWTtRQUMvQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUE7UUFFL0QsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLElBQUksY0FBYyxDQUFDLENBQUE7U0FDcEQ7UUFFRCxPQUFPLFVBQVUsQ0FBQTtJQUNuQixDQUFDO0lBRUQsd0JBQXdCLENBQ3RCLElBQVksRUFDWixHQUErQjtRQUUvQixhQUFHLENBQUMsSUFBSSxDQUFDLDRHQUE0RyxDQUFDLENBQUE7UUFDdEgsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5ELFVBQVUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFNUIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsMkJBQTJCLENBQUMsSUFBWSxFQUFFLEdBQVc7UUFDbkQsYUFBRyxDQUFDLElBQUksQ0FBQywrR0FBK0csQ0FBQyxDQUFBO1FBQ3pILE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQVUsRUFBRSxLQUFjO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNsRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxhQUFMLEtBQUssY0FBTCxLQUFLLEdBQUksRUFBRSxFQUFDLENBQUMsQ0FBQTtTQUM5QztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsRUFBVTtRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUNoRSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsRUFBVTtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsQ0FBQTtTQUNoRDtRQUVELElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFBO0lBQzNCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxpQkFBb0M7UUFDdkQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzFFLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELGlCQUFpQixDQUFDLElBQUksR0FBRyxDQUFDLENBQUE7U0FDNUY7UUFFRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7UUFFL0MsbUVBQW1FO1FBQ25FLGtFQUFrRTtRQUNsRSxJQUFJO1FBRUosT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQscUJBQXFCLENBQUMsSUFBWSxFQUFFLGlCQUE2QztRQUMvRSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUN6RCxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixJQUFJLHFDQUFxQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7U0FDakk7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsK0NBQzNFLEdBQUcsR0FDSCxpQkFBaUIsS0FDcEIsSUFBSSxJQUNKLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUVSLG1FQUFtRTtRQUNuRSxrRUFBa0U7UUFDbEUsSUFBSTtRQUVKLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQVk7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDekQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxxQ0FBcUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ2pJO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFBO1FBRTlFLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZLEVBQUUsS0FBYztRQUN6QyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLElBQUksR0FBRyxDQUFDLENBQUE7U0FDcEU7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLDRCQUFrQixDQUN4QyxJQUFJLEVBQ0osSUFBSSxDQUFDLGVBQWUsRUFDcEIsS0FBSyxDQUNOLENBQUE7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUVuQyxPQUFPLFdBQVcsQ0FBQTtJQUNwQixDQUFDO0lBRUQsV0FBVztJQUNYLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7SUFDdEIsQ0FBQztJQUVELFVBQVUsQ0FDUixJQUFZLEVBQ1osS0FHQyxFQUNELFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBRSxFQUFVO1FBRTNDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUU1QyxNQUFNLE9BQU8sR0FBRyxJQUFJLHdCQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFFckUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFFaEQsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVk7UUFDM0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFBO1FBRWpFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixJQUFJLFdBQVcsQ0FBQyxDQUFBO1NBQ2pEO1FBRUQsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFBO0lBQ3ZCLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxJQUFZO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQTtRQUU1RSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsQ0FBQTtTQUN0RDtRQUVELE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQTtJQUM1QixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVksRUFBRSxJQUFZLEVBQUUsS0FBYyxFQUFFLElBQUksR0FBRyxJQUFJO1FBQ2hFLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsSUFBSSxHQUFHLENBQUMsQ0FBQTtTQUNqRTtRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDOUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsSUFBSSxHQUFHLENBQUMsQ0FBQTtTQUNqRTtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksd0JBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBRWpGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRTNCLE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxvQkFBb0IsQ0FDbEIsSUFBWSxFQUNaLEtBQWM7UUFFZCxJQUNFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQ3BEO1lBQ0EsTUFBTSxJQUFJLEtBQUssQ0FDYixrREFBa0QsSUFBSSxhQUFhLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FDL0UsQ0FBQTtTQUNGO1FBRUQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGtDQUF3QixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBRXpGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUUvQyxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFRCxvQkFBb0IsQ0FDbEIsSUFBWSxFQUNaLEtBQWM7UUFFZCxJQUNFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQ3BEO1lBQ0EsTUFBTSxJQUFJLEtBQUssQ0FDYixrREFBa0QsSUFBSSxhQUFhLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FDL0UsQ0FBQTtTQUNGO1FBRUQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGtDQUF3QixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBRXpGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtRQUUvQyxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBWSxFQUFFLEtBQWM7UUFDcEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxJQUFJLEdBQUcsQ0FBQyxDQUFBO1NBQ2pFO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSwyQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUV2RSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUV6QixPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7SUFFRCxxQkFBcUIsQ0FDbkIsSUFBWSxFQUNaLEtBR0MsRUFDRCxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUUsRUFBVTtRQUUzQyxJQUFJLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFNUMsTUFBTSxPQUFPLEdBQUcsSUFBSSx3QkFBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3JFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBRWhELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxPQUFPLENBQ0wsSUFBWSxFQUNaLEtBQWM7UUFFZCxJQUFJLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFNUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxxQkFBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBRS9ELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRXJCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELG1JQUFtSTtJQUNuSSxnREFBZ0Q7SUFFaEQsOENBQThDO0lBQzlDLElBQUk7SUFFSixXQUFXO1FBQ1QsT0FBTztZQUNMLEdBQUcsSUFBSSxDQUFDLEtBQUs7WUFDYixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ3RELENBQUMsSUFBSSxFQUFFLENBQUM7SUFDWCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBZ0I7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxFQUFFO1lBQ3RELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLFFBQVEsUUFBUSxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQsT0FBTyxDQUNMLElBQVksRUFDWixJQUFZLEVBQ1osS0FBYSxFQUNiLEtBQWM7UUFFZCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLElBQUksUUFBUSxDQUFDLENBQUM7U0FDcEQ7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLHFCQUFXLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUU1RSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUVyQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxhQUFhLENBQUMsUUFBZ0I7UUFDNUIsTUFBTSxLQUFLLEdBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxRQUFRLGFBQWEsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQyxNQUFNO1lBQ2QsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDOUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUN2RCxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ1gsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxRQUFRLENBQUMsQ0FBQztTQUNoRDtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzVCLE1BQU0sUUFBUSxHQUFHLElBQUksOEJBQW9CLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBRS9FLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRTdCLE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxRQUFnQjtRQUNsQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGlDQUF1QixDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUVyRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUU3QixPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDO0lBRUQsbUJBQW1CLENBQ2pCLEtBQWEsRUFDYixHQUFXO1FBRVgsTUFBTSxRQUFRLEdBQUcsSUFBSSxpQ0FBdUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBRXZGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRTdCLE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7SUFFRCxzQkFBc0IsQ0FDcEIsS0FBYSxFQUNiLEdBQVc7UUFFWCxNQUFNLFFBQVEsR0FBRyxJQUFJLG9DQUEwQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFFMUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFFN0IsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUE7SUFDbEIsQ0FBQztJQUVELFlBQVk7SUFDWixZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFBO0lBQ3ZCLENBQUM7SUFFRCxXQUFXLENBQ1QsSUFBWSxFQUNaLEtBR0MsRUFDRCxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUUsRUFBVTtRQUUzQyxJQUFJLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFNUMsTUFBTSxRQUFRLEdBQUcsSUFBSSx5QkFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBRXZFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBRWxELE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7SUFFRCxTQUFTLENBQ1AsSUFBWSxFQUNaLEtBQWMsRUFDZCxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUUsRUFBVTtRQUUzQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNwRCxNQUFNLElBQUksS0FBSyxDQUNiLHNDQUFzQyxJQUFJLGFBQWEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUNuRSxDQUFBO1NBQ0Y7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLHVCQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFFbkUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFFOUMsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0lBRUQsaUNBQWlDLENBQUMsSUFBWTtRQUM1QyxJQUNFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQzdEO1lBQ0EsTUFBTSxJQUFJLEtBQUssQ0FDYixzQ0FBc0MsSUFBSSxhQUFhLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FDbkUsQ0FBQTtTQUNGO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FDYixJQUFZLEVBQ1osaUJBQTBCLEVBQzFCLEtBR0MsRUFDRCxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUUsRUFBVTtRQUUzQyxJQUFJLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFNUMsTUFBTSxZQUFZLEdBQUcsSUFBSSx5Q0FBbUIsQ0FDMUMsSUFBSSxFQUNKLGlCQUFpQixFQUNqQixJQUFJLENBQUMsZUFBZSxFQUNwQixLQUFLLENBQ04sQ0FBQTtRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBRTNELE9BQU8sWUFBWSxDQUFBO0lBQ3JCLENBQUM7SUFFRCxjQUFjLENBQ1osSUFBWSxFQUNaLGlCQUEwQixFQUMxQixLQUdDLEVBQ0QsT0FBeUI7UUFFekIsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRTVDLE1BQU0sV0FBVyxHQUFHLElBQUksNEJBQWtCLENBQ3hDLElBQUksRUFDSixpQkFBaUIsRUFDakIsSUFBSSxDQUFDLGVBQWUsRUFDcEIsS0FBSyxFQUNMLE9BQU8sQ0FDUixDQUFBO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUV2RSxPQUFPLFdBQVcsQ0FBQTtJQUNwQixDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVksRUFBRSxVQUFrQjtRQUM5QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQzlDLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLElBQUksZUFBZSxDQUFDLENBQUE7U0FDL0Q7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFBO1FBRXhDLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELFVBQVUsQ0FDUixlQUFnQyxFQUNoQyxJQUFZLEVBQ1osT0FBZSxFQUNmLE9BQWU7UUFFZixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQzlDLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLElBQUksV0FBVyxDQUFDLENBQUE7U0FDdEQ7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNqQixlQUFlO1lBQ2YsSUFBSTtZQUNKLE9BQU87WUFDUCxPQUFPO1NBQ1IsQ0FBQyxDQUFBO1FBRUYsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU87WUFDTCxJQUFJLENBQUMsUUFBUTtZQUNiLElBQUksQ0FBQyxTQUFTO1lBQ2QsSUFBSSxDQUFDLGNBQWM7WUFDbkIsSUFBSSxDQUFDLGFBQWE7U0FDbkIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNYLENBQUM7SUFFRCx5QkFBeUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7YUFDN0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQzthQUNsQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUNwQyxDQUFDO0lBRUQsU0FBUyxDQUNQLElBQVksRUFDWixVQUFzQixFQUN0QixLQUFjO1FBRWQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUM3QyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxJQUFJLGlCQUFpQixDQUFDLENBQUE7U0FDNUU7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLHVCQUFhLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUNwRixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUV4QixPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLEtBQUssR0FBRyxDQUFDLENBQUM7U0FDN0Q7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsZUFBZSxDQUNiLElBQVksRUFDWixLQUFjO1FBRWQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ3BELE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLElBQUksaUJBQWlCLENBQUMsQ0FBQTtTQUM1RTtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksMEJBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLGFBQUwsS0FBSyxjQUFMLEtBQUssR0FBSSxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBQ25GLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRTlCLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELGFBQWEsQ0FDWCxJQUFZLEVBQ1osS0FBYztRQUVkLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtZQUNwRCxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxJQUFJLGlCQUFpQixDQUFDLENBQUE7U0FDNUU7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLDBCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxhQUFMLEtBQUssY0FBTCxLQUFLLEdBQUksSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUNuRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUU1QixPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCxjQUFjLENBQ1osSUFBWSxFQUNaLEtBQWM7UUFFZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFBO1NBQzVFO1FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSwwQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssYUFBTCxLQUFLLGNBQUwsS0FBSyxHQUFJLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7UUFDbkYsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFN0IsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQyxXQUFXO1lBQ25CLEdBQUcsSUFBSSxDQUFDLFlBQVk7WUFDcEIsR0FBRyxJQUFJLENBQUMsYUFBYTtTQUN0QixDQUFBO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsK0NBQStDO0lBQy9DLG1DQUFtQztJQUVuQyxpQkFBaUI7SUFDakIsaUNBQWlDO0lBQ2pDLGFBQWE7SUFDYixtQ0FBbUM7SUFDbkMsTUFBTTtJQUVOLGdCQUFnQjtJQUNoQixJQUFJO0lBRUosNENBQTRDO0lBQzVDLGdDQUFnQztJQUVoQyxpQkFBaUI7SUFDakIsOEJBQThCO0lBQzlCLGFBQWE7SUFDYixnQ0FBZ0M7SUFDaEMsTUFBTTtJQUVOLGdCQUFnQjtJQUNoQixJQUFJO0lBRUksTUFBTTtRQUNaLE1BQU0sVUFBVSxHQUFHLENBQXlDLE9BQVksRUFBRSxFQUFFLENBQzFFLENBQUMsQ0FBQyxNQUFNLENBQ04sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDbEQsT0FBTyxDQUNELENBQUE7UUFFVixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCO1lBQzNDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNqRCxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDcEQsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDbkUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUNYO1lBQ0QsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDN0UsUUFBUSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xFLFNBQVMsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwRSxjQUFjLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUN6RCxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUNsQjtZQUNELGFBQWEsRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQ3ZELEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQ2xCO1lBQ0QsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO1lBQ2hDLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtZQUNyQyxPQUFPLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckUsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQzFELEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FDWjtZQUNELGtCQUFrQixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDNUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUNWO1lBQ0QsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDN0QsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUNmO1lBQ0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckQsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN2QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckQsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pELFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEUsQ0FBQTtJQUNILENBQUM7SUFFRCxRQUFRO1FBRU4sT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFBLGlDQUFlLEVBQUMsSUFBSSxDQUFDLENBQUE7UUFFckIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBQ3RCLENBQUM7Q0FDRjtBQUVELGtCQUFlLGlCQUFpQixDQUFBIn0=
|